[500520] Regenerate editor
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/OCLinEcoreParser.java b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/OCLinEcoreParser.java
index e9f76f1..bc2f1c5 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/OCLinEcoreParser.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/OCLinEcoreParser.java
@@ -397,6 +397,8 @@
 					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_3(), "rule__OperationCS__QualifiersAssignment_9_1_0_3");
 					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_4(), "rule__OperationCS__QualifiersAssignment_9_1_0_4");
 					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_5(), "rule__OperationCS__QualifiersAssignment_9_1_0_5");
+					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_6(), "rule__OperationCS__QualifiersAssignment_9_1_0_6");
+					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_7(), "rule__OperationCS__QualifiersAssignment_9_1_0_7");
 					put(grammarAccess.getOperationCSAccess().getOwnedAnnotationsAssignment_10_0_1_0(), "rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0");
 					put(grammarAccess.getOperationCSAccess().getOwnedPreconditionsAssignment_10_0_1_1(), "rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1");
 					put(grammarAccess.getOperationCSAccess().getOwnedBodyExpressionsAssignment_10_0_1_2_3(), "rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3");
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g
index 64994c0..b45be01 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g
@@ -4127,6 +4127,18 @@
 { after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_5()); }
 )
 
+    |(
+{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_6()); }
+(rule__OperationCS__QualifiersAssignment_9_1_0_6)
+{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_6()); }
+)
+
+    |(
+{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_7()); }
+(rule__OperationCS__QualifiersAssignment_9_1_0_7)
+{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_7()); }
+)
+
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -24833,16 +24845,16 @@
     }
 :
 (
-{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); }
+{ before(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0()); }
 (
-{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); }
+{ before(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0()); }
 
-	'unique' 
+	'transient' 
 
-{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); }
+{ after(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0()); }
 )
 
-{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); }
+{ after(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0()); }
 )
 
 ;
@@ -24856,16 +24868,62 @@
     }
 :
 (
-{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); }
+{ before(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0()); }
 (
-{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); }
+{ before(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0()); }
+
+	'!transient' 
+
+{ after(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0()); }
+)
+
+{ after(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OperationCS__QualifiersAssignment_9_1_0_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0()); }
+(
+{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0()); }
+
+	'unique' 
+
+{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0()); }
+)
+
+{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OperationCS__QualifiersAssignment_9_1_0_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0()); }
+(
+{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0()); }
 
 	'!unique' 
 
-{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); }
+{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0()); }
 )
 
-{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); }
+{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0()); }
 )
 
 ;
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcoreLexer.java b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcoreLexer.java
index f91968e..9d8ec6e 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcoreLexer.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcoreLexer.java
@@ -2686,8 +2686,8 @@
         try {
             int _type = RULE_UNQUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28074:22: ( '\\u00A3$%^\\u00A3$%^' )
-            // InternalOCLinEcore.g:28074:24: '\\u00A3$%^\\u00A3$%^'
+            // InternalOCLinEcore.g:28132:22: ( '\\u00A3$%^\\u00A3$%^' )
+            // InternalOCLinEcore.g:28132:24: '\\u00A3$%^\\u00A3$%^'
             {
             match("\u00A3$%^\u00A3$%^"); 
 
@@ -2705,8 +2705,8 @@
     // $ANTLR start "RULE_ESCAPED_CHARACTER"
     public final void mRULE_ESCAPED_CHARACTER() throws RecognitionException {
         try {
-            // InternalOCLinEcore.g:28076:33: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) )
-            // InternalOCLinEcore.g:28076:35: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+            // InternalOCLinEcore.g:28134:33: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) )
+            // InternalOCLinEcore.g:28134:35: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
             {
             match('\\'); 
             if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@@ -2730,8 +2730,8 @@
     // $ANTLR start "RULE_LETTER_CHARACTER"
     public final void mRULE_LETTER_CHARACTER() throws RecognitionException {
         try {
-            // InternalOCLinEcore.g:28078:32: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) )
-            // InternalOCLinEcore.g:28078:34: ( 'a' .. 'z' | 'A' .. 'Z' | '_' )
+            // InternalOCLinEcore.g:28136:32: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) )
+            // InternalOCLinEcore.g:28136:34: ( 'a' .. 'z' | 'A' .. 'Z' | '_' )
             {
             if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                 input.consume();
@@ -2756,11 +2756,11 @@
         try {
             int _type = RULE_DOUBLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28080:27: ( '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalOCLinEcore.g:28080:29: '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalOCLinEcore.g:28138:27: ( '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalOCLinEcore.g:28138:29: '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalOCLinEcore.g:28080:33: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalOCLinEcore.g:28138:33: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )*
             loop1:
             do {
                 int alt1=3;
@@ -2776,14 +2776,14 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // InternalOCLinEcore.g:28080:34: RULE_ESCAPED_CHARACTER
+            	    // InternalOCLinEcore.g:28138:34: RULE_ESCAPED_CHARACTER
             	    {
             	    mRULE_ESCAPED_CHARACTER(); 
 
             	    }
             	    break;
             	case 2 :
-            	    // InternalOCLinEcore.g:28080:57: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalOCLinEcore.g:28138:57: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2820,11 +2820,11 @@
         try {
             int _type = RULE_SINGLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28082:27: ( '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalOCLinEcore.g:28082:29: '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalOCLinEcore.g:28140:27: ( '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalOCLinEcore.g:28140:29: '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalOCLinEcore.g:28082:34: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalOCLinEcore.g:28140:34: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop2:
             do {
                 int alt2=3;
@@ -2840,14 +2840,14 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalOCLinEcore.g:28082:35: RULE_ESCAPED_CHARACTER
+            	    // InternalOCLinEcore.g:28140:35: RULE_ESCAPED_CHARACTER
             	    {
             	    mRULE_ESCAPED_CHARACTER(); 
 
             	    }
             	    break;
             	case 2 :
-            	    // InternalOCLinEcore.g:28082:58: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalOCLinEcore.g:28140:58: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2884,12 +2884,12 @@
         try {
             int _type = RULE_ML_SINGLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28084:30: ( '/\\'' ( options {greedy=false; } : . )* '\\'/' )
-            // InternalOCLinEcore.g:28084:32: '/\\'' ( options {greedy=false; } : . )* '\\'/'
+            // InternalOCLinEcore.g:28142:30: ( '/\\'' ( options {greedy=false; } : . )* '\\'/' )
+            // InternalOCLinEcore.g:28142:32: '/\\'' ( options {greedy=false; } : . )* '\\'/'
             {
             match("/'"); 
 
-            // InternalOCLinEcore.g:28084:38: ( options {greedy=false; } : . )*
+            // InternalOCLinEcore.g:28142:38: ( options {greedy=false; } : . )*
             loop3:
             do {
                 int alt3=2;
@@ -2914,7 +2914,7 @@
 
                 switch (alt3) {
             	case 1 :
-            	    // InternalOCLinEcore.g:28084:66: .
+            	    // InternalOCLinEcore.g:28142:66: .
             	    {
             	    matchAny(); 
 
@@ -2944,11 +2944,11 @@
         try {
             int _type = RULE_SIMPLE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28086:16: ( RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )* )
-            // InternalOCLinEcore.g:28086:18: RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )*
+            // InternalOCLinEcore.g:28144:16: ( RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )* )
+            // InternalOCLinEcore.g:28144:18: RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )*
             {
             mRULE_LETTER_CHARACTER(); 
-            // InternalOCLinEcore.g:28086:40: ( RULE_LETTER_CHARACTER | '0' .. '9' )*
+            // InternalOCLinEcore.g:28144:40: ( RULE_LETTER_CHARACTER | '0' .. '9' )*
             loop4:
             do {
                 int alt4=2;
@@ -2997,8 +2997,8 @@
         try {
             int _type = RULE_ESCAPED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28088:17: ( '_' RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:28088:19: '_' RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:28146:17: ( '_' RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:28146:19: '_' RULE_SINGLE_QUOTED_STRING
             {
             match('_'); 
             mRULE_SINGLE_QUOTED_STRING(); 
@@ -3018,10 +3018,10 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28090:10: ( ( '0' .. '9' )+ )
-            // InternalOCLinEcore.g:28090:12: ( '0' .. '9' )+
+            // InternalOCLinEcore.g:28148:10: ( ( '0' .. '9' )+ )
+            // InternalOCLinEcore.g:28148:12: ( '0' .. '9' )+
             {
-            // InternalOCLinEcore.g:28090:12: ( '0' .. '9' )+
+            // InternalOCLinEcore.g:28148:12: ( '0' .. '9' )+
             int cnt5=0;
             loop5:
             do {
@@ -3035,7 +3035,7 @@
 
                 switch (alt5) {
             	case 1 :
-            	    // InternalOCLinEcore.g:28090:13: '0' .. '9'
+            	    // InternalOCLinEcore.g:28148:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -3067,12 +3067,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28092:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalOCLinEcore.g:28092:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalOCLinEcore.g:28150:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalOCLinEcore.g:28150:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalOCLinEcore.g:28092:24: ( options {greedy=false; } : . )*
+            // InternalOCLinEcore.g:28150:24: ( options {greedy=false; } : . )*
             loop6:
             do {
                 int alt6=2;
@@ -3097,7 +3097,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // InternalOCLinEcore.g:28092:52: .
+            	    // InternalOCLinEcore.g:28150:52: .
             	    {
             	    matchAny(); 
 
@@ -3127,12 +3127,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28094:17: ( '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalOCLinEcore.g:28094:19: '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalOCLinEcore.g:28152:17: ( '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalOCLinEcore.g:28152:19: '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("--"); 
 
-            // InternalOCLinEcore.g:28094:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalOCLinEcore.g:28152:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop7:
             do {
                 int alt7=2;
@@ -3145,7 +3145,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalOCLinEcore.g:28094:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalOCLinEcore.g:28152:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -3165,7 +3165,7 @@
                 }
             } while (true);
 
-            // InternalOCLinEcore.g:28094:40: ( ( '\\r' )? '\\n' )?
+            // InternalOCLinEcore.g:28152:40: ( ( '\\r' )? '\\n' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3174,9 +3174,9 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalOCLinEcore.g:28094:41: ( '\\r' )? '\\n'
+                    // InternalOCLinEcore.g:28152:41: ( '\\r' )? '\\n'
                     {
-                    // InternalOCLinEcore.g:28094:41: ( '\\r' )?
+                    // InternalOCLinEcore.g:28152:41: ( '\\r' )?
                     int alt8=2;
                     int LA8_0 = input.LA(1);
 
@@ -3185,7 +3185,7 @@
                     }
                     switch (alt8) {
                         case 1 :
-                            // InternalOCLinEcore.g:28094:41: '\\r'
+                            // InternalOCLinEcore.g:28152:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3217,10 +3217,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28096:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalOCLinEcore.g:28096:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalOCLinEcore.g:28154:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalOCLinEcore.g:28154:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalOCLinEcore.g:28096:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalOCLinEcore.g:28154:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt10=0;
             loop10:
             do {
@@ -3274,8 +3274,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:28098:16: ( . )
-            // InternalOCLinEcore.g:28098:18: .
+            // InternalOCLinEcore.g:28156:16: ( . )
+            // InternalOCLinEcore.g:28156:18: .
             {
             matchAny(); 
 
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcoreParser.java b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcoreParser.java
index 253cef5..0372235 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcoreParser.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcoreParser.java
@@ -13282,14 +13282,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Alternatives_9_1_0"
-    // InternalOCLinEcore.g:4089:1: rule__OperationCS__Alternatives_9_1_0 : ( ( ( rule__OperationCS__QualifiersAssignment_9_1_0_0 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_1 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_2 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_3 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_4 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_5 ) ) );
+    // InternalOCLinEcore.g:4089:1: rule__OperationCS__Alternatives_9_1_0 : ( ( ( rule__OperationCS__QualifiersAssignment_9_1_0_0 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_1 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_2 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_3 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_4 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_5 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_6 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_7 ) ) );
     public final void rule__OperationCS__Alternatives_9_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4093:1: ( ( ( rule__OperationCS__QualifiersAssignment_9_1_0_0 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_1 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_2 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_3 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_4 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_5 ) ) )
-            int alt26=6;
+            // InternalOCLinEcore.g:4093:1: ( ( ( rule__OperationCS__QualifiersAssignment_9_1_0_0 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_1 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_2 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_3 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_4 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_5 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_6 ) ) | ( ( rule__OperationCS__QualifiersAssignment_9_1_0_7 ) ) )
+            int alt26=8;
             switch ( input.LA(1) ) {
             case 26:
                 {
@@ -13311,16 +13311,26 @@
                 alt26=4;
                 }
                 break;
-            case 49:
+            case 48:
                 {
                 alt26=5;
                 }
                 break;
-            case 127:
+            case 126:
                 {
                 alt26=6;
                 }
                 break;
+            case 49:
+                {
+                alt26=7;
+                }
+                break;
+            case 127:
+                {
+                alt26=8;
+                }
+                break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
@@ -13504,6 +13514,64 @@
 
                     }
                     break;
+                case 7 :
+                    // InternalOCLinEcore.g:4130:6: ( ( rule__OperationCS__QualifiersAssignment_9_1_0_6 ) )
+                    {
+                    // InternalOCLinEcore.g:4130:6: ( ( rule__OperationCS__QualifiersAssignment_9_1_0_6 ) )
+                    // InternalOCLinEcore.g:4131:1: ( rule__OperationCS__QualifiersAssignment_9_1_0_6 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_6()); 
+                    }
+                    // InternalOCLinEcore.g:4132:1: ( rule__OperationCS__QualifiersAssignment_9_1_0_6 )
+                    // InternalOCLinEcore.g:4132:2: rule__OperationCS__QualifiersAssignment_9_1_0_6
+                    {
+                    pushFollow(FollowSets000.FOLLOW_2);
+                    rule__OperationCS__QualifiersAssignment_9_1_0_6();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalOCLinEcore.g:4136:6: ( ( rule__OperationCS__QualifiersAssignment_9_1_0_7 ) )
+                    {
+                    // InternalOCLinEcore.g:4136:6: ( ( rule__OperationCS__QualifiersAssignment_9_1_0_7 ) )
+                    // InternalOCLinEcore.g:4137:1: ( rule__OperationCS__QualifiersAssignment_9_1_0_7 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_7()); 
+                    }
+                    // InternalOCLinEcore.g:4138:1: ( rule__OperationCS__QualifiersAssignment_9_1_0_7 )
+                    // InternalOCLinEcore.g:4138:2: rule__OperationCS__QualifiersAssignment_9_1_0_7
+                    {
+                    pushFollow(FollowSets000.FOLLOW_2);
+                    rule__OperationCS__QualifiersAssignment_9_1_0_7();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_7()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
 
             }
         }
@@ -13522,13 +13590,13 @@
 
 
     // $ANTLR start "rule__OperationCS__Alternatives_10"
-    // InternalOCLinEcore.g:4135:1: rule__OperationCS__Alternatives_10 : ( ( ( rule__OperationCS__Group_10_0__0 ) ) | ( ';' ) );
+    // InternalOCLinEcore.g:4147:1: rule__OperationCS__Alternatives_10 : ( ( ( rule__OperationCS__Group_10_0__0 ) ) | ( ';' ) );
     public final void rule__OperationCS__Alternatives_10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4139:1: ( ( ( rule__OperationCS__Group_10_0__0 ) ) | ( ';' ) )
+            // InternalOCLinEcore.g:4151:1: ( ( ( rule__OperationCS__Group_10_0__0 ) ) | ( ';' ) )
             int alt27=2;
             int LA27_0 = input.LA(1);
 
@@ -13547,16 +13615,16 @@
             }
             switch (alt27) {
                 case 1 :
-                    // InternalOCLinEcore.g:4140:1: ( ( rule__OperationCS__Group_10_0__0 ) )
+                    // InternalOCLinEcore.g:4152:1: ( ( rule__OperationCS__Group_10_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:4140:1: ( ( rule__OperationCS__Group_10_0__0 ) )
-                    // InternalOCLinEcore.g:4141:1: ( rule__OperationCS__Group_10_0__0 )
+                    // InternalOCLinEcore.g:4152:1: ( ( rule__OperationCS__Group_10_0__0 ) )
+                    // InternalOCLinEcore.g:4153:1: ( rule__OperationCS__Group_10_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOperationCSAccess().getGroup_10_0()); 
                     }
-                    // InternalOCLinEcore.g:4142:1: ( rule__OperationCS__Group_10_0__0 )
-                    // InternalOCLinEcore.g:4142:2: rule__OperationCS__Group_10_0__0
+                    // InternalOCLinEcore.g:4154:1: ( rule__OperationCS__Group_10_0__0 )
+                    // InternalOCLinEcore.g:4154:2: rule__OperationCS__Group_10_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__Group_10_0__0();
@@ -13576,10 +13644,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4146:6: ( ';' )
+                    // InternalOCLinEcore.g:4158:6: ( ';' )
                     {
-                    // InternalOCLinEcore.g:4146:6: ( ';' )
-                    // InternalOCLinEcore.g:4147:1: ';'
+                    // InternalOCLinEcore.g:4158:6: ( ';' )
+                    // InternalOCLinEcore.g:4159:1: ';'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_1()); 
@@ -13612,13 +13680,13 @@
 
 
     // $ANTLR start "rule__OperationCS__Alternatives_10_0_1"
-    // InternalOCLinEcore.g:4159:1: rule__OperationCS__Alternatives_10_0_1 : ( ( ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 ) ) | ( ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 ) ) | ( ( rule__OperationCS__Group_10_0_1_2__0 ) ) | ( ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 ) ) );
+    // InternalOCLinEcore.g:4171:1: rule__OperationCS__Alternatives_10_0_1 : ( ( ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 ) ) | ( ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 ) ) | ( ( rule__OperationCS__Group_10_0_1_2__0 ) ) | ( ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 ) ) );
     public final void rule__OperationCS__Alternatives_10_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4163:1: ( ( ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 ) ) | ( ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 ) ) | ( ( rule__OperationCS__Group_10_0_1_2__0 ) ) | ( ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 ) ) )
+            // InternalOCLinEcore.g:4175:1: ( ( ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 ) ) | ( ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 ) ) | ( ( rule__OperationCS__Group_10_0_1_2__0 ) ) | ( ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 ) ) )
             int alt28=4;
             switch ( input.LA(1) ) {
             case 54:
@@ -13653,16 +13721,16 @@
 
             switch (alt28) {
                 case 1 :
-                    // InternalOCLinEcore.g:4164:1: ( ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 ) )
+                    // InternalOCLinEcore.g:4176:1: ( ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 ) )
                     {
-                    // InternalOCLinEcore.g:4164:1: ( ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 ) )
-                    // InternalOCLinEcore.g:4165:1: ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 )
+                    // InternalOCLinEcore.g:4176:1: ( ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 ) )
+                    // InternalOCLinEcore.g:4177:1: ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOperationCSAccess().getOwnedAnnotationsAssignment_10_0_1_0()); 
                     }
-                    // InternalOCLinEcore.g:4166:1: ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 )
-                    // InternalOCLinEcore.g:4166:2: rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0
+                    // InternalOCLinEcore.g:4178:1: ( rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 )
+                    // InternalOCLinEcore.g:4178:2: rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0();
@@ -13682,16 +13750,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4170:6: ( ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 ) )
+                    // InternalOCLinEcore.g:4182:6: ( ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 ) )
                     {
-                    // InternalOCLinEcore.g:4170:6: ( ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 ) )
-                    // InternalOCLinEcore.g:4171:1: ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 )
+                    // InternalOCLinEcore.g:4182:6: ( ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 ) )
+                    // InternalOCLinEcore.g:4183:1: ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOperationCSAccess().getOwnedPreconditionsAssignment_10_0_1_1()); 
                     }
-                    // InternalOCLinEcore.g:4172:1: ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 )
-                    // InternalOCLinEcore.g:4172:2: rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1
+                    // InternalOCLinEcore.g:4184:1: ( rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 )
+                    // InternalOCLinEcore.g:4184:2: rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1();
@@ -13711,16 +13779,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4176:6: ( ( rule__OperationCS__Group_10_0_1_2__0 ) )
+                    // InternalOCLinEcore.g:4188:6: ( ( rule__OperationCS__Group_10_0_1_2__0 ) )
                     {
-                    // InternalOCLinEcore.g:4176:6: ( ( rule__OperationCS__Group_10_0_1_2__0 ) )
-                    // InternalOCLinEcore.g:4177:1: ( rule__OperationCS__Group_10_0_1_2__0 )
+                    // InternalOCLinEcore.g:4188:6: ( ( rule__OperationCS__Group_10_0_1_2__0 ) )
+                    // InternalOCLinEcore.g:4189:1: ( rule__OperationCS__Group_10_0_1_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOperationCSAccess().getGroup_10_0_1_2()); 
                     }
-                    // InternalOCLinEcore.g:4178:1: ( rule__OperationCS__Group_10_0_1_2__0 )
-                    // InternalOCLinEcore.g:4178:2: rule__OperationCS__Group_10_0_1_2__0
+                    // InternalOCLinEcore.g:4190:1: ( rule__OperationCS__Group_10_0_1_2__0 )
+                    // InternalOCLinEcore.g:4190:2: rule__OperationCS__Group_10_0_1_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__Group_10_0_1_2__0();
@@ -13740,16 +13808,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4182:6: ( ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 ) )
+                    // InternalOCLinEcore.g:4194:6: ( ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 ) )
                     {
-                    // InternalOCLinEcore.g:4182:6: ( ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 ) )
-                    // InternalOCLinEcore.g:4183:1: ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 )
+                    // InternalOCLinEcore.g:4194:6: ( ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 ) )
+                    // InternalOCLinEcore.g:4195:1: ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOperationCSAccess().getOwnedPostconditionsAssignment_10_0_1_3()); 
                     }
-                    // InternalOCLinEcore.g:4184:1: ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 )
-                    // InternalOCLinEcore.g:4184:2: rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3
+                    // InternalOCLinEcore.g:4196:1: ( rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 )
+                    // InternalOCLinEcore.g:4196:2: rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3();
@@ -13786,13 +13854,13 @@
 
 
     // $ANTLR start "rule__PackageCS__Alternatives_4"
-    // InternalOCLinEcore.g:4193:1: rule__PackageCS__Alternatives_4 : ( ( ( rule__PackageCS__Group_4_0__0 ) ) | ( ';' ) );
+    // InternalOCLinEcore.g:4205:1: rule__PackageCS__Alternatives_4 : ( ( ( rule__PackageCS__Group_4_0__0 ) ) | ( ';' ) );
     public final void rule__PackageCS__Alternatives_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4197:1: ( ( ( rule__PackageCS__Group_4_0__0 ) ) | ( ';' ) )
+            // InternalOCLinEcore.g:4209:1: ( ( ( rule__PackageCS__Group_4_0__0 ) ) | ( ';' ) )
             int alt29=2;
             int LA29_0 = input.LA(1);
 
@@ -13811,16 +13879,16 @@
             }
             switch (alt29) {
                 case 1 :
-                    // InternalOCLinEcore.g:4198:1: ( ( rule__PackageCS__Group_4_0__0 ) )
+                    // InternalOCLinEcore.g:4210:1: ( ( rule__PackageCS__Group_4_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:4198:1: ( ( rule__PackageCS__Group_4_0__0 ) )
-                    // InternalOCLinEcore.g:4199:1: ( rule__PackageCS__Group_4_0__0 )
+                    // InternalOCLinEcore.g:4210:1: ( ( rule__PackageCS__Group_4_0__0 ) )
+                    // InternalOCLinEcore.g:4211:1: ( rule__PackageCS__Group_4_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPackageCSAccess().getGroup_4_0()); 
                     }
-                    // InternalOCLinEcore.g:4200:1: ( rule__PackageCS__Group_4_0__0 )
-                    // InternalOCLinEcore.g:4200:2: rule__PackageCS__Group_4_0__0
+                    // InternalOCLinEcore.g:4212:1: ( rule__PackageCS__Group_4_0__0 )
+                    // InternalOCLinEcore.g:4212:2: rule__PackageCS__Group_4_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PackageCS__Group_4_0__0();
@@ -13840,10 +13908,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4204:6: ( ';' )
+                    // InternalOCLinEcore.g:4216:6: ( ';' )
                     {
-                    // InternalOCLinEcore.g:4204:6: ( ';' )
-                    // InternalOCLinEcore.g:4205:1: ';'
+                    // InternalOCLinEcore.g:4216:6: ( ';' )
+                    // InternalOCLinEcore.g:4217:1: ';'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPackageCSAccess().getSemicolonKeyword_4_1()); 
@@ -13876,13 +13944,13 @@
 
 
     // $ANTLR start "rule__PackageCS__Alternatives_4_0_1"
-    // InternalOCLinEcore.g:4217:1: rule__PackageCS__Alternatives_4_0_1 : ( ( ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 ) ) | ( ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 ) ) | ( ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 ) ) );
+    // InternalOCLinEcore.g:4229:1: rule__PackageCS__Alternatives_4_0_1 : ( ( ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 ) ) | ( ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 ) ) | ( ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 ) ) );
     public final void rule__PackageCS__Alternatives_4_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4221:1: ( ( ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 ) ) | ( ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 ) ) | ( ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 ) ) )
+            // InternalOCLinEcore.g:4233:1: ( ( ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 ) ) | ( ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 ) ) | ( ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 ) ) )
             int alt30=3;
             switch ( input.LA(1) ) {
             case 54:
@@ -13916,16 +13984,16 @@
 
             switch (alt30) {
                 case 1 :
-                    // InternalOCLinEcore.g:4222:1: ( ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 ) )
+                    // InternalOCLinEcore.g:4234:1: ( ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 ) )
                     {
-                    // InternalOCLinEcore.g:4222:1: ( ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 ) )
-                    // InternalOCLinEcore.g:4223:1: ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 )
+                    // InternalOCLinEcore.g:4234:1: ( ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 ) )
+                    // InternalOCLinEcore.g:4235:1: ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPackageCSAccess().getOwnedAnnotationsAssignment_4_0_1_0()); 
                     }
-                    // InternalOCLinEcore.g:4224:1: ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 )
-                    // InternalOCLinEcore.g:4224:2: rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0
+                    // InternalOCLinEcore.g:4236:1: ( rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 )
+                    // InternalOCLinEcore.g:4236:2: rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0();
@@ -13945,16 +14013,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4228:6: ( ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 ) )
+                    // InternalOCLinEcore.g:4240:6: ( ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 ) )
                     {
-                    // InternalOCLinEcore.g:4228:6: ( ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 ) )
-                    // InternalOCLinEcore.g:4229:1: ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 )
+                    // InternalOCLinEcore.g:4240:6: ( ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 ) )
+                    // InternalOCLinEcore.g:4241:1: ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPackageCSAccess().getOwnedPackagesAssignment_4_0_1_1()); 
                     }
-                    // InternalOCLinEcore.g:4230:1: ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 )
-                    // InternalOCLinEcore.g:4230:2: rule__PackageCS__OwnedPackagesAssignment_4_0_1_1
+                    // InternalOCLinEcore.g:4242:1: ( rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 )
+                    // InternalOCLinEcore.g:4242:2: rule__PackageCS__OwnedPackagesAssignment_4_0_1_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PackageCS__OwnedPackagesAssignment_4_0_1_1();
@@ -13974,16 +14042,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4234:6: ( ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 ) )
+                    // InternalOCLinEcore.g:4246:6: ( ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 ) )
                     {
-                    // InternalOCLinEcore.g:4234:6: ( ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 ) )
-                    // InternalOCLinEcore.g:4235:1: ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 )
+                    // InternalOCLinEcore.g:4246:6: ( ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 ) )
+                    // InternalOCLinEcore.g:4247:1: ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPackageCSAccess().getOwnedClassesAssignment_4_0_1_2()); 
                     }
-                    // InternalOCLinEcore.g:4236:1: ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 )
-                    // InternalOCLinEcore.g:4236:2: rule__PackageCS__OwnedClassesAssignment_4_0_1_2
+                    // InternalOCLinEcore.g:4248:1: ( rule__PackageCS__OwnedClassesAssignment_4_0_1_2 )
+                    // InternalOCLinEcore.g:4248:2: rule__PackageCS__OwnedClassesAssignment_4_0_1_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PackageCS__OwnedClassesAssignment_4_0_1_2();
@@ -14020,13 +14088,13 @@
 
 
     // $ANTLR start "rule__ParameterCS__Alternatives_2_1_0"
-    // InternalOCLinEcore.g:4245:1: rule__ParameterCS__Alternatives_2_1_0 : ( ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 ) ) );
+    // InternalOCLinEcore.g:4257:1: rule__ParameterCS__Alternatives_2_1_0 : ( ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 ) ) );
     public final void rule__ParameterCS__Alternatives_2_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4249:1: ( ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 ) ) )
+            // InternalOCLinEcore.g:4261:1: ( ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 ) ) | ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 ) ) )
             int alt31=4;
             switch ( input.LA(1) ) {
             case 37:
@@ -14059,16 +14127,16 @@
 
             switch (alt31) {
                 case 1 :
-                    // InternalOCLinEcore.g:4250:1: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 ) )
+                    // InternalOCLinEcore.g:4262:1: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 ) )
                     {
-                    // InternalOCLinEcore.g:4250:1: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 ) )
-                    // InternalOCLinEcore.g:4251:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 )
+                    // InternalOCLinEcore.g:4262:1: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 ) )
+                    // InternalOCLinEcore.g:4263:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_0()); 
                     }
-                    // InternalOCLinEcore.g:4252:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 )
-                    // InternalOCLinEcore.g:4252:2: rule__ParameterCS__QualifiersAssignment_2_1_0_0
+                    // InternalOCLinEcore.g:4264:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_0 )
+                    // InternalOCLinEcore.g:4264:2: rule__ParameterCS__QualifiersAssignment_2_1_0_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ParameterCS__QualifiersAssignment_2_1_0_0();
@@ -14088,16 +14156,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4256:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 ) )
+                    // InternalOCLinEcore.g:4268:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 ) )
                     {
-                    // InternalOCLinEcore.g:4256:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 ) )
-                    // InternalOCLinEcore.g:4257:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 )
+                    // InternalOCLinEcore.g:4268:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 ) )
+                    // InternalOCLinEcore.g:4269:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_1()); 
                     }
-                    // InternalOCLinEcore.g:4258:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 )
-                    // InternalOCLinEcore.g:4258:2: rule__ParameterCS__QualifiersAssignment_2_1_0_1
+                    // InternalOCLinEcore.g:4270:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_1 )
+                    // InternalOCLinEcore.g:4270:2: rule__ParameterCS__QualifiersAssignment_2_1_0_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ParameterCS__QualifiersAssignment_2_1_0_1();
@@ -14117,16 +14185,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4262:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 ) )
+                    // InternalOCLinEcore.g:4274:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 ) )
                     {
-                    // InternalOCLinEcore.g:4262:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 ) )
-                    // InternalOCLinEcore.g:4263:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 )
+                    // InternalOCLinEcore.g:4274:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 ) )
+                    // InternalOCLinEcore.g:4275:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_2()); 
                     }
-                    // InternalOCLinEcore.g:4264:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 )
-                    // InternalOCLinEcore.g:4264:2: rule__ParameterCS__QualifiersAssignment_2_1_0_2
+                    // InternalOCLinEcore.g:4276:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_2 )
+                    // InternalOCLinEcore.g:4276:2: rule__ParameterCS__QualifiersAssignment_2_1_0_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ParameterCS__QualifiersAssignment_2_1_0_2();
@@ -14146,16 +14214,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4268:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 ) )
+                    // InternalOCLinEcore.g:4280:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 ) )
                     {
-                    // InternalOCLinEcore.g:4268:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 ) )
-                    // InternalOCLinEcore.g:4269:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 )
+                    // InternalOCLinEcore.g:4280:6: ( ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 ) )
+                    // InternalOCLinEcore.g:4281:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_3()); 
                     }
-                    // InternalOCLinEcore.g:4270:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 )
-                    // InternalOCLinEcore.g:4270:2: rule__ParameterCS__QualifiersAssignment_2_1_0_3
+                    // InternalOCLinEcore.g:4282:1: ( rule__ParameterCS__QualifiersAssignment_2_1_0_3 )
+                    // InternalOCLinEcore.g:4282:2: rule__ParameterCS__QualifiersAssignment_2_1_0_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ParameterCS__QualifiersAssignment_2_1_0_3();
@@ -14192,13 +14260,13 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Alternatives_0"
-    // InternalOCLinEcore.g:4279:1: rule__ReferenceCS__Alternatives_0 : ( ( ( rule__ReferenceCS__Group_0_0__0 ) ) | ( ( rule__ReferenceCS__Group_0_1__0 ) ) );
+    // InternalOCLinEcore.g:4291:1: rule__ReferenceCS__Alternatives_0 : ( ( ( rule__ReferenceCS__Group_0_0__0 ) ) | ( ( rule__ReferenceCS__Group_0_1__0 ) ) );
     public final void rule__ReferenceCS__Alternatives_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4283:1: ( ( ( rule__ReferenceCS__Group_0_0__0 ) ) | ( ( rule__ReferenceCS__Group_0_1__0 ) ) )
+            // InternalOCLinEcore.g:4295:1: ( ( ( rule__ReferenceCS__Group_0_0__0 ) ) | ( ( rule__ReferenceCS__Group_0_1__0 ) ) )
             int alt32=2;
             int LA32_0 = input.LA(1);
 
@@ -14217,16 +14285,16 @@
             }
             switch (alt32) {
                 case 1 :
-                    // InternalOCLinEcore.g:4284:1: ( ( rule__ReferenceCS__Group_0_0__0 ) )
+                    // InternalOCLinEcore.g:4296:1: ( ( rule__ReferenceCS__Group_0_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:4284:1: ( ( rule__ReferenceCS__Group_0_0__0 ) )
-                    // InternalOCLinEcore.g:4285:1: ( rule__ReferenceCS__Group_0_0__0 )
+                    // InternalOCLinEcore.g:4296:1: ( ( rule__ReferenceCS__Group_0_0__0 ) )
+                    // InternalOCLinEcore.g:4297:1: ( rule__ReferenceCS__Group_0_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getGroup_0_0()); 
                     }
-                    // InternalOCLinEcore.g:4286:1: ( rule__ReferenceCS__Group_0_0__0 )
-                    // InternalOCLinEcore.g:4286:2: rule__ReferenceCS__Group_0_0__0
+                    // InternalOCLinEcore.g:4298:1: ( rule__ReferenceCS__Group_0_0__0 )
+                    // InternalOCLinEcore.g:4298:2: rule__ReferenceCS__Group_0_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_0_0__0();
@@ -14246,16 +14314,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4290:6: ( ( rule__ReferenceCS__Group_0_1__0 ) )
+                    // InternalOCLinEcore.g:4302:6: ( ( rule__ReferenceCS__Group_0_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:4290:6: ( ( rule__ReferenceCS__Group_0_1__0 ) )
-                    // InternalOCLinEcore.g:4291:1: ( rule__ReferenceCS__Group_0_1__0 )
+                    // InternalOCLinEcore.g:4302:6: ( ( rule__ReferenceCS__Group_0_1__0 ) )
+                    // InternalOCLinEcore.g:4303:1: ( rule__ReferenceCS__Group_0_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getGroup_0_1()); 
                     }
-                    // InternalOCLinEcore.g:4292:1: ( rule__ReferenceCS__Group_0_1__0 )
-                    // InternalOCLinEcore.g:4292:2: rule__ReferenceCS__Group_0_1__0
+                    // InternalOCLinEcore.g:4304:1: ( rule__ReferenceCS__Group_0_1__0 )
+                    // InternalOCLinEcore.g:4304:2: rule__ReferenceCS__Group_0_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_0_1__0();
@@ -14292,13 +14360,13 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Alternatives_6_1_0"
-    // InternalOCLinEcore.g:4301:1: rule__ReferenceCS__Alternatives_6_1_0 : ( ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 ) ) );
+    // InternalOCLinEcore.g:4313:1: rule__ReferenceCS__Alternatives_6_1_0 : ( ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 ) ) );
     public final void rule__ReferenceCS__Alternatives_6_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4305:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 ) ) )
+            // InternalOCLinEcore.g:4317:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 ) ) | ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 ) ) )
             int alt33=18;
             switch ( input.LA(1) ) {
             case 22:
@@ -14401,16 +14469,16 @@
 
             switch (alt33) {
                 case 1 :
-                    // InternalOCLinEcore.g:4306:1: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 ) )
+                    // InternalOCLinEcore.g:4318:1: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 ) )
                     {
-                    // InternalOCLinEcore.g:4306:1: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 ) )
-                    // InternalOCLinEcore.g:4307:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 )
+                    // InternalOCLinEcore.g:4318:1: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 ) )
+                    // InternalOCLinEcore.g:4319:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_0()); 
                     }
-                    // InternalOCLinEcore.g:4308:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 )
-                    // InternalOCLinEcore.g:4308:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_0
+                    // InternalOCLinEcore.g:4320:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_0 )
+                    // InternalOCLinEcore.g:4320:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_0();
@@ -14430,16 +14498,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4312:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 ) )
+                    // InternalOCLinEcore.g:4324:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 ) )
                     {
-                    // InternalOCLinEcore.g:4312:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 ) )
-                    // InternalOCLinEcore.g:4313:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 )
+                    // InternalOCLinEcore.g:4324:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 ) )
+                    // InternalOCLinEcore.g:4325:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_1()); 
                     }
-                    // InternalOCLinEcore.g:4314:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 )
-                    // InternalOCLinEcore.g:4314:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_1
+                    // InternalOCLinEcore.g:4326:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_1 )
+                    // InternalOCLinEcore.g:4326:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_1();
@@ -14459,16 +14527,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4318:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 ) )
+                    // InternalOCLinEcore.g:4330:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 ) )
                     {
-                    // InternalOCLinEcore.g:4318:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 ) )
-                    // InternalOCLinEcore.g:4319:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 )
+                    // InternalOCLinEcore.g:4330:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 ) )
+                    // InternalOCLinEcore.g:4331:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_2()); 
                     }
-                    // InternalOCLinEcore.g:4320:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 )
-                    // InternalOCLinEcore.g:4320:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_2
+                    // InternalOCLinEcore.g:4332:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_2 )
+                    // InternalOCLinEcore.g:4332:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_2();
@@ -14488,16 +14556,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4324:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 ) )
+                    // InternalOCLinEcore.g:4336:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 ) )
                     {
-                    // InternalOCLinEcore.g:4324:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 ) )
-                    // InternalOCLinEcore.g:4325:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 )
+                    // InternalOCLinEcore.g:4336:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 ) )
+                    // InternalOCLinEcore.g:4337:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_3()); 
                     }
-                    // InternalOCLinEcore.g:4326:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 )
-                    // InternalOCLinEcore.g:4326:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_3
+                    // InternalOCLinEcore.g:4338:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_3 )
+                    // InternalOCLinEcore.g:4338:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_3();
@@ -14517,16 +14585,16 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:4330:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 ) )
+                    // InternalOCLinEcore.g:4342:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 ) )
                     {
-                    // InternalOCLinEcore.g:4330:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 ) )
-                    // InternalOCLinEcore.g:4331:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 )
+                    // InternalOCLinEcore.g:4342:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 ) )
+                    // InternalOCLinEcore.g:4343:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_4()); 
                     }
-                    // InternalOCLinEcore.g:4332:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 )
-                    // InternalOCLinEcore.g:4332:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_4
+                    // InternalOCLinEcore.g:4344:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_4 )
+                    // InternalOCLinEcore.g:4344:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_4
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_4();
@@ -14546,16 +14614,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:4336:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 ) )
+                    // InternalOCLinEcore.g:4348:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 ) )
                     {
-                    // InternalOCLinEcore.g:4336:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 ) )
-                    // InternalOCLinEcore.g:4337:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 )
+                    // InternalOCLinEcore.g:4348:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 ) )
+                    // InternalOCLinEcore.g:4349:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_5()); 
                     }
-                    // InternalOCLinEcore.g:4338:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 )
-                    // InternalOCLinEcore.g:4338:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_5
+                    // InternalOCLinEcore.g:4350:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_5 )
+                    // InternalOCLinEcore.g:4350:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_5
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_5();
@@ -14575,16 +14643,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:4342:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 ) )
+                    // InternalOCLinEcore.g:4354:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 ) )
                     {
-                    // InternalOCLinEcore.g:4342:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 ) )
-                    // InternalOCLinEcore.g:4343:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 )
+                    // InternalOCLinEcore.g:4354:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 ) )
+                    // InternalOCLinEcore.g:4355:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_6()); 
                     }
-                    // InternalOCLinEcore.g:4344:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 )
-                    // InternalOCLinEcore.g:4344:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_6
+                    // InternalOCLinEcore.g:4356:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_6 )
+                    // InternalOCLinEcore.g:4356:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_6
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_6();
@@ -14604,16 +14672,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalOCLinEcore.g:4348:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 ) )
+                    // InternalOCLinEcore.g:4360:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 ) )
                     {
-                    // InternalOCLinEcore.g:4348:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 ) )
-                    // InternalOCLinEcore.g:4349:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 )
+                    // InternalOCLinEcore.g:4360:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 ) )
+                    // InternalOCLinEcore.g:4361:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_7()); 
                     }
-                    // InternalOCLinEcore.g:4350:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 )
-                    // InternalOCLinEcore.g:4350:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_7
+                    // InternalOCLinEcore.g:4362:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_7 )
+                    // InternalOCLinEcore.g:4362:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_7
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_7();
@@ -14633,16 +14701,16 @@
                     }
                     break;
                 case 9 :
-                    // InternalOCLinEcore.g:4354:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 ) )
+                    // InternalOCLinEcore.g:4366:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 ) )
                     {
-                    // InternalOCLinEcore.g:4354:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 ) )
-                    // InternalOCLinEcore.g:4355:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 )
+                    // InternalOCLinEcore.g:4366:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 ) )
+                    // InternalOCLinEcore.g:4367:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_8()); 
                     }
-                    // InternalOCLinEcore.g:4356:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 )
-                    // InternalOCLinEcore.g:4356:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_8
+                    // InternalOCLinEcore.g:4368:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_8 )
+                    // InternalOCLinEcore.g:4368:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_8
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_8();
@@ -14662,16 +14730,16 @@
                     }
                     break;
                 case 10 :
-                    // InternalOCLinEcore.g:4360:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 ) )
+                    // InternalOCLinEcore.g:4372:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 ) )
                     {
-                    // InternalOCLinEcore.g:4360:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 ) )
-                    // InternalOCLinEcore.g:4361:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 )
+                    // InternalOCLinEcore.g:4372:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 ) )
+                    // InternalOCLinEcore.g:4373:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_9()); 
                     }
-                    // InternalOCLinEcore.g:4362:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 )
-                    // InternalOCLinEcore.g:4362:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_9
+                    // InternalOCLinEcore.g:4374:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_9 )
+                    // InternalOCLinEcore.g:4374:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_9
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_9();
@@ -14691,16 +14759,16 @@
                     }
                     break;
                 case 11 :
-                    // InternalOCLinEcore.g:4366:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 ) )
+                    // InternalOCLinEcore.g:4378:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 ) )
                     {
-                    // InternalOCLinEcore.g:4366:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 ) )
-                    // InternalOCLinEcore.g:4367:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 )
+                    // InternalOCLinEcore.g:4378:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 ) )
+                    // InternalOCLinEcore.g:4379:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_10()); 
                     }
-                    // InternalOCLinEcore.g:4368:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 )
-                    // InternalOCLinEcore.g:4368:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_10
+                    // InternalOCLinEcore.g:4380:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_10 )
+                    // InternalOCLinEcore.g:4380:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_10
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_10();
@@ -14720,16 +14788,16 @@
                     }
                     break;
                 case 12 :
-                    // InternalOCLinEcore.g:4372:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 ) )
+                    // InternalOCLinEcore.g:4384:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 ) )
                     {
-                    // InternalOCLinEcore.g:4372:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 ) )
-                    // InternalOCLinEcore.g:4373:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 )
+                    // InternalOCLinEcore.g:4384:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 ) )
+                    // InternalOCLinEcore.g:4385:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_11()); 
                     }
-                    // InternalOCLinEcore.g:4374:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 )
-                    // InternalOCLinEcore.g:4374:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_11
+                    // InternalOCLinEcore.g:4386:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_11 )
+                    // InternalOCLinEcore.g:4386:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_11
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_11();
@@ -14749,16 +14817,16 @@
                     }
                     break;
                 case 13 :
-                    // InternalOCLinEcore.g:4378:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 ) )
+                    // InternalOCLinEcore.g:4390:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 ) )
                     {
-                    // InternalOCLinEcore.g:4378:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 ) )
-                    // InternalOCLinEcore.g:4379:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 )
+                    // InternalOCLinEcore.g:4390:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 ) )
+                    // InternalOCLinEcore.g:4391:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_12()); 
                     }
-                    // InternalOCLinEcore.g:4380:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 )
-                    // InternalOCLinEcore.g:4380:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_12
+                    // InternalOCLinEcore.g:4392:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_12 )
+                    // InternalOCLinEcore.g:4392:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_12
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_12();
@@ -14778,16 +14846,16 @@
                     }
                     break;
                 case 14 :
-                    // InternalOCLinEcore.g:4384:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 ) )
+                    // InternalOCLinEcore.g:4396:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 ) )
                     {
-                    // InternalOCLinEcore.g:4384:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 ) )
-                    // InternalOCLinEcore.g:4385:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 )
+                    // InternalOCLinEcore.g:4396:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 ) )
+                    // InternalOCLinEcore.g:4397:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_13()); 
                     }
-                    // InternalOCLinEcore.g:4386:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 )
-                    // InternalOCLinEcore.g:4386:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_13
+                    // InternalOCLinEcore.g:4398:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_13 )
+                    // InternalOCLinEcore.g:4398:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_13
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_13();
@@ -14807,16 +14875,16 @@
                     }
                     break;
                 case 15 :
-                    // InternalOCLinEcore.g:4390:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 ) )
+                    // InternalOCLinEcore.g:4402:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 ) )
                     {
-                    // InternalOCLinEcore.g:4390:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 ) )
-                    // InternalOCLinEcore.g:4391:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 )
+                    // InternalOCLinEcore.g:4402:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 ) )
+                    // InternalOCLinEcore.g:4403:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_14()); 
                     }
-                    // InternalOCLinEcore.g:4392:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 )
-                    // InternalOCLinEcore.g:4392:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_14
+                    // InternalOCLinEcore.g:4404:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_14 )
+                    // InternalOCLinEcore.g:4404:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_14
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_14();
@@ -14836,16 +14904,16 @@
                     }
                     break;
                 case 16 :
-                    // InternalOCLinEcore.g:4396:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 ) )
+                    // InternalOCLinEcore.g:4408:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 ) )
                     {
-                    // InternalOCLinEcore.g:4396:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 ) )
-                    // InternalOCLinEcore.g:4397:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 )
+                    // InternalOCLinEcore.g:4408:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 ) )
+                    // InternalOCLinEcore.g:4409:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_15()); 
                     }
-                    // InternalOCLinEcore.g:4398:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 )
-                    // InternalOCLinEcore.g:4398:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_15
+                    // InternalOCLinEcore.g:4410:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_15 )
+                    // InternalOCLinEcore.g:4410:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_15
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_15();
@@ -14865,16 +14933,16 @@
                     }
                     break;
                 case 17 :
-                    // InternalOCLinEcore.g:4402:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 ) )
+                    // InternalOCLinEcore.g:4414:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 ) )
                     {
-                    // InternalOCLinEcore.g:4402:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 ) )
-                    // InternalOCLinEcore.g:4403:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 )
+                    // InternalOCLinEcore.g:4414:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 ) )
+                    // InternalOCLinEcore.g:4415:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_16()); 
                     }
-                    // InternalOCLinEcore.g:4404:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 )
-                    // InternalOCLinEcore.g:4404:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_16
+                    // InternalOCLinEcore.g:4416:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_16 )
+                    // InternalOCLinEcore.g:4416:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_16
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_16();
@@ -14894,16 +14962,16 @@
                     }
                     break;
                 case 18 :
-                    // InternalOCLinEcore.g:4408:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 ) )
+                    // InternalOCLinEcore.g:4420:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 ) )
                     {
-                    // InternalOCLinEcore.g:4408:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 ) )
-                    // InternalOCLinEcore.g:4409:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 )
+                    // InternalOCLinEcore.g:4420:6: ( ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 ) )
+                    // InternalOCLinEcore.g:4421:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_17()); 
                     }
-                    // InternalOCLinEcore.g:4410:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 )
-                    // InternalOCLinEcore.g:4410:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_17
+                    // InternalOCLinEcore.g:4422:1: ( rule__ReferenceCS__QualifiersAssignment_6_1_0_17 )
+                    // InternalOCLinEcore.g:4422:2: rule__ReferenceCS__QualifiersAssignment_6_1_0_17
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_6_1_0_17();
@@ -14940,13 +15008,13 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Alternatives_7"
-    // InternalOCLinEcore.g:4419:1: rule__ReferenceCS__Alternatives_7 : ( ( ( rule__ReferenceCS__Group_7_0__0 ) ) | ( ';' ) );
+    // InternalOCLinEcore.g:4431:1: rule__ReferenceCS__Alternatives_7 : ( ( ( rule__ReferenceCS__Group_7_0__0 ) ) | ( ';' ) );
     public final void rule__ReferenceCS__Alternatives_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4423:1: ( ( ( rule__ReferenceCS__Group_7_0__0 ) ) | ( ';' ) )
+            // InternalOCLinEcore.g:4435:1: ( ( ( rule__ReferenceCS__Group_7_0__0 ) ) | ( ';' ) )
             int alt34=2;
             int LA34_0 = input.LA(1);
 
@@ -14965,16 +15033,16 @@
             }
             switch (alt34) {
                 case 1 :
-                    // InternalOCLinEcore.g:4424:1: ( ( rule__ReferenceCS__Group_7_0__0 ) )
+                    // InternalOCLinEcore.g:4436:1: ( ( rule__ReferenceCS__Group_7_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:4424:1: ( ( rule__ReferenceCS__Group_7_0__0 ) )
-                    // InternalOCLinEcore.g:4425:1: ( rule__ReferenceCS__Group_7_0__0 )
+                    // InternalOCLinEcore.g:4436:1: ( ( rule__ReferenceCS__Group_7_0__0 ) )
+                    // InternalOCLinEcore.g:4437:1: ( rule__ReferenceCS__Group_7_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getGroup_7_0()); 
                     }
-                    // InternalOCLinEcore.g:4426:1: ( rule__ReferenceCS__Group_7_0__0 )
-                    // InternalOCLinEcore.g:4426:2: rule__ReferenceCS__Group_7_0__0
+                    // InternalOCLinEcore.g:4438:1: ( rule__ReferenceCS__Group_7_0__0 )
+                    // InternalOCLinEcore.g:4438:2: rule__ReferenceCS__Group_7_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_7_0__0();
@@ -14994,10 +15062,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4430:6: ( ';' )
+                    // InternalOCLinEcore.g:4442:6: ( ';' )
                     {
-                    // InternalOCLinEcore.g:4430:6: ( ';' )
-                    // InternalOCLinEcore.g:4431:1: ';'
+                    // InternalOCLinEcore.g:4442:6: ( ';' )
+                    // InternalOCLinEcore.g:4443:1: ';'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getSemicolonKeyword_7_1()); 
@@ -15030,13 +15098,13 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Alternatives_7_0_1"
-    // InternalOCLinEcore.g:4443:1: rule__ReferenceCS__Alternatives_7_0_1 : ( ( ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_1__0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_2__0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_3__0 ) ) );
+    // InternalOCLinEcore.g:4455:1: rule__ReferenceCS__Alternatives_7_0_1 : ( ( ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_1__0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_2__0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_3__0 ) ) );
     public final void rule__ReferenceCS__Alternatives_7_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4447:1: ( ( ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_1__0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_2__0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_3__0 ) ) )
+            // InternalOCLinEcore.g:4459:1: ( ( ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_1__0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_2__0 ) ) | ( ( rule__ReferenceCS__Group_7_0_1_3__0 ) ) )
             int alt35=4;
             switch ( input.LA(1) ) {
             case 54:
@@ -15071,16 +15139,16 @@
 
             switch (alt35) {
                 case 1 :
-                    // InternalOCLinEcore.g:4448:1: ( ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 ) )
+                    // InternalOCLinEcore.g:4460:1: ( ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 ) )
                     {
-                    // InternalOCLinEcore.g:4448:1: ( ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 ) )
-                    // InternalOCLinEcore.g:4449:1: ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 )
+                    // InternalOCLinEcore.g:4460:1: ( ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 ) )
+                    // InternalOCLinEcore.g:4461:1: ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getOwnedAnnotationsAssignment_7_0_1_0()); 
                     }
-                    // InternalOCLinEcore.g:4450:1: ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 )
-                    // InternalOCLinEcore.g:4450:2: rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0
+                    // InternalOCLinEcore.g:4462:1: ( rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 )
+                    // InternalOCLinEcore.g:4462:2: rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0();
@@ -15100,16 +15168,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4454:6: ( ( rule__ReferenceCS__Group_7_0_1_1__0 ) )
+                    // InternalOCLinEcore.g:4466:6: ( ( rule__ReferenceCS__Group_7_0_1_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:4454:6: ( ( rule__ReferenceCS__Group_7_0_1_1__0 ) )
-                    // InternalOCLinEcore.g:4455:1: ( rule__ReferenceCS__Group_7_0_1_1__0 )
+                    // InternalOCLinEcore.g:4466:6: ( ( rule__ReferenceCS__Group_7_0_1_1__0 ) )
+                    // InternalOCLinEcore.g:4467:1: ( rule__ReferenceCS__Group_7_0_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getGroup_7_0_1_1()); 
                     }
-                    // InternalOCLinEcore.g:4456:1: ( rule__ReferenceCS__Group_7_0_1_1__0 )
-                    // InternalOCLinEcore.g:4456:2: rule__ReferenceCS__Group_7_0_1_1__0
+                    // InternalOCLinEcore.g:4468:1: ( rule__ReferenceCS__Group_7_0_1_1__0 )
+                    // InternalOCLinEcore.g:4468:2: rule__ReferenceCS__Group_7_0_1_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_7_0_1_1__0();
@@ -15129,16 +15197,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4460:6: ( ( rule__ReferenceCS__Group_7_0_1_2__0 ) )
+                    // InternalOCLinEcore.g:4472:6: ( ( rule__ReferenceCS__Group_7_0_1_2__0 ) )
                     {
-                    // InternalOCLinEcore.g:4460:6: ( ( rule__ReferenceCS__Group_7_0_1_2__0 ) )
-                    // InternalOCLinEcore.g:4461:1: ( rule__ReferenceCS__Group_7_0_1_2__0 )
+                    // InternalOCLinEcore.g:4472:6: ( ( rule__ReferenceCS__Group_7_0_1_2__0 ) )
+                    // InternalOCLinEcore.g:4473:1: ( rule__ReferenceCS__Group_7_0_1_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getGroup_7_0_1_2()); 
                     }
-                    // InternalOCLinEcore.g:4462:1: ( rule__ReferenceCS__Group_7_0_1_2__0 )
-                    // InternalOCLinEcore.g:4462:2: rule__ReferenceCS__Group_7_0_1_2__0
+                    // InternalOCLinEcore.g:4474:1: ( rule__ReferenceCS__Group_7_0_1_2__0 )
+                    // InternalOCLinEcore.g:4474:2: rule__ReferenceCS__Group_7_0_1_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_7_0_1_2__0();
@@ -15158,16 +15226,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4466:6: ( ( rule__ReferenceCS__Group_7_0_1_3__0 ) )
+                    // InternalOCLinEcore.g:4478:6: ( ( rule__ReferenceCS__Group_7_0_1_3__0 ) )
                     {
-                    // InternalOCLinEcore.g:4466:6: ( ( rule__ReferenceCS__Group_7_0_1_3__0 ) )
-                    // InternalOCLinEcore.g:4467:1: ( rule__ReferenceCS__Group_7_0_1_3__0 )
+                    // InternalOCLinEcore.g:4478:6: ( ( rule__ReferenceCS__Group_7_0_1_3__0 ) )
+                    // InternalOCLinEcore.g:4479:1: ( rule__ReferenceCS__Group_7_0_1_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getReferenceCSAccess().getGroup_7_0_1_3()); 
                     }
-                    // InternalOCLinEcore.g:4468:1: ( rule__ReferenceCS__Group_7_0_1_3__0 )
-                    // InternalOCLinEcore.g:4468:2: rule__ReferenceCS__Group_7_0_1_3__0
+                    // InternalOCLinEcore.g:4480:1: ( rule__ReferenceCS__Group_7_0_1_3__0 )
+                    // InternalOCLinEcore.g:4480:2: rule__ReferenceCS__Group_7_0_1_3__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_7_0_1_3__0();
@@ -15204,13 +15272,13 @@
 
 
     // $ANTLR start "rule__SpecificationCS__Alternatives"
-    // InternalOCLinEcore.g:4477:1: rule__SpecificationCS__Alternatives : ( ( ( rule__SpecificationCS__OwnedExpressionAssignment_0 ) ) | ( ( rule__SpecificationCS__ExprStringAssignment_1 ) ) );
+    // InternalOCLinEcore.g:4489:1: rule__SpecificationCS__Alternatives : ( ( ( rule__SpecificationCS__OwnedExpressionAssignment_0 ) ) | ( ( rule__SpecificationCS__ExprStringAssignment_1 ) ) );
     public final void rule__SpecificationCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4481:1: ( ( ( rule__SpecificationCS__OwnedExpressionAssignment_0 ) ) | ( ( rule__SpecificationCS__ExprStringAssignment_1 ) ) )
+            // InternalOCLinEcore.g:4493:1: ( ( ( rule__SpecificationCS__OwnedExpressionAssignment_0 ) ) | ( ( rule__SpecificationCS__ExprStringAssignment_1 ) ) )
             int alt36=2;
             int LA36_0 = input.LA(1);
 
@@ -15229,16 +15297,16 @@
             }
             switch (alt36) {
                 case 1 :
-                    // InternalOCLinEcore.g:4482:1: ( ( rule__SpecificationCS__OwnedExpressionAssignment_0 ) )
+                    // InternalOCLinEcore.g:4494:1: ( ( rule__SpecificationCS__OwnedExpressionAssignment_0 ) )
                     {
-                    // InternalOCLinEcore.g:4482:1: ( ( rule__SpecificationCS__OwnedExpressionAssignment_0 ) )
-                    // InternalOCLinEcore.g:4483:1: ( rule__SpecificationCS__OwnedExpressionAssignment_0 )
+                    // InternalOCLinEcore.g:4494:1: ( ( rule__SpecificationCS__OwnedExpressionAssignment_0 ) )
+                    // InternalOCLinEcore.g:4495:1: ( rule__SpecificationCS__OwnedExpressionAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSpecificationCSAccess().getOwnedExpressionAssignment_0()); 
                     }
-                    // InternalOCLinEcore.g:4484:1: ( rule__SpecificationCS__OwnedExpressionAssignment_0 )
-                    // InternalOCLinEcore.g:4484:2: rule__SpecificationCS__OwnedExpressionAssignment_0
+                    // InternalOCLinEcore.g:4496:1: ( rule__SpecificationCS__OwnedExpressionAssignment_0 )
+                    // InternalOCLinEcore.g:4496:2: rule__SpecificationCS__OwnedExpressionAssignment_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__SpecificationCS__OwnedExpressionAssignment_0();
@@ -15258,16 +15326,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4488:6: ( ( rule__SpecificationCS__ExprStringAssignment_1 ) )
+                    // InternalOCLinEcore.g:4500:6: ( ( rule__SpecificationCS__ExprStringAssignment_1 ) )
                     {
-                    // InternalOCLinEcore.g:4488:6: ( ( rule__SpecificationCS__ExprStringAssignment_1 ) )
-                    // InternalOCLinEcore.g:4489:1: ( rule__SpecificationCS__ExprStringAssignment_1 )
+                    // InternalOCLinEcore.g:4500:6: ( ( rule__SpecificationCS__ExprStringAssignment_1 ) )
+                    // InternalOCLinEcore.g:4501:1: ( rule__SpecificationCS__ExprStringAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSpecificationCSAccess().getExprStringAssignment_1()); 
                     }
-                    // InternalOCLinEcore.g:4490:1: ( rule__SpecificationCS__ExprStringAssignment_1 )
-                    // InternalOCLinEcore.g:4490:2: rule__SpecificationCS__ExprStringAssignment_1
+                    // InternalOCLinEcore.g:4502:1: ( rule__SpecificationCS__ExprStringAssignment_1 )
+                    // InternalOCLinEcore.g:4502:2: rule__SpecificationCS__ExprStringAssignment_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__SpecificationCS__ExprStringAssignment_1();
@@ -15304,13 +15372,13 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Alternatives_7"
-    // InternalOCLinEcore.g:4499:1: rule__StructuredClassCS__Alternatives_7 : ( ( ( rule__StructuredClassCS__Group_7_0__0 ) ) | ( ';' ) );
+    // InternalOCLinEcore.g:4511:1: rule__StructuredClassCS__Alternatives_7 : ( ( ( rule__StructuredClassCS__Group_7_0__0 ) ) | ( ';' ) );
     public final void rule__StructuredClassCS__Alternatives_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4503:1: ( ( ( rule__StructuredClassCS__Group_7_0__0 ) ) | ( ';' ) )
+            // InternalOCLinEcore.g:4515:1: ( ( ( rule__StructuredClassCS__Group_7_0__0 ) ) | ( ';' ) )
             int alt37=2;
             int LA37_0 = input.LA(1);
 
@@ -15329,16 +15397,16 @@
             }
             switch (alt37) {
                 case 1 :
-                    // InternalOCLinEcore.g:4504:1: ( ( rule__StructuredClassCS__Group_7_0__0 ) )
+                    // InternalOCLinEcore.g:4516:1: ( ( rule__StructuredClassCS__Group_7_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:4504:1: ( ( rule__StructuredClassCS__Group_7_0__0 ) )
-                    // InternalOCLinEcore.g:4505:1: ( rule__StructuredClassCS__Group_7_0__0 )
+                    // InternalOCLinEcore.g:4516:1: ( ( rule__StructuredClassCS__Group_7_0__0 ) )
+                    // InternalOCLinEcore.g:4517:1: ( rule__StructuredClassCS__Group_7_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStructuredClassCSAccess().getGroup_7_0()); 
                     }
-                    // InternalOCLinEcore.g:4506:1: ( rule__StructuredClassCS__Group_7_0__0 )
-                    // InternalOCLinEcore.g:4506:2: rule__StructuredClassCS__Group_7_0__0
+                    // InternalOCLinEcore.g:4518:1: ( rule__StructuredClassCS__Group_7_0__0 )
+                    // InternalOCLinEcore.g:4518:2: rule__StructuredClassCS__Group_7_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__Group_7_0__0();
@@ -15358,10 +15426,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4510:6: ( ';' )
+                    // InternalOCLinEcore.g:4522:6: ( ';' )
                     {
-                    // InternalOCLinEcore.g:4510:6: ( ';' )
-                    // InternalOCLinEcore.g:4511:1: ';'
+                    // InternalOCLinEcore.g:4522:6: ( ';' )
+                    // InternalOCLinEcore.g:4523:1: ';'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStructuredClassCSAccess().getSemicolonKeyword_7_1()); 
@@ -15394,13 +15462,13 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Alternatives_7_0_1"
-    // InternalOCLinEcore.g:4523:1: rule__StructuredClassCS__Alternatives_7_0_1 : ( ( ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 ) ) | ( ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 ) ) | ( ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 ) ) | ( ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 ) ) );
+    // InternalOCLinEcore.g:4535:1: rule__StructuredClassCS__Alternatives_7_0_1 : ( ( ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 ) ) | ( ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 ) ) | ( ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 ) ) | ( ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 ) ) );
     public final void rule__StructuredClassCS__Alternatives_7_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4527:1: ( ( ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 ) ) | ( ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 ) ) | ( ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 ) ) | ( ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 ) ) )
+            // InternalOCLinEcore.g:4539:1: ( ( ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 ) ) | ( ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 ) ) | ( ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 ) ) | ( ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 ) ) )
             int alt38=4;
             switch ( input.LA(1) ) {
             case 54:
@@ -15417,12 +15485,12 @@
                     {
                     int LA38_7 = input.LA(3);
 
-                    if ( (LA38_7==36) ) {
-                        alt38=2;
-                    }
-                    else if ( (LA38_7==18||LA38_7==42) ) {
+                    if ( (LA38_7==18||LA38_7==42) ) {
                         alt38=3;
                     }
+                    else if ( (LA38_7==36) ) {
+                        alt38=2;
+                    }
                     else {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         NoViableAltException nvae =
@@ -15523,16 +15591,16 @@
 
             switch (alt38) {
                 case 1 :
-                    // InternalOCLinEcore.g:4528:1: ( ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 ) )
+                    // InternalOCLinEcore.g:4540:1: ( ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 ) )
                     {
-                    // InternalOCLinEcore.g:4528:1: ( ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 ) )
-                    // InternalOCLinEcore.g:4529:1: ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 )
+                    // InternalOCLinEcore.g:4540:1: ( ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 ) )
+                    // InternalOCLinEcore.g:4541:1: ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStructuredClassCSAccess().getOwnedAnnotationsAssignment_7_0_1_0()); 
                     }
-                    // InternalOCLinEcore.g:4530:1: ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 )
-                    // InternalOCLinEcore.g:4530:2: rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0
+                    // InternalOCLinEcore.g:4542:1: ( rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 )
+                    // InternalOCLinEcore.g:4542:2: rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0();
@@ -15552,16 +15620,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4534:6: ( ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 ) )
+                    // InternalOCLinEcore.g:4546:6: ( ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 ) )
                     {
-                    // InternalOCLinEcore.g:4534:6: ( ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 ) )
-                    // InternalOCLinEcore.g:4535:1: ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 )
+                    // InternalOCLinEcore.g:4546:6: ( ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 ) )
+                    // InternalOCLinEcore.g:4547:1: ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStructuredClassCSAccess().getOwnedOperationsAssignment_7_0_1_1()); 
                     }
-                    // InternalOCLinEcore.g:4536:1: ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 )
-                    // InternalOCLinEcore.g:4536:2: rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1
+                    // InternalOCLinEcore.g:4548:1: ( rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 )
+                    // InternalOCLinEcore.g:4548:2: rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1();
@@ -15581,16 +15649,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4540:6: ( ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 ) )
+                    // InternalOCLinEcore.g:4552:6: ( ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 ) )
                     {
-                    // InternalOCLinEcore.g:4540:6: ( ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 ) )
-                    // InternalOCLinEcore.g:4541:1: ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 )
+                    // InternalOCLinEcore.g:4552:6: ( ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 ) )
+                    // InternalOCLinEcore.g:4553:1: ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStructuredClassCSAccess().getOwnedPropertiesAssignment_7_0_1_2()); 
                     }
-                    // InternalOCLinEcore.g:4542:1: ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 )
-                    // InternalOCLinEcore.g:4542:2: rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2
+                    // InternalOCLinEcore.g:4554:1: ( rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 )
+                    // InternalOCLinEcore.g:4554:2: rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2();
@@ -15610,16 +15678,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4546:6: ( ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 ) )
+                    // InternalOCLinEcore.g:4558:6: ( ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 ) )
                     {
-                    // InternalOCLinEcore.g:4546:6: ( ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 ) )
-                    // InternalOCLinEcore.g:4547:1: ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 )
+                    // InternalOCLinEcore.g:4558:6: ( ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 ) )
+                    // InternalOCLinEcore.g:4559:1: ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStructuredClassCSAccess().getOwnedConstraintsAssignment_7_0_1_3()); 
                     }
-                    // InternalOCLinEcore.g:4548:1: ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 )
-                    // InternalOCLinEcore.g:4548:2: rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3
+                    // InternalOCLinEcore.g:4560:1: ( rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 )
+                    // InternalOCLinEcore.g:4560:2: rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3();
@@ -15656,13 +15724,13 @@
 
 
     // $ANTLR start "rule__StructuralFeatureCS__Alternatives"
-    // InternalOCLinEcore.g:4557:1: rule__StructuralFeatureCS__Alternatives : ( ( ruleAttributeCS ) | ( ruleReferenceCS ) );
+    // InternalOCLinEcore.g:4569:1: rule__StructuralFeatureCS__Alternatives : ( ( ruleAttributeCS ) | ( ruleReferenceCS ) );
     public final void rule__StructuralFeatureCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4561:1: ( ( ruleAttributeCS ) | ( ruleReferenceCS ) )
+            // InternalOCLinEcore.g:4573:1: ( ( ruleAttributeCS ) | ( ruleReferenceCS ) )
             int alt39=2;
             switch ( input.LA(1) ) {
             case 46:
@@ -15687,16 +15755,16 @@
                     }
                     }
                     break;
-                case 18:
-                    {
-                    alt39=1;
-                    }
-                    break;
                 case 42:
                     {
                     alt39=2;
                     }
                     break;
+                case 18:
+                    {
+                    alt39=1;
+                    }
+                    break;
                 default:
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -15714,12 +15782,12 @@
                     {
                     int LA39_6 = input.LA(3);
 
-                    if ( (LA39_6==18) ) {
-                        alt39=1;
-                    }
-                    else if ( (LA39_6==42) ) {
+                    if ( (LA39_6==42) ) {
                         alt39=2;
                     }
+                    else if ( (LA39_6==18) ) {
+                        alt39=1;
+                    }
                     else {
                         if (state.backtracking>0) {state.failed=true; return ;}
                         NoViableAltException nvae =
@@ -15729,16 +15797,16 @@
                     }
                     }
                     break;
-                case 42:
-                    {
-                    alt39=2;
-                    }
-                    break;
                 case 18:
                     {
                     alt39=1;
                     }
                     break;
+                case 42:
+                    {
+                    alt39=2;
+                    }
+                    break;
                 default:
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -15769,10 +15837,10 @@
 
             switch (alt39) {
                 case 1 :
-                    // InternalOCLinEcore.g:4562:1: ( ruleAttributeCS )
+                    // InternalOCLinEcore.g:4574:1: ( ruleAttributeCS )
                     {
-                    // InternalOCLinEcore.g:4562:1: ( ruleAttributeCS )
-                    // InternalOCLinEcore.g:4563:1: ruleAttributeCS
+                    // InternalOCLinEcore.g:4574:1: ( ruleAttributeCS )
+                    // InternalOCLinEcore.g:4575:1: ruleAttributeCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStructuralFeatureCSAccess().getAttributeCSParserRuleCall_0()); 
@@ -15792,10 +15860,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4568:6: ( ruleReferenceCS )
+                    // InternalOCLinEcore.g:4580:6: ( ruleReferenceCS )
                     {
-                    // InternalOCLinEcore.g:4568:6: ( ruleReferenceCS )
-                    // InternalOCLinEcore.g:4569:1: ruleReferenceCS
+                    // InternalOCLinEcore.g:4580:6: ( ruleReferenceCS )
+                    // InternalOCLinEcore.g:4581:1: ruleReferenceCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStructuralFeatureCSAccess().getReferenceCSParserRuleCall_1()); 
@@ -15832,13 +15900,13 @@
 
 
     // $ANTLR start "rule__SysMLCS__Alternatives_2"
-    // InternalOCLinEcore.g:4579:1: rule__SysMLCS__Alternatives_2 : ( ( ( rule__SysMLCS__Group_2_0__0 ) ) | ( ( rule__SysMLCS__Group_2_1__0 ) ) );
+    // InternalOCLinEcore.g:4591:1: rule__SysMLCS__Alternatives_2 : ( ( ( rule__SysMLCS__Group_2_0__0 ) ) | ( ( rule__SysMLCS__Group_2_1__0 ) ) );
     public final void rule__SysMLCS__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4583:1: ( ( ( rule__SysMLCS__Group_2_0__0 ) ) | ( ( rule__SysMLCS__Group_2_1__0 ) ) )
+            // InternalOCLinEcore.g:4595:1: ( ( ( rule__SysMLCS__Group_2_0__0 ) ) | ( ( rule__SysMLCS__Group_2_1__0 ) ) )
             int alt40=2;
             int LA40_0 = input.LA(1);
 
@@ -15857,16 +15925,16 @@
             }
             switch (alt40) {
                 case 1 :
-                    // InternalOCLinEcore.g:4584:1: ( ( rule__SysMLCS__Group_2_0__0 ) )
+                    // InternalOCLinEcore.g:4596:1: ( ( rule__SysMLCS__Group_2_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:4584:1: ( ( rule__SysMLCS__Group_2_0__0 ) )
-                    // InternalOCLinEcore.g:4585:1: ( rule__SysMLCS__Group_2_0__0 )
+                    // InternalOCLinEcore.g:4596:1: ( ( rule__SysMLCS__Group_2_0__0 ) )
+                    // InternalOCLinEcore.g:4597:1: ( rule__SysMLCS__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSysMLCSAccess().getGroup_2_0()); 
                     }
-                    // InternalOCLinEcore.g:4586:1: ( rule__SysMLCS__Group_2_0__0 )
-                    // InternalOCLinEcore.g:4586:2: rule__SysMLCS__Group_2_0__0
+                    // InternalOCLinEcore.g:4598:1: ( rule__SysMLCS__Group_2_0__0 )
+                    // InternalOCLinEcore.g:4598:2: rule__SysMLCS__Group_2_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__SysMLCS__Group_2_0__0();
@@ -15886,16 +15954,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4590:6: ( ( rule__SysMLCS__Group_2_1__0 ) )
+                    // InternalOCLinEcore.g:4602:6: ( ( rule__SysMLCS__Group_2_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:4590:6: ( ( rule__SysMLCS__Group_2_1__0 ) )
-                    // InternalOCLinEcore.g:4591:1: ( rule__SysMLCS__Group_2_1__0 )
+                    // InternalOCLinEcore.g:4602:6: ( ( rule__SysMLCS__Group_2_1__0 ) )
+                    // InternalOCLinEcore.g:4603:1: ( rule__SysMLCS__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getSysMLCSAccess().getGroup_2_1()); 
                     }
-                    // InternalOCLinEcore.g:4592:1: ( rule__SysMLCS__Group_2_1__0 )
-                    // InternalOCLinEcore.g:4592:2: rule__SysMLCS__Group_2_1__0
+                    // InternalOCLinEcore.g:4604:1: ( rule__SysMLCS__Group_2_1__0 )
+                    // InternalOCLinEcore.g:4604:2: rule__SysMLCS__Group_2_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__SysMLCS__Group_2_1__0();
@@ -15932,13 +16000,13 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Alternatives"
-    // InternalOCLinEcore.g:4602:1: rule__TemplateSignatureCS__Alternatives : ( ( ( rule__TemplateSignatureCS__Group_0__0 ) ) | ( ( rule__TemplateSignatureCS__Group_1__0 ) ) );
+    // InternalOCLinEcore.g:4614:1: rule__TemplateSignatureCS__Alternatives : ( ( ( rule__TemplateSignatureCS__Group_0__0 ) ) | ( ( rule__TemplateSignatureCS__Group_1__0 ) ) );
     public final void rule__TemplateSignatureCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4606:1: ( ( ( rule__TemplateSignatureCS__Group_0__0 ) ) | ( ( rule__TemplateSignatureCS__Group_1__0 ) ) )
+            // InternalOCLinEcore.g:4618:1: ( ( ( rule__TemplateSignatureCS__Group_0__0 ) ) | ( ( rule__TemplateSignatureCS__Group_1__0 ) ) )
             int alt41=2;
             int LA41_0 = input.LA(1);
 
@@ -15957,16 +16025,16 @@
             }
             switch (alt41) {
                 case 1 :
-                    // InternalOCLinEcore.g:4607:1: ( ( rule__TemplateSignatureCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:4619:1: ( ( rule__TemplateSignatureCS__Group_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:4607:1: ( ( rule__TemplateSignatureCS__Group_0__0 ) )
-                    // InternalOCLinEcore.g:4608:1: ( rule__TemplateSignatureCS__Group_0__0 )
+                    // InternalOCLinEcore.g:4619:1: ( ( rule__TemplateSignatureCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:4620:1: ( rule__TemplateSignatureCS__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTemplateSignatureCSAccess().getGroup_0()); 
                     }
-                    // InternalOCLinEcore.g:4609:1: ( rule__TemplateSignatureCS__Group_0__0 )
-                    // InternalOCLinEcore.g:4609:2: rule__TemplateSignatureCS__Group_0__0
+                    // InternalOCLinEcore.g:4621:1: ( rule__TemplateSignatureCS__Group_0__0 )
+                    // InternalOCLinEcore.g:4621:2: rule__TemplateSignatureCS__Group_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TemplateSignatureCS__Group_0__0();
@@ -15986,16 +16054,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4613:6: ( ( rule__TemplateSignatureCS__Group_1__0 ) )
+                    // InternalOCLinEcore.g:4625:6: ( ( rule__TemplateSignatureCS__Group_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:4613:6: ( ( rule__TemplateSignatureCS__Group_1__0 ) )
-                    // InternalOCLinEcore.g:4614:1: ( rule__TemplateSignatureCS__Group_1__0 )
+                    // InternalOCLinEcore.g:4625:6: ( ( rule__TemplateSignatureCS__Group_1__0 ) )
+                    // InternalOCLinEcore.g:4626:1: ( rule__TemplateSignatureCS__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTemplateSignatureCSAccess().getGroup_1()); 
                     }
-                    // InternalOCLinEcore.g:4615:1: ( rule__TemplateSignatureCS__Group_1__0 )
-                    // InternalOCLinEcore.g:4615:2: rule__TemplateSignatureCS__Group_1__0
+                    // InternalOCLinEcore.g:4627:1: ( rule__TemplateSignatureCS__Group_1__0 )
+                    // InternalOCLinEcore.g:4627:2: rule__TemplateSignatureCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TemplateSignatureCS__Group_1__0();
@@ -16032,13 +16100,13 @@
 
 
     // $ANTLR start "rule__TypedRefCS__Alternatives"
-    // InternalOCLinEcore.g:4624:1: rule__TypedRefCS__Alternatives : ( ( ruleTypeLiteralCS ) | ( ruleTypedTypeRefCS ) );
+    // InternalOCLinEcore.g:4636:1: rule__TypedRefCS__Alternatives : ( ( ruleTypeLiteralCS ) | ( ruleTypedTypeRefCS ) );
     public final void rule__TypedRefCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4628:1: ( ( ruleTypeLiteralCS ) | ( ruleTypedTypeRefCS ) )
+            // InternalOCLinEcore.g:4640:1: ( ( ruleTypeLiteralCS ) | ( ruleTypedTypeRefCS ) )
             int alt42=2;
             int LA42_0 = input.LA(1);
 
@@ -16057,10 +16125,10 @@
             }
             switch (alt42) {
                 case 1 :
-                    // InternalOCLinEcore.g:4629:1: ( ruleTypeLiteralCS )
+                    // InternalOCLinEcore.g:4641:1: ( ruleTypeLiteralCS )
                     {
-                    // InternalOCLinEcore.g:4629:1: ( ruleTypeLiteralCS )
-                    // InternalOCLinEcore.g:4630:1: ruleTypeLiteralCS
+                    // InternalOCLinEcore.g:4641:1: ( ruleTypeLiteralCS )
+                    // InternalOCLinEcore.g:4642:1: ruleTypeLiteralCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypedRefCSAccess().getTypeLiteralCSParserRuleCall_0()); 
@@ -16080,10 +16148,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4635:6: ( ruleTypedTypeRefCS )
+                    // InternalOCLinEcore.g:4647:6: ( ruleTypedTypeRefCS )
                     {
-                    // InternalOCLinEcore.g:4635:6: ( ruleTypedTypeRefCS )
-                    // InternalOCLinEcore.g:4636:1: ruleTypedTypeRefCS
+                    // InternalOCLinEcore.g:4647:6: ( ruleTypedTypeRefCS )
+                    // InternalOCLinEcore.g:4648:1: ruleTypedTypeRefCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypedRefCSAccess().getTypedTypeRefCSParserRuleCall_1()); 
@@ -16120,13 +16188,13 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Alternatives_1"
-    // InternalOCLinEcore.g:4646:1: rule__TypedTypeRefCS__Alternatives_1 : ( ( ( rule__TypedTypeRefCS__Group_1_0__0 ) ) | ( ( rule__TypedTypeRefCS__Group_1_1__0 ) ) );
+    // InternalOCLinEcore.g:4658:1: rule__TypedTypeRefCS__Alternatives_1 : ( ( ( rule__TypedTypeRefCS__Group_1_0__0 ) ) | ( ( rule__TypedTypeRefCS__Group_1_1__0 ) ) );
     public final void rule__TypedTypeRefCS__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4650:1: ( ( ( rule__TypedTypeRefCS__Group_1_0__0 ) ) | ( ( rule__TypedTypeRefCS__Group_1_1__0 ) ) )
+            // InternalOCLinEcore.g:4662:1: ( ( ( rule__TypedTypeRefCS__Group_1_0__0 ) ) | ( ( rule__TypedTypeRefCS__Group_1_1__0 ) ) )
             int alt43=2;
             int LA43_0 = input.LA(1);
 
@@ -16145,16 +16213,16 @@
             }
             switch (alt43) {
                 case 1 :
-                    // InternalOCLinEcore.g:4651:1: ( ( rule__TypedTypeRefCS__Group_1_0__0 ) )
+                    // InternalOCLinEcore.g:4663:1: ( ( rule__TypedTypeRefCS__Group_1_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:4651:1: ( ( rule__TypedTypeRefCS__Group_1_0__0 ) )
-                    // InternalOCLinEcore.g:4652:1: ( rule__TypedTypeRefCS__Group_1_0__0 )
+                    // InternalOCLinEcore.g:4663:1: ( ( rule__TypedTypeRefCS__Group_1_0__0 ) )
+                    // InternalOCLinEcore.g:4664:1: ( rule__TypedTypeRefCS__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypedTypeRefCSAccess().getGroup_1_0()); 
                     }
-                    // InternalOCLinEcore.g:4653:1: ( rule__TypedTypeRefCS__Group_1_0__0 )
-                    // InternalOCLinEcore.g:4653:2: rule__TypedTypeRefCS__Group_1_0__0
+                    // InternalOCLinEcore.g:4665:1: ( rule__TypedTypeRefCS__Group_1_0__0 )
+                    // InternalOCLinEcore.g:4665:2: rule__TypedTypeRefCS__Group_1_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypedTypeRefCS__Group_1_0__0();
@@ -16174,16 +16242,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4657:6: ( ( rule__TypedTypeRefCS__Group_1_1__0 ) )
+                    // InternalOCLinEcore.g:4669:6: ( ( rule__TypedTypeRefCS__Group_1_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:4657:6: ( ( rule__TypedTypeRefCS__Group_1_1__0 ) )
-                    // InternalOCLinEcore.g:4658:1: ( rule__TypedTypeRefCS__Group_1_1__0 )
+                    // InternalOCLinEcore.g:4669:6: ( ( rule__TypedTypeRefCS__Group_1_1__0 ) )
+                    // InternalOCLinEcore.g:4670:1: ( rule__TypedTypeRefCS__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypedTypeRefCSAccess().getGroup_1_1()); 
                     }
-                    // InternalOCLinEcore.g:4659:1: ( rule__TypedTypeRefCS__Group_1_1__0 )
-                    // InternalOCLinEcore.g:4659:2: rule__TypedTypeRefCS__Group_1_1__0
+                    // InternalOCLinEcore.g:4671:1: ( rule__TypedTypeRefCS__Group_1_1__0 )
+                    // InternalOCLinEcore.g:4671:2: rule__TypedTypeRefCS__Group_1_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypedTypeRefCS__Group_1_1__0();
@@ -16220,13 +16288,13 @@
 
 
     // $ANTLR start "rule__UnrestrictedName__Alternatives"
-    // InternalOCLinEcore.g:4668:1: rule__UnrestrictedName__Alternatives : ( ( ruleEnumerationLiteralName ) | ( 'annotation' ) | ( 'documentation' ) | ( 'invariant' ) | ( 'literal' ) | ( 'serializable' ) | ( 'sysml' ) );
+    // InternalOCLinEcore.g:4680:1: rule__UnrestrictedName__Alternatives : ( ( ruleEnumerationLiteralName ) | ( 'annotation' ) | ( 'documentation' ) | ( 'invariant' ) | ( 'literal' ) | ( 'serializable' ) | ( 'sysml' ) );
     public final void rule__UnrestrictedName__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4672:1: ( ( ruleEnumerationLiteralName ) | ( 'annotation' ) | ( 'documentation' ) | ( 'invariant' ) | ( 'literal' ) | ( 'serializable' ) | ( 'sysml' ) )
+            // InternalOCLinEcore.g:4684:1: ( ( ruleEnumerationLiteralName ) | ( 'annotation' ) | ( 'documentation' ) | ( 'invariant' ) | ( 'literal' ) | ( 'serializable' ) | ( 'sysml' ) )
             int alt44=7;
             switch ( input.LA(1) ) {
             case RULE_SIMPLE_ID:
@@ -16310,10 +16378,10 @@
 
             switch (alt44) {
                 case 1 :
-                    // InternalOCLinEcore.g:4673:1: ( ruleEnumerationLiteralName )
+                    // InternalOCLinEcore.g:4685:1: ( ruleEnumerationLiteralName )
                     {
-                    // InternalOCLinEcore.g:4673:1: ( ruleEnumerationLiteralName )
-                    // InternalOCLinEcore.g:4674:1: ruleEnumerationLiteralName
+                    // InternalOCLinEcore.g:4685:1: ( ruleEnumerationLiteralName )
+                    // InternalOCLinEcore.g:4686:1: ruleEnumerationLiteralName
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUnrestrictedNameAccess().getEnumerationLiteralNameParserRuleCall_0()); 
@@ -16333,10 +16401,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4679:6: ( 'annotation' )
+                    // InternalOCLinEcore.g:4691:6: ( 'annotation' )
                     {
-                    // InternalOCLinEcore.g:4679:6: ( 'annotation' )
-                    // InternalOCLinEcore.g:4680:1: 'annotation'
+                    // InternalOCLinEcore.g:4691:6: ( 'annotation' )
+                    // InternalOCLinEcore.g:4692:1: 'annotation'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUnrestrictedNameAccess().getAnnotationKeyword_1()); 
@@ -16352,10 +16420,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4687:6: ( 'documentation' )
+                    // InternalOCLinEcore.g:4699:6: ( 'documentation' )
                     {
-                    // InternalOCLinEcore.g:4687:6: ( 'documentation' )
-                    // InternalOCLinEcore.g:4688:1: 'documentation'
+                    // InternalOCLinEcore.g:4699:6: ( 'documentation' )
+                    // InternalOCLinEcore.g:4700:1: 'documentation'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUnrestrictedNameAccess().getDocumentationKeyword_2()); 
@@ -16371,10 +16439,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4695:6: ( 'invariant' )
+                    // InternalOCLinEcore.g:4707:6: ( 'invariant' )
                     {
-                    // InternalOCLinEcore.g:4695:6: ( 'invariant' )
-                    // InternalOCLinEcore.g:4696:1: 'invariant'
+                    // InternalOCLinEcore.g:4707:6: ( 'invariant' )
+                    // InternalOCLinEcore.g:4708:1: 'invariant'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUnrestrictedNameAccess().getInvariantKeyword_3()); 
@@ -16390,10 +16458,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:4703:6: ( 'literal' )
+                    // InternalOCLinEcore.g:4715:6: ( 'literal' )
                     {
-                    // InternalOCLinEcore.g:4703:6: ( 'literal' )
-                    // InternalOCLinEcore.g:4704:1: 'literal'
+                    // InternalOCLinEcore.g:4715:6: ( 'literal' )
+                    // InternalOCLinEcore.g:4716:1: 'literal'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUnrestrictedNameAccess().getLiteralKeyword_4()); 
@@ -16409,10 +16477,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:4711:6: ( 'serializable' )
+                    // InternalOCLinEcore.g:4723:6: ( 'serializable' )
                     {
-                    // InternalOCLinEcore.g:4711:6: ( 'serializable' )
-                    // InternalOCLinEcore.g:4712:1: 'serializable'
+                    // InternalOCLinEcore.g:4723:6: ( 'serializable' )
+                    // InternalOCLinEcore.g:4724:1: 'serializable'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUnrestrictedNameAccess().getSerializableKeyword_5()); 
@@ -16428,10 +16496,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:4719:6: ( 'sysml' )
+                    // InternalOCLinEcore.g:4731:6: ( 'sysml' )
                     {
-                    // InternalOCLinEcore.g:4719:6: ( 'sysml' )
-                    // InternalOCLinEcore.g:4720:1: 'sysml'
+                    // InternalOCLinEcore.g:4731:6: ( 'sysml' )
+                    // InternalOCLinEcore.g:4732:1: 'sysml'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUnrestrictedNameAccess().getSysmlKeyword_6()); 
@@ -16464,13 +16532,13 @@
 
 
     // $ANTLR start "rule__EssentialOCLUnaryOperatorName__Alternatives"
-    // InternalOCLinEcore.g:4733:1: rule__EssentialOCLUnaryOperatorName__Alternatives : ( ( '-' ) | ( 'not' ) );
+    // InternalOCLinEcore.g:4745:1: rule__EssentialOCLUnaryOperatorName__Alternatives : ( ( '-' ) | ( 'not' ) );
     public final void rule__EssentialOCLUnaryOperatorName__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4737:1: ( ( '-' ) | ( 'not' ) )
+            // InternalOCLinEcore.g:4749:1: ( ( '-' ) | ( 'not' ) )
             int alt45=2;
             int LA45_0 = input.LA(1);
 
@@ -16489,10 +16557,10 @@
             }
             switch (alt45) {
                 case 1 :
-                    // InternalOCLinEcore.g:4738:1: ( '-' )
+                    // InternalOCLinEcore.g:4750:1: ( '-' )
                     {
-                    // InternalOCLinEcore.g:4738:1: ( '-' )
-                    // InternalOCLinEcore.g:4739:1: '-'
+                    // InternalOCLinEcore.g:4750:1: ( '-' )
+                    // InternalOCLinEcore.g:4751:1: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLUnaryOperatorNameAccess().getHyphenMinusKeyword_0()); 
@@ -16508,10 +16576,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4746:6: ( 'not' )
+                    // InternalOCLinEcore.g:4758:6: ( 'not' )
                     {
-                    // InternalOCLinEcore.g:4746:6: ( 'not' )
-                    // InternalOCLinEcore.g:4747:1: 'not'
+                    // InternalOCLinEcore.g:4758:6: ( 'not' )
+                    // InternalOCLinEcore.g:4759:1: 'not'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLUnaryOperatorNameAccess().getNotKeyword_1()); 
@@ -16544,13 +16612,13 @@
 
 
     // $ANTLR start "rule__EssentialOCLInfixOperatorName__Alternatives"
-    // InternalOCLinEcore.g:4759:1: rule__EssentialOCLInfixOperatorName__Alternatives : ( ( '*' ) | ( '/' ) | ( '+' ) | ( '-' ) | ( '>' ) | ( '<' ) | ( '>=' ) | ( '<=' ) | ( '=' ) | ( '<>' ) | ( 'and' ) | ( 'or' ) | ( 'xor' ) | ( 'implies' ) );
+    // InternalOCLinEcore.g:4771:1: rule__EssentialOCLInfixOperatorName__Alternatives : ( ( '*' ) | ( '/' ) | ( '+' ) | ( '-' ) | ( '>' ) | ( '<' ) | ( '>=' ) | ( '<=' ) | ( '=' ) | ( '<>' ) | ( 'and' ) | ( 'or' ) | ( 'xor' ) | ( 'implies' ) );
     public final void rule__EssentialOCLInfixOperatorName__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4763:1: ( ( '*' ) | ( '/' ) | ( '+' ) | ( '-' ) | ( '>' ) | ( '<' ) | ( '>=' ) | ( '<=' ) | ( '=' ) | ( '<>' ) | ( 'and' ) | ( 'or' ) | ( 'xor' ) | ( 'implies' ) )
+            // InternalOCLinEcore.g:4775:1: ( ( '*' ) | ( '/' ) | ( '+' ) | ( '-' ) | ( '>' ) | ( '<' ) | ( '>=' ) | ( '<=' ) | ( '=' ) | ( '<>' ) | ( 'and' ) | ( 'or' ) | ( 'xor' ) | ( 'implies' ) )
             int alt46=14;
             switch ( input.LA(1) ) {
             case 62:
@@ -16633,10 +16701,10 @@
 
             switch (alt46) {
                 case 1 :
-                    // InternalOCLinEcore.g:4764:1: ( '*' )
+                    // InternalOCLinEcore.g:4776:1: ( '*' )
                     {
-                    // InternalOCLinEcore.g:4764:1: ( '*' )
-                    // InternalOCLinEcore.g:4765:1: '*'
+                    // InternalOCLinEcore.g:4776:1: ( '*' )
+                    // InternalOCLinEcore.g:4777:1: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getAsteriskKeyword_0()); 
@@ -16652,10 +16720,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4772:6: ( '/' )
+                    // InternalOCLinEcore.g:4784:6: ( '/' )
                     {
-                    // InternalOCLinEcore.g:4772:6: ( '/' )
-                    // InternalOCLinEcore.g:4773:1: '/'
+                    // InternalOCLinEcore.g:4784:6: ( '/' )
+                    // InternalOCLinEcore.g:4785:1: '/'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getSolidusKeyword_1()); 
@@ -16671,10 +16739,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4780:6: ( '+' )
+                    // InternalOCLinEcore.g:4792:6: ( '+' )
                     {
-                    // InternalOCLinEcore.g:4780:6: ( '+' )
-                    // InternalOCLinEcore.g:4781:1: '+'
+                    // InternalOCLinEcore.g:4792:6: ( '+' )
+                    // InternalOCLinEcore.g:4793:1: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getPlusSignKeyword_2()); 
@@ -16690,10 +16758,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4788:6: ( '-' )
+                    // InternalOCLinEcore.g:4800:6: ( '-' )
                     {
-                    // InternalOCLinEcore.g:4788:6: ( '-' )
-                    // InternalOCLinEcore.g:4789:1: '-'
+                    // InternalOCLinEcore.g:4800:6: ( '-' )
+                    // InternalOCLinEcore.g:4801:1: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getHyphenMinusKeyword_3()); 
@@ -16709,10 +16777,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:4796:6: ( '>' )
+                    // InternalOCLinEcore.g:4808:6: ( '>' )
                     {
-                    // InternalOCLinEcore.g:4796:6: ( '>' )
-                    // InternalOCLinEcore.g:4797:1: '>'
+                    // InternalOCLinEcore.g:4808:6: ( '>' )
+                    // InternalOCLinEcore.g:4809:1: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getGreaterThanSignKeyword_4()); 
@@ -16728,10 +16796,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:4804:6: ( '<' )
+                    // InternalOCLinEcore.g:4816:6: ( '<' )
                     {
-                    // InternalOCLinEcore.g:4804:6: ( '<' )
-                    // InternalOCLinEcore.g:4805:1: '<'
+                    // InternalOCLinEcore.g:4816:6: ( '<' )
+                    // InternalOCLinEcore.g:4817:1: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getLessThanSignKeyword_5()); 
@@ -16747,10 +16815,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:4812:6: ( '>=' )
+                    // InternalOCLinEcore.g:4824:6: ( '>=' )
                     {
-                    // InternalOCLinEcore.g:4812:6: ( '>=' )
-                    // InternalOCLinEcore.g:4813:1: '>='
+                    // InternalOCLinEcore.g:4824:6: ( '>=' )
+                    // InternalOCLinEcore.g:4825:1: '>='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getGreaterThanSignEqualsSignKeyword_6()); 
@@ -16766,10 +16834,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalOCLinEcore.g:4820:6: ( '<=' )
+                    // InternalOCLinEcore.g:4832:6: ( '<=' )
                     {
-                    // InternalOCLinEcore.g:4820:6: ( '<=' )
-                    // InternalOCLinEcore.g:4821:1: '<='
+                    // InternalOCLinEcore.g:4832:6: ( '<=' )
+                    // InternalOCLinEcore.g:4833:1: '<='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getLessThanSignEqualsSignKeyword_7()); 
@@ -16785,10 +16853,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalOCLinEcore.g:4828:6: ( '=' )
+                    // InternalOCLinEcore.g:4840:6: ( '=' )
                     {
-                    // InternalOCLinEcore.g:4828:6: ( '=' )
-                    // InternalOCLinEcore.g:4829:1: '='
+                    // InternalOCLinEcore.g:4840:6: ( '=' )
+                    // InternalOCLinEcore.g:4841:1: '='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getEqualsSignKeyword_8()); 
@@ -16804,10 +16872,10 @@
                     }
                     break;
                 case 10 :
-                    // InternalOCLinEcore.g:4836:6: ( '<>' )
+                    // InternalOCLinEcore.g:4848:6: ( '<>' )
                     {
-                    // InternalOCLinEcore.g:4836:6: ( '<>' )
-                    // InternalOCLinEcore.g:4837:1: '<>'
+                    // InternalOCLinEcore.g:4848:6: ( '<>' )
+                    // InternalOCLinEcore.g:4849:1: '<>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getLessThanSignGreaterThanSignKeyword_9()); 
@@ -16823,10 +16891,10 @@
                     }
                     break;
                 case 11 :
-                    // InternalOCLinEcore.g:4844:6: ( 'and' )
+                    // InternalOCLinEcore.g:4856:6: ( 'and' )
                     {
-                    // InternalOCLinEcore.g:4844:6: ( 'and' )
-                    // InternalOCLinEcore.g:4845:1: 'and'
+                    // InternalOCLinEcore.g:4856:6: ( 'and' )
+                    // InternalOCLinEcore.g:4857:1: 'and'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getAndKeyword_10()); 
@@ -16842,10 +16910,10 @@
                     }
                     break;
                 case 12 :
-                    // InternalOCLinEcore.g:4852:6: ( 'or' )
+                    // InternalOCLinEcore.g:4864:6: ( 'or' )
                     {
-                    // InternalOCLinEcore.g:4852:6: ( 'or' )
-                    // InternalOCLinEcore.g:4853:1: 'or'
+                    // InternalOCLinEcore.g:4864:6: ( 'or' )
+                    // InternalOCLinEcore.g:4865:1: 'or'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getOrKeyword_11()); 
@@ -16861,10 +16929,10 @@
                     }
                     break;
                 case 13 :
-                    // InternalOCLinEcore.g:4860:6: ( 'xor' )
+                    // InternalOCLinEcore.g:4872:6: ( 'xor' )
                     {
-                    // InternalOCLinEcore.g:4860:6: ( 'xor' )
-                    // InternalOCLinEcore.g:4861:1: 'xor'
+                    // InternalOCLinEcore.g:4872:6: ( 'xor' )
+                    // InternalOCLinEcore.g:4873:1: 'xor'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getXorKeyword_12()); 
@@ -16880,10 +16948,10 @@
                     }
                     break;
                 case 14 :
-                    // InternalOCLinEcore.g:4868:6: ( 'implies' )
+                    // InternalOCLinEcore.g:4880:6: ( 'implies' )
                     {
-                    // InternalOCLinEcore.g:4868:6: ( 'implies' )
-                    // InternalOCLinEcore.g:4869:1: 'implies'
+                    // InternalOCLinEcore.g:4880:6: ( 'implies' )
+                    // InternalOCLinEcore.g:4881:1: 'implies'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLInfixOperatorNameAccess().getImpliesKeyword_13()); 
@@ -16916,13 +16984,13 @@
 
 
     // $ANTLR start "rule__EssentialOCLNavigationOperatorName__Alternatives"
-    // InternalOCLinEcore.g:4881:1: rule__EssentialOCLNavigationOperatorName__Alternatives : ( ( '.' ) | ( '->' ) | ( '?.' ) | ( '?->' ) );
+    // InternalOCLinEcore.g:4893:1: rule__EssentialOCLNavigationOperatorName__Alternatives : ( ( '.' ) | ( '->' ) | ( '?.' ) | ( '?->' ) );
     public final void rule__EssentialOCLNavigationOperatorName__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4885:1: ( ( '.' ) | ( '->' ) | ( '?.' ) | ( '?->' ) )
+            // InternalOCLinEcore.g:4897:1: ( ( '.' ) | ( '->' ) | ( '?.' ) | ( '?->' ) )
             int alt47=4;
             switch ( input.LA(1) ) {
             case 75:
@@ -16955,10 +17023,10 @@
 
             switch (alt47) {
                 case 1 :
-                    // InternalOCLinEcore.g:4886:1: ( '.' )
+                    // InternalOCLinEcore.g:4898:1: ( '.' )
                     {
-                    // InternalOCLinEcore.g:4886:1: ( '.' )
-                    // InternalOCLinEcore.g:4887:1: '.'
+                    // InternalOCLinEcore.g:4898:1: ( '.' )
+                    // InternalOCLinEcore.g:4899:1: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLNavigationOperatorNameAccess().getFullStopKeyword_0()); 
@@ -16974,10 +17042,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4894:6: ( '->' )
+                    // InternalOCLinEcore.g:4906:6: ( '->' )
                     {
-                    // InternalOCLinEcore.g:4894:6: ( '->' )
-                    // InternalOCLinEcore.g:4895:1: '->'
+                    // InternalOCLinEcore.g:4906:6: ( '->' )
+                    // InternalOCLinEcore.g:4907:1: '->'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLNavigationOperatorNameAccess().getHyphenMinusGreaterThanSignKeyword_1()); 
@@ -16993,10 +17061,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4902:6: ( '?.' )
+                    // InternalOCLinEcore.g:4914:6: ( '?.' )
                     {
-                    // InternalOCLinEcore.g:4902:6: ( '?.' )
-                    // InternalOCLinEcore.g:4903:1: '?.'
+                    // InternalOCLinEcore.g:4914:6: ( '?.' )
+                    // InternalOCLinEcore.g:4915:1: '?.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLNavigationOperatorNameAccess().getQuestionMarkFullStopKeyword_2()); 
@@ -17012,10 +17080,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4910:6: ( '?->' )
+                    // InternalOCLinEcore.g:4922:6: ( '?->' )
                     {
-                    // InternalOCLinEcore.g:4910:6: ( '?->' )
-                    // InternalOCLinEcore.g:4911:1: '?->'
+                    // InternalOCLinEcore.g:4922:6: ( '?->' )
+                    // InternalOCLinEcore.g:4923:1: '?->'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLNavigationOperatorNameAccess().getQuestionMarkHyphenMinusGreaterThanSignKeyword_3()); 
@@ -17048,13 +17116,13 @@
 
 
     // $ANTLR start "rule__BinaryOperatorName__Alternatives"
-    // InternalOCLinEcore.g:4923:1: rule__BinaryOperatorName__Alternatives : ( ( ruleInfixOperatorName ) | ( ruleNavigationOperatorName ) );
+    // InternalOCLinEcore.g:4935:1: rule__BinaryOperatorName__Alternatives : ( ( ruleInfixOperatorName ) | ( ruleNavigationOperatorName ) );
     public final void rule__BinaryOperatorName__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4927:1: ( ( ruleInfixOperatorName ) | ( ruleNavigationOperatorName ) )
+            // InternalOCLinEcore.g:4939:1: ( ( ruleInfixOperatorName ) | ( ruleNavigationOperatorName ) )
             int alt48=2;
             int LA48_0 = input.LA(1);
 
@@ -17073,10 +17141,10 @@
             }
             switch (alt48) {
                 case 1 :
-                    // InternalOCLinEcore.g:4928:1: ( ruleInfixOperatorName )
+                    // InternalOCLinEcore.g:4940:1: ( ruleInfixOperatorName )
                     {
-                    // InternalOCLinEcore.g:4928:1: ( ruleInfixOperatorName )
-                    // InternalOCLinEcore.g:4929:1: ruleInfixOperatorName
+                    // InternalOCLinEcore.g:4940:1: ( ruleInfixOperatorName )
+                    // InternalOCLinEcore.g:4941:1: ruleInfixOperatorName
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBinaryOperatorNameAccess().getInfixOperatorNameParserRuleCall_0()); 
@@ -17096,10 +17164,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4934:6: ( ruleNavigationOperatorName )
+                    // InternalOCLinEcore.g:4946:6: ( ruleNavigationOperatorName )
                     {
-                    // InternalOCLinEcore.g:4934:6: ( ruleNavigationOperatorName )
-                    // InternalOCLinEcore.g:4935:1: ruleNavigationOperatorName
+                    // InternalOCLinEcore.g:4946:6: ( ruleNavigationOperatorName )
+                    // InternalOCLinEcore.g:4947:1: ruleNavigationOperatorName
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBinaryOperatorNameAccess().getNavigationOperatorNameParserRuleCall_1()); 
@@ -17136,13 +17204,13 @@
 
 
     // $ANTLR start "rule__EssentialOCLUnreservedName__Alternatives"
-    // InternalOCLinEcore.g:4945:1: rule__EssentialOCLUnreservedName__Alternatives : ( ( ruleUnrestrictedName ) | ( ruleCollectionTypeIdentifier ) | ( rulePrimitiveTypeIdentifier ) | ( 'Map' ) | ( 'Tuple' ) );
+    // InternalOCLinEcore.g:4957:1: rule__EssentialOCLUnreservedName__Alternatives : ( ( ruleUnrestrictedName ) | ( ruleCollectionTypeIdentifier ) | ( rulePrimitiveTypeIdentifier ) | ( 'Map' ) | ( 'Tuple' ) );
     public final void rule__EssentialOCLUnreservedName__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4949:1: ( ( ruleUnrestrictedName ) | ( ruleCollectionTypeIdentifier ) | ( rulePrimitiveTypeIdentifier ) | ( 'Map' ) | ( 'Tuple' ) )
+            // InternalOCLinEcore.g:4961:1: ( ( ruleUnrestrictedName ) | ( ruleCollectionTypeIdentifier ) | ( rulePrimitiveTypeIdentifier ) | ( 'Map' ) | ( 'Tuple' ) )
             int alt49=5;
             switch ( input.LA(1) ) {
             case RULE_SIMPLE_ID:
@@ -17233,10 +17301,10 @@
 
             switch (alt49) {
                 case 1 :
-                    // InternalOCLinEcore.g:4950:1: ( ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:4962:1: ( ruleUnrestrictedName )
                     {
-                    // InternalOCLinEcore.g:4950:1: ( ruleUnrestrictedName )
-                    // InternalOCLinEcore.g:4951:1: ruleUnrestrictedName
+                    // InternalOCLinEcore.g:4962:1: ( ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:4963:1: ruleUnrestrictedName
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLUnreservedNameAccess().getUnrestrictedNameParserRuleCall_0()); 
@@ -17256,10 +17324,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4956:6: ( ruleCollectionTypeIdentifier )
+                    // InternalOCLinEcore.g:4968:6: ( ruleCollectionTypeIdentifier )
                     {
-                    // InternalOCLinEcore.g:4956:6: ( ruleCollectionTypeIdentifier )
-                    // InternalOCLinEcore.g:4957:1: ruleCollectionTypeIdentifier
+                    // InternalOCLinEcore.g:4968:6: ( ruleCollectionTypeIdentifier )
+                    // InternalOCLinEcore.g:4969:1: ruleCollectionTypeIdentifier
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLUnreservedNameAccess().getCollectionTypeIdentifierParserRuleCall_1()); 
@@ -17279,10 +17347,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4962:6: ( rulePrimitiveTypeIdentifier )
+                    // InternalOCLinEcore.g:4974:6: ( rulePrimitiveTypeIdentifier )
                     {
-                    // InternalOCLinEcore.g:4962:6: ( rulePrimitiveTypeIdentifier )
-                    // InternalOCLinEcore.g:4963:1: rulePrimitiveTypeIdentifier
+                    // InternalOCLinEcore.g:4974:6: ( rulePrimitiveTypeIdentifier )
+                    // InternalOCLinEcore.g:4975:1: rulePrimitiveTypeIdentifier
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLUnreservedNameAccess().getPrimitiveTypeIdentifierParserRuleCall_2()); 
@@ -17302,10 +17370,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4968:6: ( 'Map' )
+                    // InternalOCLinEcore.g:4980:6: ( 'Map' )
                     {
-                    // InternalOCLinEcore.g:4968:6: ( 'Map' )
-                    // InternalOCLinEcore.g:4969:1: 'Map'
+                    // InternalOCLinEcore.g:4980:6: ( 'Map' )
+                    // InternalOCLinEcore.g:4981:1: 'Map'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLUnreservedNameAccess().getMapKeyword_3()); 
@@ -17321,10 +17389,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:4976:6: ( 'Tuple' )
+                    // InternalOCLinEcore.g:4988:6: ( 'Tuple' )
                     {
-                    // InternalOCLinEcore.g:4976:6: ( 'Tuple' )
-                    // InternalOCLinEcore.g:4977:1: 'Tuple'
+                    // InternalOCLinEcore.g:4988:6: ( 'Tuple' )
+                    // InternalOCLinEcore.g:4989:1: 'Tuple'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEssentialOCLUnreservedNameAccess().getTupleKeyword_4()); 
@@ -17357,13 +17425,13 @@
 
 
     // $ANTLR start "rule__URIFirstPathElementCS__Alternatives"
-    // InternalOCLinEcore.g:4989:1: rule__URIFirstPathElementCS__Alternatives : ( ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 ) ) | ( ( rule__URIFirstPathElementCS__Group_1__0 ) ) );
+    // InternalOCLinEcore.g:5001:1: rule__URIFirstPathElementCS__Alternatives : ( ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 ) ) | ( ( rule__URIFirstPathElementCS__Group_1__0 ) ) );
     public final void rule__URIFirstPathElementCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:4993:1: ( ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 ) ) | ( ( rule__URIFirstPathElementCS__Group_1__0 ) ) )
+            // InternalOCLinEcore.g:5005:1: ( ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 ) ) | ( ( rule__URIFirstPathElementCS__Group_1__0 ) ) )
             int alt50=2;
             int LA50_0 = input.LA(1);
 
@@ -17382,16 +17450,16 @@
             }
             switch (alt50) {
                 case 1 :
-                    // InternalOCLinEcore.g:4994:1: ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 ) )
+                    // InternalOCLinEcore.g:5006:1: ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 ) )
                     {
-                    // InternalOCLinEcore.g:4994:1: ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 ) )
-                    // InternalOCLinEcore.g:4995:1: ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 )
+                    // InternalOCLinEcore.g:5006:1: ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 ) )
+                    // InternalOCLinEcore.g:5007:1: ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getURIFirstPathElementCSAccess().getReferredElementAssignment_0()); 
                     }
-                    // InternalOCLinEcore.g:4996:1: ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 )
-                    // InternalOCLinEcore.g:4996:2: rule__URIFirstPathElementCS__ReferredElementAssignment_0
+                    // InternalOCLinEcore.g:5008:1: ( rule__URIFirstPathElementCS__ReferredElementAssignment_0 )
+                    // InternalOCLinEcore.g:5008:2: rule__URIFirstPathElementCS__ReferredElementAssignment_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__URIFirstPathElementCS__ReferredElementAssignment_0();
@@ -17411,16 +17479,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5000:6: ( ( rule__URIFirstPathElementCS__Group_1__0 ) )
+                    // InternalOCLinEcore.g:5012:6: ( ( rule__URIFirstPathElementCS__Group_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:5000:6: ( ( rule__URIFirstPathElementCS__Group_1__0 ) )
-                    // InternalOCLinEcore.g:5001:1: ( rule__URIFirstPathElementCS__Group_1__0 )
+                    // InternalOCLinEcore.g:5012:6: ( ( rule__URIFirstPathElementCS__Group_1__0 ) )
+                    // InternalOCLinEcore.g:5013:1: ( rule__URIFirstPathElementCS__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getURIFirstPathElementCSAccess().getGroup_1()); 
                     }
-                    // InternalOCLinEcore.g:5002:1: ( rule__URIFirstPathElementCS__Group_1__0 )
-                    // InternalOCLinEcore.g:5002:2: rule__URIFirstPathElementCS__Group_1__0
+                    // InternalOCLinEcore.g:5014:1: ( rule__URIFirstPathElementCS__Group_1__0 )
+                    // InternalOCLinEcore.g:5014:2: rule__URIFirstPathElementCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__URIFirstPathElementCS__Group_1__0();
@@ -17457,13 +17525,13 @@
 
 
     // $ANTLR start "rule__PrimitiveTypeIdentifier__Alternatives"
-    // InternalOCLinEcore.g:5011:1: rule__PrimitiveTypeIdentifier__Alternatives : ( ( 'Boolean' ) | ( 'Integer' ) | ( 'Real' ) | ( 'String' ) | ( 'UnlimitedNatural' ) | ( 'OclAny' ) | ( 'OclInvalid' ) | ( 'OclVoid' ) );
+    // InternalOCLinEcore.g:5023:1: rule__PrimitiveTypeIdentifier__Alternatives : ( ( 'Boolean' ) | ( 'Integer' ) | ( 'Real' ) | ( 'String' ) | ( 'UnlimitedNatural' ) | ( 'OclAny' ) | ( 'OclInvalid' ) | ( 'OclVoid' ) );
     public final void rule__PrimitiveTypeIdentifier__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5015:1: ( ( 'Boolean' ) | ( 'Integer' ) | ( 'Real' ) | ( 'String' ) | ( 'UnlimitedNatural' ) | ( 'OclAny' ) | ( 'OclInvalid' ) | ( 'OclVoid' ) )
+            // InternalOCLinEcore.g:5027:1: ( ( 'Boolean' ) | ( 'Integer' ) | ( 'Real' ) | ( 'String' ) | ( 'UnlimitedNatural' ) | ( 'OclAny' ) | ( 'OclInvalid' ) | ( 'OclVoid' ) )
             int alt51=8;
             switch ( input.LA(1) ) {
             case 81:
@@ -17516,10 +17584,10 @@
 
             switch (alt51) {
                 case 1 :
-                    // InternalOCLinEcore.g:5016:1: ( 'Boolean' )
+                    // InternalOCLinEcore.g:5028:1: ( 'Boolean' )
                     {
-                    // InternalOCLinEcore.g:5016:1: ( 'Boolean' )
-                    // InternalOCLinEcore.g:5017:1: 'Boolean'
+                    // InternalOCLinEcore.g:5028:1: ( 'Boolean' )
+                    // InternalOCLinEcore.g:5029:1: 'Boolean'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveTypeIdentifierAccess().getBooleanKeyword_0()); 
@@ -17535,10 +17603,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5024:6: ( 'Integer' )
+                    // InternalOCLinEcore.g:5036:6: ( 'Integer' )
                     {
-                    // InternalOCLinEcore.g:5024:6: ( 'Integer' )
-                    // InternalOCLinEcore.g:5025:1: 'Integer'
+                    // InternalOCLinEcore.g:5036:6: ( 'Integer' )
+                    // InternalOCLinEcore.g:5037:1: 'Integer'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveTypeIdentifierAccess().getIntegerKeyword_1()); 
@@ -17554,10 +17622,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5032:6: ( 'Real' )
+                    // InternalOCLinEcore.g:5044:6: ( 'Real' )
                     {
-                    // InternalOCLinEcore.g:5032:6: ( 'Real' )
-                    // InternalOCLinEcore.g:5033:1: 'Real'
+                    // InternalOCLinEcore.g:5044:6: ( 'Real' )
+                    // InternalOCLinEcore.g:5045:1: 'Real'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveTypeIdentifierAccess().getRealKeyword_2()); 
@@ -17573,10 +17641,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:5040:6: ( 'String' )
+                    // InternalOCLinEcore.g:5052:6: ( 'String' )
                     {
-                    // InternalOCLinEcore.g:5040:6: ( 'String' )
-                    // InternalOCLinEcore.g:5041:1: 'String'
+                    // InternalOCLinEcore.g:5052:6: ( 'String' )
+                    // InternalOCLinEcore.g:5053:1: 'String'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveTypeIdentifierAccess().getStringKeyword_3()); 
@@ -17592,10 +17660,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:5048:6: ( 'UnlimitedNatural' )
+                    // InternalOCLinEcore.g:5060:6: ( 'UnlimitedNatural' )
                     {
-                    // InternalOCLinEcore.g:5048:6: ( 'UnlimitedNatural' )
-                    // InternalOCLinEcore.g:5049:1: 'UnlimitedNatural'
+                    // InternalOCLinEcore.g:5060:6: ( 'UnlimitedNatural' )
+                    // InternalOCLinEcore.g:5061:1: 'UnlimitedNatural'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveTypeIdentifierAccess().getUnlimitedNaturalKeyword_4()); 
@@ -17611,10 +17679,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:5056:6: ( 'OclAny' )
+                    // InternalOCLinEcore.g:5068:6: ( 'OclAny' )
                     {
-                    // InternalOCLinEcore.g:5056:6: ( 'OclAny' )
-                    // InternalOCLinEcore.g:5057:1: 'OclAny'
+                    // InternalOCLinEcore.g:5068:6: ( 'OclAny' )
+                    // InternalOCLinEcore.g:5069:1: 'OclAny'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveTypeIdentifierAccess().getOclAnyKeyword_5()); 
@@ -17630,10 +17698,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:5064:6: ( 'OclInvalid' )
+                    // InternalOCLinEcore.g:5076:6: ( 'OclInvalid' )
                     {
-                    // InternalOCLinEcore.g:5064:6: ( 'OclInvalid' )
-                    // InternalOCLinEcore.g:5065:1: 'OclInvalid'
+                    // InternalOCLinEcore.g:5076:6: ( 'OclInvalid' )
+                    // InternalOCLinEcore.g:5077:1: 'OclInvalid'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveTypeIdentifierAccess().getOclInvalidKeyword_6()); 
@@ -17649,10 +17717,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalOCLinEcore.g:5072:6: ( 'OclVoid' )
+                    // InternalOCLinEcore.g:5084:6: ( 'OclVoid' )
                     {
-                    // InternalOCLinEcore.g:5072:6: ( 'OclVoid' )
-                    // InternalOCLinEcore.g:5073:1: 'OclVoid'
+                    // InternalOCLinEcore.g:5084:6: ( 'OclVoid' )
+                    // InternalOCLinEcore.g:5085:1: 'OclVoid'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveTypeIdentifierAccess().getOclVoidKeyword_7()); 
@@ -17685,13 +17753,13 @@
 
 
     // $ANTLR start "rule__CollectionTypeIdentifier__Alternatives"
-    // InternalOCLinEcore.g:5085:1: rule__CollectionTypeIdentifier__Alternatives : ( ( 'Set' ) | ( 'Bag' ) | ( 'Sequence' ) | ( 'Collection' ) | ( 'OrderedSet' ) );
+    // InternalOCLinEcore.g:5097:1: rule__CollectionTypeIdentifier__Alternatives : ( ( 'Set' ) | ( 'Bag' ) | ( 'Sequence' ) | ( 'Collection' ) | ( 'OrderedSet' ) );
     public final void rule__CollectionTypeIdentifier__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5089:1: ( ( 'Set' ) | ( 'Bag' ) | ( 'Sequence' ) | ( 'Collection' ) | ( 'OrderedSet' ) )
+            // InternalOCLinEcore.g:5101:1: ( ( 'Set' ) | ( 'Bag' ) | ( 'Sequence' ) | ( 'Collection' ) | ( 'OrderedSet' ) )
             int alt52=5;
             switch ( input.LA(1) ) {
             case 89:
@@ -17729,10 +17797,10 @@
 
             switch (alt52) {
                 case 1 :
-                    // InternalOCLinEcore.g:5090:1: ( 'Set' )
+                    // InternalOCLinEcore.g:5102:1: ( 'Set' )
                     {
-                    // InternalOCLinEcore.g:5090:1: ( 'Set' )
-                    // InternalOCLinEcore.g:5091:1: 'Set'
+                    // InternalOCLinEcore.g:5102:1: ( 'Set' )
+                    // InternalOCLinEcore.g:5103:1: 'Set'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCollectionTypeIdentifierAccess().getSetKeyword_0()); 
@@ -17748,10 +17816,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5098:6: ( 'Bag' )
+                    // InternalOCLinEcore.g:5110:6: ( 'Bag' )
                     {
-                    // InternalOCLinEcore.g:5098:6: ( 'Bag' )
-                    // InternalOCLinEcore.g:5099:1: 'Bag'
+                    // InternalOCLinEcore.g:5110:6: ( 'Bag' )
+                    // InternalOCLinEcore.g:5111:1: 'Bag'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCollectionTypeIdentifierAccess().getBagKeyword_1()); 
@@ -17767,10 +17835,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5106:6: ( 'Sequence' )
+                    // InternalOCLinEcore.g:5118:6: ( 'Sequence' )
                     {
-                    // InternalOCLinEcore.g:5106:6: ( 'Sequence' )
-                    // InternalOCLinEcore.g:5107:1: 'Sequence'
+                    // InternalOCLinEcore.g:5118:6: ( 'Sequence' )
+                    // InternalOCLinEcore.g:5119:1: 'Sequence'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCollectionTypeIdentifierAccess().getSequenceKeyword_2()); 
@@ -17786,10 +17854,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:5114:6: ( 'Collection' )
+                    // InternalOCLinEcore.g:5126:6: ( 'Collection' )
                     {
-                    // InternalOCLinEcore.g:5114:6: ( 'Collection' )
-                    // InternalOCLinEcore.g:5115:1: 'Collection'
+                    // InternalOCLinEcore.g:5126:6: ( 'Collection' )
+                    // InternalOCLinEcore.g:5127:1: 'Collection'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCollectionTypeIdentifierAccess().getCollectionKeyword_3()); 
@@ -17805,10 +17873,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:5122:6: ( 'OrderedSet' )
+                    // InternalOCLinEcore.g:5134:6: ( 'OrderedSet' )
                     {
-                    // InternalOCLinEcore.g:5122:6: ( 'OrderedSet' )
-                    // InternalOCLinEcore.g:5123:1: 'OrderedSet'
+                    // InternalOCLinEcore.g:5134:6: ( 'OrderedSet' )
+                    // InternalOCLinEcore.g:5135:1: 'OrderedSet'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCollectionTypeIdentifierAccess().getOrderedSetKeyword_4()); 
@@ -17841,27 +17909,27 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Alternatives"
-    // InternalOCLinEcore.g:5135:1: rule__CollectionLiteralPartCS__Alternatives : ( ( ( rule__CollectionLiteralPartCS__Group_0__0 ) ) | ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) ) );
+    // InternalOCLinEcore.g:5147:1: rule__CollectionLiteralPartCS__Alternatives : ( ( ( rule__CollectionLiteralPartCS__Group_0__0 ) ) | ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) ) );
     public final void rule__CollectionLiteralPartCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5139:1: ( ( ( rule__CollectionLiteralPartCS__Group_0__0 ) ) | ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) ) )
+            // InternalOCLinEcore.g:5151:1: ( ( ( rule__CollectionLiteralPartCS__Group_0__0 ) ) | ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) ) )
             int alt53=2;
             alt53 = dfa53.predict(input);
             switch (alt53) {
                 case 1 :
-                    // InternalOCLinEcore.g:5140:1: ( ( rule__CollectionLiteralPartCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5152:1: ( ( rule__CollectionLiteralPartCS__Group_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:5140:1: ( ( rule__CollectionLiteralPartCS__Group_0__0 ) )
-                    // InternalOCLinEcore.g:5141:1: ( rule__CollectionLiteralPartCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5152:1: ( ( rule__CollectionLiteralPartCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5153:1: ( rule__CollectionLiteralPartCS__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCollectionLiteralPartCSAccess().getGroup_0()); 
                     }
-                    // InternalOCLinEcore.g:5142:1: ( rule__CollectionLiteralPartCS__Group_0__0 )
-                    // InternalOCLinEcore.g:5142:2: rule__CollectionLiteralPartCS__Group_0__0
+                    // InternalOCLinEcore.g:5154:1: ( rule__CollectionLiteralPartCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5154:2: rule__CollectionLiteralPartCS__Group_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__CollectionLiteralPartCS__Group_0__0();
@@ -17881,16 +17949,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5146:6: ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) )
+                    // InternalOCLinEcore.g:5158:6: ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) )
                     {
-                    // InternalOCLinEcore.g:5146:6: ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) )
-                    // InternalOCLinEcore.g:5147:1: ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 )
+                    // InternalOCLinEcore.g:5158:6: ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) )
+                    // InternalOCLinEcore.g:5159:1: ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCollectionLiteralPartCSAccess().getOwnedExpressionAssignment_1()); 
                     }
-                    // InternalOCLinEcore.g:5148:1: ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 )
-                    // InternalOCLinEcore.g:5148:2: rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1
+                    // InternalOCLinEcore.g:5160:1: ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 )
+                    // InternalOCLinEcore.g:5160:2: rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1();
@@ -17927,21 +17995,21 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0"
-    // InternalOCLinEcore.g:5157:1: rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 : ( ( ruleExpCS ) | ( rulePatternExpCS ) );
+    // InternalOCLinEcore.g:5169:1: rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 : ( ( ruleExpCS ) | ( rulePatternExpCS ) );
     public final void rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5161:1: ( ( ruleExpCS ) | ( rulePatternExpCS ) )
+            // InternalOCLinEcore.g:5173:1: ( ( ruleExpCS ) | ( rulePatternExpCS ) )
             int alt54=2;
             alt54 = dfa54.predict(input);
             switch (alt54) {
                 case 1 :
-                    // InternalOCLinEcore.g:5162:1: ( ruleExpCS )
+                    // InternalOCLinEcore.g:5174:1: ( ruleExpCS )
                     {
-                    // InternalOCLinEcore.g:5162:1: ( ruleExpCS )
-                    // InternalOCLinEcore.g:5163:1: ruleExpCS
+                    // InternalOCLinEcore.g:5174:1: ( ruleExpCS )
+                    // InternalOCLinEcore.g:5175:1: ruleExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getShadowPartCSAccess().getOwnedInitExpressionExpCSParserRuleCall_2_0_0()); 
@@ -17961,10 +18029,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5168:6: ( rulePatternExpCS )
+                    // InternalOCLinEcore.g:5180:6: ( rulePatternExpCS )
                     {
-                    // InternalOCLinEcore.g:5168:6: ( rulePatternExpCS )
-                    // InternalOCLinEcore.g:5169:1: rulePatternExpCS
+                    // InternalOCLinEcore.g:5180:6: ( rulePatternExpCS )
+                    // InternalOCLinEcore.g:5181:1: rulePatternExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getShadowPartCSAccess().getOwnedInitExpressionPatternExpCSParserRuleCall_2_0_1()); 
@@ -18001,13 +18069,13 @@
 
 
     // $ANTLR start "rule__PrimitiveLiteralExpCS__Alternatives"
-    // InternalOCLinEcore.g:5179:1: rule__PrimitiveLiteralExpCS__Alternatives : ( ( ruleNumberLiteralExpCS ) | ( ruleStringLiteralExpCS ) | ( ruleBooleanLiteralExpCS ) | ( ruleUnlimitedNaturalLiteralExpCS ) | ( ruleInvalidLiteralExpCS ) | ( ruleNullLiteralExpCS ) );
+    // InternalOCLinEcore.g:5191:1: rule__PrimitiveLiteralExpCS__Alternatives : ( ( ruleNumberLiteralExpCS ) | ( ruleStringLiteralExpCS ) | ( ruleBooleanLiteralExpCS ) | ( ruleUnlimitedNaturalLiteralExpCS ) | ( ruleInvalidLiteralExpCS ) | ( ruleNullLiteralExpCS ) );
     public final void rule__PrimitiveLiteralExpCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5183:1: ( ( ruleNumberLiteralExpCS ) | ( ruleStringLiteralExpCS ) | ( ruleBooleanLiteralExpCS ) | ( ruleUnlimitedNaturalLiteralExpCS ) | ( ruleInvalidLiteralExpCS ) | ( ruleNullLiteralExpCS ) )
+            // InternalOCLinEcore.g:5195:1: ( ( ruleNumberLiteralExpCS ) | ( ruleStringLiteralExpCS ) | ( ruleBooleanLiteralExpCS ) | ( ruleUnlimitedNaturalLiteralExpCS ) | ( ruleInvalidLiteralExpCS ) | ( ruleNullLiteralExpCS ) )
             int alt55=6;
             switch ( input.LA(1) ) {
             case RULE_INT:
@@ -18051,10 +18119,10 @@
 
             switch (alt55) {
                 case 1 :
-                    // InternalOCLinEcore.g:5184:1: ( ruleNumberLiteralExpCS )
+                    // InternalOCLinEcore.g:5196:1: ( ruleNumberLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5184:1: ( ruleNumberLiteralExpCS )
-                    // InternalOCLinEcore.g:5185:1: ruleNumberLiteralExpCS
+                    // InternalOCLinEcore.g:5196:1: ( ruleNumberLiteralExpCS )
+                    // InternalOCLinEcore.g:5197:1: ruleNumberLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveLiteralExpCSAccess().getNumberLiteralExpCSParserRuleCall_0()); 
@@ -18074,10 +18142,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5190:6: ( ruleStringLiteralExpCS )
+                    // InternalOCLinEcore.g:5202:6: ( ruleStringLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5190:6: ( ruleStringLiteralExpCS )
-                    // InternalOCLinEcore.g:5191:1: ruleStringLiteralExpCS
+                    // InternalOCLinEcore.g:5202:6: ( ruleStringLiteralExpCS )
+                    // InternalOCLinEcore.g:5203:1: ruleStringLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveLiteralExpCSAccess().getStringLiteralExpCSParserRuleCall_1()); 
@@ -18097,10 +18165,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5196:6: ( ruleBooleanLiteralExpCS )
+                    // InternalOCLinEcore.g:5208:6: ( ruleBooleanLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5196:6: ( ruleBooleanLiteralExpCS )
-                    // InternalOCLinEcore.g:5197:1: ruleBooleanLiteralExpCS
+                    // InternalOCLinEcore.g:5208:6: ( ruleBooleanLiteralExpCS )
+                    // InternalOCLinEcore.g:5209:1: ruleBooleanLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveLiteralExpCSAccess().getBooleanLiteralExpCSParserRuleCall_2()); 
@@ -18120,10 +18188,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:5202:6: ( ruleUnlimitedNaturalLiteralExpCS )
+                    // InternalOCLinEcore.g:5214:6: ( ruleUnlimitedNaturalLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5202:6: ( ruleUnlimitedNaturalLiteralExpCS )
-                    // InternalOCLinEcore.g:5203:1: ruleUnlimitedNaturalLiteralExpCS
+                    // InternalOCLinEcore.g:5214:6: ( ruleUnlimitedNaturalLiteralExpCS )
+                    // InternalOCLinEcore.g:5215:1: ruleUnlimitedNaturalLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveLiteralExpCSAccess().getUnlimitedNaturalLiteralExpCSParserRuleCall_3()); 
@@ -18143,10 +18211,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:5208:6: ( ruleInvalidLiteralExpCS )
+                    // InternalOCLinEcore.g:5220:6: ( ruleInvalidLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5208:6: ( ruleInvalidLiteralExpCS )
-                    // InternalOCLinEcore.g:5209:1: ruleInvalidLiteralExpCS
+                    // InternalOCLinEcore.g:5220:6: ( ruleInvalidLiteralExpCS )
+                    // InternalOCLinEcore.g:5221:1: ruleInvalidLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveLiteralExpCSAccess().getInvalidLiteralExpCSParserRuleCall_4()); 
@@ -18166,10 +18234,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:5214:6: ( ruleNullLiteralExpCS )
+                    // InternalOCLinEcore.g:5226:6: ( ruleNullLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5214:6: ( ruleNullLiteralExpCS )
-                    // InternalOCLinEcore.g:5215:1: ruleNullLiteralExpCS
+                    // InternalOCLinEcore.g:5226:6: ( ruleNullLiteralExpCS )
+                    // InternalOCLinEcore.g:5227:1: ruleNullLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimitiveLiteralExpCSAccess().getNullLiteralExpCSParserRuleCall_5()); 
@@ -18206,13 +18274,13 @@
 
 
     // $ANTLR start "rule__BooleanLiteralExpCS__Alternatives"
-    // InternalOCLinEcore.g:5225:1: rule__BooleanLiteralExpCS__Alternatives : ( ( ( rule__BooleanLiteralExpCS__SymbolAssignment_0 ) ) | ( ( rule__BooleanLiteralExpCS__SymbolAssignment_1 ) ) );
+    // InternalOCLinEcore.g:5237:1: rule__BooleanLiteralExpCS__Alternatives : ( ( ( rule__BooleanLiteralExpCS__SymbolAssignment_0 ) ) | ( ( rule__BooleanLiteralExpCS__SymbolAssignment_1 ) ) );
     public final void rule__BooleanLiteralExpCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5229:1: ( ( ( rule__BooleanLiteralExpCS__SymbolAssignment_0 ) ) | ( ( rule__BooleanLiteralExpCS__SymbolAssignment_1 ) ) )
+            // InternalOCLinEcore.g:5241:1: ( ( ( rule__BooleanLiteralExpCS__SymbolAssignment_0 ) ) | ( ( rule__BooleanLiteralExpCS__SymbolAssignment_1 ) ) )
             int alt56=2;
             int LA56_0 = input.LA(1);
 
@@ -18231,16 +18299,16 @@
             }
             switch (alt56) {
                 case 1 :
-                    // InternalOCLinEcore.g:5230:1: ( ( rule__BooleanLiteralExpCS__SymbolAssignment_0 ) )
+                    // InternalOCLinEcore.g:5242:1: ( ( rule__BooleanLiteralExpCS__SymbolAssignment_0 ) )
                     {
-                    // InternalOCLinEcore.g:5230:1: ( ( rule__BooleanLiteralExpCS__SymbolAssignment_0 ) )
-                    // InternalOCLinEcore.g:5231:1: ( rule__BooleanLiteralExpCS__SymbolAssignment_0 )
+                    // InternalOCLinEcore.g:5242:1: ( ( rule__BooleanLiteralExpCS__SymbolAssignment_0 ) )
+                    // InternalOCLinEcore.g:5243:1: ( rule__BooleanLiteralExpCS__SymbolAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBooleanLiteralExpCSAccess().getSymbolAssignment_0()); 
                     }
-                    // InternalOCLinEcore.g:5232:1: ( rule__BooleanLiteralExpCS__SymbolAssignment_0 )
-                    // InternalOCLinEcore.g:5232:2: rule__BooleanLiteralExpCS__SymbolAssignment_0
+                    // InternalOCLinEcore.g:5244:1: ( rule__BooleanLiteralExpCS__SymbolAssignment_0 )
+                    // InternalOCLinEcore.g:5244:2: rule__BooleanLiteralExpCS__SymbolAssignment_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__BooleanLiteralExpCS__SymbolAssignment_0();
@@ -18260,16 +18328,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5236:6: ( ( rule__BooleanLiteralExpCS__SymbolAssignment_1 ) )
+                    // InternalOCLinEcore.g:5248:6: ( ( rule__BooleanLiteralExpCS__SymbolAssignment_1 ) )
                     {
-                    // InternalOCLinEcore.g:5236:6: ( ( rule__BooleanLiteralExpCS__SymbolAssignment_1 ) )
-                    // InternalOCLinEcore.g:5237:1: ( rule__BooleanLiteralExpCS__SymbolAssignment_1 )
+                    // InternalOCLinEcore.g:5248:6: ( ( rule__BooleanLiteralExpCS__SymbolAssignment_1 ) )
+                    // InternalOCLinEcore.g:5249:1: ( rule__BooleanLiteralExpCS__SymbolAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBooleanLiteralExpCSAccess().getSymbolAssignment_1()); 
                     }
-                    // InternalOCLinEcore.g:5238:1: ( rule__BooleanLiteralExpCS__SymbolAssignment_1 )
-                    // InternalOCLinEcore.g:5238:2: rule__BooleanLiteralExpCS__SymbolAssignment_1
+                    // InternalOCLinEcore.g:5250:1: ( rule__BooleanLiteralExpCS__SymbolAssignment_1 )
+                    // InternalOCLinEcore.g:5250:2: rule__BooleanLiteralExpCS__SymbolAssignment_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__BooleanLiteralExpCS__SymbolAssignment_1();
@@ -18306,13 +18374,13 @@
 
 
     // $ANTLR start "rule__TypeLiteralCS__Alternatives"
-    // InternalOCLinEcore.g:5247:1: rule__TypeLiteralCS__Alternatives : ( ( rulePrimitiveTypeCS ) | ( ruleCollectionTypeCS ) | ( ruleMapTypeCS ) | ( ruleTupleTypeCS ) );
+    // InternalOCLinEcore.g:5259:1: rule__TypeLiteralCS__Alternatives : ( ( rulePrimitiveTypeCS ) | ( ruleCollectionTypeCS ) | ( ruleMapTypeCS ) | ( ruleTupleTypeCS ) );
     public final void rule__TypeLiteralCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5251:1: ( ( rulePrimitiveTypeCS ) | ( ruleCollectionTypeCS ) | ( ruleMapTypeCS ) | ( ruleTupleTypeCS ) )
+            // InternalOCLinEcore.g:5263:1: ( ( rulePrimitiveTypeCS ) | ( ruleCollectionTypeCS ) | ( ruleMapTypeCS ) | ( ruleTupleTypeCS ) )
             int alt57=4;
             switch ( input.LA(1) ) {
             case 81:
@@ -18356,10 +18424,10 @@
 
             switch (alt57) {
                 case 1 :
-                    // InternalOCLinEcore.g:5252:1: ( rulePrimitiveTypeCS )
+                    // InternalOCLinEcore.g:5264:1: ( rulePrimitiveTypeCS )
                     {
-                    // InternalOCLinEcore.g:5252:1: ( rulePrimitiveTypeCS )
-                    // InternalOCLinEcore.g:5253:1: rulePrimitiveTypeCS
+                    // InternalOCLinEcore.g:5264:1: ( rulePrimitiveTypeCS )
+                    // InternalOCLinEcore.g:5265:1: rulePrimitiveTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeLiteralCSAccess().getPrimitiveTypeCSParserRuleCall_0()); 
@@ -18379,10 +18447,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5258:6: ( ruleCollectionTypeCS )
+                    // InternalOCLinEcore.g:5270:6: ( ruleCollectionTypeCS )
                     {
-                    // InternalOCLinEcore.g:5258:6: ( ruleCollectionTypeCS )
-                    // InternalOCLinEcore.g:5259:1: ruleCollectionTypeCS
+                    // InternalOCLinEcore.g:5270:6: ( ruleCollectionTypeCS )
+                    // InternalOCLinEcore.g:5271:1: ruleCollectionTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeLiteralCSAccess().getCollectionTypeCSParserRuleCall_1()); 
@@ -18402,10 +18470,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5264:6: ( ruleMapTypeCS )
+                    // InternalOCLinEcore.g:5276:6: ( ruleMapTypeCS )
                     {
-                    // InternalOCLinEcore.g:5264:6: ( ruleMapTypeCS )
-                    // InternalOCLinEcore.g:5265:1: ruleMapTypeCS
+                    // InternalOCLinEcore.g:5276:6: ( ruleMapTypeCS )
+                    // InternalOCLinEcore.g:5277:1: ruleMapTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeLiteralCSAccess().getMapTypeCSParserRuleCall_2()); 
@@ -18425,10 +18493,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:5270:6: ( ruleTupleTypeCS )
+                    // InternalOCLinEcore.g:5282:6: ( ruleTupleTypeCS )
                     {
-                    // InternalOCLinEcore.g:5270:6: ( ruleTupleTypeCS )
-                    // InternalOCLinEcore.g:5271:1: ruleTupleTypeCS
+                    // InternalOCLinEcore.g:5282:6: ( ruleTupleTypeCS )
+                    // InternalOCLinEcore.g:5283:1: ruleTupleTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeLiteralCSAccess().getTupleTypeCSParserRuleCall_3()); 
@@ -18465,21 +18533,21 @@
 
 
     // $ANTLR start "rule__TypeExpCS__Alternatives_0"
-    // InternalOCLinEcore.g:5281:1: rule__TypeExpCS__Alternatives_0 : ( ( ruleTypeNameExpCS ) | ( ruleTypeLiteralCS ) | ( ruleCollectionPatternCS ) );
+    // InternalOCLinEcore.g:5293:1: rule__TypeExpCS__Alternatives_0 : ( ( ruleTypeNameExpCS ) | ( ruleTypeLiteralCS ) | ( ruleCollectionPatternCS ) );
     public final void rule__TypeExpCS__Alternatives_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5285:1: ( ( ruleTypeNameExpCS ) | ( ruleTypeLiteralCS ) | ( ruleCollectionPatternCS ) )
+            // InternalOCLinEcore.g:5297:1: ( ( ruleTypeNameExpCS ) | ( ruleTypeLiteralCS ) | ( ruleCollectionPatternCS ) )
             int alt58=3;
             alt58 = dfa58.predict(input);
             switch (alt58) {
                 case 1 :
-                    // InternalOCLinEcore.g:5286:1: ( ruleTypeNameExpCS )
+                    // InternalOCLinEcore.g:5298:1: ( ruleTypeNameExpCS )
                     {
-                    // InternalOCLinEcore.g:5286:1: ( ruleTypeNameExpCS )
-                    // InternalOCLinEcore.g:5287:1: ruleTypeNameExpCS
+                    // InternalOCLinEcore.g:5298:1: ( ruleTypeNameExpCS )
+                    // InternalOCLinEcore.g:5299:1: ruleTypeNameExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeExpCSAccess().getTypeNameExpCSParserRuleCall_0_0()); 
@@ -18499,10 +18567,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5292:6: ( ruleTypeLiteralCS )
+                    // InternalOCLinEcore.g:5304:6: ( ruleTypeLiteralCS )
                     {
-                    // InternalOCLinEcore.g:5292:6: ( ruleTypeLiteralCS )
-                    // InternalOCLinEcore.g:5293:1: ruleTypeLiteralCS
+                    // InternalOCLinEcore.g:5304:6: ( ruleTypeLiteralCS )
+                    // InternalOCLinEcore.g:5305:1: ruleTypeLiteralCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeExpCSAccess().getTypeLiteralCSParserRuleCall_0_1()); 
@@ -18522,10 +18590,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5298:6: ( ruleCollectionPatternCS )
+                    // InternalOCLinEcore.g:5310:6: ( ruleCollectionPatternCS )
                     {
-                    // InternalOCLinEcore.g:5298:6: ( ruleCollectionPatternCS )
-                    // InternalOCLinEcore.g:5299:1: ruleCollectionPatternCS
+                    // InternalOCLinEcore.g:5310:6: ( ruleCollectionPatternCS )
+                    // InternalOCLinEcore.g:5311:1: ruleCollectionPatternCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeExpCSAccess().getCollectionPatternCSParserRuleCall_0_2()); 
@@ -18562,27 +18630,27 @@
 
 
     // $ANTLR start "rule__ExpCS__Alternatives"
-    // InternalOCLinEcore.g:5309:1: rule__ExpCS__Alternatives : ( ( ( rule__ExpCS__Group_0__0 ) ) | ( rulePrefixedLetExpCS ) );
+    // InternalOCLinEcore.g:5321:1: rule__ExpCS__Alternatives : ( ( ( rule__ExpCS__Group_0__0 ) ) | ( rulePrefixedLetExpCS ) );
     public final void rule__ExpCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5313:1: ( ( ( rule__ExpCS__Group_0__0 ) ) | ( rulePrefixedLetExpCS ) )
+            // InternalOCLinEcore.g:5325:1: ( ( ( rule__ExpCS__Group_0__0 ) ) | ( rulePrefixedLetExpCS ) )
             int alt59=2;
             alt59 = dfa59.predict(input);
             switch (alt59) {
                 case 1 :
-                    // InternalOCLinEcore.g:5314:1: ( ( rule__ExpCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5326:1: ( ( rule__ExpCS__Group_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:5314:1: ( ( rule__ExpCS__Group_0__0 ) )
-                    // InternalOCLinEcore.g:5315:1: ( rule__ExpCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5326:1: ( ( rule__ExpCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5327:1: ( rule__ExpCS__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExpCSAccess().getGroup_0()); 
                     }
-                    // InternalOCLinEcore.g:5316:1: ( rule__ExpCS__Group_0__0 )
-                    // InternalOCLinEcore.g:5316:2: rule__ExpCS__Group_0__0
+                    // InternalOCLinEcore.g:5328:1: ( rule__ExpCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5328:2: rule__ExpCS__Group_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ExpCS__Group_0__0();
@@ -18602,10 +18670,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5320:6: ( rulePrefixedLetExpCS )
+                    // InternalOCLinEcore.g:5332:6: ( rulePrefixedLetExpCS )
                     {
-                    // InternalOCLinEcore.g:5320:6: ( rulePrefixedLetExpCS )
-                    // InternalOCLinEcore.g:5321:1: rulePrefixedLetExpCS
+                    // InternalOCLinEcore.g:5332:6: ( rulePrefixedLetExpCS )
+                    // InternalOCLinEcore.g:5333:1: rulePrefixedLetExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExpCSAccess().getPrefixedLetExpCSParserRuleCall_1()); 
@@ -18642,13 +18710,13 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__Alternatives"
-    // InternalOCLinEcore.g:5331:1: rule__PrefixedLetExpCS__Alternatives : ( ( ( rule__PrefixedLetExpCS__Group_0__0 ) ) | ( ruleLetExpCS ) );
+    // InternalOCLinEcore.g:5343:1: rule__PrefixedLetExpCS__Alternatives : ( ( ( rule__PrefixedLetExpCS__Group_0__0 ) ) | ( ruleLetExpCS ) );
     public final void rule__PrefixedLetExpCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5335:1: ( ( ( rule__PrefixedLetExpCS__Group_0__0 ) ) | ( ruleLetExpCS ) )
+            // InternalOCLinEcore.g:5347:1: ( ( ( rule__PrefixedLetExpCS__Group_0__0 ) ) | ( ruleLetExpCS ) )
             int alt60=2;
             int LA60_0 = input.LA(1);
 
@@ -18667,16 +18735,16 @@
             }
             switch (alt60) {
                 case 1 :
-                    // InternalOCLinEcore.g:5336:1: ( ( rule__PrefixedLetExpCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5348:1: ( ( rule__PrefixedLetExpCS__Group_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:5336:1: ( ( rule__PrefixedLetExpCS__Group_0__0 ) )
-                    // InternalOCLinEcore.g:5337:1: ( rule__PrefixedLetExpCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5348:1: ( ( rule__PrefixedLetExpCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5349:1: ( rule__PrefixedLetExpCS__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrefixedLetExpCSAccess().getGroup_0()); 
                     }
-                    // InternalOCLinEcore.g:5338:1: ( rule__PrefixedLetExpCS__Group_0__0 )
-                    // InternalOCLinEcore.g:5338:2: rule__PrefixedLetExpCS__Group_0__0
+                    // InternalOCLinEcore.g:5350:1: ( rule__PrefixedLetExpCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5350:2: rule__PrefixedLetExpCS__Group_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PrefixedLetExpCS__Group_0__0();
@@ -18696,10 +18764,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5342:6: ( ruleLetExpCS )
+                    // InternalOCLinEcore.g:5354:6: ( ruleLetExpCS )
                     {
-                    // InternalOCLinEcore.g:5342:6: ( ruleLetExpCS )
-                    // InternalOCLinEcore.g:5343:1: ruleLetExpCS
+                    // InternalOCLinEcore.g:5354:6: ( ruleLetExpCS )
+                    // InternalOCLinEcore.g:5355:1: ruleLetExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrefixedLetExpCSAccess().getLetExpCSParserRuleCall_1()); 
@@ -18736,13 +18804,13 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__Alternatives"
-    // InternalOCLinEcore.g:5353:1: rule__PrefixedPrimaryExpCS__Alternatives : ( ( ( rule__PrefixedPrimaryExpCS__Group_0__0 ) ) | ( rulePrimaryExpCS ) );
+    // InternalOCLinEcore.g:5365:1: rule__PrefixedPrimaryExpCS__Alternatives : ( ( ( rule__PrefixedPrimaryExpCS__Group_0__0 ) ) | ( rulePrimaryExpCS ) );
     public final void rule__PrefixedPrimaryExpCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5357:1: ( ( ( rule__PrefixedPrimaryExpCS__Group_0__0 ) ) | ( rulePrimaryExpCS ) )
+            // InternalOCLinEcore.g:5369:1: ( ( ( rule__PrefixedPrimaryExpCS__Group_0__0 ) ) | ( rulePrimaryExpCS ) )
             int alt61=2;
             int LA61_0 = input.LA(1);
 
@@ -18761,16 +18829,16 @@
             }
             switch (alt61) {
                 case 1 :
-                    // InternalOCLinEcore.g:5358:1: ( ( rule__PrefixedPrimaryExpCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5370:1: ( ( rule__PrefixedPrimaryExpCS__Group_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:5358:1: ( ( rule__PrefixedPrimaryExpCS__Group_0__0 ) )
-                    // InternalOCLinEcore.g:5359:1: ( rule__PrefixedPrimaryExpCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5370:1: ( ( rule__PrefixedPrimaryExpCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5371:1: ( rule__PrefixedPrimaryExpCS__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrefixedPrimaryExpCSAccess().getGroup_0()); 
                     }
-                    // InternalOCLinEcore.g:5360:1: ( rule__PrefixedPrimaryExpCS__Group_0__0 )
-                    // InternalOCLinEcore.g:5360:2: rule__PrefixedPrimaryExpCS__Group_0__0
+                    // InternalOCLinEcore.g:5372:1: ( rule__PrefixedPrimaryExpCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5372:2: rule__PrefixedPrimaryExpCS__Group_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PrefixedPrimaryExpCS__Group_0__0();
@@ -18790,10 +18858,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5364:6: ( rulePrimaryExpCS )
+                    // InternalOCLinEcore.g:5376:6: ( rulePrimaryExpCS )
                     {
-                    // InternalOCLinEcore.g:5364:6: ( rulePrimaryExpCS )
-                    // InternalOCLinEcore.g:5365:1: rulePrimaryExpCS
+                    // InternalOCLinEcore.g:5376:6: ( rulePrimaryExpCS )
+                    // InternalOCLinEcore.g:5377:1: rulePrimaryExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrefixedPrimaryExpCSAccess().getPrimaryExpCSParserRuleCall_1()); 
@@ -18830,21 +18898,21 @@
 
 
     // $ANTLR start "rule__PrimaryExpCS__Alternatives"
-    // InternalOCLinEcore.g:5375:1: rule__PrimaryExpCS__Alternatives : ( ( ruleNestedExpCS ) | ( ruleIfExpCS ) | ( ruleSelfExpCS ) | ( rulePrimitiveLiteralExpCS ) | ( ruleTupleLiteralExpCS ) | ( ruleMapLiteralExpCS ) | ( ruleCollectionLiteralExpCS ) | ( ruleLambdaLiteralExpCS ) | ( ruleTypeLiteralExpCS ) | ( ruleNameExpCS ) );
+    // InternalOCLinEcore.g:5387:1: rule__PrimaryExpCS__Alternatives : ( ( ruleNestedExpCS ) | ( ruleIfExpCS ) | ( ruleSelfExpCS ) | ( rulePrimitiveLiteralExpCS ) | ( ruleTupleLiteralExpCS ) | ( ruleMapLiteralExpCS ) | ( ruleCollectionLiteralExpCS ) | ( ruleLambdaLiteralExpCS ) | ( ruleTypeLiteralExpCS ) | ( ruleNameExpCS ) );
     public final void rule__PrimaryExpCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5379:1: ( ( ruleNestedExpCS ) | ( ruleIfExpCS ) | ( ruleSelfExpCS ) | ( rulePrimitiveLiteralExpCS ) | ( ruleTupleLiteralExpCS ) | ( ruleMapLiteralExpCS ) | ( ruleCollectionLiteralExpCS ) | ( ruleLambdaLiteralExpCS ) | ( ruleTypeLiteralExpCS ) | ( ruleNameExpCS ) )
+            // InternalOCLinEcore.g:5391:1: ( ( ruleNestedExpCS ) | ( ruleIfExpCS ) | ( ruleSelfExpCS ) | ( rulePrimitiveLiteralExpCS ) | ( ruleTupleLiteralExpCS ) | ( ruleMapLiteralExpCS ) | ( ruleCollectionLiteralExpCS ) | ( ruleLambdaLiteralExpCS ) | ( ruleTypeLiteralExpCS ) | ( ruleNameExpCS ) )
             int alt62=10;
             alt62 = dfa62.predict(input);
             switch (alt62) {
                 case 1 :
-                    // InternalOCLinEcore.g:5380:1: ( ruleNestedExpCS )
+                    // InternalOCLinEcore.g:5392:1: ( ruleNestedExpCS )
                     {
-                    // InternalOCLinEcore.g:5380:1: ( ruleNestedExpCS )
-                    // InternalOCLinEcore.g:5381:1: ruleNestedExpCS
+                    // InternalOCLinEcore.g:5392:1: ( ruleNestedExpCS )
+                    // InternalOCLinEcore.g:5393:1: ruleNestedExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getNestedExpCSParserRuleCall_0()); 
@@ -18864,10 +18932,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5386:6: ( ruleIfExpCS )
+                    // InternalOCLinEcore.g:5398:6: ( ruleIfExpCS )
                     {
-                    // InternalOCLinEcore.g:5386:6: ( ruleIfExpCS )
-                    // InternalOCLinEcore.g:5387:1: ruleIfExpCS
+                    // InternalOCLinEcore.g:5398:6: ( ruleIfExpCS )
+                    // InternalOCLinEcore.g:5399:1: ruleIfExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getIfExpCSParserRuleCall_1()); 
@@ -18887,10 +18955,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5392:6: ( ruleSelfExpCS )
+                    // InternalOCLinEcore.g:5404:6: ( ruleSelfExpCS )
                     {
-                    // InternalOCLinEcore.g:5392:6: ( ruleSelfExpCS )
-                    // InternalOCLinEcore.g:5393:1: ruleSelfExpCS
+                    // InternalOCLinEcore.g:5404:6: ( ruleSelfExpCS )
+                    // InternalOCLinEcore.g:5405:1: ruleSelfExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getSelfExpCSParserRuleCall_2()); 
@@ -18910,10 +18978,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:5398:6: ( rulePrimitiveLiteralExpCS )
+                    // InternalOCLinEcore.g:5410:6: ( rulePrimitiveLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5398:6: ( rulePrimitiveLiteralExpCS )
-                    // InternalOCLinEcore.g:5399:1: rulePrimitiveLiteralExpCS
+                    // InternalOCLinEcore.g:5410:6: ( rulePrimitiveLiteralExpCS )
+                    // InternalOCLinEcore.g:5411:1: rulePrimitiveLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getPrimitiveLiteralExpCSParserRuleCall_3()); 
@@ -18933,10 +19001,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:5404:6: ( ruleTupleLiteralExpCS )
+                    // InternalOCLinEcore.g:5416:6: ( ruleTupleLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5404:6: ( ruleTupleLiteralExpCS )
-                    // InternalOCLinEcore.g:5405:1: ruleTupleLiteralExpCS
+                    // InternalOCLinEcore.g:5416:6: ( ruleTupleLiteralExpCS )
+                    // InternalOCLinEcore.g:5417:1: ruleTupleLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getTupleLiteralExpCSParserRuleCall_4()); 
@@ -18956,10 +19024,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:5410:6: ( ruleMapLiteralExpCS )
+                    // InternalOCLinEcore.g:5422:6: ( ruleMapLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5410:6: ( ruleMapLiteralExpCS )
-                    // InternalOCLinEcore.g:5411:1: ruleMapLiteralExpCS
+                    // InternalOCLinEcore.g:5422:6: ( ruleMapLiteralExpCS )
+                    // InternalOCLinEcore.g:5423:1: ruleMapLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getMapLiteralExpCSParserRuleCall_5()); 
@@ -18979,10 +19047,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:5416:6: ( ruleCollectionLiteralExpCS )
+                    // InternalOCLinEcore.g:5428:6: ( ruleCollectionLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5416:6: ( ruleCollectionLiteralExpCS )
-                    // InternalOCLinEcore.g:5417:1: ruleCollectionLiteralExpCS
+                    // InternalOCLinEcore.g:5428:6: ( ruleCollectionLiteralExpCS )
+                    // InternalOCLinEcore.g:5429:1: ruleCollectionLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getCollectionLiteralExpCSParserRuleCall_6()); 
@@ -19002,10 +19070,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalOCLinEcore.g:5422:6: ( ruleLambdaLiteralExpCS )
+                    // InternalOCLinEcore.g:5434:6: ( ruleLambdaLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5422:6: ( ruleLambdaLiteralExpCS )
-                    // InternalOCLinEcore.g:5423:1: ruleLambdaLiteralExpCS
+                    // InternalOCLinEcore.g:5434:6: ( ruleLambdaLiteralExpCS )
+                    // InternalOCLinEcore.g:5435:1: ruleLambdaLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getLambdaLiteralExpCSParserRuleCall_7()); 
@@ -19025,10 +19093,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalOCLinEcore.g:5428:6: ( ruleTypeLiteralExpCS )
+                    // InternalOCLinEcore.g:5440:6: ( ruleTypeLiteralExpCS )
                     {
-                    // InternalOCLinEcore.g:5428:6: ( ruleTypeLiteralExpCS )
-                    // InternalOCLinEcore.g:5429:1: ruleTypeLiteralExpCS
+                    // InternalOCLinEcore.g:5440:6: ( ruleTypeLiteralExpCS )
+                    // InternalOCLinEcore.g:5441:1: ruleTypeLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getTypeLiteralExpCSParserRuleCall_8()); 
@@ -19048,10 +19116,10 @@
                     }
                     break;
                 case 10 :
-                    // InternalOCLinEcore.g:5434:6: ( ruleNameExpCS )
+                    // InternalOCLinEcore.g:5446:6: ( ruleNameExpCS )
                     {
-                    // InternalOCLinEcore.g:5434:6: ( ruleNameExpCS )
-                    // InternalOCLinEcore.g:5435:1: ruleNameExpCS
+                    // InternalOCLinEcore.g:5446:6: ( ruleNameExpCS )
+                    // InternalOCLinEcore.g:5447:1: ruleNameExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getPrimaryExpCSAccess().getNameExpCSParserRuleCall_9()); 
@@ -19088,13 +19156,13 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Alternatives_2"
-    // InternalOCLinEcore.g:5445:1: rule__CurlyBracketedClauseCS__Alternatives_2 : ( ( ( rule__CurlyBracketedClauseCS__Group_2_0__0 )? ) | ( ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 ) ) );
+    // InternalOCLinEcore.g:5457:1: rule__CurlyBracketedClauseCS__Alternatives_2 : ( ( ( rule__CurlyBracketedClauseCS__Group_2_0__0 )? ) | ( ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 ) ) );
     public final void rule__CurlyBracketedClauseCS__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5449:1: ( ( ( rule__CurlyBracketedClauseCS__Group_2_0__0 )? ) | ( ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:5461:1: ( ( ( rule__CurlyBracketedClauseCS__Group_2_0__0 )? ) | ( ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 ) ) )
             int alt64=2;
             int LA64_0 = input.LA(1);
 
@@ -19113,15 +19181,15 @@
             }
             switch (alt64) {
                 case 1 :
-                    // InternalOCLinEcore.g:5450:1: ( ( rule__CurlyBracketedClauseCS__Group_2_0__0 )? )
+                    // InternalOCLinEcore.g:5462:1: ( ( rule__CurlyBracketedClauseCS__Group_2_0__0 )? )
                     {
-                    // InternalOCLinEcore.g:5450:1: ( ( rule__CurlyBracketedClauseCS__Group_2_0__0 )? )
-                    // InternalOCLinEcore.g:5451:1: ( rule__CurlyBracketedClauseCS__Group_2_0__0 )?
+                    // InternalOCLinEcore.g:5462:1: ( ( rule__CurlyBracketedClauseCS__Group_2_0__0 )? )
+                    // InternalOCLinEcore.g:5463:1: ( rule__CurlyBracketedClauseCS__Group_2_0__0 )?
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCurlyBracketedClauseCSAccess().getGroup_2_0()); 
                     }
-                    // InternalOCLinEcore.g:5452:1: ( rule__CurlyBracketedClauseCS__Group_2_0__0 )?
+                    // InternalOCLinEcore.g:5464:1: ( rule__CurlyBracketedClauseCS__Group_2_0__0 )?
                     int alt63=2;
                     int LA63_0 = input.LA(1);
 
@@ -19130,7 +19198,7 @@
                     }
                     switch (alt63) {
                         case 1 :
-                            // InternalOCLinEcore.g:5452:2: rule__CurlyBracketedClauseCS__Group_2_0__0
+                            // InternalOCLinEcore.g:5464:2: rule__CurlyBracketedClauseCS__Group_2_0__0
                             {
                             pushFollow(FollowSets000.FOLLOW_2);
                             rule__CurlyBracketedClauseCS__Group_2_0__0();
@@ -19153,16 +19221,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5456:6: ( ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 ) )
+                    // InternalOCLinEcore.g:5468:6: ( ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 ) )
                     {
-                    // InternalOCLinEcore.g:5456:6: ( ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 ) )
-                    // InternalOCLinEcore.g:5457:1: ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 )
+                    // InternalOCLinEcore.g:5468:6: ( ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 ) )
+                    // InternalOCLinEcore.g:5469:1: ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCurlyBracketedClauseCSAccess().getValueAssignment_2_1()); 
                     }
-                    // InternalOCLinEcore.g:5458:1: ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 )
-                    // InternalOCLinEcore.g:5458:2: rule__CurlyBracketedClauseCS__ValueAssignment_2_1
+                    // InternalOCLinEcore.g:5470:1: ( rule__CurlyBracketedClauseCS__ValueAssignment_2_1 )
+                    // InternalOCLinEcore.g:5470:2: rule__CurlyBracketedClauseCS__ValueAssignment_2_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__CurlyBracketedClauseCS__ValueAssignment_2_1();
@@ -19199,13 +19267,13 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Alternatives"
-    // InternalOCLinEcore.g:5467:1: rule__NavigatingArgCS__Alternatives : ( ( ( rule__NavigatingArgCS__Group_0__0 ) ) | ( ( rule__NavigatingArgCS__Group_1__0 ) ) );
+    // InternalOCLinEcore.g:5479:1: rule__NavigatingArgCS__Alternatives : ( ( ( rule__NavigatingArgCS__Group_0__0 ) ) | ( ( rule__NavigatingArgCS__Group_1__0 ) ) );
     public final void rule__NavigatingArgCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5471:1: ( ( ( rule__NavigatingArgCS__Group_0__0 ) ) | ( ( rule__NavigatingArgCS__Group_1__0 ) ) )
+            // InternalOCLinEcore.g:5483:1: ( ( ( rule__NavigatingArgCS__Group_0__0 ) ) | ( ( rule__NavigatingArgCS__Group_1__0 ) ) )
             int alt65=2;
             int LA65_0 = input.LA(1);
 
@@ -19224,16 +19292,16 @@
             }
             switch (alt65) {
                 case 1 :
-                    // InternalOCLinEcore.g:5472:1: ( ( rule__NavigatingArgCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5484:1: ( ( rule__NavigatingArgCS__Group_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:5472:1: ( ( rule__NavigatingArgCS__Group_0__0 ) )
-                    // InternalOCLinEcore.g:5473:1: ( rule__NavigatingArgCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5484:1: ( ( rule__NavigatingArgCS__Group_0__0 ) )
+                    // InternalOCLinEcore.g:5485:1: ( rule__NavigatingArgCS__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNavigatingArgCSAccess().getGroup_0()); 
                     }
-                    // InternalOCLinEcore.g:5474:1: ( rule__NavigatingArgCS__Group_0__0 )
-                    // InternalOCLinEcore.g:5474:2: rule__NavigatingArgCS__Group_0__0
+                    // InternalOCLinEcore.g:5486:1: ( rule__NavigatingArgCS__Group_0__0 )
+                    // InternalOCLinEcore.g:5486:2: rule__NavigatingArgCS__Group_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingArgCS__Group_0__0();
@@ -19253,16 +19321,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5478:6: ( ( rule__NavigatingArgCS__Group_1__0 ) )
+                    // InternalOCLinEcore.g:5490:6: ( ( rule__NavigatingArgCS__Group_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:5478:6: ( ( rule__NavigatingArgCS__Group_1__0 ) )
-                    // InternalOCLinEcore.g:5479:1: ( rule__NavigatingArgCS__Group_1__0 )
+                    // InternalOCLinEcore.g:5490:6: ( ( rule__NavigatingArgCS__Group_1__0 ) )
+                    // InternalOCLinEcore.g:5491:1: ( rule__NavigatingArgCS__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNavigatingArgCSAccess().getGroup_1()); 
                     }
-                    // InternalOCLinEcore.g:5480:1: ( rule__NavigatingArgCS__Group_1__0 )
-                    // InternalOCLinEcore.g:5480:2: rule__NavigatingArgCS__Group_1__0
+                    // InternalOCLinEcore.g:5492:1: ( rule__NavigatingArgCS__Group_1__0 )
+                    // InternalOCLinEcore.g:5492:2: rule__NavigatingArgCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingArgCS__Group_1__0();
@@ -19299,13 +19367,13 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Alternatives_0_1"
-    // InternalOCLinEcore.g:5489:1: rule__NavigatingArgCS__Alternatives_0_1 : ( ( ( rule__NavigatingArgCS__Group_0_1_0__0 ) ) | ( ( rule__NavigatingArgCS__Group_0_1_1__0 ) ) );
+    // InternalOCLinEcore.g:5501:1: rule__NavigatingArgCS__Alternatives_0_1 : ( ( ( rule__NavigatingArgCS__Group_0_1_0__0 ) ) | ( ( rule__NavigatingArgCS__Group_0_1_1__0 ) ) );
     public final void rule__NavigatingArgCS__Alternatives_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5493:1: ( ( ( rule__NavigatingArgCS__Group_0_1_0__0 ) ) | ( ( rule__NavigatingArgCS__Group_0_1_1__0 ) ) )
+            // InternalOCLinEcore.g:5505:1: ( ( ( rule__NavigatingArgCS__Group_0_1_0__0 ) ) | ( ( rule__NavigatingArgCS__Group_0_1_1__0 ) ) )
             int alt66=2;
             int LA66_0 = input.LA(1);
 
@@ -19324,16 +19392,16 @@
             }
             switch (alt66) {
                 case 1 :
-                    // InternalOCLinEcore.g:5494:1: ( ( rule__NavigatingArgCS__Group_0_1_0__0 ) )
+                    // InternalOCLinEcore.g:5506:1: ( ( rule__NavigatingArgCS__Group_0_1_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:5494:1: ( ( rule__NavigatingArgCS__Group_0_1_0__0 ) )
-                    // InternalOCLinEcore.g:5495:1: ( rule__NavigatingArgCS__Group_0_1_0__0 )
+                    // InternalOCLinEcore.g:5506:1: ( ( rule__NavigatingArgCS__Group_0_1_0__0 ) )
+                    // InternalOCLinEcore.g:5507:1: ( rule__NavigatingArgCS__Group_0_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNavigatingArgCSAccess().getGroup_0_1_0()); 
                     }
-                    // InternalOCLinEcore.g:5496:1: ( rule__NavigatingArgCS__Group_0_1_0__0 )
-                    // InternalOCLinEcore.g:5496:2: rule__NavigatingArgCS__Group_0_1_0__0
+                    // InternalOCLinEcore.g:5508:1: ( rule__NavigatingArgCS__Group_0_1_0__0 )
+                    // InternalOCLinEcore.g:5508:2: rule__NavigatingArgCS__Group_0_1_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingArgCS__Group_0_1_0__0();
@@ -19353,16 +19421,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5500:6: ( ( rule__NavigatingArgCS__Group_0_1_1__0 ) )
+                    // InternalOCLinEcore.g:5512:6: ( ( rule__NavigatingArgCS__Group_0_1_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:5500:6: ( ( rule__NavigatingArgCS__Group_0_1_1__0 ) )
-                    // InternalOCLinEcore.g:5501:1: ( rule__NavigatingArgCS__Group_0_1_1__0 )
+                    // InternalOCLinEcore.g:5512:6: ( ( rule__NavigatingArgCS__Group_0_1_1__0 ) )
+                    // InternalOCLinEcore.g:5513:1: ( rule__NavigatingArgCS__Group_0_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNavigatingArgCSAccess().getGroup_0_1_1()); 
                     }
-                    // InternalOCLinEcore.g:5502:1: ( rule__NavigatingArgCS__Group_0_1_1__0 )
-                    // InternalOCLinEcore.g:5502:2: rule__NavigatingArgCS__Group_0_1_1__0
+                    // InternalOCLinEcore.g:5514:1: ( rule__NavigatingArgCS__Group_0_1_1__0 )
+                    // InternalOCLinEcore.g:5514:2: rule__NavigatingArgCS__Group_0_1_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingArgCS__Group_0_1_1__0();
@@ -19399,13 +19467,13 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Alternatives_2"
-    // InternalOCLinEcore.g:5511:1: rule__NavigatingCommaArgCS__Alternatives_2 : ( ( ( rule__NavigatingCommaArgCS__Group_2_0__0 ) ) | ( ( rule__NavigatingCommaArgCS__Group_2_1__0 ) ) );
+    // InternalOCLinEcore.g:5523:1: rule__NavigatingCommaArgCS__Alternatives_2 : ( ( ( rule__NavigatingCommaArgCS__Group_2_0__0 ) ) | ( ( rule__NavigatingCommaArgCS__Group_2_1__0 ) ) );
     public final void rule__NavigatingCommaArgCS__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5515:1: ( ( ( rule__NavigatingCommaArgCS__Group_2_0__0 ) ) | ( ( rule__NavigatingCommaArgCS__Group_2_1__0 ) ) )
+            // InternalOCLinEcore.g:5527:1: ( ( ( rule__NavigatingCommaArgCS__Group_2_0__0 ) ) | ( ( rule__NavigatingCommaArgCS__Group_2_1__0 ) ) )
             int alt67=2;
             int LA67_0 = input.LA(1);
 
@@ -19424,16 +19492,16 @@
             }
             switch (alt67) {
                 case 1 :
-                    // InternalOCLinEcore.g:5516:1: ( ( rule__NavigatingCommaArgCS__Group_2_0__0 ) )
+                    // InternalOCLinEcore.g:5528:1: ( ( rule__NavigatingCommaArgCS__Group_2_0__0 ) )
                     {
-                    // InternalOCLinEcore.g:5516:1: ( ( rule__NavigatingCommaArgCS__Group_2_0__0 ) )
-                    // InternalOCLinEcore.g:5517:1: ( rule__NavigatingCommaArgCS__Group_2_0__0 )
+                    // InternalOCLinEcore.g:5528:1: ( ( rule__NavigatingCommaArgCS__Group_2_0__0 ) )
+                    // InternalOCLinEcore.g:5529:1: ( rule__NavigatingCommaArgCS__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNavigatingCommaArgCSAccess().getGroup_2_0()); 
                     }
-                    // InternalOCLinEcore.g:5518:1: ( rule__NavigatingCommaArgCS__Group_2_0__0 )
-                    // InternalOCLinEcore.g:5518:2: rule__NavigatingCommaArgCS__Group_2_0__0
+                    // InternalOCLinEcore.g:5530:1: ( rule__NavigatingCommaArgCS__Group_2_0__0 )
+                    // InternalOCLinEcore.g:5530:2: rule__NavigatingCommaArgCS__Group_2_0__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingCommaArgCS__Group_2_0__0();
@@ -19453,16 +19521,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5522:6: ( ( rule__NavigatingCommaArgCS__Group_2_1__0 ) )
+                    // InternalOCLinEcore.g:5534:6: ( ( rule__NavigatingCommaArgCS__Group_2_1__0 ) )
                     {
-                    // InternalOCLinEcore.g:5522:6: ( ( rule__NavigatingCommaArgCS__Group_2_1__0 ) )
-                    // InternalOCLinEcore.g:5523:1: ( rule__NavigatingCommaArgCS__Group_2_1__0 )
+                    // InternalOCLinEcore.g:5534:6: ( ( rule__NavigatingCommaArgCS__Group_2_1__0 ) )
+                    // InternalOCLinEcore.g:5535:1: ( rule__NavigatingCommaArgCS__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNavigatingCommaArgCSAccess().getGroup_2_1()); 
                     }
-                    // InternalOCLinEcore.g:5524:1: ( rule__NavigatingCommaArgCS__Group_2_1__0 )
-                    // InternalOCLinEcore.g:5524:2: rule__NavigatingCommaArgCS__Group_2_1__0
+                    // InternalOCLinEcore.g:5536:1: ( rule__NavigatingCommaArgCS__Group_2_1__0 )
+                    // InternalOCLinEcore.g:5536:2: rule__NavigatingCommaArgCS__Group_2_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingCommaArgCS__Group_2_1__0();
@@ -19499,21 +19567,21 @@
 
 
     // $ANTLR start "rule__IfExpCS__OwnedConditionAlternatives_1_0"
-    // InternalOCLinEcore.g:5533:1: rule__IfExpCS__OwnedConditionAlternatives_1_0 : ( ( ruleExpCS ) | ( rulePatternExpCS ) );
+    // InternalOCLinEcore.g:5545:1: rule__IfExpCS__OwnedConditionAlternatives_1_0 : ( ( ruleExpCS ) | ( rulePatternExpCS ) );
     public final void rule__IfExpCS__OwnedConditionAlternatives_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5537:1: ( ( ruleExpCS ) | ( rulePatternExpCS ) )
+            // InternalOCLinEcore.g:5549:1: ( ( ruleExpCS ) | ( rulePatternExpCS ) )
             int alt68=2;
             alt68 = dfa68.predict(input);
             switch (alt68) {
                 case 1 :
-                    // InternalOCLinEcore.g:5538:1: ( ruleExpCS )
+                    // InternalOCLinEcore.g:5550:1: ( ruleExpCS )
                     {
-                    // InternalOCLinEcore.g:5538:1: ( ruleExpCS )
-                    // InternalOCLinEcore.g:5539:1: ruleExpCS
+                    // InternalOCLinEcore.g:5550:1: ( ruleExpCS )
+                    // InternalOCLinEcore.g:5551:1: ruleExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIfExpCSAccess().getOwnedConditionExpCSParserRuleCall_1_0_0()); 
@@ -19533,10 +19601,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5544:6: ( rulePatternExpCS )
+                    // InternalOCLinEcore.g:5556:6: ( rulePatternExpCS )
                     {
-                    // InternalOCLinEcore.g:5544:6: ( rulePatternExpCS )
-                    // InternalOCLinEcore.g:5545:1: rulePatternExpCS
+                    // InternalOCLinEcore.g:5556:6: ( rulePatternExpCS )
+                    // InternalOCLinEcore.g:5557:1: rulePatternExpCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIfExpCSAccess().getOwnedConditionPatternExpCSParserRuleCall_1_0_1()); 
@@ -19573,13 +19641,13 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Alternatives_1"
-    // InternalOCLinEcore.g:5555:1: rule__MultiplicityCS__Alternatives_1 : ( ( ruleMultiplicityBoundsCS ) | ( ruleMultiplicityStringCS ) );
+    // InternalOCLinEcore.g:5567:1: rule__MultiplicityCS__Alternatives_1 : ( ( ruleMultiplicityBoundsCS ) | ( ruleMultiplicityStringCS ) );
     public final void rule__MultiplicityCS__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5559:1: ( ( ruleMultiplicityBoundsCS ) | ( ruleMultiplicityStringCS ) )
+            // InternalOCLinEcore.g:5571:1: ( ( ruleMultiplicityBoundsCS ) | ( ruleMultiplicityStringCS ) )
             int alt69=2;
             int LA69_0 = input.LA(1);
 
@@ -19598,10 +19666,10 @@
             }
             switch (alt69) {
                 case 1 :
-                    // InternalOCLinEcore.g:5560:1: ( ruleMultiplicityBoundsCS )
+                    // InternalOCLinEcore.g:5572:1: ( ruleMultiplicityBoundsCS )
                     {
-                    // InternalOCLinEcore.g:5560:1: ( ruleMultiplicityBoundsCS )
-                    // InternalOCLinEcore.g:5561:1: ruleMultiplicityBoundsCS
+                    // InternalOCLinEcore.g:5572:1: ( ruleMultiplicityBoundsCS )
+                    // InternalOCLinEcore.g:5573:1: ruleMultiplicityBoundsCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplicityCSAccess().getMultiplicityBoundsCSParserRuleCall_1_0()); 
@@ -19621,10 +19689,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5566:6: ( ruleMultiplicityStringCS )
+                    // InternalOCLinEcore.g:5578:6: ( ruleMultiplicityStringCS )
                     {
-                    // InternalOCLinEcore.g:5566:6: ( ruleMultiplicityStringCS )
-                    // InternalOCLinEcore.g:5567:1: ruleMultiplicityStringCS
+                    // InternalOCLinEcore.g:5578:6: ( ruleMultiplicityStringCS )
+                    // InternalOCLinEcore.g:5579:1: ruleMultiplicityStringCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplicityCSAccess().getMultiplicityStringCSParserRuleCall_1_1()); 
@@ -19661,13 +19729,13 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Alternatives_2"
-    // InternalOCLinEcore.g:5577:1: rule__MultiplicityCS__Alternatives_2 : ( ( '|?' ) | ( ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 ) ) );
+    // InternalOCLinEcore.g:5589:1: rule__MultiplicityCS__Alternatives_2 : ( ( '|?' ) | ( ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 ) ) );
     public final void rule__MultiplicityCS__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5581:1: ( ( '|?' ) | ( ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:5593:1: ( ( '|?' ) | ( ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 ) ) )
             int alt70=2;
             int LA70_0 = input.LA(1);
 
@@ -19686,10 +19754,10 @@
             }
             switch (alt70) {
                 case 1 :
-                    // InternalOCLinEcore.g:5582:1: ( '|?' )
+                    // InternalOCLinEcore.g:5594:1: ( '|?' )
                     {
-                    // InternalOCLinEcore.g:5582:1: ( '|?' )
-                    // InternalOCLinEcore.g:5583:1: '|?'
+                    // InternalOCLinEcore.g:5594:1: ( '|?' )
+                    // InternalOCLinEcore.g:5595:1: '|?'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplicityCSAccess().getVerticalLineQuestionMarkKeyword_2_0()); 
@@ -19705,16 +19773,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5590:6: ( ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 ) )
+                    // InternalOCLinEcore.g:5602:6: ( ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 ) )
                     {
-                    // InternalOCLinEcore.g:5590:6: ( ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 ) )
-                    // InternalOCLinEcore.g:5591:1: ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 )
+                    // InternalOCLinEcore.g:5602:6: ( ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 ) )
+                    // InternalOCLinEcore.g:5603:1: ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplicityCSAccess().getIsNullFreeAssignment_2_1()); 
                     }
-                    // InternalOCLinEcore.g:5592:1: ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 )
-                    // InternalOCLinEcore.g:5592:2: rule__MultiplicityCS__IsNullFreeAssignment_2_1
+                    // InternalOCLinEcore.g:5604:1: ( rule__MultiplicityCS__IsNullFreeAssignment_2_1 )
+                    // InternalOCLinEcore.g:5604:2: rule__MultiplicityCS__IsNullFreeAssignment_2_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__MultiplicityCS__IsNullFreeAssignment_2_1();
@@ -19751,13 +19819,13 @@
 
 
     // $ANTLR start "rule__MultiplicityStringCS__StringBoundsAlternatives_0"
-    // InternalOCLinEcore.g:5601:1: rule__MultiplicityStringCS__StringBoundsAlternatives_0 : ( ( '*' ) | ( '+' ) | ( '?' ) );
+    // InternalOCLinEcore.g:5613:1: rule__MultiplicityStringCS__StringBoundsAlternatives_0 : ( ( '*' ) | ( '+' ) | ( '?' ) );
     public final void rule__MultiplicityStringCS__StringBoundsAlternatives_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5605:1: ( ( '*' ) | ( '+' ) | ( '?' ) )
+            // InternalOCLinEcore.g:5617:1: ( ( '*' ) | ( '+' ) | ( '?' ) )
             int alt71=3;
             switch ( input.LA(1) ) {
             case 62:
@@ -19785,10 +19853,10 @@
 
             switch (alt71) {
                 case 1 :
-                    // InternalOCLinEcore.g:5606:1: ( '*' )
+                    // InternalOCLinEcore.g:5618:1: ( '*' )
                     {
-                    // InternalOCLinEcore.g:5606:1: ( '*' )
-                    // InternalOCLinEcore.g:5607:1: '*'
+                    // InternalOCLinEcore.g:5618:1: ( '*' )
+                    // InternalOCLinEcore.g:5619:1: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplicityStringCSAccess().getStringBoundsAsteriskKeyword_0_0()); 
@@ -19804,10 +19872,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5614:6: ( '+' )
+                    // InternalOCLinEcore.g:5626:6: ( '+' )
                     {
-                    // InternalOCLinEcore.g:5614:6: ( '+' )
-                    // InternalOCLinEcore.g:5615:1: '+'
+                    // InternalOCLinEcore.g:5626:6: ( '+' )
+                    // InternalOCLinEcore.g:5627:1: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplicityStringCSAccess().getStringBoundsPlusSignKeyword_0_1()); 
@@ -19823,10 +19891,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5622:6: ( '?' )
+                    // InternalOCLinEcore.g:5634:6: ( '?' )
                     {
-                    // InternalOCLinEcore.g:5622:6: ( '?' )
-                    // InternalOCLinEcore.g:5623:1: '?'
+                    // InternalOCLinEcore.g:5634:6: ( '?' )
+                    // InternalOCLinEcore.g:5635:1: '?'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplicityStringCSAccess().getStringBoundsQuestionMarkKeyword_0_2()); 
@@ -19859,13 +19927,13 @@
 
 
     // $ANTLR start "rule__TypeRefCS__Alternatives"
-    // InternalOCLinEcore.g:5635:1: rule__TypeRefCS__Alternatives : ( ( ruleTypedRefCS ) | ( ruleWildcardTypeRefCS ) );
+    // InternalOCLinEcore.g:5647:1: rule__TypeRefCS__Alternatives : ( ( ruleTypedRefCS ) | ( ruleWildcardTypeRefCS ) );
     public final void rule__TypeRefCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5639:1: ( ( ruleTypedRefCS ) | ( ruleWildcardTypeRefCS ) )
+            // InternalOCLinEcore.g:5651:1: ( ( ruleTypedRefCS ) | ( ruleWildcardTypeRefCS ) )
             int alt72=2;
             int LA72_0 = input.LA(1);
 
@@ -19884,10 +19952,10 @@
             }
             switch (alt72) {
                 case 1 :
-                    // InternalOCLinEcore.g:5640:1: ( ruleTypedRefCS )
+                    // InternalOCLinEcore.g:5652:1: ( ruleTypedRefCS )
                     {
-                    // InternalOCLinEcore.g:5640:1: ( ruleTypedRefCS )
-                    // InternalOCLinEcore.g:5641:1: ruleTypedRefCS
+                    // InternalOCLinEcore.g:5652:1: ( ruleTypedRefCS )
+                    // InternalOCLinEcore.g:5653:1: ruleTypedRefCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRefCSAccess().getTypedRefCSParserRuleCall_0()); 
@@ -19907,10 +19975,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5646:6: ( ruleWildcardTypeRefCS )
+                    // InternalOCLinEcore.g:5658:6: ( ruleWildcardTypeRefCS )
                     {
-                    // InternalOCLinEcore.g:5646:6: ( ruleWildcardTypeRefCS )
-                    // InternalOCLinEcore.g:5647:1: ruleWildcardTypeRefCS
+                    // InternalOCLinEcore.g:5658:6: ( ruleWildcardTypeRefCS )
+                    // InternalOCLinEcore.g:5659:1: ruleWildcardTypeRefCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRefCSAccess().getWildcardTypeRefCSParserRuleCall_1()); 
@@ -19947,13 +20015,13 @@
 
 
     // $ANTLR start "rule__ID__Alternatives"
-    // InternalOCLinEcore.g:5657:1: rule__ID__Alternatives : ( ( RULE_SIMPLE_ID ) | ( RULE_ESCAPED_ID ) );
+    // InternalOCLinEcore.g:5669:1: rule__ID__Alternatives : ( ( RULE_SIMPLE_ID ) | ( RULE_ESCAPED_ID ) );
     public final void rule__ID__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5661:1: ( ( RULE_SIMPLE_ID ) | ( RULE_ESCAPED_ID ) )
+            // InternalOCLinEcore.g:5673:1: ( ( RULE_SIMPLE_ID ) | ( RULE_ESCAPED_ID ) )
             int alt73=2;
             int LA73_0 = input.LA(1);
 
@@ -19972,10 +20040,10 @@
             }
             switch (alt73) {
                 case 1 :
-                    // InternalOCLinEcore.g:5662:1: ( RULE_SIMPLE_ID )
+                    // InternalOCLinEcore.g:5674:1: ( RULE_SIMPLE_ID )
                     {
-                    // InternalOCLinEcore.g:5662:1: ( RULE_SIMPLE_ID )
-                    // InternalOCLinEcore.g:5663:1: RULE_SIMPLE_ID
+                    // InternalOCLinEcore.g:5674:1: ( RULE_SIMPLE_ID )
+                    // InternalOCLinEcore.g:5675:1: RULE_SIMPLE_ID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIDAccess().getSIMPLE_IDTerminalRuleCall_0()); 
@@ -19991,10 +20059,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5668:6: ( RULE_ESCAPED_ID )
+                    // InternalOCLinEcore.g:5680:6: ( RULE_ESCAPED_ID )
                     {
-                    // InternalOCLinEcore.g:5668:6: ( RULE_ESCAPED_ID )
-                    // InternalOCLinEcore.g:5669:1: RULE_ESCAPED_ID
+                    // InternalOCLinEcore.g:5680:6: ( RULE_ESCAPED_ID )
+                    // InternalOCLinEcore.g:5681:1: RULE_ESCAPED_ID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIDAccess().getESCAPED_IDTerminalRuleCall_1()); 
@@ -20027,13 +20095,13 @@
 
 
     // $ANTLR start "rule__UPPER__Alternatives"
-    // InternalOCLinEcore.g:5679:1: rule__UPPER__Alternatives : ( ( RULE_INT ) | ( '*' ) );
+    // InternalOCLinEcore.g:5691:1: rule__UPPER__Alternatives : ( ( RULE_INT ) | ( '*' ) );
     public final void rule__UPPER__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5683:1: ( ( RULE_INT ) | ( '*' ) )
+            // InternalOCLinEcore.g:5695:1: ( ( RULE_INT ) | ( '*' ) )
             int alt74=2;
             int LA74_0 = input.LA(1);
 
@@ -20052,10 +20120,10 @@
             }
             switch (alt74) {
                 case 1 :
-                    // InternalOCLinEcore.g:5684:1: ( RULE_INT )
+                    // InternalOCLinEcore.g:5696:1: ( RULE_INT )
                     {
-                    // InternalOCLinEcore.g:5684:1: ( RULE_INT )
-                    // InternalOCLinEcore.g:5685:1: RULE_INT
+                    // InternalOCLinEcore.g:5696:1: ( RULE_INT )
+                    // InternalOCLinEcore.g:5697:1: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUPPERAccess().getINTTerminalRuleCall_0()); 
@@ -20071,10 +20139,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5690:6: ( '*' )
+                    // InternalOCLinEcore.g:5702:6: ( '*' )
                     {
-                    // InternalOCLinEcore.g:5690:6: ( '*' )
-                    // InternalOCLinEcore.g:5691:1: '*'
+                    // InternalOCLinEcore.g:5702:6: ( '*' )
+                    // InternalOCLinEcore.g:5703:1: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getUPPERAccess().getAsteriskKeyword_1()); 
@@ -20107,14 +20175,14 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group__0"
-    // InternalOCLinEcore.g:5705:1: rule__TopLevelCS__Group__0 : rule__TopLevelCS__Group__0__Impl rule__TopLevelCS__Group__1 ;
+    // InternalOCLinEcore.g:5717:1: rule__TopLevelCS__Group__0 : rule__TopLevelCS__Group__0__Impl rule__TopLevelCS__Group__1 ;
     public final void rule__TopLevelCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5709:1: ( rule__TopLevelCS__Group__0__Impl rule__TopLevelCS__Group__1 )
-            // InternalOCLinEcore.g:5710:2: rule__TopLevelCS__Group__0__Impl rule__TopLevelCS__Group__1
+            // InternalOCLinEcore.g:5721:1: ( rule__TopLevelCS__Group__0__Impl rule__TopLevelCS__Group__1 )
+            // InternalOCLinEcore.g:5722:2: rule__TopLevelCS__Group__0__Impl rule__TopLevelCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_4);
             rule__TopLevelCS__Group__0__Impl();
@@ -20145,23 +20213,23 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group__0__Impl"
-    // InternalOCLinEcore.g:5717:1: rule__TopLevelCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:5729:1: rule__TopLevelCS__Group__0__Impl : ( () ) ;
     public final void rule__TopLevelCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5721:1: ( ( () ) )
-            // InternalOCLinEcore.g:5722:1: ( () )
+            // InternalOCLinEcore.g:5733:1: ( ( () ) )
+            // InternalOCLinEcore.g:5734:1: ( () )
             {
-            // InternalOCLinEcore.g:5722:1: ( () )
-            // InternalOCLinEcore.g:5723:1: ()
+            // InternalOCLinEcore.g:5734:1: ( () )
+            // InternalOCLinEcore.g:5735:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTopLevelCSAccess().getTopLevelCSAction_0()); 
             }
-            // InternalOCLinEcore.g:5724:1: ()
-            // InternalOCLinEcore.g:5726:1: 
+            // InternalOCLinEcore.g:5736:1: ()
+            // InternalOCLinEcore.g:5738:1: 
             {
             }
 
@@ -20186,14 +20254,14 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group__1"
-    // InternalOCLinEcore.g:5736:1: rule__TopLevelCS__Group__1 : rule__TopLevelCS__Group__1__Impl rule__TopLevelCS__Group__2 ;
+    // InternalOCLinEcore.g:5748:1: rule__TopLevelCS__Group__1 : rule__TopLevelCS__Group__1__Impl rule__TopLevelCS__Group__2 ;
     public final void rule__TopLevelCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5740:1: ( rule__TopLevelCS__Group__1__Impl rule__TopLevelCS__Group__2 )
-            // InternalOCLinEcore.g:5741:2: rule__TopLevelCS__Group__1__Impl rule__TopLevelCS__Group__2
+            // InternalOCLinEcore.g:5752:1: ( rule__TopLevelCS__Group__1__Impl rule__TopLevelCS__Group__2 )
+            // InternalOCLinEcore.g:5753:2: rule__TopLevelCS__Group__1__Impl rule__TopLevelCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_4);
             rule__TopLevelCS__Group__1__Impl();
@@ -20224,22 +20292,22 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group__1__Impl"
-    // InternalOCLinEcore.g:5748:1: rule__TopLevelCS__Group__1__Impl : ( ( rule__TopLevelCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:5760:1: rule__TopLevelCS__Group__1__Impl : ( ( rule__TopLevelCS__Group_1__0 )? ) ;
     public final void rule__TopLevelCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5752:1: ( ( ( rule__TopLevelCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:5753:1: ( ( rule__TopLevelCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:5764:1: ( ( ( rule__TopLevelCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:5765:1: ( ( rule__TopLevelCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:5753:1: ( ( rule__TopLevelCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:5754:1: ( rule__TopLevelCS__Group_1__0 )?
+            // InternalOCLinEcore.g:5765:1: ( ( rule__TopLevelCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:5766:1: ( rule__TopLevelCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTopLevelCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:5755:1: ( rule__TopLevelCS__Group_1__0 )?
+            // InternalOCLinEcore.g:5767:1: ( rule__TopLevelCS__Group_1__0 )?
             int alt75=2;
             int LA75_0 = input.LA(1);
 
@@ -20248,7 +20316,7 @@
             }
             switch (alt75) {
                 case 1 :
-                    // InternalOCLinEcore.g:5755:2: rule__TopLevelCS__Group_1__0
+                    // InternalOCLinEcore.g:5767:2: rule__TopLevelCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TopLevelCS__Group_1__0();
@@ -20286,14 +20354,14 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group__2"
-    // InternalOCLinEcore.g:5765:1: rule__TopLevelCS__Group__2 : rule__TopLevelCS__Group__2__Impl rule__TopLevelCS__Group__3 ;
+    // InternalOCLinEcore.g:5777:1: rule__TopLevelCS__Group__2 : rule__TopLevelCS__Group__2__Impl rule__TopLevelCS__Group__3 ;
     public final void rule__TopLevelCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5769:1: ( rule__TopLevelCS__Group__2__Impl rule__TopLevelCS__Group__3 )
-            // InternalOCLinEcore.g:5770:2: rule__TopLevelCS__Group__2__Impl rule__TopLevelCS__Group__3
+            // InternalOCLinEcore.g:5781:1: ( rule__TopLevelCS__Group__2__Impl rule__TopLevelCS__Group__3 )
+            // InternalOCLinEcore.g:5782:2: rule__TopLevelCS__Group__2__Impl rule__TopLevelCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_4);
             rule__TopLevelCS__Group__2__Impl();
@@ -20324,22 +20392,22 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group__2__Impl"
-    // InternalOCLinEcore.g:5777:1: rule__TopLevelCS__Group__2__Impl : ( ( rule__TopLevelCS__OwnedImportsAssignment_2 )* ) ;
+    // InternalOCLinEcore.g:5789:1: rule__TopLevelCS__Group__2__Impl : ( ( rule__TopLevelCS__OwnedImportsAssignment_2 )* ) ;
     public final void rule__TopLevelCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5781:1: ( ( ( rule__TopLevelCS__OwnedImportsAssignment_2 )* ) )
-            // InternalOCLinEcore.g:5782:1: ( ( rule__TopLevelCS__OwnedImportsAssignment_2 )* )
+            // InternalOCLinEcore.g:5793:1: ( ( ( rule__TopLevelCS__OwnedImportsAssignment_2 )* ) )
+            // InternalOCLinEcore.g:5794:1: ( ( rule__TopLevelCS__OwnedImportsAssignment_2 )* )
             {
-            // InternalOCLinEcore.g:5782:1: ( ( rule__TopLevelCS__OwnedImportsAssignment_2 )* )
-            // InternalOCLinEcore.g:5783:1: ( rule__TopLevelCS__OwnedImportsAssignment_2 )*
+            // InternalOCLinEcore.g:5794:1: ( ( rule__TopLevelCS__OwnedImportsAssignment_2 )* )
+            // InternalOCLinEcore.g:5795:1: ( rule__TopLevelCS__OwnedImportsAssignment_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTopLevelCSAccess().getOwnedImportsAssignment_2()); 
             }
-            // InternalOCLinEcore.g:5784:1: ( rule__TopLevelCS__OwnedImportsAssignment_2 )*
+            // InternalOCLinEcore.g:5796:1: ( rule__TopLevelCS__OwnedImportsAssignment_2 )*
             loop76:
             do {
                 int alt76=2;
@@ -20352,7 +20420,7 @@
 
                 switch (alt76) {
             	case 1 :
-            	    // InternalOCLinEcore.g:5784:2: rule__TopLevelCS__OwnedImportsAssignment_2
+            	    // InternalOCLinEcore.g:5796:2: rule__TopLevelCS__OwnedImportsAssignment_2
             	    {
             	    pushFollow(FollowSets000.FOLLOW_5);
             	    rule__TopLevelCS__OwnedImportsAssignment_2();
@@ -20393,14 +20461,14 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group__3"
-    // InternalOCLinEcore.g:5794:1: rule__TopLevelCS__Group__3 : rule__TopLevelCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:5806:1: rule__TopLevelCS__Group__3 : rule__TopLevelCS__Group__3__Impl ;
     public final void rule__TopLevelCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5798:1: ( rule__TopLevelCS__Group__3__Impl )
-            // InternalOCLinEcore.g:5799:2: rule__TopLevelCS__Group__3__Impl
+            // InternalOCLinEcore.g:5810:1: ( rule__TopLevelCS__Group__3__Impl )
+            // InternalOCLinEcore.g:5811:2: rule__TopLevelCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TopLevelCS__Group__3__Impl();
@@ -20426,22 +20494,22 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group__3__Impl"
-    // InternalOCLinEcore.g:5805:1: rule__TopLevelCS__Group__3__Impl : ( ( rule__TopLevelCS__OwnedPackagesAssignment_3 )* ) ;
+    // InternalOCLinEcore.g:5817:1: rule__TopLevelCS__Group__3__Impl : ( ( rule__TopLevelCS__OwnedPackagesAssignment_3 )* ) ;
     public final void rule__TopLevelCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5809:1: ( ( ( rule__TopLevelCS__OwnedPackagesAssignment_3 )* ) )
-            // InternalOCLinEcore.g:5810:1: ( ( rule__TopLevelCS__OwnedPackagesAssignment_3 )* )
+            // InternalOCLinEcore.g:5821:1: ( ( ( rule__TopLevelCS__OwnedPackagesAssignment_3 )* ) )
+            // InternalOCLinEcore.g:5822:1: ( ( rule__TopLevelCS__OwnedPackagesAssignment_3 )* )
             {
-            // InternalOCLinEcore.g:5810:1: ( ( rule__TopLevelCS__OwnedPackagesAssignment_3 )* )
-            // InternalOCLinEcore.g:5811:1: ( rule__TopLevelCS__OwnedPackagesAssignment_3 )*
+            // InternalOCLinEcore.g:5822:1: ( ( rule__TopLevelCS__OwnedPackagesAssignment_3 )* )
+            // InternalOCLinEcore.g:5823:1: ( rule__TopLevelCS__OwnedPackagesAssignment_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTopLevelCSAccess().getOwnedPackagesAssignment_3()); 
             }
-            // InternalOCLinEcore.g:5812:1: ( rule__TopLevelCS__OwnedPackagesAssignment_3 )*
+            // InternalOCLinEcore.g:5824:1: ( rule__TopLevelCS__OwnedPackagesAssignment_3 )*
             loop77:
             do {
                 int alt77=2;
@@ -20454,7 +20522,7 @@
 
                 switch (alt77) {
             	case 1 :
-            	    // InternalOCLinEcore.g:5812:2: rule__TopLevelCS__OwnedPackagesAssignment_3
+            	    // InternalOCLinEcore.g:5824:2: rule__TopLevelCS__OwnedPackagesAssignment_3
             	    {
             	    pushFollow(FollowSets000.FOLLOW_6);
             	    rule__TopLevelCS__OwnedPackagesAssignment_3();
@@ -20495,14 +20563,14 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group_1__0"
-    // InternalOCLinEcore.g:5830:1: rule__TopLevelCS__Group_1__0 : rule__TopLevelCS__Group_1__0__Impl rule__TopLevelCS__Group_1__1 ;
+    // InternalOCLinEcore.g:5842:1: rule__TopLevelCS__Group_1__0 : rule__TopLevelCS__Group_1__0__Impl rule__TopLevelCS__Group_1__1 ;
     public final void rule__TopLevelCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5834:1: ( rule__TopLevelCS__Group_1__0__Impl rule__TopLevelCS__Group_1__1 )
-            // InternalOCLinEcore.g:5835:2: rule__TopLevelCS__Group_1__0__Impl rule__TopLevelCS__Group_1__1
+            // InternalOCLinEcore.g:5846:1: ( rule__TopLevelCS__Group_1__0__Impl rule__TopLevelCS__Group_1__1 )
+            // InternalOCLinEcore.g:5847:2: rule__TopLevelCS__Group_1__0__Impl rule__TopLevelCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__TopLevelCS__Group_1__0__Impl();
@@ -20533,17 +20601,17 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:5842:1: rule__TopLevelCS__Group_1__0__Impl : ( 'module' ) ;
+    // InternalOCLinEcore.g:5854:1: rule__TopLevelCS__Group_1__0__Impl : ( 'module' ) ;
     public final void rule__TopLevelCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5846:1: ( ( 'module' ) )
-            // InternalOCLinEcore.g:5847:1: ( 'module' )
+            // InternalOCLinEcore.g:5858:1: ( ( 'module' ) )
+            // InternalOCLinEcore.g:5859:1: ( 'module' )
             {
-            // InternalOCLinEcore.g:5847:1: ( 'module' )
-            // InternalOCLinEcore.g:5848:1: 'module'
+            // InternalOCLinEcore.g:5859:1: ( 'module' )
+            // InternalOCLinEcore.g:5860:1: 'module'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTopLevelCSAccess().getModuleKeyword_1_0()); 
@@ -20574,14 +20642,14 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group_1__1"
-    // InternalOCLinEcore.g:5861:1: rule__TopLevelCS__Group_1__1 : rule__TopLevelCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:5873:1: rule__TopLevelCS__Group_1__1 : rule__TopLevelCS__Group_1__1__Impl ;
     public final void rule__TopLevelCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5865:1: ( rule__TopLevelCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:5866:2: rule__TopLevelCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:5877:1: ( rule__TopLevelCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:5878:2: rule__TopLevelCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TopLevelCS__Group_1__1__Impl();
@@ -20607,17 +20675,17 @@
 
 
     // $ANTLR start "rule__TopLevelCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:5872:1: rule__TopLevelCS__Group_1__1__Impl : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:5884:1: rule__TopLevelCS__Group_1__1__Impl : ( ruleUnrestrictedName ) ;
     public final void rule__TopLevelCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5876:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:5877:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:5888:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:5889:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:5877:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:5878:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:5889:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:5890:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTopLevelCSAccess().getUnrestrictedNameParserRuleCall_1_1()); 
@@ -20652,14 +20720,14 @@
 
 
     // $ANTLR start "rule__SIGNED__Group__0"
-    // InternalOCLinEcore.g:5893:1: rule__SIGNED__Group__0 : rule__SIGNED__Group__0__Impl rule__SIGNED__Group__1 ;
+    // InternalOCLinEcore.g:5905:1: rule__SIGNED__Group__0 : rule__SIGNED__Group__0__Impl rule__SIGNED__Group__1 ;
     public final void rule__SIGNED__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5897:1: ( rule__SIGNED__Group__0__Impl rule__SIGNED__Group__1 )
-            // InternalOCLinEcore.g:5898:2: rule__SIGNED__Group__0__Impl rule__SIGNED__Group__1
+            // InternalOCLinEcore.g:5909:1: ( rule__SIGNED__Group__0__Impl rule__SIGNED__Group__1 )
+            // InternalOCLinEcore.g:5910:2: rule__SIGNED__Group__0__Impl rule__SIGNED__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_8);
             rule__SIGNED__Group__0__Impl();
@@ -20690,22 +20758,22 @@
 
 
     // $ANTLR start "rule__SIGNED__Group__0__Impl"
-    // InternalOCLinEcore.g:5905:1: rule__SIGNED__Group__0__Impl : ( ( '-' )? ) ;
+    // InternalOCLinEcore.g:5917:1: rule__SIGNED__Group__0__Impl : ( ( '-' )? ) ;
     public final void rule__SIGNED__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5909:1: ( ( ( '-' )? ) )
-            // InternalOCLinEcore.g:5910:1: ( ( '-' )? )
+            // InternalOCLinEcore.g:5921:1: ( ( ( '-' )? ) )
+            // InternalOCLinEcore.g:5922:1: ( ( '-' )? )
             {
-            // InternalOCLinEcore.g:5910:1: ( ( '-' )? )
-            // InternalOCLinEcore.g:5911:1: ( '-' )?
+            // InternalOCLinEcore.g:5922:1: ( ( '-' )? )
+            // InternalOCLinEcore.g:5923:1: ( '-' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSIGNEDAccess().getHyphenMinusKeyword_0()); 
             }
-            // InternalOCLinEcore.g:5912:1: ( '-' )?
+            // InternalOCLinEcore.g:5924:1: ( '-' )?
             int alt78=2;
             int LA78_0 = input.LA(1);
 
@@ -20714,7 +20782,7 @@
             }
             switch (alt78) {
                 case 1 :
-                    // InternalOCLinEcore.g:5913:2: '-'
+                    // InternalOCLinEcore.g:5925:2: '-'
                     {
                     match(input,60,FollowSets000.FOLLOW_2); if (state.failed) return ;
 
@@ -20748,14 +20816,14 @@
 
 
     // $ANTLR start "rule__SIGNED__Group__1"
-    // InternalOCLinEcore.g:5924:1: rule__SIGNED__Group__1 : rule__SIGNED__Group__1__Impl ;
+    // InternalOCLinEcore.g:5936:1: rule__SIGNED__Group__1 : rule__SIGNED__Group__1__Impl ;
     public final void rule__SIGNED__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5928:1: ( rule__SIGNED__Group__1__Impl )
-            // InternalOCLinEcore.g:5929:2: rule__SIGNED__Group__1__Impl
+            // InternalOCLinEcore.g:5940:1: ( rule__SIGNED__Group__1__Impl )
+            // InternalOCLinEcore.g:5941:2: rule__SIGNED__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SIGNED__Group__1__Impl();
@@ -20781,17 +20849,17 @@
 
 
     // $ANTLR start "rule__SIGNED__Group__1__Impl"
-    // InternalOCLinEcore.g:5935:1: rule__SIGNED__Group__1__Impl : ( RULE_INT ) ;
+    // InternalOCLinEcore.g:5947:1: rule__SIGNED__Group__1__Impl : ( RULE_INT ) ;
     public final void rule__SIGNED__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5939:1: ( ( RULE_INT ) )
-            // InternalOCLinEcore.g:5940:1: ( RULE_INT )
+            // InternalOCLinEcore.g:5951:1: ( ( RULE_INT ) )
+            // InternalOCLinEcore.g:5952:1: ( RULE_INT )
             {
-            // InternalOCLinEcore.g:5940:1: ( RULE_INT )
-            // InternalOCLinEcore.g:5941:1: RULE_INT
+            // InternalOCLinEcore.g:5952:1: ( RULE_INT )
+            // InternalOCLinEcore.g:5953:1: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSIGNEDAccess().getINTTerminalRuleCall_1()); 
@@ -20822,14 +20890,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group__0"
-    // InternalOCLinEcore.g:5956:1: rule__InvariantConstraintCS__Group__0 : rule__InvariantConstraintCS__Group__0__Impl rule__InvariantConstraintCS__Group__1 ;
+    // InternalOCLinEcore.g:5968:1: rule__InvariantConstraintCS__Group__0 : rule__InvariantConstraintCS__Group__0__Impl rule__InvariantConstraintCS__Group__1 ;
     public final void rule__InvariantConstraintCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5960:1: ( rule__InvariantConstraintCS__Group__0__Impl rule__InvariantConstraintCS__Group__1 )
-            // InternalOCLinEcore.g:5961:2: rule__InvariantConstraintCS__Group__0__Impl rule__InvariantConstraintCS__Group__1
+            // InternalOCLinEcore.g:5972:1: ( rule__InvariantConstraintCS__Group__0__Impl rule__InvariantConstraintCS__Group__1 )
+            // InternalOCLinEcore.g:5973:2: rule__InvariantConstraintCS__Group__0__Impl rule__InvariantConstraintCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_9);
             rule__InvariantConstraintCS__Group__0__Impl();
@@ -20860,22 +20928,22 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group__0__Impl"
-    // InternalOCLinEcore.g:5968:1: rule__InvariantConstraintCS__Group__0__Impl : ( ( rule__InvariantConstraintCS__IsCallableAssignment_0 )? ) ;
+    // InternalOCLinEcore.g:5980:1: rule__InvariantConstraintCS__Group__0__Impl : ( ( rule__InvariantConstraintCS__IsCallableAssignment_0 )? ) ;
     public final void rule__InvariantConstraintCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5972:1: ( ( ( rule__InvariantConstraintCS__IsCallableAssignment_0 )? ) )
-            // InternalOCLinEcore.g:5973:1: ( ( rule__InvariantConstraintCS__IsCallableAssignment_0 )? )
+            // InternalOCLinEcore.g:5984:1: ( ( ( rule__InvariantConstraintCS__IsCallableAssignment_0 )? ) )
+            // InternalOCLinEcore.g:5985:1: ( ( rule__InvariantConstraintCS__IsCallableAssignment_0 )? )
             {
-            // InternalOCLinEcore.g:5973:1: ( ( rule__InvariantConstraintCS__IsCallableAssignment_0 )? )
-            // InternalOCLinEcore.g:5974:1: ( rule__InvariantConstraintCS__IsCallableAssignment_0 )?
+            // InternalOCLinEcore.g:5985:1: ( ( rule__InvariantConstraintCS__IsCallableAssignment_0 )? )
+            // InternalOCLinEcore.g:5986:1: ( rule__InvariantConstraintCS__IsCallableAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getIsCallableAssignment_0()); 
             }
-            // InternalOCLinEcore.g:5975:1: ( rule__InvariantConstraintCS__IsCallableAssignment_0 )?
+            // InternalOCLinEcore.g:5987:1: ( rule__InvariantConstraintCS__IsCallableAssignment_0 )?
             int alt79=2;
             int LA79_0 = input.LA(1);
 
@@ -20884,7 +20952,7 @@
             }
             switch (alt79) {
                 case 1 :
-                    // InternalOCLinEcore.g:5975:2: rule__InvariantConstraintCS__IsCallableAssignment_0
+                    // InternalOCLinEcore.g:5987:2: rule__InvariantConstraintCS__IsCallableAssignment_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__InvariantConstraintCS__IsCallableAssignment_0();
@@ -20922,14 +20990,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group__1"
-    // InternalOCLinEcore.g:5985:1: rule__InvariantConstraintCS__Group__1 : rule__InvariantConstraintCS__Group__1__Impl rule__InvariantConstraintCS__Group__2 ;
+    // InternalOCLinEcore.g:5997:1: rule__InvariantConstraintCS__Group__1 : rule__InvariantConstraintCS__Group__1__Impl rule__InvariantConstraintCS__Group__2 ;
     public final void rule__InvariantConstraintCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:5989:1: ( rule__InvariantConstraintCS__Group__1__Impl rule__InvariantConstraintCS__Group__2 )
-            // InternalOCLinEcore.g:5990:2: rule__InvariantConstraintCS__Group__1__Impl rule__InvariantConstraintCS__Group__2
+            // InternalOCLinEcore.g:6001:1: ( rule__InvariantConstraintCS__Group__1__Impl rule__InvariantConstraintCS__Group__2 )
+            // InternalOCLinEcore.g:6002:2: rule__InvariantConstraintCS__Group__1__Impl rule__InvariantConstraintCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_10);
             rule__InvariantConstraintCS__Group__1__Impl();
@@ -20960,23 +21028,23 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group__1__Impl"
-    // InternalOCLinEcore.g:5997:1: rule__InvariantConstraintCS__Group__1__Impl : ( ( rule__InvariantConstraintCS__StereotypeAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:6009:1: rule__InvariantConstraintCS__Group__1__Impl : ( ( rule__InvariantConstraintCS__StereotypeAssignment_1 ) ) ;
     public final void rule__InvariantConstraintCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6001:1: ( ( ( rule__InvariantConstraintCS__StereotypeAssignment_1 ) ) )
-            // InternalOCLinEcore.g:6002:1: ( ( rule__InvariantConstraintCS__StereotypeAssignment_1 ) )
+            // InternalOCLinEcore.g:6013:1: ( ( ( rule__InvariantConstraintCS__StereotypeAssignment_1 ) ) )
+            // InternalOCLinEcore.g:6014:1: ( ( rule__InvariantConstraintCS__StereotypeAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:6002:1: ( ( rule__InvariantConstraintCS__StereotypeAssignment_1 ) )
-            // InternalOCLinEcore.g:6003:1: ( rule__InvariantConstraintCS__StereotypeAssignment_1 )
+            // InternalOCLinEcore.g:6014:1: ( ( rule__InvariantConstraintCS__StereotypeAssignment_1 ) )
+            // InternalOCLinEcore.g:6015:1: ( rule__InvariantConstraintCS__StereotypeAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getStereotypeAssignment_1()); 
             }
-            // InternalOCLinEcore.g:6004:1: ( rule__InvariantConstraintCS__StereotypeAssignment_1 )
-            // InternalOCLinEcore.g:6004:2: rule__InvariantConstraintCS__StereotypeAssignment_1
+            // InternalOCLinEcore.g:6016:1: ( rule__InvariantConstraintCS__StereotypeAssignment_1 )
+            // InternalOCLinEcore.g:6016:2: rule__InvariantConstraintCS__StereotypeAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvariantConstraintCS__StereotypeAssignment_1();
@@ -21011,14 +21079,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group__2"
-    // InternalOCLinEcore.g:6014:1: rule__InvariantConstraintCS__Group__2 : rule__InvariantConstraintCS__Group__2__Impl rule__InvariantConstraintCS__Group__3 ;
+    // InternalOCLinEcore.g:6026:1: rule__InvariantConstraintCS__Group__2 : rule__InvariantConstraintCS__Group__2__Impl rule__InvariantConstraintCS__Group__3 ;
     public final void rule__InvariantConstraintCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6018:1: ( rule__InvariantConstraintCS__Group__2__Impl rule__InvariantConstraintCS__Group__3 )
-            // InternalOCLinEcore.g:6019:2: rule__InvariantConstraintCS__Group__2__Impl rule__InvariantConstraintCS__Group__3
+            // InternalOCLinEcore.g:6030:1: ( rule__InvariantConstraintCS__Group__2__Impl rule__InvariantConstraintCS__Group__3 )
+            // InternalOCLinEcore.g:6031:2: rule__InvariantConstraintCS__Group__2__Impl rule__InvariantConstraintCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_10);
             rule__InvariantConstraintCS__Group__2__Impl();
@@ -21049,22 +21117,22 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group__2__Impl"
-    // InternalOCLinEcore.g:6026:1: rule__InvariantConstraintCS__Group__2__Impl : ( ( rule__InvariantConstraintCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:6038:1: rule__InvariantConstraintCS__Group__2__Impl : ( ( rule__InvariantConstraintCS__Group_2__0 )? ) ;
     public final void rule__InvariantConstraintCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6030:1: ( ( ( rule__InvariantConstraintCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:6031:1: ( ( rule__InvariantConstraintCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:6042:1: ( ( ( rule__InvariantConstraintCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:6043:1: ( ( rule__InvariantConstraintCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:6031:1: ( ( rule__InvariantConstraintCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:6032:1: ( rule__InvariantConstraintCS__Group_2__0 )?
+            // InternalOCLinEcore.g:6043:1: ( ( rule__InvariantConstraintCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:6044:1: ( rule__InvariantConstraintCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:6033:1: ( rule__InvariantConstraintCS__Group_2__0 )?
+            // InternalOCLinEcore.g:6045:1: ( rule__InvariantConstraintCS__Group_2__0 )?
             int alt80=2;
             int LA80_0 = input.LA(1);
 
@@ -21073,7 +21141,7 @@
             }
             switch (alt80) {
                 case 1 :
-                    // InternalOCLinEcore.g:6033:2: rule__InvariantConstraintCS__Group_2__0
+                    // InternalOCLinEcore.g:6045:2: rule__InvariantConstraintCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__InvariantConstraintCS__Group_2__0();
@@ -21111,14 +21179,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group__3"
-    // InternalOCLinEcore.g:6043:1: rule__InvariantConstraintCS__Group__3 : rule__InvariantConstraintCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:6055:1: rule__InvariantConstraintCS__Group__3 : rule__InvariantConstraintCS__Group__3__Impl ;
     public final void rule__InvariantConstraintCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6047:1: ( rule__InvariantConstraintCS__Group__3__Impl )
-            // InternalOCLinEcore.g:6048:2: rule__InvariantConstraintCS__Group__3__Impl
+            // InternalOCLinEcore.g:6059:1: ( rule__InvariantConstraintCS__Group__3__Impl )
+            // InternalOCLinEcore.g:6060:2: rule__InvariantConstraintCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvariantConstraintCS__Group__3__Impl();
@@ -21144,23 +21212,23 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group__3__Impl"
-    // InternalOCLinEcore.g:6054:1: rule__InvariantConstraintCS__Group__3__Impl : ( ( rule__InvariantConstraintCS__Alternatives_3 ) ) ;
+    // InternalOCLinEcore.g:6066:1: rule__InvariantConstraintCS__Group__3__Impl : ( ( rule__InvariantConstraintCS__Alternatives_3 ) ) ;
     public final void rule__InvariantConstraintCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6058:1: ( ( ( rule__InvariantConstraintCS__Alternatives_3 ) ) )
-            // InternalOCLinEcore.g:6059:1: ( ( rule__InvariantConstraintCS__Alternatives_3 ) )
+            // InternalOCLinEcore.g:6070:1: ( ( ( rule__InvariantConstraintCS__Alternatives_3 ) ) )
+            // InternalOCLinEcore.g:6071:1: ( ( rule__InvariantConstraintCS__Alternatives_3 ) )
             {
-            // InternalOCLinEcore.g:6059:1: ( ( rule__InvariantConstraintCS__Alternatives_3 ) )
-            // InternalOCLinEcore.g:6060:1: ( rule__InvariantConstraintCS__Alternatives_3 )
+            // InternalOCLinEcore.g:6071:1: ( ( rule__InvariantConstraintCS__Alternatives_3 ) )
+            // InternalOCLinEcore.g:6072:1: ( rule__InvariantConstraintCS__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getAlternatives_3()); 
             }
-            // InternalOCLinEcore.g:6061:1: ( rule__InvariantConstraintCS__Alternatives_3 )
-            // InternalOCLinEcore.g:6061:2: rule__InvariantConstraintCS__Alternatives_3
+            // InternalOCLinEcore.g:6073:1: ( rule__InvariantConstraintCS__Alternatives_3 )
+            // InternalOCLinEcore.g:6073:2: rule__InvariantConstraintCS__Alternatives_3
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvariantConstraintCS__Alternatives_3();
@@ -21195,14 +21263,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2__0"
-    // InternalOCLinEcore.g:6079:1: rule__InvariantConstraintCS__Group_2__0 : rule__InvariantConstraintCS__Group_2__0__Impl rule__InvariantConstraintCS__Group_2__1 ;
+    // InternalOCLinEcore.g:6091:1: rule__InvariantConstraintCS__Group_2__0 : rule__InvariantConstraintCS__Group_2__0__Impl rule__InvariantConstraintCS__Group_2__1 ;
     public final void rule__InvariantConstraintCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6083:1: ( rule__InvariantConstraintCS__Group_2__0__Impl rule__InvariantConstraintCS__Group_2__1 )
-            // InternalOCLinEcore.g:6084:2: rule__InvariantConstraintCS__Group_2__0__Impl rule__InvariantConstraintCS__Group_2__1
+            // InternalOCLinEcore.g:6095:1: ( rule__InvariantConstraintCS__Group_2__0__Impl rule__InvariantConstraintCS__Group_2__1 )
+            // InternalOCLinEcore.g:6096:2: rule__InvariantConstraintCS__Group_2__0__Impl rule__InvariantConstraintCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_11);
             rule__InvariantConstraintCS__Group_2__0__Impl();
@@ -21233,23 +21301,23 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:6091:1: rule__InvariantConstraintCS__Group_2__0__Impl : ( ( rule__InvariantConstraintCS__NameAssignment_2_0 ) ) ;
+    // InternalOCLinEcore.g:6103:1: rule__InvariantConstraintCS__Group_2__0__Impl : ( ( rule__InvariantConstraintCS__NameAssignment_2_0 ) ) ;
     public final void rule__InvariantConstraintCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6095:1: ( ( ( rule__InvariantConstraintCS__NameAssignment_2_0 ) ) )
-            // InternalOCLinEcore.g:6096:1: ( ( rule__InvariantConstraintCS__NameAssignment_2_0 ) )
+            // InternalOCLinEcore.g:6107:1: ( ( ( rule__InvariantConstraintCS__NameAssignment_2_0 ) ) )
+            // InternalOCLinEcore.g:6108:1: ( ( rule__InvariantConstraintCS__NameAssignment_2_0 ) )
             {
-            // InternalOCLinEcore.g:6096:1: ( ( rule__InvariantConstraintCS__NameAssignment_2_0 ) )
-            // InternalOCLinEcore.g:6097:1: ( rule__InvariantConstraintCS__NameAssignment_2_0 )
+            // InternalOCLinEcore.g:6108:1: ( ( rule__InvariantConstraintCS__NameAssignment_2_0 ) )
+            // InternalOCLinEcore.g:6109:1: ( rule__InvariantConstraintCS__NameAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getNameAssignment_2_0()); 
             }
-            // InternalOCLinEcore.g:6098:1: ( rule__InvariantConstraintCS__NameAssignment_2_0 )
-            // InternalOCLinEcore.g:6098:2: rule__InvariantConstraintCS__NameAssignment_2_0
+            // InternalOCLinEcore.g:6110:1: ( rule__InvariantConstraintCS__NameAssignment_2_0 )
+            // InternalOCLinEcore.g:6110:2: rule__InvariantConstraintCS__NameAssignment_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvariantConstraintCS__NameAssignment_2_0();
@@ -21284,14 +21352,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2__1"
-    // InternalOCLinEcore.g:6108:1: rule__InvariantConstraintCS__Group_2__1 : rule__InvariantConstraintCS__Group_2__1__Impl ;
+    // InternalOCLinEcore.g:6120:1: rule__InvariantConstraintCS__Group_2__1 : rule__InvariantConstraintCS__Group_2__1__Impl ;
     public final void rule__InvariantConstraintCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6112:1: ( rule__InvariantConstraintCS__Group_2__1__Impl )
-            // InternalOCLinEcore.g:6113:2: rule__InvariantConstraintCS__Group_2__1__Impl
+            // InternalOCLinEcore.g:6124:1: ( rule__InvariantConstraintCS__Group_2__1__Impl )
+            // InternalOCLinEcore.g:6125:2: rule__InvariantConstraintCS__Group_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvariantConstraintCS__Group_2__1__Impl();
@@ -21317,22 +21385,22 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:6119:1: rule__InvariantConstraintCS__Group_2__1__Impl : ( ( rule__InvariantConstraintCS__Group_2_1__0 )? ) ;
+    // InternalOCLinEcore.g:6131:1: rule__InvariantConstraintCS__Group_2__1__Impl : ( ( rule__InvariantConstraintCS__Group_2_1__0 )? ) ;
     public final void rule__InvariantConstraintCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6123:1: ( ( ( rule__InvariantConstraintCS__Group_2_1__0 )? ) )
-            // InternalOCLinEcore.g:6124:1: ( ( rule__InvariantConstraintCS__Group_2_1__0 )? )
+            // InternalOCLinEcore.g:6135:1: ( ( ( rule__InvariantConstraintCS__Group_2_1__0 )? ) )
+            // InternalOCLinEcore.g:6136:1: ( ( rule__InvariantConstraintCS__Group_2_1__0 )? )
             {
-            // InternalOCLinEcore.g:6124:1: ( ( rule__InvariantConstraintCS__Group_2_1__0 )? )
-            // InternalOCLinEcore.g:6125:1: ( rule__InvariantConstraintCS__Group_2_1__0 )?
+            // InternalOCLinEcore.g:6136:1: ( ( rule__InvariantConstraintCS__Group_2_1__0 )? )
+            // InternalOCLinEcore.g:6137:1: ( rule__InvariantConstraintCS__Group_2_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getGroup_2_1()); 
             }
-            // InternalOCLinEcore.g:6126:1: ( rule__InvariantConstraintCS__Group_2_1__0 )?
+            // InternalOCLinEcore.g:6138:1: ( rule__InvariantConstraintCS__Group_2_1__0 )?
             int alt81=2;
             int LA81_0 = input.LA(1);
 
@@ -21341,7 +21409,7 @@
             }
             switch (alt81) {
                 case 1 :
-                    // InternalOCLinEcore.g:6126:2: rule__InvariantConstraintCS__Group_2_1__0
+                    // InternalOCLinEcore.g:6138:2: rule__InvariantConstraintCS__Group_2_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__InvariantConstraintCS__Group_2_1__0();
@@ -21379,14 +21447,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2_1__0"
-    // InternalOCLinEcore.g:6140:1: rule__InvariantConstraintCS__Group_2_1__0 : rule__InvariantConstraintCS__Group_2_1__0__Impl rule__InvariantConstraintCS__Group_2_1__1 ;
+    // InternalOCLinEcore.g:6152:1: rule__InvariantConstraintCS__Group_2_1__0 : rule__InvariantConstraintCS__Group_2_1__0__Impl rule__InvariantConstraintCS__Group_2_1__1 ;
     public final void rule__InvariantConstraintCS__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6144:1: ( rule__InvariantConstraintCS__Group_2_1__0__Impl rule__InvariantConstraintCS__Group_2_1__1 )
-            // InternalOCLinEcore.g:6145:2: rule__InvariantConstraintCS__Group_2_1__0__Impl rule__InvariantConstraintCS__Group_2_1__1
+            // InternalOCLinEcore.g:6156:1: ( rule__InvariantConstraintCS__Group_2_1__0__Impl rule__InvariantConstraintCS__Group_2_1__1 )
+            // InternalOCLinEcore.g:6157:2: rule__InvariantConstraintCS__Group_2_1__0__Impl rule__InvariantConstraintCS__Group_2_1__1
             {
             pushFollow(FollowSets000.FOLLOW_12);
             rule__InvariantConstraintCS__Group_2_1__0__Impl();
@@ -21417,17 +21485,17 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2_1__0__Impl"
-    // InternalOCLinEcore.g:6152:1: rule__InvariantConstraintCS__Group_2_1__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:6164:1: rule__InvariantConstraintCS__Group_2_1__0__Impl : ( '(' ) ;
     public final void rule__InvariantConstraintCS__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6156:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:6157:1: ( '(' )
+            // InternalOCLinEcore.g:6168:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:6169:1: ( '(' )
             {
-            // InternalOCLinEcore.g:6157:1: ( '(' )
-            // InternalOCLinEcore.g:6158:1: '('
+            // InternalOCLinEcore.g:6169:1: ( '(' )
+            // InternalOCLinEcore.g:6170:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getLeftParenthesisKeyword_2_1_0()); 
@@ -21458,14 +21526,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2_1__1"
-    // InternalOCLinEcore.g:6171:1: rule__InvariantConstraintCS__Group_2_1__1 : rule__InvariantConstraintCS__Group_2_1__1__Impl rule__InvariantConstraintCS__Group_2_1__2 ;
+    // InternalOCLinEcore.g:6183:1: rule__InvariantConstraintCS__Group_2_1__1 : rule__InvariantConstraintCS__Group_2_1__1__Impl rule__InvariantConstraintCS__Group_2_1__2 ;
     public final void rule__InvariantConstraintCS__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6175:1: ( rule__InvariantConstraintCS__Group_2_1__1__Impl rule__InvariantConstraintCS__Group_2_1__2 )
-            // InternalOCLinEcore.g:6176:2: rule__InvariantConstraintCS__Group_2_1__1__Impl rule__InvariantConstraintCS__Group_2_1__2
+            // InternalOCLinEcore.g:6187:1: ( rule__InvariantConstraintCS__Group_2_1__1__Impl rule__InvariantConstraintCS__Group_2_1__2 )
+            // InternalOCLinEcore.g:6188:2: rule__InvariantConstraintCS__Group_2_1__1__Impl rule__InvariantConstraintCS__Group_2_1__2
             {
             pushFollow(FollowSets000.FOLLOW_13);
             rule__InvariantConstraintCS__Group_2_1__1__Impl();
@@ -21496,23 +21564,23 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2_1__1__Impl"
-    // InternalOCLinEcore.g:6183:1: rule__InvariantConstraintCS__Group_2_1__1__Impl : ( ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 ) ) ;
+    // InternalOCLinEcore.g:6195:1: rule__InvariantConstraintCS__Group_2_1__1__Impl : ( ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 ) ) ;
     public final void rule__InvariantConstraintCS__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6187:1: ( ( ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 ) ) )
-            // InternalOCLinEcore.g:6188:1: ( ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:6199:1: ( ( ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 ) ) )
+            // InternalOCLinEcore.g:6200:1: ( ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 ) )
             {
-            // InternalOCLinEcore.g:6188:1: ( ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 ) )
-            // InternalOCLinEcore.g:6189:1: ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 )
+            // InternalOCLinEcore.g:6200:1: ( ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:6201:1: ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getOwnedMessageSpecificationAssignment_2_1_1()); 
             }
-            // InternalOCLinEcore.g:6190:1: ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 )
-            // InternalOCLinEcore.g:6190:2: rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1
+            // InternalOCLinEcore.g:6202:1: ( rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 )
+            // InternalOCLinEcore.g:6202:2: rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1();
@@ -21547,14 +21615,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2_1__2"
-    // InternalOCLinEcore.g:6200:1: rule__InvariantConstraintCS__Group_2_1__2 : rule__InvariantConstraintCS__Group_2_1__2__Impl ;
+    // InternalOCLinEcore.g:6212:1: rule__InvariantConstraintCS__Group_2_1__2 : rule__InvariantConstraintCS__Group_2_1__2__Impl ;
     public final void rule__InvariantConstraintCS__Group_2_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6204:1: ( rule__InvariantConstraintCS__Group_2_1__2__Impl )
-            // InternalOCLinEcore.g:6205:2: rule__InvariantConstraintCS__Group_2_1__2__Impl
+            // InternalOCLinEcore.g:6216:1: ( rule__InvariantConstraintCS__Group_2_1__2__Impl )
+            // InternalOCLinEcore.g:6217:2: rule__InvariantConstraintCS__Group_2_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvariantConstraintCS__Group_2_1__2__Impl();
@@ -21580,17 +21648,17 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_2_1__2__Impl"
-    // InternalOCLinEcore.g:6211:1: rule__InvariantConstraintCS__Group_2_1__2__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:6223:1: rule__InvariantConstraintCS__Group_2_1__2__Impl : ( ')' ) ;
     public final void rule__InvariantConstraintCS__Group_2_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6215:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:6216:1: ( ')' )
+            // InternalOCLinEcore.g:6227:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:6228:1: ( ')' )
             {
-            // InternalOCLinEcore.g:6216:1: ( ')' )
-            // InternalOCLinEcore.g:6217:1: ')'
+            // InternalOCLinEcore.g:6228:1: ( ')' )
+            // InternalOCLinEcore.g:6229:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getRightParenthesisKeyword_2_1_2()); 
@@ -21621,14 +21689,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_3_0__0"
-    // InternalOCLinEcore.g:6236:1: rule__InvariantConstraintCS__Group_3_0__0 : rule__InvariantConstraintCS__Group_3_0__0__Impl rule__InvariantConstraintCS__Group_3_0__1 ;
+    // InternalOCLinEcore.g:6248:1: rule__InvariantConstraintCS__Group_3_0__0 : rule__InvariantConstraintCS__Group_3_0__0__Impl rule__InvariantConstraintCS__Group_3_0__1 ;
     public final void rule__InvariantConstraintCS__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6240:1: ( rule__InvariantConstraintCS__Group_3_0__0__Impl rule__InvariantConstraintCS__Group_3_0__1 )
-            // InternalOCLinEcore.g:6241:2: rule__InvariantConstraintCS__Group_3_0__0__Impl rule__InvariantConstraintCS__Group_3_0__1
+            // InternalOCLinEcore.g:6252:1: ( rule__InvariantConstraintCS__Group_3_0__0__Impl rule__InvariantConstraintCS__Group_3_0__1 )
+            // InternalOCLinEcore.g:6253:2: rule__InvariantConstraintCS__Group_3_0__0__Impl rule__InvariantConstraintCS__Group_3_0__1
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__InvariantConstraintCS__Group_3_0__0__Impl();
@@ -21659,17 +21727,17 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_3_0__0__Impl"
-    // InternalOCLinEcore.g:6248:1: rule__InvariantConstraintCS__Group_3_0__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:6260:1: rule__InvariantConstraintCS__Group_3_0__0__Impl : ( ':' ) ;
     public final void rule__InvariantConstraintCS__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6252:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:6253:1: ( ':' )
+            // InternalOCLinEcore.g:6264:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:6265:1: ( ':' )
             {
-            // InternalOCLinEcore.g:6253:1: ( ':' )
-            // InternalOCLinEcore.g:6254:1: ':'
+            // InternalOCLinEcore.g:6265:1: ( ':' )
+            // InternalOCLinEcore.g:6266:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getColonKeyword_3_0_0()); 
@@ -21700,14 +21768,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_3_0__1"
-    // InternalOCLinEcore.g:6267:1: rule__InvariantConstraintCS__Group_3_0__1 : rule__InvariantConstraintCS__Group_3_0__1__Impl rule__InvariantConstraintCS__Group_3_0__2 ;
+    // InternalOCLinEcore.g:6279:1: rule__InvariantConstraintCS__Group_3_0__1 : rule__InvariantConstraintCS__Group_3_0__1__Impl rule__InvariantConstraintCS__Group_3_0__2 ;
     public final void rule__InvariantConstraintCS__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6271:1: ( rule__InvariantConstraintCS__Group_3_0__1__Impl rule__InvariantConstraintCS__Group_3_0__2 )
-            // InternalOCLinEcore.g:6272:2: rule__InvariantConstraintCS__Group_3_0__1__Impl rule__InvariantConstraintCS__Group_3_0__2
+            // InternalOCLinEcore.g:6283:1: ( rule__InvariantConstraintCS__Group_3_0__1__Impl rule__InvariantConstraintCS__Group_3_0__2 )
+            // InternalOCLinEcore.g:6284:2: rule__InvariantConstraintCS__Group_3_0__1__Impl rule__InvariantConstraintCS__Group_3_0__2
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__InvariantConstraintCS__Group_3_0__1__Impl();
@@ -21738,22 +21806,22 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_3_0__1__Impl"
-    // InternalOCLinEcore.g:6279:1: rule__InvariantConstraintCS__Group_3_0__1__Impl : ( ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )? ) ;
+    // InternalOCLinEcore.g:6291:1: rule__InvariantConstraintCS__Group_3_0__1__Impl : ( ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )? ) ;
     public final void rule__InvariantConstraintCS__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6283:1: ( ( ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )? ) )
-            // InternalOCLinEcore.g:6284:1: ( ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )? )
+            // InternalOCLinEcore.g:6295:1: ( ( ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )? ) )
+            // InternalOCLinEcore.g:6296:1: ( ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )? )
             {
-            // InternalOCLinEcore.g:6284:1: ( ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )? )
-            // InternalOCLinEcore.g:6285:1: ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )?
+            // InternalOCLinEcore.g:6296:1: ( ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )? )
+            // InternalOCLinEcore.g:6297:1: ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getOwnedSpecificationAssignment_3_0_1()); 
             }
-            // InternalOCLinEcore.g:6286:1: ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )?
+            // InternalOCLinEcore.g:6298:1: ( rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 )?
             int alt82=2;
             int LA82_0 = input.LA(1);
 
@@ -21762,7 +21830,7 @@
             }
             switch (alt82) {
                 case 1 :
-                    // InternalOCLinEcore.g:6286:2: rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1
+                    // InternalOCLinEcore.g:6298:2: rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1();
@@ -21800,14 +21868,14 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_3_0__2"
-    // InternalOCLinEcore.g:6296:1: rule__InvariantConstraintCS__Group_3_0__2 : rule__InvariantConstraintCS__Group_3_0__2__Impl ;
+    // InternalOCLinEcore.g:6308:1: rule__InvariantConstraintCS__Group_3_0__2 : rule__InvariantConstraintCS__Group_3_0__2__Impl ;
     public final void rule__InvariantConstraintCS__Group_3_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6300:1: ( rule__InvariantConstraintCS__Group_3_0__2__Impl )
-            // InternalOCLinEcore.g:6301:2: rule__InvariantConstraintCS__Group_3_0__2__Impl
+            // InternalOCLinEcore.g:6312:1: ( rule__InvariantConstraintCS__Group_3_0__2__Impl )
+            // InternalOCLinEcore.g:6313:2: rule__InvariantConstraintCS__Group_3_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvariantConstraintCS__Group_3_0__2__Impl();
@@ -21833,17 +21901,17 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__Group_3_0__2__Impl"
-    // InternalOCLinEcore.g:6307:1: rule__InvariantConstraintCS__Group_3_0__2__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:6319:1: rule__InvariantConstraintCS__Group_3_0__2__Impl : ( ';' ) ;
     public final void rule__InvariantConstraintCS__Group_3_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6311:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:6312:1: ( ';' )
+            // InternalOCLinEcore.g:6323:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:6324:1: ( ';' )
             {
-            // InternalOCLinEcore.g:6312:1: ( ';' )
-            // InternalOCLinEcore.g:6313:1: ';'
+            // InternalOCLinEcore.g:6324:1: ( ';' )
+            // InternalOCLinEcore.g:6325:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getSemicolonKeyword_3_0_2()); 
@@ -21874,14 +21942,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__0"
-    // InternalOCLinEcore.g:6332:1: rule__PostconditionConstraintCS__Group__0 : rule__PostconditionConstraintCS__Group__0__Impl rule__PostconditionConstraintCS__Group__1 ;
+    // InternalOCLinEcore.g:6344:1: rule__PostconditionConstraintCS__Group__0 : rule__PostconditionConstraintCS__Group__0__Impl rule__PostconditionConstraintCS__Group__1 ;
     public final void rule__PostconditionConstraintCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6336:1: ( rule__PostconditionConstraintCS__Group__0__Impl rule__PostconditionConstraintCS__Group__1 )
-            // InternalOCLinEcore.g:6337:2: rule__PostconditionConstraintCS__Group__0__Impl rule__PostconditionConstraintCS__Group__1
+            // InternalOCLinEcore.g:6348:1: ( rule__PostconditionConstraintCS__Group__0__Impl rule__PostconditionConstraintCS__Group__1 )
+            // InternalOCLinEcore.g:6349:2: rule__PostconditionConstraintCS__Group__0__Impl rule__PostconditionConstraintCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__PostconditionConstraintCS__Group__0__Impl();
@@ -21912,23 +21980,23 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__0__Impl"
-    // InternalOCLinEcore.g:6344:1: rule__PostconditionConstraintCS__Group__0__Impl : ( ( rule__PostconditionConstraintCS__StereotypeAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:6356:1: rule__PostconditionConstraintCS__Group__0__Impl : ( ( rule__PostconditionConstraintCS__StereotypeAssignment_0 ) ) ;
     public final void rule__PostconditionConstraintCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6348:1: ( ( ( rule__PostconditionConstraintCS__StereotypeAssignment_0 ) ) )
-            // InternalOCLinEcore.g:6349:1: ( ( rule__PostconditionConstraintCS__StereotypeAssignment_0 ) )
+            // InternalOCLinEcore.g:6360:1: ( ( ( rule__PostconditionConstraintCS__StereotypeAssignment_0 ) ) )
+            // InternalOCLinEcore.g:6361:1: ( ( rule__PostconditionConstraintCS__StereotypeAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:6349:1: ( ( rule__PostconditionConstraintCS__StereotypeAssignment_0 ) )
-            // InternalOCLinEcore.g:6350:1: ( rule__PostconditionConstraintCS__StereotypeAssignment_0 )
+            // InternalOCLinEcore.g:6361:1: ( ( rule__PostconditionConstraintCS__StereotypeAssignment_0 ) )
+            // InternalOCLinEcore.g:6362:1: ( rule__PostconditionConstraintCS__StereotypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getStereotypeAssignment_0()); 
             }
-            // InternalOCLinEcore.g:6351:1: ( rule__PostconditionConstraintCS__StereotypeAssignment_0 )
-            // InternalOCLinEcore.g:6351:2: rule__PostconditionConstraintCS__StereotypeAssignment_0
+            // InternalOCLinEcore.g:6363:1: ( rule__PostconditionConstraintCS__StereotypeAssignment_0 )
+            // InternalOCLinEcore.g:6363:2: rule__PostconditionConstraintCS__StereotypeAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PostconditionConstraintCS__StereotypeAssignment_0();
@@ -21963,14 +22031,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__1"
-    // InternalOCLinEcore.g:6361:1: rule__PostconditionConstraintCS__Group__1 : rule__PostconditionConstraintCS__Group__1__Impl rule__PostconditionConstraintCS__Group__2 ;
+    // InternalOCLinEcore.g:6373:1: rule__PostconditionConstraintCS__Group__1 : rule__PostconditionConstraintCS__Group__1__Impl rule__PostconditionConstraintCS__Group__2 ;
     public final void rule__PostconditionConstraintCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6365:1: ( rule__PostconditionConstraintCS__Group__1__Impl rule__PostconditionConstraintCS__Group__2 )
-            // InternalOCLinEcore.g:6366:2: rule__PostconditionConstraintCS__Group__1__Impl rule__PostconditionConstraintCS__Group__2
+            // InternalOCLinEcore.g:6377:1: ( rule__PostconditionConstraintCS__Group__1__Impl rule__PostconditionConstraintCS__Group__2 )
+            // InternalOCLinEcore.g:6378:2: rule__PostconditionConstraintCS__Group__1__Impl rule__PostconditionConstraintCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__PostconditionConstraintCS__Group__1__Impl();
@@ -22001,22 +22069,22 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__1__Impl"
-    // InternalOCLinEcore.g:6373:1: rule__PostconditionConstraintCS__Group__1__Impl : ( ( rule__PostconditionConstraintCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:6385:1: rule__PostconditionConstraintCS__Group__1__Impl : ( ( rule__PostconditionConstraintCS__Group_1__0 )? ) ;
     public final void rule__PostconditionConstraintCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6377:1: ( ( ( rule__PostconditionConstraintCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:6378:1: ( ( rule__PostconditionConstraintCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:6389:1: ( ( ( rule__PostconditionConstraintCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:6390:1: ( ( rule__PostconditionConstraintCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:6378:1: ( ( rule__PostconditionConstraintCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:6379:1: ( rule__PostconditionConstraintCS__Group_1__0 )?
+            // InternalOCLinEcore.g:6390:1: ( ( rule__PostconditionConstraintCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:6391:1: ( rule__PostconditionConstraintCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:6380:1: ( rule__PostconditionConstraintCS__Group_1__0 )?
+            // InternalOCLinEcore.g:6392:1: ( rule__PostconditionConstraintCS__Group_1__0 )?
             int alt83=2;
             int LA83_0 = input.LA(1);
 
@@ -22025,7 +22093,7 @@
             }
             switch (alt83) {
                 case 1 :
-                    // InternalOCLinEcore.g:6380:2: rule__PostconditionConstraintCS__Group_1__0
+                    // InternalOCLinEcore.g:6392:2: rule__PostconditionConstraintCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PostconditionConstraintCS__Group_1__0();
@@ -22063,14 +22131,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__2"
-    // InternalOCLinEcore.g:6390:1: rule__PostconditionConstraintCS__Group__2 : rule__PostconditionConstraintCS__Group__2__Impl rule__PostconditionConstraintCS__Group__3 ;
+    // InternalOCLinEcore.g:6402:1: rule__PostconditionConstraintCS__Group__2 : rule__PostconditionConstraintCS__Group__2__Impl rule__PostconditionConstraintCS__Group__3 ;
     public final void rule__PostconditionConstraintCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6394:1: ( rule__PostconditionConstraintCS__Group__2__Impl rule__PostconditionConstraintCS__Group__3 )
-            // InternalOCLinEcore.g:6395:2: rule__PostconditionConstraintCS__Group__2__Impl rule__PostconditionConstraintCS__Group__3
+            // InternalOCLinEcore.g:6406:1: ( rule__PostconditionConstraintCS__Group__2__Impl rule__PostconditionConstraintCS__Group__3 )
+            // InternalOCLinEcore.g:6407:2: rule__PostconditionConstraintCS__Group__2__Impl rule__PostconditionConstraintCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__PostconditionConstraintCS__Group__2__Impl();
@@ -22101,17 +22169,17 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__2__Impl"
-    // InternalOCLinEcore.g:6402:1: rule__PostconditionConstraintCS__Group__2__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:6414:1: rule__PostconditionConstraintCS__Group__2__Impl : ( ':' ) ;
     public final void rule__PostconditionConstraintCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6406:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:6407:1: ( ':' )
+            // InternalOCLinEcore.g:6418:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:6419:1: ( ':' )
             {
-            // InternalOCLinEcore.g:6407:1: ( ':' )
-            // InternalOCLinEcore.g:6408:1: ':'
+            // InternalOCLinEcore.g:6419:1: ( ':' )
+            // InternalOCLinEcore.g:6420:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getColonKeyword_2()); 
@@ -22142,14 +22210,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__3"
-    // InternalOCLinEcore.g:6421:1: rule__PostconditionConstraintCS__Group__3 : rule__PostconditionConstraintCS__Group__3__Impl rule__PostconditionConstraintCS__Group__4 ;
+    // InternalOCLinEcore.g:6433:1: rule__PostconditionConstraintCS__Group__3 : rule__PostconditionConstraintCS__Group__3__Impl rule__PostconditionConstraintCS__Group__4 ;
     public final void rule__PostconditionConstraintCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6425:1: ( rule__PostconditionConstraintCS__Group__3__Impl rule__PostconditionConstraintCS__Group__4 )
-            // InternalOCLinEcore.g:6426:2: rule__PostconditionConstraintCS__Group__3__Impl rule__PostconditionConstraintCS__Group__4
+            // InternalOCLinEcore.g:6437:1: ( rule__PostconditionConstraintCS__Group__3__Impl rule__PostconditionConstraintCS__Group__4 )
+            // InternalOCLinEcore.g:6438:2: rule__PostconditionConstraintCS__Group__3__Impl rule__PostconditionConstraintCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__PostconditionConstraintCS__Group__3__Impl();
@@ -22180,22 +22248,22 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__3__Impl"
-    // InternalOCLinEcore.g:6433:1: rule__PostconditionConstraintCS__Group__3__Impl : ( ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )? ) ;
+    // InternalOCLinEcore.g:6445:1: rule__PostconditionConstraintCS__Group__3__Impl : ( ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )? ) ;
     public final void rule__PostconditionConstraintCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6437:1: ( ( ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )? ) )
-            // InternalOCLinEcore.g:6438:1: ( ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )? )
+            // InternalOCLinEcore.g:6449:1: ( ( ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )? ) )
+            // InternalOCLinEcore.g:6450:1: ( ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )? )
             {
-            // InternalOCLinEcore.g:6438:1: ( ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )? )
-            // InternalOCLinEcore.g:6439:1: ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )?
+            // InternalOCLinEcore.g:6450:1: ( ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )? )
+            // InternalOCLinEcore.g:6451:1: ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getOwnedSpecificationAssignment_3()); 
             }
-            // InternalOCLinEcore.g:6440:1: ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )?
+            // InternalOCLinEcore.g:6452:1: ( rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 )?
             int alt84=2;
             int LA84_0 = input.LA(1);
 
@@ -22204,7 +22272,7 @@
             }
             switch (alt84) {
                 case 1 :
-                    // InternalOCLinEcore.g:6440:2: rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3
+                    // InternalOCLinEcore.g:6452:2: rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3();
@@ -22242,14 +22310,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__4"
-    // InternalOCLinEcore.g:6450:1: rule__PostconditionConstraintCS__Group__4 : rule__PostconditionConstraintCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:6462:1: rule__PostconditionConstraintCS__Group__4 : rule__PostconditionConstraintCS__Group__4__Impl ;
     public final void rule__PostconditionConstraintCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6454:1: ( rule__PostconditionConstraintCS__Group__4__Impl )
-            // InternalOCLinEcore.g:6455:2: rule__PostconditionConstraintCS__Group__4__Impl
+            // InternalOCLinEcore.g:6466:1: ( rule__PostconditionConstraintCS__Group__4__Impl )
+            // InternalOCLinEcore.g:6467:2: rule__PostconditionConstraintCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PostconditionConstraintCS__Group__4__Impl();
@@ -22275,17 +22343,17 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group__4__Impl"
-    // InternalOCLinEcore.g:6461:1: rule__PostconditionConstraintCS__Group__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:6473:1: rule__PostconditionConstraintCS__Group__4__Impl : ( ';' ) ;
     public final void rule__PostconditionConstraintCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6465:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:6466:1: ( ';' )
+            // InternalOCLinEcore.g:6477:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:6478:1: ( ';' )
             {
-            // InternalOCLinEcore.g:6466:1: ( ';' )
-            // InternalOCLinEcore.g:6467:1: ';'
+            // InternalOCLinEcore.g:6478:1: ( ';' )
+            // InternalOCLinEcore.g:6479:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getSemicolonKeyword_4()); 
@@ -22316,14 +22384,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1__0"
-    // InternalOCLinEcore.g:6490:1: rule__PostconditionConstraintCS__Group_1__0 : rule__PostconditionConstraintCS__Group_1__0__Impl rule__PostconditionConstraintCS__Group_1__1 ;
+    // InternalOCLinEcore.g:6502:1: rule__PostconditionConstraintCS__Group_1__0 : rule__PostconditionConstraintCS__Group_1__0__Impl rule__PostconditionConstraintCS__Group_1__1 ;
     public final void rule__PostconditionConstraintCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6494:1: ( rule__PostconditionConstraintCS__Group_1__0__Impl rule__PostconditionConstraintCS__Group_1__1 )
-            // InternalOCLinEcore.g:6495:2: rule__PostconditionConstraintCS__Group_1__0__Impl rule__PostconditionConstraintCS__Group_1__1
+            // InternalOCLinEcore.g:6506:1: ( rule__PostconditionConstraintCS__Group_1__0__Impl rule__PostconditionConstraintCS__Group_1__1 )
+            // InternalOCLinEcore.g:6507:2: rule__PostconditionConstraintCS__Group_1__0__Impl rule__PostconditionConstraintCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_11);
             rule__PostconditionConstraintCS__Group_1__0__Impl();
@@ -22354,23 +22422,23 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:6502:1: rule__PostconditionConstraintCS__Group_1__0__Impl : ( ( rule__PostconditionConstraintCS__NameAssignment_1_0 ) ) ;
+    // InternalOCLinEcore.g:6514:1: rule__PostconditionConstraintCS__Group_1__0__Impl : ( ( rule__PostconditionConstraintCS__NameAssignment_1_0 ) ) ;
     public final void rule__PostconditionConstraintCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6506:1: ( ( ( rule__PostconditionConstraintCS__NameAssignment_1_0 ) ) )
-            // InternalOCLinEcore.g:6507:1: ( ( rule__PostconditionConstraintCS__NameAssignment_1_0 ) )
+            // InternalOCLinEcore.g:6518:1: ( ( ( rule__PostconditionConstraintCS__NameAssignment_1_0 ) ) )
+            // InternalOCLinEcore.g:6519:1: ( ( rule__PostconditionConstraintCS__NameAssignment_1_0 ) )
             {
-            // InternalOCLinEcore.g:6507:1: ( ( rule__PostconditionConstraintCS__NameAssignment_1_0 ) )
-            // InternalOCLinEcore.g:6508:1: ( rule__PostconditionConstraintCS__NameAssignment_1_0 )
+            // InternalOCLinEcore.g:6519:1: ( ( rule__PostconditionConstraintCS__NameAssignment_1_0 ) )
+            // InternalOCLinEcore.g:6520:1: ( rule__PostconditionConstraintCS__NameAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getNameAssignment_1_0()); 
             }
-            // InternalOCLinEcore.g:6509:1: ( rule__PostconditionConstraintCS__NameAssignment_1_0 )
-            // InternalOCLinEcore.g:6509:2: rule__PostconditionConstraintCS__NameAssignment_1_0
+            // InternalOCLinEcore.g:6521:1: ( rule__PostconditionConstraintCS__NameAssignment_1_0 )
+            // InternalOCLinEcore.g:6521:2: rule__PostconditionConstraintCS__NameAssignment_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PostconditionConstraintCS__NameAssignment_1_0();
@@ -22405,14 +22473,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1__1"
-    // InternalOCLinEcore.g:6519:1: rule__PostconditionConstraintCS__Group_1__1 : rule__PostconditionConstraintCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:6531:1: rule__PostconditionConstraintCS__Group_1__1 : rule__PostconditionConstraintCS__Group_1__1__Impl ;
     public final void rule__PostconditionConstraintCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6523:1: ( rule__PostconditionConstraintCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:6524:2: rule__PostconditionConstraintCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:6535:1: ( rule__PostconditionConstraintCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:6536:2: rule__PostconditionConstraintCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PostconditionConstraintCS__Group_1__1__Impl();
@@ -22438,22 +22506,22 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:6530:1: rule__PostconditionConstraintCS__Group_1__1__Impl : ( ( rule__PostconditionConstraintCS__Group_1_1__0 )? ) ;
+    // InternalOCLinEcore.g:6542:1: rule__PostconditionConstraintCS__Group_1__1__Impl : ( ( rule__PostconditionConstraintCS__Group_1_1__0 )? ) ;
     public final void rule__PostconditionConstraintCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6534:1: ( ( ( rule__PostconditionConstraintCS__Group_1_1__0 )? ) )
-            // InternalOCLinEcore.g:6535:1: ( ( rule__PostconditionConstraintCS__Group_1_1__0 )? )
+            // InternalOCLinEcore.g:6546:1: ( ( ( rule__PostconditionConstraintCS__Group_1_1__0 )? ) )
+            // InternalOCLinEcore.g:6547:1: ( ( rule__PostconditionConstraintCS__Group_1_1__0 )? )
             {
-            // InternalOCLinEcore.g:6535:1: ( ( rule__PostconditionConstraintCS__Group_1_1__0 )? )
-            // InternalOCLinEcore.g:6536:1: ( rule__PostconditionConstraintCS__Group_1_1__0 )?
+            // InternalOCLinEcore.g:6547:1: ( ( rule__PostconditionConstraintCS__Group_1_1__0 )? )
+            // InternalOCLinEcore.g:6548:1: ( rule__PostconditionConstraintCS__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getGroup_1_1()); 
             }
-            // InternalOCLinEcore.g:6537:1: ( rule__PostconditionConstraintCS__Group_1_1__0 )?
+            // InternalOCLinEcore.g:6549:1: ( rule__PostconditionConstraintCS__Group_1_1__0 )?
             int alt85=2;
             int LA85_0 = input.LA(1);
 
@@ -22462,7 +22530,7 @@
             }
             switch (alt85) {
                 case 1 :
-                    // InternalOCLinEcore.g:6537:2: rule__PostconditionConstraintCS__Group_1_1__0
+                    // InternalOCLinEcore.g:6549:2: rule__PostconditionConstraintCS__Group_1_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PostconditionConstraintCS__Group_1_1__0();
@@ -22500,14 +22568,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1_1__0"
-    // InternalOCLinEcore.g:6551:1: rule__PostconditionConstraintCS__Group_1_1__0 : rule__PostconditionConstraintCS__Group_1_1__0__Impl rule__PostconditionConstraintCS__Group_1_1__1 ;
+    // InternalOCLinEcore.g:6563:1: rule__PostconditionConstraintCS__Group_1_1__0 : rule__PostconditionConstraintCS__Group_1_1__0__Impl rule__PostconditionConstraintCS__Group_1_1__1 ;
     public final void rule__PostconditionConstraintCS__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6555:1: ( rule__PostconditionConstraintCS__Group_1_1__0__Impl rule__PostconditionConstraintCS__Group_1_1__1 )
-            // InternalOCLinEcore.g:6556:2: rule__PostconditionConstraintCS__Group_1_1__0__Impl rule__PostconditionConstraintCS__Group_1_1__1
+            // InternalOCLinEcore.g:6567:1: ( rule__PostconditionConstraintCS__Group_1_1__0__Impl rule__PostconditionConstraintCS__Group_1_1__1 )
+            // InternalOCLinEcore.g:6568:2: rule__PostconditionConstraintCS__Group_1_1__0__Impl rule__PostconditionConstraintCS__Group_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_12);
             rule__PostconditionConstraintCS__Group_1_1__0__Impl();
@@ -22538,17 +22606,17 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1_1__0__Impl"
-    // InternalOCLinEcore.g:6563:1: rule__PostconditionConstraintCS__Group_1_1__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:6575:1: rule__PostconditionConstraintCS__Group_1_1__0__Impl : ( '(' ) ;
     public final void rule__PostconditionConstraintCS__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6567:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:6568:1: ( '(' )
+            // InternalOCLinEcore.g:6579:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:6580:1: ( '(' )
             {
-            // InternalOCLinEcore.g:6568:1: ( '(' )
-            // InternalOCLinEcore.g:6569:1: '('
+            // InternalOCLinEcore.g:6580:1: ( '(' )
+            // InternalOCLinEcore.g:6581:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getLeftParenthesisKeyword_1_1_0()); 
@@ -22579,14 +22647,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1_1__1"
-    // InternalOCLinEcore.g:6582:1: rule__PostconditionConstraintCS__Group_1_1__1 : rule__PostconditionConstraintCS__Group_1_1__1__Impl rule__PostconditionConstraintCS__Group_1_1__2 ;
+    // InternalOCLinEcore.g:6594:1: rule__PostconditionConstraintCS__Group_1_1__1 : rule__PostconditionConstraintCS__Group_1_1__1__Impl rule__PostconditionConstraintCS__Group_1_1__2 ;
     public final void rule__PostconditionConstraintCS__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6586:1: ( rule__PostconditionConstraintCS__Group_1_1__1__Impl rule__PostconditionConstraintCS__Group_1_1__2 )
-            // InternalOCLinEcore.g:6587:2: rule__PostconditionConstraintCS__Group_1_1__1__Impl rule__PostconditionConstraintCS__Group_1_1__2
+            // InternalOCLinEcore.g:6598:1: ( rule__PostconditionConstraintCS__Group_1_1__1__Impl rule__PostconditionConstraintCS__Group_1_1__2 )
+            // InternalOCLinEcore.g:6599:2: rule__PostconditionConstraintCS__Group_1_1__1__Impl rule__PostconditionConstraintCS__Group_1_1__2
             {
             pushFollow(FollowSets000.FOLLOW_13);
             rule__PostconditionConstraintCS__Group_1_1__1__Impl();
@@ -22617,23 +22685,23 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1_1__1__Impl"
-    // InternalOCLinEcore.g:6594:1: rule__PostconditionConstraintCS__Group_1_1__1__Impl : ( ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) ) ;
+    // InternalOCLinEcore.g:6606:1: rule__PostconditionConstraintCS__Group_1_1__1__Impl : ( ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) ) ;
     public final void rule__PostconditionConstraintCS__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6598:1: ( ( ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) ) )
-            // InternalOCLinEcore.g:6599:1: ( ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) )
+            // InternalOCLinEcore.g:6610:1: ( ( ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) ) )
+            // InternalOCLinEcore.g:6611:1: ( ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) )
             {
-            // InternalOCLinEcore.g:6599:1: ( ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) )
-            // InternalOCLinEcore.g:6600:1: ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 )
+            // InternalOCLinEcore.g:6611:1: ( ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) )
+            // InternalOCLinEcore.g:6612:1: ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getOwnedMessageSpecificationAssignment_1_1_1()); 
             }
-            // InternalOCLinEcore.g:6601:1: ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 )
-            // InternalOCLinEcore.g:6601:2: rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1
+            // InternalOCLinEcore.g:6613:1: ( rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 )
+            // InternalOCLinEcore.g:6613:2: rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1();
@@ -22668,14 +22736,14 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1_1__2"
-    // InternalOCLinEcore.g:6611:1: rule__PostconditionConstraintCS__Group_1_1__2 : rule__PostconditionConstraintCS__Group_1_1__2__Impl ;
+    // InternalOCLinEcore.g:6623:1: rule__PostconditionConstraintCS__Group_1_1__2 : rule__PostconditionConstraintCS__Group_1_1__2__Impl ;
     public final void rule__PostconditionConstraintCS__Group_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6615:1: ( rule__PostconditionConstraintCS__Group_1_1__2__Impl )
-            // InternalOCLinEcore.g:6616:2: rule__PostconditionConstraintCS__Group_1_1__2__Impl
+            // InternalOCLinEcore.g:6627:1: ( rule__PostconditionConstraintCS__Group_1_1__2__Impl )
+            // InternalOCLinEcore.g:6628:2: rule__PostconditionConstraintCS__Group_1_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PostconditionConstraintCS__Group_1_1__2__Impl();
@@ -22701,17 +22769,17 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__Group_1_1__2__Impl"
-    // InternalOCLinEcore.g:6622:1: rule__PostconditionConstraintCS__Group_1_1__2__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:6634:1: rule__PostconditionConstraintCS__Group_1_1__2__Impl : ( ')' ) ;
     public final void rule__PostconditionConstraintCS__Group_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6626:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:6627:1: ( ')' )
+            // InternalOCLinEcore.g:6638:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:6639:1: ( ')' )
             {
-            // InternalOCLinEcore.g:6627:1: ( ')' )
-            // InternalOCLinEcore.g:6628:1: ')'
+            // InternalOCLinEcore.g:6639:1: ( ')' )
+            // InternalOCLinEcore.g:6640:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getRightParenthesisKeyword_1_1_2()); 
@@ -22742,14 +22810,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__0"
-    // InternalOCLinEcore.g:6647:1: rule__PreconditionConstraintCS__Group__0 : rule__PreconditionConstraintCS__Group__0__Impl rule__PreconditionConstraintCS__Group__1 ;
+    // InternalOCLinEcore.g:6659:1: rule__PreconditionConstraintCS__Group__0 : rule__PreconditionConstraintCS__Group__0__Impl rule__PreconditionConstraintCS__Group__1 ;
     public final void rule__PreconditionConstraintCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6651:1: ( rule__PreconditionConstraintCS__Group__0__Impl rule__PreconditionConstraintCS__Group__1 )
-            // InternalOCLinEcore.g:6652:2: rule__PreconditionConstraintCS__Group__0__Impl rule__PreconditionConstraintCS__Group__1
+            // InternalOCLinEcore.g:6663:1: ( rule__PreconditionConstraintCS__Group__0__Impl rule__PreconditionConstraintCS__Group__1 )
+            // InternalOCLinEcore.g:6664:2: rule__PreconditionConstraintCS__Group__0__Impl rule__PreconditionConstraintCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__PreconditionConstraintCS__Group__0__Impl();
@@ -22780,23 +22848,23 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__0__Impl"
-    // InternalOCLinEcore.g:6659:1: rule__PreconditionConstraintCS__Group__0__Impl : ( ( rule__PreconditionConstraintCS__StereotypeAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:6671:1: rule__PreconditionConstraintCS__Group__0__Impl : ( ( rule__PreconditionConstraintCS__StereotypeAssignment_0 ) ) ;
     public final void rule__PreconditionConstraintCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6663:1: ( ( ( rule__PreconditionConstraintCS__StereotypeAssignment_0 ) ) )
-            // InternalOCLinEcore.g:6664:1: ( ( rule__PreconditionConstraintCS__StereotypeAssignment_0 ) )
+            // InternalOCLinEcore.g:6675:1: ( ( ( rule__PreconditionConstraintCS__StereotypeAssignment_0 ) ) )
+            // InternalOCLinEcore.g:6676:1: ( ( rule__PreconditionConstraintCS__StereotypeAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:6664:1: ( ( rule__PreconditionConstraintCS__StereotypeAssignment_0 ) )
-            // InternalOCLinEcore.g:6665:1: ( rule__PreconditionConstraintCS__StereotypeAssignment_0 )
+            // InternalOCLinEcore.g:6676:1: ( ( rule__PreconditionConstraintCS__StereotypeAssignment_0 ) )
+            // InternalOCLinEcore.g:6677:1: ( rule__PreconditionConstraintCS__StereotypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getStereotypeAssignment_0()); 
             }
-            // InternalOCLinEcore.g:6666:1: ( rule__PreconditionConstraintCS__StereotypeAssignment_0 )
-            // InternalOCLinEcore.g:6666:2: rule__PreconditionConstraintCS__StereotypeAssignment_0
+            // InternalOCLinEcore.g:6678:1: ( rule__PreconditionConstraintCS__StereotypeAssignment_0 )
+            // InternalOCLinEcore.g:6678:2: rule__PreconditionConstraintCS__StereotypeAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PreconditionConstraintCS__StereotypeAssignment_0();
@@ -22831,14 +22899,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__1"
-    // InternalOCLinEcore.g:6676:1: rule__PreconditionConstraintCS__Group__1 : rule__PreconditionConstraintCS__Group__1__Impl rule__PreconditionConstraintCS__Group__2 ;
+    // InternalOCLinEcore.g:6688:1: rule__PreconditionConstraintCS__Group__1 : rule__PreconditionConstraintCS__Group__1__Impl rule__PreconditionConstraintCS__Group__2 ;
     public final void rule__PreconditionConstraintCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6680:1: ( rule__PreconditionConstraintCS__Group__1__Impl rule__PreconditionConstraintCS__Group__2 )
-            // InternalOCLinEcore.g:6681:2: rule__PreconditionConstraintCS__Group__1__Impl rule__PreconditionConstraintCS__Group__2
+            // InternalOCLinEcore.g:6692:1: ( rule__PreconditionConstraintCS__Group__1__Impl rule__PreconditionConstraintCS__Group__2 )
+            // InternalOCLinEcore.g:6693:2: rule__PreconditionConstraintCS__Group__1__Impl rule__PreconditionConstraintCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__PreconditionConstraintCS__Group__1__Impl();
@@ -22869,22 +22937,22 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__1__Impl"
-    // InternalOCLinEcore.g:6688:1: rule__PreconditionConstraintCS__Group__1__Impl : ( ( rule__PreconditionConstraintCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:6700:1: rule__PreconditionConstraintCS__Group__1__Impl : ( ( rule__PreconditionConstraintCS__Group_1__0 )? ) ;
     public final void rule__PreconditionConstraintCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6692:1: ( ( ( rule__PreconditionConstraintCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:6693:1: ( ( rule__PreconditionConstraintCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:6704:1: ( ( ( rule__PreconditionConstraintCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:6705:1: ( ( rule__PreconditionConstraintCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:6693:1: ( ( rule__PreconditionConstraintCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:6694:1: ( rule__PreconditionConstraintCS__Group_1__0 )?
+            // InternalOCLinEcore.g:6705:1: ( ( rule__PreconditionConstraintCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:6706:1: ( rule__PreconditionConstraintCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:6695:1: ( rule__PreconditionConstraintCS__Group_1__0 )?
+            // InternalOCLinEcore.g:6707:1: ( rule__PreconditionConstraintCS__Group_1__0 )?
             int alt86=2;
             int LA86_0 = input.LA(1);
 
@@ -22893,7 +22961,7 @@
             }
             switch (alt86) {
                 case 1 :
-                    // InternalOCLinEcore.g:6695:2: rule__PreconditionConstraintCS__Group_1__0
+                    // InternalOCLinEcore.g:6707:2: rule__PreconditionConstraintCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PreconditionConstraintCS__Group_1__0();
@@ -22931,14 +22999,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__2"
-    // InternalOCLinEcore.g:6705:1: rule__PreconditionConstraintCS__Group__2 : rule__PreconditionConstraintCS__Group__2__Impl rule__PreconditionConstraintCS__Group__3 ;
+    // InternalOCLinEcore.g:6717:1: rule__PreconditionConstraintCS__Group__2 : rule__PreconditionConstraintCS__Group__2__Impl rule__PreconditionConstraintCS__Group__3 ;
     public final void rule__PreconditionConstraintCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6709:1: ( rule__PreconditionConstraintCS__Group__2__Impl rule__PreconditionConstraintCS__Group__3 )
-            // InternalOCLinEcore.g:6710:2: rule__PreconditionConstraintCS__Group__2__Impl rule__PreconditionConstraintCS__Group__3
+            // InternalOCLinEcore.g:6721:1: ( rule__PreconditionConstraintCS__Group__2__Impl rule__PreconditionConstraintCS__Group__3 )
+            // InternalOCLinEcore.g:6722:2: rule__PreconditionConstraintCS__Group__2__Impl rule__PreconditionConstraintCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__PreconditionConstraintCS__Group__2__Impl();
@@ -22969,17 +23037,17 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__2__Impl"
-    // InternalOCLinEcore.g:6717:1: rule__PreconditionConstraintCS__Group__2__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:6729:1: rule__PreconditionConstraintCS__Group__2__Impl : ( ':' ) ;
     public final void rule__PreconditionConstraintCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6721:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:6722:1: ( ':' )
+            // InternalOCLinEcore.g:6733:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:6734:1: ( ':' )
             {
-            // InternalOCLinEcore.g:6722:1: ( ':' )
-            // InternalOCLinEcore.g:6723:1: ':'
+            // InternalOCLinEcore.g:6734:1: ( ':' )
+            // InternalOCLinEcore.g:6735:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getColonKeyword_2()); 
@@ -23010,14 +23078,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__3"
-    // InternalOCLinEcore.g:6736:1: rule__PreconditionConstraintCS__Group__3 : rule__PreconditionConstraintCS__Group__3__Impl rule__PreconditionConstraintCS__Group__4 ;
+    // InternalOCLinEcore.g:6748:1: rule__PreconditionConstraintCS__Group__3 : rule__PreconditionConstraintCS__Group__3__Impl rule__PreconditionConstraintCS__Group__4 ;
     public final void rule__PreconditionConstraintCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6740:1: ( rule__PreconditionConstraintCS__Group__3__Impl rule__PreconditionConstraintCS__Group__4 )
-            // InternalOCLinEcore.g:6741:2: rule__PreconditionConstraintCS__Group__3__Impl rule__PreconditionConstraintCS__Group__4
+            // InternalOCLinEcore.g:6752:1: ( rule__PreconditionConstraintCS__Group__3__Impl rule__PreconditionConstraintCS__Group__4 )
+            // InternalOCLinEcore.g:6753:2: rule__PreconditionConstraintCS__Group__3__Impl rule__PreconditionConstraintCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__PreconditionConstraintCS__Group__3__Impl();
@@ -23048,22 +23116,22 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__3__Impl"
-    // InternalOCLinEcore.g:6748:1: rule__PreconditionConstraintCS__Group__3__Impl : ( ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )? ) ;
+    // InternalOCLinEcore.g:6760:1: rule__PreconditionConstraintCS__Group__3__Impl : ( ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )? ) ;
     public final void rule__PreconditionConstraintCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6752:1: ( ( ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )? ) )
-            // InternalOCLinEcore.g:6753:1: ( ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )? )
+            // InternalOCLinEcore.g:6764:1: ( ( ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )? ) )
+            // InternalOCLinEcore.g:6765:1: ( ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )? )
             {
-            // InternalOCLinEcore.g:6753:1: ( ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )? )
-            // InternalOCLinEcore.g:6754:1: ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )?
+            // InternalOCLinEcore.g:6765:1: ( ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )? )
+            // InternalOCLinEcore.g:6766:1: ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getOwnedSpecificationAssignment_3()); 
             }
-            // InternalOCLinEcore.g:6755:1: ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )?
+            // InternalOCLinEcore.g:6767:1: ( rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 )?
             int alt87=2;
             int LA87_0 = input.LA(1);
 
@@ -23072,7 +23140,7 @@
             }
             switch (alt87) {
                 case 1 :
-                    // InternalOCLinEcore.g:6755:2: rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3
+                    // InternalOCLinEcore.g:6767:2: rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3();
@@ -23110,14 +23178,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__4"
-    // InternalOCLinEcore.g:6765:1: rule__PreconditionConstraintCS__Group__4 : rule__PreconditionConstraintCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:6777:1: rule__PreconditionConstraintCS__Group__4 : rule__PreconditionConstraintCS__Group__4__Impl ;
     public final void rule__PreconditionConstraintCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6769:1: ( rule__PreconditionConstraintCS__Group__4__Impl )
-            // InternalOCLinEcore.g:6770:2: rule__PreconditionConstraintCS__Group__4__Impl
+            // InternalOCLinEcore.g:6781:1: ( rule__PreconditionConstraintCS__Group__4__Impl )
+            // InternalOCLinEcore.g:6782:2: rule__PreconditionConstraintCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PreconditionConstraintCS__Group__4__Impl();
@@ -23143,17 +23211,17 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group__4__Impl"
-    // InternalOCLinEcore.g:6776:1: rule__PreconditionConstraintCS__Group__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:6788:1: rule__PreconditionConstraintCS__Group__4__Impl : ( ';' ) ;
     public final void rule__PreconditionConstraintCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6780:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:6781:1: ( ';' )
+            // InternalOCLinEcore.g:6792:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:6793:1: ( ';' )
             {
-            // InternalOCLinEcore.g:6781:1: ( ';' )
-            // InternalOCLinEcore.g:6782:1: ';'
+            // InternalOCLinEcore.g:6793:1: ( ';' )
+            // InternalOCLinEcore.g:6794:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getSemicolonKeyword_4()); 
@@ -23184,14 +23252,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1__0"
-    // InternalOCLinEcore.g:6805:1: rule__PreconditionConstraintCS__Group_1__0 : rule__PreconditionConstraintCS__Group_1__0__Impl rule__PreconditionConstraintCS__Group_1__1 ;
+    // InternalOCLinEcore.g:6817:1: rule__PreconditionConstraintCS__Group_1__0 : rule__PreconditionConstraintCS__Group_1__0__Impl rule__PreconditionConstraintCS__Group_1__1 ;
     public final void rule__PreconditionConstraintCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6809:1: ( rule__PreconditionConstraintCS__Group_1__0__Impl rule__PreconditionConstraintCS__Group_1__1 )
-            // InternalOCLinEcore.g:6810:2: rule__PreconditionConstraintCS__Group_1__0__Impl rule__PreconditionConstraintCS__Group_1__1
+            // InternalOCLinEcore.g:6821:1: ( rule__PreconditionConstraintCS__Group_1__0__Impl rule__PreconditionConstraintCS__Group_1__1 )
+            // InternalOCLinEcore.g:6822:2: rule__PreconditionConstraintCS__Group_1__0__Impl rule__PreconditionConstraintCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_11);
             rule__PreconditionConstraintCS__Group_1__0__Impl();
@@ -23222,23 +23290,23 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:6817:1: rule__PreconditionConstraintCS__Group_1__0__Impl : ( ( rule__PreconditionConstraintCS__NameAssignment_1_0 ) ) ;
+    // InternalOCLinEcore.g:6829:1: rule__PreconditionConstraintCS__Group_1__0__Impl : ( ( rule__PreconditionConstraintCS__NameAssignment_1_0 ) ) ;
     public final void rule__PreconditionConstraintCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6821:1: ( ( ( rule__PreconditionConstraintCS__NameAssignment_1_0 ) ) )
-            // InternalOCLinEcore.g:6822:1: ( ( rule__PreconditionConstraintCS__NameAssignment_1_0 ) )
+            // InternalOCLinEcore.g:6833:1: ( ( ( rule__PreconditionConstraintCS__NameAssignment_1_0 ) ) )
+            // InternalOCLinEcore.g:6834:1: ( ( rule__PreconditionConstraintCS__NameAssignment_1_0 ) )
             {
-            // InternalOCLinEcore.g:6822:1: ( ( rule__PreconditionConstraintCS__NameAssignment_1_0 ) )
-            // InternalOCLinEcore.g:6823:1: ( rule__PreconditionConstraintCS__NameAssignment_1_0 )
+            // InternalOCLinEcore.g:6834:1: ( ( rule__PreconditionConstraintCS__NameAssignment_1_0 ) )
+            // InternalOCLinEcore.g:6835:1: ( rule__PreconditionConstraintCS__NameAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getNameAssignment_1_0()); 
             }
-            // InternalOCLinEcore.g:6824:1: ( rule__PreconditionConstraintCS__NameAssignment_1_0 )
-            // InternalOCLinEcore.g:6824:2: rule__PreconditionConstraintCS__NameAssignment_1_0
+            // InternalOCLinEcore.g:6836:1: ( rule__PreconditionConstraintCS__NameAssignment_1_0 )
+            // InternalOCLinEcore.g:6836:2: rule__PreconditionConstraintCS__NameAssignment_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PreconditionConstraintCS__NameAssignment_1_0();
@@ -23273,14 +23341,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1__1"
-    // InternalOCLinEcore.g:6834:1: rule__PreconditionConstraintCS__Group_1__1 : rule__PreconditionConstraintCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:6846:1: rule__PreconditionConstraintCS__Group_1__1 : rule__PreconditionConstraintCS__Group_1__1__Impl ;
     public final void rule__PreconditionConstraintCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6838:1: ( rule__PreconditionConstraintCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:6839:2: rule__PreconditionConstraintCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:6850:1: ( rule__PreconditionConstraintCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:6851:2: rule__PreconditionConstraintCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PreconditionConstraintCS__Group_1__1__Impl();
@@ -23306,22 +23374,22 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:6845:1: rule__PreconditionConstraintCS__Group_1__1__Impl : ( ( rule__PreconditionConstraintCS__Group_1_1__0 )? ) ;
+    // InternalOCLinEcore.g:6857:1: rule__PreconditionConstraintCS__Group_1__1__Impl : ( ( rule__PreconditionConstraintCS__Group_1_1__0 )? ) ;
     public final void rule__PreconditionConstraintCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6849:1: ( ( ( rule__PreconditionConstraintCS__Group_1_1__0 )? ) )
-            // InternalOCLinEcore.g:6850:1: ( ( rule__PreconditionConstraintCS__Group_1_1__0 )? )
+            // InternalOCLinEcore.g:6861:1: ( ( ( rule__PreconditionConstraintCS__Group_1_1__0 )? ) )
+            // InternalOCLinEcore.g:6862:1: ( ( rule__PreconditionConstraintCS__Group_1_1__0 )? )
             {
-            // InternalOCLinEcore.g:6850:1: ( ( rule__PreconditionConstraintCS__Group_1_1__0 )? )
-            // InternalOCLinEcore.g:6851:1: ( rule__PreconditionConstraintCS__Group_1_1__0 )?
+            // InternalOCLinEcore.g:6862:1: ( ( rule__PreconditionConstraintCS__Group_1_1__0 )? )
+            // InternalOCLinEcore.g:6863:1: ( rule__PreconditionConstraintCS__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getGroup_1_1()); 
             }
-            // InternalOCLinEcore.g:6852:1: ( rule__PreconditionConstraintCS__Group_1_1__0 )?
+            // InternalOCLinEcore.g:6864:1: ( rule__PreconditionConstraintCS__Group_1_1__0 )?
             int alt88=2;
             int LA88_0 = input.LA(1);
 
@@ -23330,7 +23398,7 @@
             }
             switch (alt88) {
                 case 1 :
-                    // InternalOCLinEcore.g:6852:2: rule__PreconditionConstraintCS__Group_1_1__0
+                    // InternalOCLinEcore.g:6864:2: rule__PreconditionConstraintCS__Group_1_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PreconditionConstraintCS__Group_1_1__0();
@@ -23368,14 +23436,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1_1__0"
-    // InternalOCLinEcore.g:6866:1: rule__PreconditionConstraintCS__Group_1_1__0 : rule__PreconditionConstraintCS__Group_1_1__0__Impl rule__PreconditionConstraintCS__Group_1_1__1 ;
+    // InternalOCLinEcore.g:6878:1: rule__PreconditionConstraintCS__Group_1_1__0 : rule__PreconditionConstraintCS__Group_1_1__0__Impl rule__PreconditionConstraintCS__Group_1_1__1 ;
     public final void rule__PreconditionConstraintCS__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6870:1: ( rule__PreconditionConstraintCS__Group_1_1__0__Impl rule__PreconditionConstraintCS__Group_1_1__1 )
-            // InternalOCLinEcore.g:6871:2: rule__PreconditionConstraintCS__Group_1_1__0__Impl rule__PreconditionConstraintCS__Group_1_1__1
+            // InternalOCLinEcore.g:6882:1: ( rule__PreconditionConstraintCS__Group_1_1__0__Impl rule__PreconditionConstraintCS__Group_1_1__1 )
+            // InternalOCLinEcore.g:6883:2: rule__PreconditionConstraintCS__Group_1_1__0__Impl rule__PreconditionConstraintCS__Group_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_12);
             rule__PreconditionConstraintCS__Group_1_1__0__Impl();
@@ -23406,17 +23474,17 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1_1__0__Impl"
-    // InternalOCLinEcore.g:6878:1: rule__PreconditionConstraintCS__Group_1_1__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:6890:1: rule__PreconditionConstraintCS__Group_1_1__0__Impl : ( '(' ) ;
     public final void rule__PreconditionConstraintCS__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6882:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:6883:1: ( '(' )
+            // InternalOCLinEcore.g:6894:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:6895:1: ( '(' )
             {
-            // InternalOCLinEcore.g:6883:1: ( '(' )
-            // InternalOCLinEcore.g:6884:1: '('
+            // InternalOCLinEcore.g:6895:1: ( '(' )
+            // InternalOCLinEcore.g:6896:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getLeftParenthesisKeyword_1_1_0()); 
@@ -23447,14 +23515,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1_1__1"
-    // InternalOCLinEcore.g:6897:1: rule__PreconditionConstraintCS__Group_1_1__1 : rule__PreconditionConstraintCS__Group_1_1__1__Impl rule__PreconditionConstraintCS__Group_1_1__2 ;
+    // InternalOCLinEcore.g:6909:1: rule__PreconditionConstraintCS__Group_1_1__1 : rule__PreconditionConstraintCS__Group_1_1__1__Impl rule__PreconditionConstraintCS__Group_1_1__2 ;
     public final void rule__PreconditionConstraintCS__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6901:1: ( rule__PreconditionConstraintCS__Group_1_1__1__Impl rule__PreconditionConstraintCS__Group_1_1__2 )
-            // InternalOCLinEcore.g:6902:2: rule__PreconditionConstraintCS__Group_1_1__1__Impl rule__PreconditionConstraintCS__Group_1_1__2
+            // InternalOCLinEcore.g:6913:1: ( rule__PreconditionConstraintCS__Group_1_1__1__Impl rule__PreconditionConstraintCS__Group_1_1__2 )
+            // InternalOCLinEcore.g:6914:2: rule__PreconditionConstraintCS__Group_1_1__1__Impl rule__PreconditionConstraintCS__Group_1_1__2
             {
             pushFollow(FollowSets000.FOLLOW_13);
             rule__PreconditionConstraintCS__Group_1_1__1__Impl();
@@ -23485,23 +23553,23 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1_1__1__Impl"
-    // InternalOCLinEcore.g:6909:1: rule__PreconditionConstraintCS__Group_1_1__1__Impl : ( ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) ) ;
+    // InternalOCLinEcore.g:6921:1: rule__PreconditionConstraintCS__Group_1_1__1__Impl : ( ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) ) ;
     public final void rule__PreconditionConstraintCS__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6913:1: ( ( ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) ) )
-            // InternalOCLinEcore.g:6914:1: ( ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) )
+            // InternalOCLinEcore.g:6925:1: ( ( ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) ) )
+            // InternalOCLinEcore.g:6926:1: ( ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) )
             {
-            // InternalOCLinEcore.g:6914:1: ( ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) )
-            // InternalOCLinEcore.g:6915:1: ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 )
+            // InternalOCLinEcore.g:6926:1: ( ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 ) )
+            // InternalOCLinEcore.g:6927:1: ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getOwnedMessageSpecificationAssignment_1_1_1()); 
             }
-            // InternalOCLinEcore.g:6916:1: ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 )
-            // InternalOCLinEcore.g:6916:2: rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1
+            // InternalOCLinEcore.g:6928:1: ( rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 )
+            // InternalOCLinEcore.g:6928:2: rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1();
@@ -23536,14 +23604,14 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1_1__2"
-    // InternalOCLinEcore.g:6926:1: rule__PreconditionConstraintCS__Group_1_1__2 : rule__PreconditionConstraintCS__Group_1_1__2__Impl ;
+    // InternalOCLinEcore.g:6938:1: rule__PreconditionConstraintCS__Group_1_1__2 : rule__PreconditionConstraintCS__Group_1_1__2__Impl ;
     public final void rule__PreconditionConstraintCS__Group_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6930:1: ( rule__PreconditionConstraintCS__Group_1_1__2__Impl )
-            // InternalOCLinEcore.g:6931:2: rule__PreconditionConstraintCS__Group_1_1__2__Impl
+            // InternalOCLinEcore.g:6942:1: ( rule__PreconditionConstraintCS__Group_1_1__2__Impl )
+            // InternalOCLinEcore.g:6943:2: rule__PreconditionConstraintCS__Group_1_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PreconditionConstraintCS__Group_1_1__2__Impl();
@@ -23569,17 +23637,17 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__Group_1_1__2__Impl"
-    // InternalOCLinEcore.g:6937:1: rule__PreconditionConstraintCS__Group_1_1__2__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:6949:1: rule__PreconditionConstraintCS__Group_1_1__2__Impl : ( ')' ) ;
     public final void rule__PreconditionConstraintCS__Group_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6941:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:6942:1: ( ')' )
+            // InternalOCLinEcore.g:6953:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:6954:1: ( ')' )
             {
-            // InternalOCLinEcore.g:6942:1: ( ')' )
-            // InternalOCLinEcore.g:6943:1: ')'
+            // InternalOCLinEcore.g:6954:1: ( ')' )
+            // InternalOCLinEcore.g:6955:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getRightParenthesisKeyword_1_1_2()); 
@@ -23610,14 +23678,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__0"
-    // InternalOCLinEcore.g:6962:1: rule__AnnotationCS__Group__0 : rule__AnnotationCS__Group__0__Impl rule__AnnotationCS__Group__1 ;
+    // InternalOCLinEcore.g:6974:1: rule__AnnotationCS__Group__0 : rule__AnnotationCS__Group__0__Impl rule__AnnotationCS__Group__1 ;
     public final void rule__AnnotationCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6966:1: ( rule__AnnotationCS__Group__0__Impl rule__AnnotationCS__Group__1 )
-            // InternalOCLinEcore.g:6967:2: rule__AnnotationCS__Group__0__Impl rule__AnnotationCS__Group__1
+            // InternalOCLinEcore.g:6978:1: ( rule__AnnotationCS__Group__0__Impl rule__AnnotationCS__Group__1 )
+            // InternalOCLinEcore.g:6979:2: rule__AnnotationCS__Group__0__Impl rule__AnnotationCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_16);
             rule__AnnotationCS__Group__0__Impl();
@@ -23648,23 +23716,23 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__0__Impl"
-    // InternalOCLinEcore.g:6974:1: rule__AnnotationCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:6986:1: rule__AnnotationCS__Group__0__Impl : ( () ) ;
     public final void rule__AnnotationCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6978:1: ( ( () ) )
-            // InternalOCLinEcore.g:6979:1: ( () )
+            // InternalOCLinEcore.g:6990:1: ( ( () ) )
+            // InternalOCLinEcore.g:6991:1: ( () )
             {
-            // InternalOCLinEcore.g:6979:1: ( () )
-            // InternalOCLinEcore.g:6980:1: ()
+            // InternalOCLinEcore.g:6991:1: ( () )
+            // InternalOCLinEcore.g:6992:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getAnnotationCSAction_0()); 
             }
-            // InternalOCLinEcore.g:6981:1: ()
-            // InternalOCLinEcore.g:6983:1: 
+            // InternalOCLinEcore.g:6993:1: ()
+            // InternalOCLinEcore.g:6995:1: 
             {
             }
 
@@ -23689,14 +23757,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__1"
-    // InternalOCLinEcore.g:6993:1: rule__AnnotationCS__Group__1 : rule__AnnotationCS__Group__1__Impl rule__AnnotationCS__Group__2 ;
+    // InternalOCLinEcore.g:7005:1: rule__AnnotationCS__Group__1 : rule__AnnotationCS__Group__1__Impl rule__AnnotationCS__Group__2 ;
     public final void rule__AnnotationCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:6997:1: ( rule__AnnotationCS__Group__1__Impl rule__AnnotationCS__Group__2 )
-            // InternalOCLinEcore.g:6998:2: rule__AnnotationCS__Group__1__Impl rule__AnnotationCS__Group__2
+            // InternalOCLinEcore.g:7009:1: ( rule__AnnotationCS__Group__1__Impl rule__AnnotationCS__Group__2 )
+            // InternalOCLinEcore.g:7010:2: rule__AnnotationCS__Group__1__Impl rule__AnnotationCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_17);
             rule__AnnotationCS__Group__1__Impl();
@@ -23727,17 +23795,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__1__Impl"
-    // InternalOCLinEcore.g:7005:1: rule__AnnotationCS__Group__1__Impl : ( 'annotation' ) ;
+    // InternalOCLinEcore.g:7017:1: rule__AnnotationCS__Group__1__Impl : ( 'annotation' ) ;
     public final void rule__AnnotationCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7009:1: ( ( 'annotation' ) )
-            // InternalOCLinEcore.g:7010:1: ( 'annotation' )
+            // InternalOCLinEcore.g:7021:1: ( ( 'annotation' ) )
+            // InternalOCLinEcore.g:7022:1: ( 'annotation' )
             {
-            // InternalOCLinEcore.g:7010:1: ( 'annotation' )
-            // InternalOCLinEcore.g:7011:1: 'annotation'
+            // InternalOCLinEcore.g:7022:1: ( 'annotation' )
+            // InternalOCLinEcore.g:7023:1: 'annotation'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getAnnotationKeyword_1()); 
@@ -23768,14 +23836,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__2"
-    // InternalOCLinEcore.g:7024:1: rule__AnnotationCS__Group__2 : rule__AnnotationCS__Group__2__Impl rule__AnnotationCS__Group__3 ;
+    // InternalOCLinEcore.g:7036:1: rule__AnnotationCS__Group__2 : rule__AnnotationCS__Group__2__Impl rule__AnnotationCS__Group__3 ;
     public final void rule__AnnotationCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7028:1: ( rule__AnnotationCS__Group__2__Impl rule__AnnotationCS__Group__3 )
-            // InternalOCLinEcore.g:7029:2: rule__AnnotationCS__Group__2__Impl rule__AnnotationCS__Group__3
+            // InternalOCLinEcore.g:7040:1: ( rule__AnnotationCS__Group__2__Impl rule__AnnotationCS__Group__3 )
+            // InternalOCLinEcore.g:7041:2: rule__AnnotationCS__Group__2__Impl rule__AnnotationCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_17);
             rule__AnnotationCS__Group__2__Impl();
@@ -23806,22 +23874,22 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__2__Impl"
-    // InternalOCLinEcore.g:7036:1: rule__AnnotationCS__Group__2__Impl : ( ( rule__AnnotationCS__NameAssignment_2 )? ) ;
+    // InternalOCLinEcore.g:7048:1: rule__AnnotationCS__Group__2__Impl : ( ( rule__AnnotationCS__NameAssignment_2 )? ) ;
     public final void rule__AnnotationCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7040:1: ( ( ( rule__AnnotationCS__NameAssignment_2 )? ) )
-            // InternalOCLinEcore.g:7041:1: ( ( rule__AnnotationCS__NameAssignment_2 )? )
+            // InternalOCLinEcore.g:7052:1: ( ( ( rule__AnnotationCS__NameAssignment_2 )? ) )
+            // InternalOCLinEcore.g:7053:1: ( ( rule__AnnotationCS__NameAssignment_2 )? )
             {
-            // InternalOCLinEcore.g:7041:1: ( ( rule__AnnotationCS__NameAssignment_2 )? )
-            // InternalOCLinEcore.g:7042:1: ( rule__AnnotationCS__NameAssignment_2 )?
+            // InternalOCLinEcore.g:7053:1: ( ( rule__AnnotationCS__NameAssignment_2 )? )
+            // InternalOCLinEcore.g:7054:1: ( rule__AnnotationCS__NameAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getNameAssignment_2()); 
             }
-            // InternalOCLinEcore.g:7043:1: ( rule__AnnotationCS__NameAssignment_2 )?
+            // InternalOCLinEcore.g:7055:1: ( rule__AnnotationCS__NameAssignment_2 )?
             int alt89=2;
             int LA89_0 = input.LA(1);
 
@@ -23830,7 +23898,7 @@
             }
             switch (alt89) {
                 case 1 :
-                    // InternalOCLinEcore.g:7043:2: rule__AnnotationCS__NameAssignment_2
+                    // InternalOCLinEcore.g:7055:2: rule__AnnotationCS__NameAssignment_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AnnotationCS__NameAssignment_2();
@@ -23868,14 +23936,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__3"
-    // InternalOCLinEcore.g:7053:1: rule__AnnotationCS__Group__3 : rule__AnnotationCS__Group__3__Impl rule__AnnotationCS__Group__4 ;
+    // InternalOCLinEcore.g:7065:1: rule__AnnotationCS__Group__3 : rule__AnnotationCS__Group__3__Impl rule__AnnotationCS__Group__4 ;
     public final void rule__AnnotationCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7057:1: ( rule__AnnotationCS__Group__3__Impl rule__AnnotationCS__Group__4 )
-            // InternalOCLinEcore.g:7058:2: rule__AnnotationCS__Group__3__Impl rule__AnnotationCS__Group__4
+            // InternalOCLinEcore.g:7069:1: ( rule__AnnotationCS__Group__3__Impl rule__AnnotationCS__Group__4 )
+            // InternalOCLinEcore.g:7070:2: rule__AnnotationCS__Group__3__Impl rule__AnnotationCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_17);
             rule__AnnotationCS__Group__3__Impl();
@@ -23906,22 +23974,22 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__3__Impl"
-    // InternalOCLinEcore.g:7065:1: rule__AnnotationCS__Group__3__Impl : ( ( rule__AnnotationCS__Group_3__0 )? ) ;
+    // InternalOCLinEcore.g:7077:1: rule__AnnotationCS__Group__3__Impl : ( ( rule__AnnotationCS__Group_3__0 )? ) ;
     public final void rule__AnnotationCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7069:1: ( ( ( rule__AnnotationCS__Group_3__0 )? ) )
-            // InternalOCLinEcore.g:7070:1: ( ( rule__AnnotationCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:7081:1: ( ( ( rule__AnnotationCS__Group_3__0 )? ) )
+            // InternalOCLinEcore.g:7082:1: ( ( rule__AnnotationCS__Group_3__0 )? )
             {
-            // InternalOCLinEcore.g:7070:1: ( ( rule__AnnotationCS__Group_3__0 )? )
-            // InternalOCLinEcore.g:7071:1: ( rule__AnnotationCS__Group_3__0 )?
+            // InternalOCLinEcore.g:7082:1: ( ( rule__AnnotationCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:7083:1: ( rule__AnnotationCS__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getGroup_3()); 
             }
-            // InternalOCLinEcore.g:7072:1: ( rule__AnnotationCS__Group_3__0 )?
+            // InternalOCLinEcore.g:7084:1: ( rule__AnnotationCS__Group_3__0 )?
             int alt90=2;
             int LA90_0 = input.LA(1);
 
@@ -23930,7 +23998,7 @@
             }
             switch (alt90) {
                 case 1 :
-                    // InternalOCLinEcore.g:7072:2: rule__AnnotationCS__Group_3__0
+                    // InternalOCLinEcore.g:7084:2: rule__AnnotationCS__Group_3__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AnnotationCS__Group_3__0();
@@ -23968,14 +24036,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__4"
-    // InternalOCLinEcore.g:7082:1: rule__AnnotationCS__Group__4 : rule__AnnotationCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:7094:1: rule__AnnotationCS__Group__4 : rule__AnnotationCS__Group__4__Impl ;
     public final void rule__AnnotationCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7086:1: ( rule__AnnotationCS__Group__4__Impl )
-            // InternalOCLinEcore.g:7087:2: rule__AnnotationCS__Group__4__Impl
+            // InternalOCLinEcore.g:7098:1: ( rule__AnnotationCS__Group__4__Impl )
+            // InternalOCLinEcore.g:7099:2: rule__AnnotationCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AnnotationCS__Group__4__Impl();
@@ -24001,23 +24069,23 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group__4__Impl"
-    // InternalOCLinEcore.g:7093:1: rule__AnnotationCS__Group__4__Impl : ( ( rule__AnnotationCS__Alternatives_4 ) ) ;
+    // InternalOCLinEcore.g:7105:1: rule__AnnotationCS__Group__4__Impl : ( ( rule__AnnotationCS__Alternatives_4 ) ) ;
     public final void rule__AnnotationCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7097:1: ( ( ( rule__AnnotationCS__Alternatives_4 ) ) )
-            // InternalOCLinEcore.g:7098:1: ( ( rule__AnnotationCS__Alternatives_4 ) )
+            // InternalOCLinEcore.g:7109:1: ( ( ( rule__AnnotationCS__Alternatives_4 ) ) )
+            // InternalOCLinEcore.g:7110:1: ( ( rule__AnnotationCS__Alternatives_4 ) )
             {
-            // InternalOCLinEcore.g:7098:1: ( ( rule__AnnotationCS__Alternatives_4 ) )
-            // InternalOCLinEcore.g:7099:1: ( rule__AnnotationCS__Alternatives_4 )
+            // InternalOCLinEcore.g:7110:1: ( ( rule__AnnotationCS__Alternatives_4 ) )
+            // InternalOCLinEcore.g:7111:1: ( rule__AnnotationCS__Alternatives_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getAlternatives_4()); 
             }
-            // InternalOCLinEcore.g:7100:1: ( rule__AnnotationCS__Alternatives_4 )
-            // InternalOCLinEcore.g:7100:2: rule__AnnotationCS__Alternatives_4
+            // InternalOCLinEcore.g:7112:1: ( rule__AnnotationCS__Alternatives_4 )
+            // InternalOCLinEcore.g:7112:2: rule__AnnotationCS__Alternatives_4
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AnnotationCS__Alternatives_4();
@@ -24052,14 +24120,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3__0"
-    // InternalOCLinEcore.g:7120:1: rule__AnnotationCS__Group_3__0 : rule__AnnotationCS__Group_3__0__Impl rule__AnnotationCS__Group_3__1 ;
+    // InternalOCLinEcore.g:7132:1: rule__AnnotationCS__Group_3__0 : rule__AnnotationCS__Group_3__0__Impl rule__AnnotationCS__Group_3__1 ;
     public final void rule__AnnotationCS__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7124:1: ( rule__AnnotationCS__Group_3__0__Impl rule__AnnotationCS__Group_3__1 )
-            // InternalOCLinEcore.g:7125:2: rule__AnnotationCS__Group_3__0__Impl rule__AnnotationCS__Group_3__1
+            // InternalOCLinEcore.g:7136:1: ( rule__AnnotationCS__Group_3__0__Impl rule__AnnotationCS__Group_3__1 )
+            // InternalOCLinEcore.g:7137:2: rule__AnnotationCS__Group_3__0__Impl rule__AnnotationCS__Group_3__1
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__AnnotationCS__Group_3__0__Impl();
@@ -24090,17 +24158,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3__0__Impl"
-    // InternalOCLinEcore.g:7132:1: rule__AnnotationCS__Group_3__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:7144:1: rule__AnnotationCS__Group_3__0__Impl : ( '(' ) ;
     public final void rule__AnnotationCS__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7136:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:7137:1: ( '(' )
+            // InternalOCLinEcore.g:7148:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:7149:1: ( '(' )
             {
-            // InternalOCLinEcore.g:7137:1: ( '(' )
-            // InternalOCLinEcore.g:7138:1: '('
+            // InternalOCLinEcore.g:7149:1: ( '(' )
+            // InternalOCLinEcore.g:7150:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getLeftParenthesisKeyword_3_0()); 
@@ -24131,14 +24199,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3__1"
-    // InternalOCLinEcore.g:7151:1: rule__AnnotationCS__Group_3__1 : rule__AnnotationCS__Group_3__1__Impl rule__AnnotationCS__Group_3__2 ;
+    // InternalOCLinEcore.g:7163:1: rule__AnnotationCS__Group_3__1 : rule__AnnotationCS__Group_3__1__Impl rule__AnnotationCS__Group_3__2 ;
     public final void rule__AnnotationCS__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7155:1: ( rule__AnnotationCS__Group_3__1__Impl rule__AnnotationCS__Group_3__2 )
-            // InternalOCLinEcore.g:7156:2: rule__AnnotationCS__Group_3__1__Impl rule__AnnotationCS__Group_3__2
+            // InternalOCLinEcore.g:7167:1: ( rule__AnnotationCS__Group_3__1__Impl rule__AnnotationCS__Group_3__2 )
+            // InternalOCLinEcore.g:7168:2: rule__AnnotationCS__Group_3__1__Impl rule__AnnotationCS__Group_3__2
             {
             pushFollow(FollowSets000.FOLLOW_19);
             rule__AnnotationCS__Group_3__1__Impl();
@@ -24169,23 +24237,23 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3__1__Impl"
-    // InternalOCLinEcore.g:7163:1: rule__AnnotationCS__Group_3__1__Impl : ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 ) ) ;
+    // InternalOCLinEcore.g:7175:1: rule__AnnotationCS__Group_3__1__Impl : ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 ) ) ;
     public final void rule__AnnotationCS__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7167:1: ( ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 ) ) )
-            // InternalOCLinEcore.g:7168:1: ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 ) )
+            // InternalOCLinEcore.g:7179:1: ( ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 ) ) )
+            // InternalOCLinEcore.g:7180:1: ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 ) )
             {
-            // InternalOCLinEcore.g:7168:1: ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 ) )
-            // InternalOCLinEcore.g:7169:1: ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 )
+            // InternalOCLinEcore.g:7180:1: ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 ) )
+            // InternalOCLinEcore.g:7181:1: ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getOwnedDetailsAssignment_3_1()); 
             }
-            // InternalOCLinEcore.g:7170:1: ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 )
-            // InternalOCLinEcore.g:7170:2: rule__AnnotationCS__OwnedDetailsAssignment_3_1
+            // InternalOCLinEcore.g:7182:1: ( rule__AnnotationCS__OwnedDetailsAssignment_3_1 )
+            // InternalOCLinEcore.g:7182:2: rule__AnnotationCS__OwnedDetailsAssignment_3_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AnnotationCS__OwnedDetailsAssignment_3_1();
@@ -24220,14 +24288,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3__2"
-    // InternalOCLinEcore.g:7180:1: rule__AnnotationCS__Group_3__2 : rule__AnnotationCS__Group_3__2__Impl rule__AnnotationCS__Group_3__3 ;
+    // InternalOCLinEcore.g:7192:1: rule__AnnotationCS__Group_3__2 : rule__AnnotationCS__Group_3__2__Impl rule__AnnotationCS__Group_3__3 ;
     public final void rule__AnnotationCS__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7184:1: ( rule__AnnotationCS__Group_3__2__Impl rule__AnnotationCS__Group_3__3 )
-            // InternalOCLinEcore.g:7185:2: rule__AnnotationCS__Group_3__2__Impl rule__AnnotationCS__Group_3__3
+            // InternalOCLinEcore.g:7196:1: ( rule__AnnotationCS__Group_3__2__Impl rule__AnnotationCS__Group_3__3 )
+            // InternalOCLinEcore.g:7197:2: rule__AnnotationCS__Group_3__2__Impl rule__AnnotationCS__Group_3__3
             {
             pushFollow(FollowSets000.FOLLOW_19);
             rule__AnnotationCS__Group_3__2__Impl();
@@ -24258,22 +24326,22 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3__2__Impl"
-    // InternalOCLinEcore.g:7192:1: rule__AnnotationCS__Group_3__2__Impl : ( ( rule__AnnotationCS__Group_3_2__0 )* ) ;
+    // InternalOCLinEcore.g:7204:1: rule__AnnotationCS__Group_3__2__Impl : ( ( rule__AnnotationCS__Group_3_2__0 )* ) ;
     public final void rule__AnnotationCS__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7196:1: ( ( ( rule__AnnotationCS__Group_3_2__0 )* ) )
-            // InternalOCLinEcore.g:7197:1: ( ( rule__AnnotationCS__Group_3_2__0 )* )
+            // InternalOCLinEcore.g:7208:1: ( ( ( rule__AnnotationCS__Group_3_2__0 )* ) )
+            // InternalOCLinEcore.g:7209:1: ( ( rule__AnnotationCS__Group_3_2__0 )* )
             {
-            // InternalOCLinEcore.g:7197:1: ( ( rule__AnnotationCS__Group_3_2__0 )* )
-            // InternalOCLinEcore.g:7198:1: ( rule__AnnotationCS__Group_3_2__0 )*
+            // InternalOCLinEcore.g:7209:1: ( ( rule__AnnotationCS__Group_3_2__0 )* )
+            // InternalOCLinEcore.g:7210:1: ( rule__AnnotationCS__Group_3_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getGroup_3_2()); 
             }
-            // InternalOCLinEcore.g:7199:1: ( rule__AnnotationCS__Group_3_2__0 )*
+            // InternalOCLinEcore.g:7211:1: ( rule__AnnotationCS__Group_3_2__0 )*
             loop91:
             do {
                 int alt91=2;
@@ -24286,7 +24354,7 @@
 
                 switch (alt91) {
             	case 1 :
-            	    // InternalOCLinEcore.g:7199:2: rule__AnnotationCS__Group_3_2__0
+            	    // InternalOCLinEcore.g:7211:2: rule__AnnotationCS__Group_3_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__AnnotationCS__Group_3_2__0();
@@ -24327,14 +24395,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3__3"
-    // InternalOCLinEcore.g:7209:1: rule__AnnotationCS__Group_3__3 : rule__AnnotationCS__Group_3__3__Impl ;
+    // InternalOCLinEcore.g:7221:1: rule__AnnotationCS__Group_3__3 : rule__AnnotationCS__Group_3__3__Impl ;
     public final void rule__AnnotationCS__Group_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7213:1: ( rule__AnnotationCS__Group_3__3__Impl )
-            // InternalOCLinEcore.g:7214:2: rule__AnnotationCS__Group_3__3__Impl
+            // InternalOCLinEcore.g:7225:1: ( rule__AnnotationCS__Group_3__3__Impl )
+            // InternalOCLinEcore.g:7226:2: rule__AnnotationCS__Group_3__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AnnotationCS__Group_3__3__Impl();
@@ -24360,17 +24428,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3__3__Impl"
-    // InternalOCLinEcore.g:7220:1: rule__AnnotationCS__Group_3__3__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:7232:1: rule__AnnotationCS__Group_3__3__Impl : ( ')' ) ;
     public final void rule__AnnotationCS__Group_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7224:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:7225:1: ( ')' )
+            // InternalOCLinEcore.g:7236:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:7237:1: ( ')' )
             {
-            // InternalOCLinEcore.g:7225:1: ( ')' )
-            // InternalOCLinEcore.g:7226:1: ')'
+            // InternalOCLinEcore.g:7237:1: ( ')' )
+            // InternalOCLinEcore.g:7238:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getRightParenthesisKeyword_3_3()); 
@@ -24401,14 +24469,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3_2__0"
-    // InternalOCLinEcore.g:7247:1: rule__AnnotationCS__Group_3_2__0 : rule__AnnotationCS__Group_3_2__0__Impl rule__AnnotationCS__Group_3_2__1 ;
+    // InternalOCLinEcore.g:7259:1: rule__AnnotationCS__Group_3_2__0 : rule__AnnotationCS__Group_3_2__0__Impl rule__AnnotationCS__Group_3_2__1 ;
     public final void rule__AnnotationCS__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7251:1: ( rule__AnnotationCS__Group_3_2__0__Impl rule__AnnotationCS__Group_3_2__1 )
-            // InternalOCLinEcore.g:7252:2: rule__AnnotationCS__Group_3_2__0__Impl rule__AnnotationCS__Group_3_2__1
+            // InternalOCLinEcore.g:7263:1: ( rule__AnnotationCS__Group_3_2__0__Impl rule__AnnotationCS__Group_3_2__1 )
+            // InternalOCLinEcore.g:7264:2: rule__AnnotationCS__Group_3_2__0__Impl rule__AnnotationCS__Group_3_2__1
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__AnnotationCS__Group_3_2__0__Impl();
@@ -24439,17 +24507,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3_2__0__Impl"
-    // InternalOCLinEcore.g:7259:1: rule__AnnotationCS__Group_3_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:7271:1: rule__AnnotationCS__Group_3_2__0__Impl : ( ',' ) ;
     public final void rule__AnnotationCS__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7263:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:7264:1: ( ',' )
+            // InternalOCLinEcore.g:7275:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:7276:1: ( ',' )
             {
-            // InternalOCLinEcore.g:7264:1: ( ',' )
-            // InternalOCLinEcore.g:7265:1: ','
+            // InternalOCLinEcore.g:7276:1: ( ',' )
+            // InternalOCLinEcore.g:7277:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getCommaKeyword_3_2_0()); 
@@ -24480,14 +24548,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3_2__1"
-    // InternalOCLinEcore.g:7278:1: rule__AnnotationCS__Group_3_2__1 : rule__AnnotationCS__Group_3_2__1__Impl ;
+    // InternalOCLinEcore.g:7290:1: rule__AnnotationCS__Group_3_2__1 : rule__AnnotationCS__Group_3_2__1__Impl ;
     public final void rule__AnnotationCS__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7282:1: ( rule__AnnotationCS__Group_3_2__1__Impl )
-            // InternalOCLinEcore.g:7283:2: rule__AnnotationCS__Group_3_2__1__Impl
+            // InternalOCLinEcore.g:7294:1: ( rule__AnnotationCS__Group_3_2__1__Impl )
+            // InternalOCLinEcore.g:7295:2: rule__AnnotationCS__Group_3_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AnnotationCS__Group_3_2__1__Impl();
@@ -24513,23 +24581,23 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_3_2__1__Impl"
-    // InternalOCLinEcore.g:7289:1: rule__AnnotationCS__Group_3_2__1__Impl : ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 ) ) ;
+    // InternalOCLinEcore.g:7301:1: rule__AnnotationCS__Group_3_2__1__Impl : ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 ) ) ;
     public final void rule__AnnotationCS__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7293:1: ( ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 ) ) )
-            // InternalOCLinEcore.g:7294:1: ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 ) )
+            // InternalOCLinEcore.g:7305:1: ( ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 ) ) )
+            // InternalOCLinEcore.g:7306:1: ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 ) )
             {
-            // InternalOCLinEcore.g:7294:1: ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 ) )
-            // InternalOCLinEcore.g:7295:1: ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 )
+            // InternalOCLinEcore.g:7306:1: ( ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 ) )
+            // InternalOCLinEcore.g:7307:1: ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getOwnedDetailsAssignment_3_2_1()); 
             }
-            // InternalOCLinEcore.g:7296:1: ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 )
-            // InternalOCLinEcore.g:7296:2: rule__AnnotationCS__OwnedDetailsAssignment_3_2_1
+            // InternalOCLinEcore.g:7308:1: ( rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 )
+            // InternalOCLinEcore.g:7308:2: rule__AnnotationCS__OwnedDetailsAssignment_3_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AnnotationCS__OwnedDetailsAssignment_3_2_1();
@@ -24564,14 +24632,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_4_0__0"
-    // InternalOCLinEcore.g:7310:1: rule__AnnotationCS__Group_4_0__0 : rule__AnnotationCS__Group_4_0__0__Impl rule__AnnotationCS__Group_4_0__1 ;
+    // InternalOCLinEcore.g:7322:1: rule__AnnotationCS__Group_4_0__0 : rule__AnnotationCS__Group_4_0__0__Impl rule__AnnotationCS__Group_4_0__1 ;
     public final void rule__AnnotationCS__Group_4_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7314:1: ( rule__AnnotationCS__Group_4_0__0__Impl rule__AnnotationCS__Group_4_0__1 )
-            // InternalOCLinEcore.g:7315:2: rule__AnnotationCS__Group_4_0__0__Impl rule__AnnotationCS__Group_4_0__1
+            // InternalOCLinEcore.g:7326:1: ( rule__AnnotationCS__Group_4_0__0__Impl rule__AnnotationCS__Group_4_0__1 )
+            // InternalOCLinEcore.g:7327:2: rule__AnnotationCS__Group_4_0__0__Impl rule__AnnotationCS__Group_4_0__1
             {
             pushFollow(FollowSets000.FOLLOW_21);
             rule__AnnotationCS__Group_4_0__0__Impl();
@@ -24602,17 +24670,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_4_0__0__Impl"
-    // InternalOCLinEcore.g:7322:1: rule__AnnotationCS__Group_4_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:7334:1: rule__AnnotationCS__Group_4_0__0__Impl : ( '{' ) ;
     public final void rule__AnnotationCS__Group_4_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7326:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:7327:1: ( '{' )
+            // InternalOCLinEcore.g:7338:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:7339:1: ( '{' )
             {
-            // InternalOCLinEcore.g:7327:1: ( '{' )
-            // InternalOCLinEcore.g:7328:1: '{'
+            // InternalOCLinEcore.g:7339:1: ( '{' )
+            // InternalOCLinEcore.g:7340:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getLeftCurlyBracketKeyword_4_0_0()); 
@@ -24643,14 +24711,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_4_0__1"
-    // InternalOCLinEcore.g:7341:1: rule__AnnotationCS__Group_4_0__1 : rule__AnnotationCS__Group_4_0__1__Impl rule__AnnotationCS__Group_4_0__2 ;
+    // InternalOCLinEcore.g:7353:1: rule__AnnotationCS__Group_4_0__1 : rule__AnnotationCS__Group_4_0__1__Impl rule__AnnotationCS__Group_4_0__2 ;
     public final void rule__AnnotationCS__Group_4_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7345:1: ( rule__AnnotationCS__Group_4_0__1__Impl rule__AnnotationCS__Group_4_0__2 )
-            // InternalOCLinEcore.g:7346:2: rule__AnnotationCS__Group_4_0__1__Impl rule__AnnotationCS__Group_4_0__2
+            // InternalOCLinEcore.g:7357:1: ( rule__AnnotationCS__Group_4_0__1__Impl rule__AnnotationCS__Group_4_0__2 )
+            // InternalOCLinEcore.g:7358:2: rule__AnnotationCS__Group_4_0__1__Impl rule__AnnotationCS__Group_4_0__2
             {
             pushFollow(FollowSets000.FOLLOW_22);
             rule__AnnotationCS__Group_4_0__1__Impl();
@@ -24681,26 +24749,26 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_4_0__1__Impl"
-    // InternalOCLinEcore.g:7353:1: rule__AnnotationCS__Group_4_0__1__Impl : ( ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* ) ) ;
+    // InternalOCLinEcore.g:7365:1: rule__AnnotationCS__Group_4_0__1__Impl : ( ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* ) ) ;
     public final void rule__AnnotationCS__Group_4_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7357:1: ( ( ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* ) ) )
-            // InternalOCLinEcore.g:7358:1: ( ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* ) )
+            // InternalOCLinEcore.g:7369:1: ( ( ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* ) ) )
+            // InternalOCLinEcore.g:7370:1: ( ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* ) )
             {
-            // InternalOCLinEcore.g:7358:1: ( ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* ) )
-            // InternalOCLinEcore.g:7359:1: ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* )
+            // InternalOCLinEcore.g:7370:1: ( ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* ) )
+            // InternalOCLinEcore.g:7371:1: ( ( rule__AnnotationCS__Alternatives_4_0_1 ) ) ( ( rule__AnnotationCS__Alternatives_4_0_1 )* )
             {
-            // InternalOCLinEcore.g:7359:1: ( ( rule__AnnotationCS__Alternatives_4_0_1 ) )
-            // InternalOCLinEcore.g:7360:1: ( rule__AnnotationCS__Alternatives_4_0_1 )
+            // InternalOCLinEcore.g:7371:1: ( ( rule__AnnotationCS__Alternatives_4_0_1 ) )
+            // InternalOCLinEcore.g:7372:1: ( rule__AnnotationCS__Alternatives_4_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getAlternatives_4_0_1()); 
             }
-            // InternalOCLinEcore.g:7361:1: ( rule__AnnotationCS__Alternatives_4_0_1 )
-            // InternalOCLinEcore.g:7361:2: rule__AnnotationCS__Alternatives_4_0_1
+            // InternalOCLinEcore.g:7373:1: ( rule__AnnotationCS__Alternatives_4_0_1 )
+            // InternalOCLinEcore.g:7373:2: rule__AnnotationCS__Alternatives_4_0_1
             {
             pushFollow(FollowSets000.FOLLOW_23);
             rule__AnnotationCS__Alternatives_4_0_1();
@@ -24716,13 +24784,13 @@
 
             }
 
-            // InternalOCLinEcore.g:7364:1: ( ( rule__AnnotationCS__Alternatives_4_0_1 )* )
-            // InternalOCLinEcore.g:7365:1: ( rule__AnnotationCS__Alternatives_4_0_1 )*
+            // InternalOCLinEcore.g:7376:1: ( ( rule__AnnotationCS__Alternatives_4_0_1 )* )
+            // InternalOCLinEcore.g:7377:1: ( rule__AnnotationCS__Alternatives_4_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getAlternatives_4_0_1()); 
             }
-            // InternalOCLinEcore.g:7366:1: ( rule__AnnotationCS__Alternatives_4_0_1 )*
+            // InternalOCLinEcore.g:7378:1: ( rule__AnnotationCS__Alternatives_4_0_1 )*
             loop92:
             do {
                 int alt92=2;
@@ -24735,7 +24803,7 @@
 
                 switch (alt92) {
             	case 1 :
-            	    // InternalOCLinEcore.g:7366:2: rule__AnnotationCS__Alternatives_4_0_1
+            	    // InternalOCLinEcore.g:7378:2: rule__AnnotationCS__Alternatives_4_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_23);
             	    rule__AnnotationCS__Alternatives_4_0_1();
@@ -24779,14 +24847,14 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_4_0__2"
-    // InternalOCLinEcore.g:7377:1: rule__AnnotationCS__Group_4_0__2 : rule__AnnotationCS__Group_4_0__2__Impl ;
+    // InternalOCLinEcore.g:7389:1: rule__AnnotationCS__Group_4_0__2 : rule__AnnotationCS__Group_4_0__2__Impl ;
     public final void rule__AnnotationCS__Group_4_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7381:1: ( rule__AnnotationCS__Group_4_0__2__Impl )
-            // InternalOCLinEcore.g:7382:2: rule__AnnotationCS__Group_4_0__2__Impl
+            // InternalOCLinEcore.g:7393:1: ( rule__AnnotationCS__Group_4_0__2__Impl )
+            // InternalOCLinEcore.g:7394:2: rule__AnnotationCS__Group_4_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AnnotationCS__Group_4_0__2__Impl();
@@ -24812,17 +24880,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__Group_4_0__2__Impl"
-    // InternalOCLinEcore.g:7388:1: rule__AnnotationCS__Group_4_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:7400:1: rule__AnnotationCS__Group_4_0__2__Impl : ( '}' ) ;
     public final void rule__AnnotationCS__Group_4_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7392:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:7393:1: ( '}' )
+            // InternalOCLinEcore.g:7404:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:7405:1: ( '}' )
             {
-            // InternalOCLinEcore.g:7393:1: ( '}' )
-            // InternalOCLinEcore.g:7394:1: '}'
+            // InternalOCLinEcore.g:7405:1: ( '}' )
+            // InternalOCLinEcore.g:7406:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getRightCurlyBracketKeyword_4_0_2()); 
@@ -24853,14 +24921,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__0"
-    // InternalOCLinEcore.g:7413:1: rule__AttributeCS__Group__0 : rule__AttributeCS__Group__0__Impl rule__AttributeCS__Group__1 ;
+    // InternalOCLinEcore.g:7425:1: rule__AttributeCS__Group__0 : rule__AttributeCS__Group__0__Impl rule__AttributeCS__Group__1 ;
     public final void rule__AttributeCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7417:1: ( rule__AttributeCS__Group__0__Impl rule__AttributeCS__Group__1 )
-            // InternalOCLinEcore.g:7418:2: rule__AttributeCS__Group__0__Impl rule__AttributeCS__Group__1
+            // InternalOCLinEcore.g:7429:1: ( rule__AttributeCS__Group__0__Impl rule__AttributeCS__Group__1 )
+            // InternalOCLinEcore.g:7430:2: rule__AttributeCS__Group__0__Impl rule__AttributeCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_24);
             rule__AttributeCS__Group__0__Impl();
@@ -24891,22 +24959,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__0__Impl"
-    // InternalOCLinEcore.g:7425:1: rule__AttributeCS__Group__0__Impl : ( ( rule__AttributeCS__Alternatives_0 )? ) ;
+    // InternalOCLinEcore.g:7437:1: rule__AttributeCS__Group__0__Impl : ( ( rule__AttributeCS__Alternatives_0 )? ) ;
     public final void rule__AttributeCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7429:1: ( ( ( rule__AttributeCS__Alternatives_0 )? ) )
-            // InternalOCLinEcore.g:7430:1: ( ( rule__AttributeCS__Alternatives_0 )? )
+            // InternalOCLinEcore.g:7441:1: ( ( ( rule__AttributeCS__Alternatives_0 )? ) )
+            // InternalOCLinEcore.g:7442:1: ( ( rule__AttributeCS__Alternatives_0 )? )
             {
-            // InternalOCLinEcore.g:7430:1: ( ( rule__AttributeCS__Alternatives_0 )? )
-            // InternalOCLinEcore.g:7431:1: ( rule__AttributeCS__Alternatives_0 )?
+            // InternalOCLinEcore.g:7442:1: ( ( rule__AttributeCS__Alternatives_0 )? )
+            // InternalOCLinEcore.g:7443:1: ( rule__AttributeCS__Alternatives_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getAlternatives_0()); 
             }
-            // InternalOCLinEcore.g:7432:1: ( rule__AttributeCS__Alternatives_0 )?
+            // InternalOCLinEcore.g:7444:1: ( rule__AttributeCS__Alternatives_0 )?
             int alt93=2;
             int LA93_0 = input.LA(1);
 
@@ -24915,7 +24983,7 @@
             }
             switch (alt93) {
                 case 1 :
-                    // InternalOCLinEcore.g:7432:2: rule__AttributeCS__Alternatives_0
+                    // InternalOCLinEcore.g:7444:2: rule__AttributeCS__Alternatives_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AttributeCS__Alternatives_0();
@@ -24953,14 +25021,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__1"
-    // InternalOCLinEcore.g:7442:1: rule__AttributeCS__Group__1 : rule__AttributeCS__Group__1__Impl rule__AttributeCS__Group__2 ;
+    // InternalOCLinEcore.g:7454:1: rule__AttributeCS__Group__1 : rule__AttributeCS__Group__1__Impl rule__AttributeCS__Group__2 ;
     public final void rule__AttributeCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7446:1: ( rule__AttributeCS__Group__1__Impl rule__AttributeCS__Group__2 )
-            // InternalOCLinEcore.g:7447:2: rule__AttributeCS__Group__1__Impl rule__AttributeCS__Group__2
+            // InternalOCLinEcore.g:7458:1: ( rule__AttributeCS__Group__1__Impl rule__AttributeCS__Group__2 )
+            // InternalOCLinEcore.g:7459:2: rule__AttributeCS__Group__1__Impl rule__AttributeCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__AttributeCS__Group__1__Impl();
@@ -24991,17 +25059,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__1__Impl"
-    // InternalOCLinEcore.g:7454:1: rule__AttributeCS__Group__1__Impl : ( 'attribute' ) ;
+    // InternalOCLinEcore.g:7466:1: rule__AttributeCS__Group__1__Impl : ( 'attribute' ) ;
     public final void rule__AttributeCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7458:1: ( ( 'attribute' ) )
-            // InternalOCLinEcore.g:7459:1: ( 'attribute' )
+            // InternalOCLinEcore.g:7470:1: ( ( 'attribute' ) )
+            // InternalOCLinEcore.g:7471:1: ( 'attribute' )
             {
-            // InternalOCLinEcore.g:7459:1: ( 'attribute' )
-            // InternalOCLinEcore.g:7460:1: 'attribute'
+            // InternalOCLinEcore.g:7471:1: ( 'attribute' )
+            // InternalOCLinEcore.g:7472:1: 'attribute'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getAttributeKeyword_1()); 
@@ -25032,14 +25100,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__2"
-    // InternalOCLinEcore.g:7473:1: rule__AttributeCS__Group__2 : rule__AttributeCS__Group__2__Impl rule__AttributeCS__Group__3 ;
+    // InternalOCLinEcore.g:7485:1: rule__AttributeCS__Group__2 : rule__AttributeCS__Group__2__Impl rule__AttributeCS__Group__3 ;
     public final void rule__AttributeCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7477:1: ( rule__AttributeCS__Group__2__Impl rule__AttributeCS__Group__3 )
-            // InternalOCLinEcore.g:7478:2: rule__AttributeCS__Group__2__Impl rule__AttributeCS__Group__3
+            // InternalOCLinEcore.g:7489:1: ( rule__AttributeCS__Group__2__Impl rule__AttributeCS__Group__3 )
+            // InternalOCLinEcore.g:7490:2: rule__AttributeCS__Group__2__Impl rule__AttributeCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_25);
             rule__AttributeCS__Group__2__Impl();
@@ -25070,23 +25138,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__2__Impl"
-    // InternalOCLinEcore.g:7485:1: rule__AttributeCS__Group__2__Impl : ( ( rule__AttributeCS__NameAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:7497:1: rule__AttributeCS__Group__2__Impl : ( ( rule__AttributeCS__NameAssignment_2 ) ) ;
     public final void rule__AttributeCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7489:1: ( ( ( rule__AttributeCS__NameAssignment_2 ) ) )
-            // InternalOCLinEcore.g:7490:1: ( ( rule__AttributeCS__NameAssignment_2 ) )
+            // InternalOCLinEcore.g:7501:1: ( ( ( rule__AttributeCS__NameAssignment_2 ) ) )
+            // InternalOCLinEcore.g:7502:1: ( ( rule__AttributeCS__NameAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:7490:1: ( ( rule__AttributeCS__NameAssignment_2 ) )
-            // InternalOCLinEcore.g:7491:1: ( rule__AttributeCS__NameAssignment_2 )
+            // InternalOCLinEcore.g:7502:1: ( ( rule__AttributeCS__NameAssignment_2 ) )
+            // InternalOCLinEcore.g:7503:1: ( rule__AttributeCS__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getNameAssignment_2()); 
             }
-            // InternalOCLinEcore.g:7492:1: ( rule__AttributeCS__NameAssignment_2 )
-            // InternalOCLinEcore.g:7492:2: rule__AttributeCS__NameAssignment_2
+            // InternalOCLinEcore.g:7504:1: ( rule__AttributeCS__NameAssignment_2 )
+            // InternalOCLinEcore.g:7504:2: rule__AttributeCS__NameAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__NameAssignment_2();
@@ -25121,14 +25189,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__3"
-    // InternalOCLinEcore.g:7502:1: rule__AttributeCS__Group__3 : rule__AttributeCS__Group__3__Impl rule__AttributeCS__Group__4 ;
+    // InternalOCLinEcore.g:7514:1: rule__AttributeCS__Group__3 : rule__AttributeCS__Group__3__Impl rule__AttributeCS__Group__4 ;
     public final void rule__AttributeCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7506:1: ( rule__AttributeCS__Group__3__Impl rule__AttributeCS__Group__4 )
-            // InternalOCLinEcore.g:7507:2: rule__AttributeCS__Group__3__Impl rule__AttributeCS__Group__4
+            // InternalOCLinEcore.g:7518:1: ( rule__AttributeCS__Group__3__Impl rule__AttributeCS__Group__4 )
+            // InternalOCLinEcore.g:7519:2: rule__AttributeCS__Group__3__Impl rule__AttributeCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_25);
             rule__AttributeCS__Group__3__Impl();
@@ -25159,22 +25227,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__3__Impl"
-    // InternalOCLinEcore.g:7514:1: rule__AttributeCS__Group__3__Impl : ( ( rule__AttributeCS__Group_3__0 )? ) ;
+    // InternalOCLinEcore.g:7526:1: rule__AttributeCS__Group__3__Impl : ( ( rule__AttributeCS__Group_3__0 )? ) ;
     public final void rule__AttributeCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7518:1: ( ( ( rule__AttributeCS__Group_3__0 )? ) )
-            // InternalOCLinEcore.g:7519:1: ( ( rule__AttributeCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:7530:1: ( ( ( rule__AttributeCS__Group_3__0 )? ) )
+            // InternalOCLinEcore.g:7531:1: ( ( rule__AttributeCS__Group_3__0 )? )
             {
-            // InternalOCLinEcore.g:7519:1: ( ( rule__AttributeCS__Group_3__0 )? )
-            // InternalOCLinEcore.g:7520:1: ( rule__AttributeCS__Group_3__0 )?
+            // InternalOCLinEcore.g:7531:1: ( ( rule__AttributeCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:7532:1: ( rule__AttributeCS__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getGroup_3()); 
             }
-            // InternalOCLinEcore.g:7521:1: ( rule__AttributeCS__Group_3__0 )?
+            // InternalOCLinEcore.g:7533:1: ( rule__AttributeCS__Group_3__0 )?
             int alt94=2;
             int LA94_0 = input.LA(1);
 
@@ -25183,7 +25251,7 @@
             }
             switch (alt94) {
                 case 1 :
-                    // InternalOCLinEcore.g:7521:2: rule__AttributeCS__Group_3__0
+                    // InternalOCLinEcore.g:7533:2: rule__AttributeCS__Group_3__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AttributeCS__Group_3__0();
@@ -25221,14 +25289,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__4"
-    // InternalOCLinEcore.g:7531:1: rule__AttributeCS__Group__4 : rule__AttributeCS__Group__4__Impl rule__AttributeCS__Group__5 ;
+    // InternalOCLinEcore.g:7543:1: rule__AttributeCS__Group__4 : rule__AttributeCS__Group__4__Impl rule__AttributeCS__Group__5 ;
     public final void rule__AttributeCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7535:1: ( rule__AttributeCS__Group__4__Impl rule__AttributeCS__Group__5 )
-            // InternalOCLinEcore.g:7536:2: rule__AttributeCS__Group__4__Impl rule__AttributeCS__Group__5
+            // InternalOCLinEcore.g:7547:1: ( rule__AttributeCS__Group__4__Impl rule__AttributeCS__Group__5 )
+            // InternalOCLinEcore.g:7548:2: rule__AttributeCS__Group__4__Impl rule__AttributeCS__Group__5
             {
             pushFollow(FollowSets000.FOLLOW_25);
             rule__AttributeCS__Group__4__Impl();
@@ -25259,22 +25327,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__4__Impl"
-    // InternalOCLinEcore.g:7543:1: rule__AttributeCS__Group__4__Impl : ( ( rule__AttributeCS__Group_4__0 )? ) ;
+    // InternalOCLinEcore.g:7555:1: rule__AttributeCS__Group__4__Impl : ( ( rule__AttributeCS__Group_4__0 )? ) ;
     public final void rule__AttributeCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7547:1: ( ( ( rule__AttributeCS__Group_4__0 )? ) )
-            // InternalOCLinEcore.g:7548:1: ( ( rule__AttributeCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:7559:1: ( ( ( rule__AttributeCS__Group_4__0 )? ) )
+            // InternalOCLinEcore.g:7560:1: ( ( rule__AttributeCS__Group_4__0 )? )
             {
-            // InternalOCLinEcore.g:7548:1: ( ( rule__AttributeCS__Group_4__0 )? )
-            // InternalOCLinEcore.g:7549:1: ( rule__AttributeCS__Group_4__0 )?
+            // InternalOCLinEcore.g:7560:1: ( ( rule__AttributeCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:7561:1: ( rule__AttributeCS__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getGroup_4()); 
             }
-            // InternalOCLinEcore.g:7550:1: ( rule__AttributeCS__Group_4__0 )?
+            // InternalOCLinEcore.g:7562:1: ( rule__AttributeCS__Group_4__0 )?
             int alt95=2;
             int LA95_0 = input.LA(1);
 
@@ -25283,7 +25351,7 @@
             }
             switch (alt95) {
                 case 1 :
-                    // InternalOCLinEcore.g:7550:2: rule__AttributeCS__Group_4__0
+                    // InternalOCLinEcore.g:7562:2: rule__AttributeCS__Group_4__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AttributeCS__Group_4__0();
@@ -25321,14 +25389,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__5"
-    // InternalOCLinEcore.g:7560:1: rule__AttributeCS__Group__5 : rule__AttributeCS__Group__5__Impl rule__AttributeCS__Group__6 ;
+    // InternalOCLinEcore.g:7572:1: rule__AttributeCS__Group__5 : rule__AttributeCS__Group__5__Impl rule__AttributeCS__Group__6 ;
     public final void rule__AttributeCS__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7564:1: ( rule__AttributeCS__Group__5__Impl rule__AttributeCS__Group__6 )
-            // InternalOCLinEcore.g:7565:2: rule__AttributeCS__Group__5__Impl rule__AttributeCS__Group__6
+            // InternalOCLinEcore.g:7576:1: ( rule__AttributeCS__Group__5__Impl rule__AttributeCS__Group__6 )
+            // InternalOCLinEcore.g:7577:2: rule__AttributeCS__Group__5__Impl rule__AttributeCS__Group__6
             {
             pushFollow(FollowSets000.FOLLOW_25);
             rule__AttributeCS__Group__5__Impl();
@@ -25359,22 +25427,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__5__Impl"
-    // InternalOCLinEcore.g:7572:1: rule__AttributeCS__Group__5__Impl : ( ( rule__AttributeCS__Group_5__0 )? ) ;
+    // InternalOCLinEcore.g:7584:1: rule__AttributeCS__Group__5__Impl : ( ( rule__AttributeCS__Group_5__0 )? ) ;
     public final void rule__AttributeCS__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7576:1: ( ( ( rule__AttributeCS__Group_5__0 )? ) )
-            // InternalOCLinEcore.g:7577:1: ( ( rule__AttributeCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:7588:1: ( ( ( rule__AttributeCS__Group_5__0 )? ) )
+            // InternalOCLinEcore.g:7589:1: ( ( rule__AttributeCS__Group_5__0 )? )
             {
-            // InternalOCLinEcore.g:7577:1: ( ( rule__AttributeCS__Group_5__0 )? )
-            // InternalOCLinEcore.g:7578:1: ( rule__AttributeCS__Group_5__0 )?
+            // InternalOCLinEcore.g:7589:1: ( ( rule__AttributeCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:7590:1: ( rule__AttributeCS__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getGroup_5()); 
             }
-            // InternalOCLinEcore.g:7579:1: ( rule__AttributeCS__Group_5__0 )?
+            // InternalOCLinEcore.g:7591:1: ( rule__AttributeCS__Group_5__0 )?
             int alt96=2;
             int LA96_0 = input.LA(1);
 
@@ -25387,7 +25455,7 @@
             }
             switch (alt96) {
                 case 1 :
-                    // InternalOCLinEcore.g:7579:2: rule__AttributeCS__Group_5__0
+                    // InternalOCLinEcore.g:7591:2: rule__AttributeCS__Group_5__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AttributeCS__Group_5__0();
@@ -25425,14 +25493,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__6"
-    // InternalOCLinEcore.g:7589:1: rule__AttributeCS__Group__6 : rule__AttributeCS__Group__6__Impl ;
+    // InternalOCLinEcore.g:7601:1: rule__AttributeCS__Group__6 : rule__AttributeCS__Group__6__Impl ;
     public final void rule__AttributeCS__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7593:1: ( rule__AttributeCS__Group__6__Impl )
-            // InternalOCLinEcore.g:7594:2: rule__AttributeCS__Group__6__Impl
+            // InternalOCLinEcore.g:7605:1: ( rule__AttributeCS__Group__6__Impl )
+            // InternalOCLinEcore.g:7606:2: rule__AttributeCS__Group__6__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group__6__Impl();
@@ -25458,23 +25526,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group__6__Impl"
-    // InternalOCLinEcore.g:7600:1: rule__AttributeCS__Group__6__Impl : ( ( rule__AttributeCS__Alternatives_6 ) ) ;
+    // InternalOCLinEcore.g:7612:1: rule__AttributeCS__Group__6__Impl : ( ( rule__AttributeCS__Alternatives_6 ) ) ;
     public final void rule__AttributeCS__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7604:1: ( ( ( rule__AttributeCS__Alternatives_6 ) ) )
-            // InternalOCLinEcore.g:7605:1: ( ( rule__AttributeCS__Alternatives_6 ) )
+            // InternalOCLinEcore.g:7616:1: ( ( ( rule__AttributeCS__Alternatives_6 ) ) )
+            // InternalOCLinEcore.g:7617:1: ( ( rule__AttributeCS__Alternatives_6 ) )
             {
-            // InternalOCLinEcore.g:7605:1: ( ( rule__AttributeCS__Alternatives_6 ) )
-            // InternalOCLinEcore.g:7606:1: ( rule__AttributeCS__Alternatives_6 )
+            // InternalOCLinEcore.g:7617:1: ( ( rule__AttributeCS__Alternatives_6 ) )
+            // InternalOCLinEcore.g:7618:1: ( rule__AttributeCS__Alternatives_6 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getAlternatives_6()); 
             }
-            // InternalOCLinEcore.g:7607:1: ( rule__AttributeCS__Alternatives_6 )
-            // InternalOCLinEcore.g:7607:2: rule__AttributeCS__Alternatives_6
+            // InternalOCLinEcore.g:7619:1: ( rule__AttributeCS__Alternatives_6 )
+            // InternalOCLinEcore.g:7619:2: rule__AttributeCS__Alternatives_6
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Alternatives_6();
@@ -25509,14 +25577,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_0_0__0"
-    // InternalOCLinEcore.g:7631:1: rule__AttributeCS__Group_0_0__0 : rule__AttributeCS__Group_0_0__0__Impl rule__AttributeCS__Group_0_0__1 ;
+    // InternalOCLinEcore.g:7643:1: rule__AttributeCS__Group_0_0__0 : rule__AttributeCS__Group_0_0__0__Impl rule__AttributeCS__Group_0_0__1 ;
     public final void rule__AttributeCS__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7635:1: ( rule__AttributeCS__Group_0_0__0__Impl rule__AttributeCS__Group_0_0__1 )
-            // InternalOCLinEcore.g:7636:2: rule__AttributeCS__Group_0_0__0__Impl rule__AttributeCS__Group_0_0__1
+            // InternalOCLinEcore.g:7647:1: ( rule__AttributeCS__Group_0_0__0__Impl rule__AttributeCS__Group_0_0__1 )
+            // InternalOCLinEcore.g:7648:2: rule__AttributeCS__Group_0_0__0__Impl rule__AttributeCS__Group_0_0__1
             {
             pushFollow(FollowSets000.FOLLOW_26);
             rule__AttributeCS__Group_0_0__0__Impl();
@@ -25547,23 +25615,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_0_0__0__Impl"
-    // InternalOCLinEcore.g:7643:1: rule__AttributeCS__Group_0_0__0__Impl : ( ( rule__AttributeCS__QualifiersAssignment_0_0_0 ) ) ;
+    // InternalOCLinEcore.g:7655:1: rule__AttributeCS__Group_0_0__0__Impl : ( ( rule__AttributeCS__QualifiersAssignment_0_0_0 ) ) ;
     public final void rule__AttributeCS__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7647:1: ( ( ( rule__AttributeCS__QualifiersAssignment_0_0_0 ) ) )
-            // InternalOCLinEcore.g:7648:1: ( ( rule__AttributeCS__QualifiersAssignment_0_0_0 ) )
+            // InternalOCLinEcore.g:7659:1: ( ( ( rule__AttributeCS__QualifiersAssignment_0_0_0 ) ) )
+            // InternalOCLinEcore.g:7660:1: ( ( rule__AttributeCS__QualifiersAssignment_0_0_0 ) )
             {
-            // InternalOCLinEcore.g:7648:1: ( ( rule__AttributeCS__QualifiersAssignment_0_0_0 ) )
-            // InternalOCLinEcore.g:7649:1: ( rule__AttributeCS__QualifiersAssignment_0_0_0 )
+            // InternalOCLinEcore.g:7660:1: ( ( rule__AttributeCS__QualifiersAssignment_0_0_0 ) )
+            // InternalOCLinEcore.g:7661:1: ( rule__AttributeCS__QualifiersAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_0_0()); 
             }
-            // InternalOCLinEcore.g:7650:1: ( rule__AttributeCS__QualifiersAssignment_0_0_0 )
-            // InternalOCLinEcore.g:7650:2: rule__AttributeCS__QualifiersAssignment_0_0_0
+            // InternalOCLinEcore.g:7662:1: ( rule__AttributeCS__QualifiersAssignment_0_0_0 )
+            // InternalOCLinEcore.g:7662:2: rule__AttributeCS__QualifiersAssignment_0_0_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__QualifiersAssignment_0_0_0();
@@ -25598,14 +25666,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_0_0__1"
-    // InternalOCLinEcore.g:7660:1: rule__AttributeCS__Group_0_0__1 : rule__AttributeCS__Group_0_0__1__Impl ;
+    // InternalOCLinEcore.g:7672:1: rule__AttributeCS__Group_0_0__1 : rule__AttributeCS__Group_0_0__1__Impl ;
     public final void rule__AttributeCS__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7664:1: ( rule__AttributeCS__Group_0_0__1__Impl )
-            // InternalOCLinEcore.g:7665:2: rule__AttributeCS__Group_0_0__1__Impl
+            // InternalOCLinEcore.g:7676:1: ( rule__AttributeCS__Group_0_0__1__Impl )
+            // InternalOCLinEcore.g:7677:2: rule__AttributeCS__Group_0_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_0_0__1__Impl();
@@ -25631,22 +25699,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_0_0__1__Impl"
-    // InternalOCLinEcore.g:7671:1: rule__AttributeCS__Group_0_0__1__Impl : ( ( rule__AttributeCS__QualifiersAssignment_0_0_1 )? ) ;
+    // InternalOCLinEcore.g:7683:1: rule__AttributeCS__Group_0_0__1__Impl : ( ( rule__AttributeCS__QualifiersAssignment_0_0_1 )? ) ;
     public final void rule__AttributeCS__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7675:1: ( ( ( rule__AttributeCS__QualifiersAssignment_0_0_1 )? ) )
-            // InternalOCLinEcore.g:7676:1: ( ( rule__AttributeCS__QualifiersAssignment_0_0_1 )? )
+            // InternalOCLinEcore.g:7687:1: ( ( ( rule__AttributeCS__QualifiersAssignment_0_0_1 )? ) )
+            // InternalOCLinEcore.g:7688:1: ( ( rule__AttributeCS__QualifiersAssignment_0_0_1 )? )
             {
-            // InternalOCLinEcore.g:7676:1: ( ( rule__AttributeCS__QualifiersAssignment_0_0_1 )? )
-            // InternalOCLinEcore.g:7677:1: ( rule__AttributeCS__QualifiersAssignment_0_0_1 )?
+            // InternalOCLinEcore.g:7688:1: ( ( rule__AttributeCS__QualifiersAssignment_0_0_1 )? )
+            // InternalOCLinEcore.g:7689:1: ( rule__AttributeCS__QualifiersAssignment_0_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_0_1()); 
             }
-            // InternalOCLinEcore.g:7678:1: ( rule__AttributeCS__QualifiersAssignment_0_0_1 )?
+            // InternalOCLinEcore.g:7690:1: ( rule__AttributeCS__QualifiersAssignment_0_0_1 )?
             int alt97=2;
             int LA97_0 = input.LA(1);
 
@@ -25655,7 +25723,7 @@
             }
             switch (alt97) {
                 case 1 :
-                    // InternalOCLinEcore.g:7678:2: rule__AttributeCS__QualifiersAssignment_0_0_1
+                    // InternalOCLinEcore.g:7690:2: rule__AttributeCS__QualifiersAssignment_0_0_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AttributeCS__QualifiersAssignment_0_0_1();
@@ -25693,14 +25761,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_0_1__0"
-    // InternalOCLinEcore.g:7692:1: rule__AttributeCS__Group_0_1__0 : rule__AttributeCS__Group_0_1__0__Impl rule__AttributeCS__Group_0_1__1 ;
+    // InternalOCLinEcore.g:7704:1: rule__AttributeCS__Group_0_1__0 : rule__AttributeCS__Group_0_1__0__Impl rule__AttributeCS__Group_0_1__1 ;
     public final void rule__AttributeCS__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7696:1: ( rule__AttributeCS__Group_0_1__0__Impl rule__AttributeCS__Group_0_1__1 )
-            // InternalOCLinEcore.g:7697:2: rule__AttributeCS__Group_0_1__0__Impl rule__AttributeCS__Group_0_1__1
+            // InternalOCLinEcore.g:7708:1: ( rule__AttributeCS__Group_0_1__0__Impl rule__AttributeCS__Group_0_1__1 )
+            // InternalOCLinEcore.g:7709:2: rule__AttributeCS__Group_0_1__0__Impl rule__AttributeCS__Group_0_1__1
             {
             pushFollow(FollowSets000.FOLLOW_27);
             rule__AttributeCS__Group_0_1__0__Impl();
@@ -25731,23 +25799,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_0_1__0__Impl"
-    // InternalOCLinEcore.g:7704:1: rule__AttributeCS__Group_0_1__0__Impl : ( ( rule__AttributeCS__QualifiersAssignment_0_1_0 ) ) ;
+    // InternalOCLinEcore.g:7716:1: rule__AttributeCS__Group_0_1__0__Impl : ( ( rule__AttributeCS__QualifiersAssignment_0_1_0 ) ) ;
     public final void rule__AttributeCS__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7708:1: ( ( ( rule__AttributeCS__QualifiersAssignment_0_1_0 ) ) )
-            // InternalOCLinEcore.g:7709:1: ( ( rule__AttributeCS__QualifiersAssignment_0_1_0 ) )
+            // InternalOCLinEcore.g:7720:1: ( ( ( rule__AttributeCS__QualifiersAssignment_0_1_0 ) ) )
+            // InternalOCLinEcore.g:7721:1: ( ( rule__AttributeCS__QualifiersAssignment_0_1_0 ) )
             {
-            // InternalOCLinEcore.g:7709:1: ( ( rule__AttributeCS__QualifiersAssignment_0_1_0 ) )
-            // InternalOCLinEcore.g:7710:1: ( rule__AttributeCS__QualifiersAssignment_0_1_0 )
+            // InternalOCLinEcore.g:7721:1: ( ( rule__AttributeCS__QualifiersAssignment_0_1_0 ) )
+            // InternalOCLinEcore.g:7722:1: ( rule__AttributeCS__QualifiersAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_1_0()); 
             }
-            // InternalOCLinEcore.g:7711:1: ( rule__AttributeCS__QualifiersAssignment_0_1_0 )
-            // InternalOCLinEcore.g:7711:2: rule__AttributeCS__QualifiersAssignment_0_1_0
+            // InternalOCLinEcore.g:7723:1: ( rule__AttributeCS__QualifiersAssignment_0_1_0 )
+            // InternalOCLinEcore.g:7723:2: rule__AttributeCS__QualifiersAssignment_0_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__QualifiersAssignment_0_1_0();
@@ -25782,14 +25850,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_0_1__1"
-    // InternalOCLinEcore.g:7721:1: rule__AttributeCS__Group_0_1__1 : rule__AttributeCS__Group_0_1__1__Impl ;
+    // InternalOCLinEcore.g:7733:1: rule__AttributeCS__Group_0_1__1 : rule__AttributeCS__Group_0_1__1__Impl ;
     public final void rule__AttributeCS__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7725:1: ( rule__AttributeCS__Group_0_1__1__Impl )
-            // InternalOCLinEcore.g:7726:2: rule__AttributeCS__Group_0_1__1__Impl
+            // InternalOCLinEcore.g:7737:1: ( rule__AttributeCS__Group_0_1__1__Impl )
+            // InternalOCLinEcore.g:7738:2: rule__AttributeCS__Group_0_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_0_1__1__Impl();
@@ -25815,22 +25883,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_0_1__1__Impl"
-    // InternalOCLinEcore.g:7732:1: rule__AttributeCS__Group_0_1__1__Impl : ( ( rule__AttributeCS__QualifiersAssignment_0_1_1 )? ) ;
+    // InternalOCLinEcore.g:7744:1: rule__AttributeCS__Group_0_1__1__Impl : ( ( rule__AttributeCS__QualifiersAssignment_0_1_1 )? ) ;
     public final void rule__AttributeCS__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7736:1: ( ( ( rule__AttributeCS__QualifiersAssignment_0_1_1 )? ) )
-            // InternalOCLinEcore.g:7737:1: ( ( rule__AttributeCS__QualifiersAssignment_0_1_1 )? )
+            // InternalOCLinEcore.g:7748:1: ( ( ( rule__AttributeCS__QualifiersAssignment_0_1_1 )? ) )
+            // InternalOCLinEcore.g:7749:1: ( ( rule__AttributeCS__QualifiersAssignment_0_1_1 )? )
             {
-            // InternalOCLinEcore.g:7737:1: ( ( rule__AttributeCS__QualifiersAssignment_0_1_1 )? )
-            // InternalOCLinEcore.g:7738:1: ( rule__AttributeCS__QualifiersAssignment_0_1_1 )?
+            // InternalOCLinEcore.g:7749:1: ( ( rule__AttributeCS__QualifiersAssignment_0_1_1 )? )
+            // InternalOCLinEcore.g:7750:1: ( rule__AttributeCS__QualifiersAssignment_0_1_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_1_1()); 
             }
-            // InternalOCLinEcore.g:7739:1: ( rule__AttributeCS__QualifiersAssignment_0_1_1 )?
+            // InternalOCLinEcore.g:7751:1: ( rule__AttributeCS__QualifiersAssignment_0_1_1 )?
             int alt98=2;
             int LA98_0 = input.LA(1);
 
@@ -25839,7 +25907,7 @@
             }
             switch (alt98) {
                 case 1 :
-                    // InternalOCLinEcore.g:7739:2: rule__AttributeCS__QualifiersAssignment_0_1_1
+                    // InternalOCLinEcore.g:7751:2: rule__AttributeCS__QualifiersAssignment_0_1_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AttributeCS__QualifiersAssignment_0_1_1();
@@ -25877,14 +25945,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_3__0"
-    // InternalOCLinEcore.g:7753:1: rule__AttributeCS__Group_3__0 : rule__AttributeCS__Group_3__0__Impl rule__AttributeCS__Group_3__1 ;
+    // InternalOCLinEcore.g:7765:1: rule__AttributeCS__Group_3__0 : rule__AttributeCS__Group_3__0__Impl rule__AttributeCS__Group_3__1 ;
     public final void rule__AttributeCS__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7757:1: ( rule__AttributeCS__Group_3__0__Impl rule__AttributeCS__Group_3__1 )
-            // InternalOCLinEcore.g:7758:2: rule__AttributeCS__Group_3__0__Impl rule__AttributeCS__Group_3__1
+            // InternalOCLinEcore.g:7769:1: ( rule__AttributeCS__Group_3__0__Impl rule__AttributeCS__Group_3__1 )
+            // InternalOCLinEcore.g:7770:2: rule__AttributeCS__Group_3__0__Impl rule__AttributeCS__Group_3__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__AttributeCS__Group_3__0__Impl();
@@ -25915,17 +25983,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_3__0__Impl"
-    // InternalOCLinEcore.g:7765:1: rule__AttributeCS__Group_3__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:7777:1: rule__AttributeCS__Group_3__0__Impl : ( ':' ) ;
     public final void rule__AttributeCS__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7769:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:7770:1: ( ':' )
+            // InternalOCLinEcore.g:7781:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:7782:1: ( ':' )
             {
-            // InternalOCLinEcore.g:7770:1: ( ':' )
-            // InternalOCLinEcore.g:7771:1: ':'
+            // InternalOCLinEcore.g:7782:1: ( ':' )
+            // InternalOCLinEcore.g:7783:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getColonKeyword_3_0()); 
@@ -25956,14 +26024,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_3__1"
-    // InternalOCLinEcore.g:7784:1: rule__AttributeCS__Group_3__1 : rule__AttributeCS__Group_3__1__Impl ;
+    // InternalOCLinEcore.g:7796:1: rule__AttributeCS__Group_3__1 : rule__AttributeCS__Group_3__1__Impl ;
     public final void rule__AttributeCS__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7788:1: ( rule__AttributeCS__Group_3__1__Impl )
-            // InternalOCLinEcore.g:7789:2: rule__AttributeCS__Group_3__1__Impl
+            // InternalOCLinEcore.g:7800:1: ( rule__AttributeCS__Group_3__1__Impl )
+            // InternalOCLinEcore.g:7801:2: rule__AttributeCS__Group_3__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_3__1__Impl();
@@ -25989,23 +26057,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_3__1__Impl"
-    // InternalOCLinEcore.g:7795:1: rule__AttributeCS__Group_3__1__Impl : ( ( rule__AttributeCS__OwnedTypeAssignment_3_1 ) ) ;
+    // InternalOCLinEcore.g:7807:1: rule__AttributeCS__Group_3__1__Impl : ( ( rule__AttributeCS__OwnedTypeAssignment_3_1 ) ) ;
     public final void rule__AttributeCS__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7799:1: ( ( ( rule__AttributeCS__OwnedTypeAssignment_3_1 ) ) )
-            // InternalOCLinEcore.g:7800:1: ( ( rule__AttributeCS__OwnedTypeAssignment_3_1 ) )
+            // InternalOCLinEcore.g:7811:1: ( ( ( rule__AttributeCS__OwnedTypeAssignment_3_1 ) ) )
+            // InternalOCLinEcore.g:7812:1: ( ( rule__AttributeCS__OwnedTypeAssignment_3_1 ) )
             {
-            // InternalOCLinEcore.g:7800:1: ( ( rule__AttributeCS__OwnedTypeAssignment_3_1 ) )
-            // InternalOCLinEcore.g:7801:1: ( rule__AttributeCS__OwnedTypeAssignment_3_1 )
+            // InternalOCLinEcore.g:7812:1: ( ( rule__AttributeCS__OwnedTypeAssignment_3_1 ) )
+            // InternalOCLinEcore.g:7813:1: ( rule__AttributeCS__OwnedTypeAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getOwnedTypeAssignment_3_1()); 
             }
-            // InternalOCLinEcore.g:7802:1: ( rule__AttributeCS__OwnedTypeAssignment_3_1 )
-            // InternalOCLinEcore.g:7802:2: rule__AttributeCS__OwnedTypeAssignment_3_1
+            // InternalOCLinEcore.g:7814:1: ( rule__AttributeCS__OwnedTypeAssignment_3_1 )
+            // InternalOCLinEcore.g:7814:2: rule__AttributeCS__OwnedTypeAssignment_3_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__OwnedTypeAssignment_3_1();
@@ -26040,14 +26108,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_4__0"
-    // InternalOCLinEcore.g:7816:1: rule__AttributeCS__Group_4__0 : rule__AttributeCS__Group_4__0__Impl rule__AttributeCS__Group_4__1 ;
+    // InternalOCLinEcore.g:7828:1: rule__AttributeCS__Group_4__0 : rule__AttributeCS__Group_4__0__Impl rule__AttributeCS__Group_4__1 ;
     public final void rule__AttributeCS__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7820:1: ( rule__AttributeCS__Group_4__0__Impl rule__AttributeCS__Group_4__1 )
-            // InternalOCLinEcore.g:7821:2: rule__AttributeCS__Group_4__0__Impl rule__AttributeCS__Group_4__1
+            // InternalOCLinEcore.g:7832:1: ( rule__AttributeCS__Group_4__0__Impl rule__AttributeCS__Group_4__1 )
+            // InternalOCLinEcore.g:7833:2: rule__AttributeCS__Group_4__0__Impl rule__AttributeCS__Group_4__1
             {
             pushFollow(FollowSets000.FOLLOW_29);
             rule__AttributeCS__Group_4__0__Impl();
@@ -26078,17 +26146,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_4__0__Impl"
-    // InternalOCLinEcore.g:7828:1: rule__AttributeCS__Group_4__0__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:7840:1: rule__AttributeCS__Group_4__0__Impl : ( '=' ) ;
     public final void rule__AttributeCS__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7832:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:7833:1: ( '=' )
+            // InternalOCLinEcore.g:7844:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:7845:1: ( '=' )
             {
-            // InternalOCLinEcore.g:7833:1: ( '=' )
-            // InternalOCLinEcore.g:7834:1: '='
+            // InternalOCLinEcore.g:7845:1: ( '=' )
+            // InternalOCLinEcore.g:7846:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getEqualsSignKeyword_4_0()); 
@@ -26119,14 +26187,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_4__1"
-    // InternalOCLinEcore.g:7847:1: rule__AttributeCS__Group_4__1 : rule__AttributeCS__Group_4__1__Impl ;
+    // InternalOCLinEcore.g:7859:1: rule__AttributeCS__Group_4__1 : rule__AttributeCS__Group_4__1__Impl ;
     public final void rule__AttributeCS__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7851:1: ( rule__AttributeCS__Group_4__1__Impl )
-            // InternalOCLinEcore.g:7852:2: rule__AttributeCS__Group_4__1__Impl
+            // InternalOCLinEcore.g:7863:1: ( rule__AttributeCS__Group_4__1__Impl )
+            // InternalOCLinEcore.g:7864:2: rule__AttributeCS__Group_4__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_4__1__Impl();
@@ -26152,23 +26220,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_4__1__Impl"
-    // InternalOCLinEcore.g:7858:1: rule__AttributeCS__Group_4__1__Impl : ( ( rule__AttributeCS__DefaultAssignment_4_1 ) ) ;
+    // InternalOCLinEcore.g:7870:1: rule__AttributeCS__Group_4__1__Impl : ( ( rule__AttributeCS__DefaultAssignment_4_1 ) ) ;
     public final void rule__AttributeCS__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7862:1: ( ( ( rule__AttributeCS__DefaultAssignment_4_1 ) ) )
-            // InternalOCLinEcore.g:7863:1: ( ( rule__AttributeCS__DefaultAssignment_4_1 ) )
+            // InternalOCLinEcore.g:7874:1: ( ( ( rule__AttributeCS__DefaultAssignment_4_1 ) ) )
+            // InternalOCLinEcore.g:7875:1: ( ( rule__AttributeCS__DefaultAssignment_4_1 ) )
             {
-            // InternalOCLinEcore.g:7863:1: ( ( rule__AttributeCS__DefaultAssignment_4_1 ) )
-            // InternalOCLinEcore.g:7864:1: ( rule__AttributeCS__DefaultAssignment_4_1 )
+            // InternalOCLinEcore.g:7875:1: ( ( rule__AttributeCS__DefaultAssignment_4_1 ) )
+            // InternalOCLinEcore.g:7876:1: ( rule__AttributeCS__DefaultAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getDefaultAssignment_4_1()); 
             }
-            // InternalOCLinEcore.g:7865:1: ( rule__AttributeCS__DefaultAssignment_4_1 )
-            // InternalOCLinEcore.g:7865:2: rule__AttributeCS__DefaultAssignment_4_1
+            // InternalOCLinEcore.g:7877:1: ( rule__AttributeCS__DefaultAssignment_4_1 )
+            // InternalOCLinEcore.g:7877:2: rule__AttributeCS__DefaultAssignment_4_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__DefaultAssignment_4_1();
@@ -26203,14 +26271,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5__0"
-    // InternalOCLinEcore.g:7879:1: rule__AttributeCS__Group_5__0 : rule__AttributeCS__Group_5__0__Impl rule__AttributeCS__Group_5__1 ;
+    // InternalOCLinEcore.g:7891:1: rule__AttributeCS__Group_5__0 : rule__AttributeCS__Group_5__0__Impl rule__AttributeCS__Group_5__1 ;
     public final void rule__AttributeCS__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7883:1: ( rule__AttributeCS__Group_5__0__Impl rule__AttributeCS__Group_5__1 )
-            // InternalOCLinEcore.g:7884:2: rule__AttributeCS__Group_5__0__Impl rule__AttributeCS__Group_5__1
+            // InternalOCLinEcore.g:7895:1: ( rule__AttributeCS__Group_5__0__Impl rule__AttributeCS__Group_5__1 )
+            // InternalOCLinEcore.g:7896:2: rule__AttributeCS__Group_5__0__Impl rule__AttributeCS__Group_5__1
             {
             pushFollow(FollowSets000.FOLLOW_30);
             rule__AttributeCS__Group_5__0__Impl();
@@ -26241,17 +26309,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5__0__Impl"
-    // InternalOCLinEcore.g:7891:1: rule__AttributeCS__Group_5__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:7903:1: rule__AttributeCS__Group_5__0__Impl : ( '{' ) ;
     public final void rule__AttributeCS__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7895:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:7896:1: ( '{' )
+            // InternalOCLinEcore.g:7907:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:7908:1: ( '{' )
             {
-            // InternalOCLinEcore.g:7896:1: ( '{' )
-            // InternalOCLinEcore.g:7897:1: '{'
+            // InternalOCLinEcore.g:7908:1: ( '{' )
+            // InternalOCLinEcore.g:7909:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getLeftCurlyBracketKeyword_5_0()); 
@@ -26282,14 +26350,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5__1"
-    // InternalOCLinEcore.g:7910:1: rule__AttributeCS__Group_5__1 : rule__AttributeCS__Group_5__1__Impl rule__AttributeCS__Group_5__2 ;
+    // InternalOCLinEcore.g:7922:1: rule__AttributeCS__Group_5__1 : rule__AttributeCS__Group_5__1__Impl rule__AttributeCS__Group_5__2 ;
     public final void rule__AttributeCS__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7914:1: ( rule__AttributeCS__Group_5__1__Impl rule__AttributeCS__Group_5__2 )
-            // InternalOCLinEcore.g:7915:2: rule__AttributeCS__Group_5__1__Impl rule__AttributeCS__Group_5__2
+            // InternalOCLinEcore.g:7926:1: ( rule__AttributeCS__Group_5__1__Impl rule__AttributeCS__Group_5__2 )
+            // InternalOCLinEcore.g:7927:2: rule__AttributeCS__Group_5__1__Impl rule__AttributeCS__Group_5__2
             {
             pushFollow(FollowSets000.FOLLOW_22);
             rule__AttributeCS__Group_5__1__Impl();
@@ -26320,26 +26388,26 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5__1__Impl"
-    // InternalOCLinEcore.g:7922:1: rule__AttributeCS__Group_5__1__Impl : ( ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* ) ) ;
+    // InternalOCLinEcore.g:7934:1: rule__AttributeCS__Group_5__1__Impl : ( ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* ) ) ;
     public final void rule__AttributeCS__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7926:1: ( ( ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* ) ) )
-            // InternalOCLinEcore.g:7927:1: ( ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* ) )
+            // InternalOCLinEcore.g:7938:1: ( ( ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* ) ) )
+            // InternalOCLinEcore.g:7939:1: ( ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* ) )
             {
-            // InternalOCLinEcore.g:7927:1: ( ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* ) )
-            // InternalOCLinEcore.g:7928:1: ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* )
+            // InternalOCLinEcore.g:7939:1: ( ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* ) )
+            // InternalOCLinEcore.g:7940:1: ( ( rule__AttributeCS__Group_5_1__0 ) ) ( ( rule__AttributeCS__Group_5_1__0 )* )
             {
-            // InternalOCLinEcore.g:7928:1: ( ( rule__AttributeCS__Group_5_1__0 ) )
-            // InternalOCLinEcore.g:7929:1: ( rule__AttributeCS__Group_5_1__0 )
+            // InternalOCLinEcore.g:7940:1: ( ( rule__AttributeCS__Group_5_1__0 ) )
+            // InternalOCLinEcore.g:7941:1: ( rule__AttributeCS__Group_5_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getGroup_5_1()); 
             }
-            // InternalOCLinEcore.g:7930:1: ( rule__AttributeCS__Group_5_1__0 )
-            // InternalOCLinEcore.g:7930:2: rule__AttributeCS__Group_5_1__0
+            // InternalOCLinEcore.g:7942:1: ( rule__AttributeCS__Group_5_1__0 )
+            // InternalOCLinEcore.g:7942:2: rule__AttributeCS__Group_5_1__0
             {
             pushFollow(FollowSets000.FOLLOW_31);
             rule__AttributeCS__Group_5_1__0();
@@ -26355,13 +26423,13 @@
 
             }
 
-            // InternalOCLinEcore.g:7933:1: ( ( rule__AttributeCS__Group_5_1__0 )* )
-            // InternalOCLinEcore.g:7934:1: ( rule__AttributeCS__Group_5_1__0 )*
+            // InternalOCLinEcore.g:7945:1: ( ( rule__AttributeCS__Group_5_1__0 )* )
+            // InternalOCLinEcore.g:7946:1: ( rule__AttributeCS__Group_5_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getGroup_5_1()); 
             }
-            // InternalOCLinEcore.g:7935:1: ( rule__AttributeCS__Group_5_1__0 )*
+            // InternalOCLinEcore.g:7947:1: ( rule__AttributeCS__Group_5_1__0 )*
             loop99:
             do {
                 int alt99=2;
@@ -26374,7 +26442,7 @@
 
                 switch (alt99) {
             	case 1 :
-            	    // InternalOCLinEcore.g:7935:2: rule__AttributeCS__Group_5_1__0
+            	    // InternalOCLinEcore.g:7947:2: rule__AttributeCS__Group_5_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_31);
             	    rule__AttributeCS__Group_5_1__0();
@@ -26418,14 +26486,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5__2"
-    // InternalOCLinEcore.g:7946:1: rule__AttributeCS__Group_5__2 : rule__AttributeCS__Group_5__2__Impl ;
+    // InternalOCLinEcore.g:7958:1: rule__AttributeCS__Group_5__2 : rule__AttributeCS__Group_5__2__Impl ;
     public final void rule__AttributeCS__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7950:1: ( rule__AttributeCS__Group_5__2__Impl )
-            // InternalOCLinEcore.g:7951:2: rule__AttributeCS__Group_5__2__Impl
+            // InternalOCLinEcore.g:7962:1: ( rule__AttributeCS__Group_5__2__Impl )
+            // InternalOCLinEcore.g:7963:2: rule__AttributeCS__Group_5__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_5__2__Impl();
@@ -26451,17 +26519,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5__2__Impl"
-    // InternalOCLinEcore.g:7957:1: rule__AttributeCS__Group_5__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:7969:1: rule__AttributeCS__Group_5__2__Impl : ( '}' ) ;
     public final void rule__AttributeCS__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7961:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:7962:1: ( '}' )
+            // InternalOCLinEcore.g:7973:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:7974:1: ( '}' )
             {
-            // InternalOCLinEcore.g:7962:1: ( '}' )
-            // InternalOCLinEcore.g:7963:1: '}'
+            // InternalOCLinEcore.g:7974:1: ( '}' )
+            // InternalOCLinEcore.g:7975:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getRightCurlyBracketKeyword_5_2()); 
@@ -26492,14 +26560,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5_1__0"
-    // InternalOCLinEcore.g:7982:1: rule__AttributeCS__Group_5_1__0 : rule__AttributeCS__Group_5_1__0__Impl rule__AttributeCS__Group_5_1__1 ;
+    // InternalOCLinEcore.g:7994:1: rule__AttributeCS__Group_5_1__0 : rule__AttributeCS__Group_5_1__0__Impl rule__AttributeCS__Group_5_1__1 ;
     public final void rule__AttributeCS__Group_5_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7986:1: ( rule__AttributeCS__Group_5_1__0__Impl rule__AttributeCS__Group_5_1__1 )
-            // InternalOCLinEcore.g:7987:2: rule__AttributeCS__Group_5_1__0__Impl rule__AttributeCS__Group_5_1__1
+            // InternalOCLinEcore.g:7998:1: ( rule__AttributeCS__Group_5_1__0__Impl rule__AttributeCS__Group_5_1__1 )
+            // InternalOCLinEcore.g:7999:2: rule__AttributeCS__Group_5_1__0__Impl rule__AttributeCS__Group_5_1__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__AttributeCS__Group_5_1__0__Impl();
@@ -26530,23 +26598,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5_1__0__Impl"
-    // InternalOCLinEcore.g:7994:1: rule__AttributeCS__Group_5_1__0__Impl : ( ( rule__AttributeCS__Alternatives_5_1_0 ) ) ;
+    // InternalOCLinEcore.g:8006:1: rule__AttributeCS__Group_5_1__0__Impl : ( ( rule__AttributeCS__Alternatives_5_1_0 ) ) ;
     public final void rule__AttributeCS__Group_5_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:7998:1: ( ( ( rule__AttributeCS__Alternatives_5_1_0 ) ) )
-            // InternalOCLinEcore.g:7999:1: ( ( rule__AttributeCS__Alternatives_5_1_0 ) )
+            // InternalOCLinEcore.g:8010:1: ( ( ( rule__AttributeCS__Alternatives_5_1_0 ) ) )
+            // InternalOCLinEcore.g:8011:1: ( ( rule__AttributeCS__Alternatives_5_1_0 ) )
             {
-            // InternalOCLinEcore.g:7999:1: ( ( rule__AttributeCS__Alternatives_5_1_0 ) )
-            // InternalOCLinEcore.g:8000:1: ( rule__AttributeCS__Alternatives_5_1_0 )
+            // InternalOCLinEcore.g:8011:1: ( ( rule__AttributeCS__Alternatives_5_1_0 ) )
+            // InternalOCLinEcore.g:8012:1: ( rule__AttributeCS__Alternatives_5_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getAlternatives_5_1_0()); 
             }
-            // InternalOCLinEcore.g:8001:1: ( rule__AttributeCS__Alternatives_5_1_0 )
-            // InternalOCLinEcore.g:8001:2: rule__AttributeCS__Alternatives_5_1_0
+            // InternalOCLinEcore.g:8013:1: ( rule__AttributeCS__Alternatives_5_1_0 )
+            // InternalOCLinEcore.g:8013:2: rule__AttributeCS__Alternatives_5_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Alternatives_5_1_0();
@@ -26581,14 +26649,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5_1__1"
-    // InternalOCLinEcore.g:8011:1: rule__AttributeCS__Group_5_1__1 : rule__AttributeCS__Group_5_1__1__Impl ;
+    // InternalOCLinEcore.g:8023:1: rule__AttributeCS__Group_5_1__1 : rule__AttributeCS__Group_5_1__1__Impl ;
     public final void rule__AttributeCS__Group_5_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8015:1: ( rule__AttributeCS__Group_5_1__1__Impl )
-            // InternalOCLinEcore.g:8016:2: rule__AttributeCS__Group_5_1__1__Impl
+            // InternalOCLinEcore.g:8027:1: ( rule__AttributeCS__Group_5_1__1__Impl )
+            // InternalOCLinEcore.g:8028:2: rule__AttributeCS__Group_5_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_5_1__1__Impl();
@@ -26614,22 +26682,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_5_1__1__Impl"
-    // InternalOCLinEcore.g:8022:1: rule__AttributeCS__Group_5_1__1__Impl : ( ( ',' )? ) ;
+    // InternalOCLinEcore.g:8034:1: rule__AttributeCS__Group_5_1__1__Impl : ( ( ',' )? ) ;
     public final void rule__AttributeCS__Group_5_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8026:1: ( ( ( ',' )? ) )
-            // InternalOCLinEcore.g:8027:1: ( ( ',' )? )
+            // InternalOCLinEcore.g:8038:1: ( ( ( ',' )? ) )
+            // InternalOCLinEcore.g:8039:1: ( ( ',' )? )
             {
-            // InternalOCLinEcore.g:8027:1: ( ( ',' )? )
-            // InternalOCLinEcore.g:8028:1: ( ',' )?
+            // InternalOCLinEcore.g:8039:1: ( ( ',' )? )
+            // InternalOCLinEcore.g:8040:1: ( ',' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_1_1()); 
             }
-            // InternalOCLinEcore.g:8029:1: ( ',' )?
+            // InternalOCLinEcore.g:8041:1: ( ',' )?
             int alt100=2;
             int LA100_0 = input.LA(1);
 
@@ -26638,7 +26706,7 @@
             }
             switch (alt100) {
                 case 1 :
-                    // InternalOCLinEcore.g:8030:2: ','
+                    // InternalOCLinEcore.g:8042:2: ','
                     {
                     match(input,99,FollowSets000.FOLLOW_2); if (state.failed) return ;
 
@@ -26672,14 +26740,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0__0"
-    // InternalOCLinEcore.g:8045:1: rule__AttributeCS__Group_6_0__0 : rule__AttributeCS__Group_6_0__0__Impl rule__AttributeCS__Group_6_0__1 ;
+    // InternalOCLinEcore.g:8057:1: rule__AttributeCS__Group_6_0__0 : rule__AttributeCS__Group_6_0__0__Impl rule__AttributeCS__Group_6_0__1 ;
     public final void rule__AttributeCS__Group_6_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8049:1: ( rule__AttributeCS__Group_6_0__0__Impl rule__AttributeCS__Group_6_0__1 )
-            // InternalOCLinEcore.g:8050:2: rule__AttributeCS__Group_6_0__0__Impl rule__AttributeCS__Group_6_0__1
+            // InternalOCLinEcore.g:8061:1: ( rule__AttributeCS__Group_6_0__0__Impl rule__AttributeCS__Group_6_0__1 )
+            // InternalOCLinEcore.g:8062:2: rule__AttributeCS__Group_6_0__0__Impl rule__AttributeCS__Group_6_0__1
             {
             pushFollow(FollowSets000.FOLLOW_33);
             rule__AttributeCS__Group_6_0__0__Impl();
@@ -26710,17 +26778,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0__0__Impl"
-    // InternalOCLinEcore.g:8057:1: rule__AttributeCS__Group_6_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:8069:1: rule__AttributeCS__Group_6_0__0__Impl : ( '{' ) ;
     public final void rule__AttributeCS__Group_6_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8061:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:8062:1: ( '{' )
+            // InternalOCLinEcore.g:8073:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:8074:1: ( '{' )
             {
-            // InternalOCLinEcore.g:8062:1: ( '{' )
-            // InternalOCLinEcore.g:8063:1: '{'
+            // InternalOCLinEcore.g:8074:1: ( '{' )
+            // InternalOCLinEcore.g:8075:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getLeftCurlyBracketKeyword_6_0_0()); 
@@ -26751,14 +26819,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0__1"
-    // InternalOCLinEcore.g:8076:1: rule__AttributeCS__Group_6_0__1 : rule__AttributeCS__Group_6_0__1__Impl rule__AttributeCS__Group_6_0__2 ;
+    // InternalOCLinEcore.g:8088:1: rule__AttributeCS__Group_6_0__1 : rule__AttributeCS__Group_6_0__1__Impl rule__AttributeCS__Group_6_0__2 ;
     public final void rule__AttributeCS__Group_6_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8080:1: ( rule__AttributeCS__Group_6_0__1__Impl rule__AttributeCS__Group_6_0__2 )
-            // InternalOCLinEcore.g:8081:2: rule__AttributeCS__Group_6_0__1__Impl rule__AttributeCS__Group_6_0__2
+            // InternalOCLinEcore.g:8092:1: ( rule__AttributeCS__Group_6_0__1__Impl rule__AttributeCS__Group_6_0__2 )
+            // InternalOCLinEcore.g:8093:2: rule__AttributeCS__Group_6_0__1__Impl rule__AttributeCS__Group_6_0__2
             {
             pushFollow(FollowSets000.FOLLOW_33);
             rule__AttributeCS__Group_6_0__1__Impl();
@@ -26789,22 +26857,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0__1__Impl"
-    // InternalOCLinEcore.g:8088:1: rule__AttributeCS__Group_6_0__1__Impl : ( ( rule__AttributeCS__Alternatives_6_0_1 )* ) ;
+    // InternalOCLinEcore.g:8100:1: rule__AttributeCS__Group_6_0__1__Impl : ( ( rule__AttributeCS__Alternatives_6_0_1 )* ) ;
     public final void rule__AttributeCS__Group_6_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8092:1: ( ( ( rule__AttributeCS__Alternatives_6_0_1 )* ) )
-            // InternalOCLinEcore.g:8093:1: ( ( rule__AttributeCS__Alternatives_6_0_1 )* )
+            // InternalOCLinEcore.g:8104:1: ( ( ( rule__AttributeCS__Alternatives_6_0_1 )* ) )
+            // InternalOCLinEcore.g:8105:1: ( ( rule__AttributeCS__Alternatives_6_0_1 )* )
             {
-            // InternalOCLinEcore.g:8093:1: ( ( rule__AttributeCS__Alternatives_6_0_1 )* )
-            // InternalOCLinEcore.g:8094:1: ( rule__AttributeCS__Alternatives_6_0_1 )*
+            // InternalOCLinEcore.g:8105:1: ( ( rule__AttributeCS__Alternatives_6_0_1 )* )
+            // InternalOCLinEcore.g:8106:1: ( rule__AttributeCS__Alternatives_6_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getAlternatives_6_0_1()); 
             }
-            // InternalOCLinEcore.g:8095:1: ( rule__AttributeCS__Alternatives_6_0_1 )*
+            // InternalOCLinEcore.g:8107:1: ( rule__AttributeCS__Alternatives_6_0_1 )*
             loop101:
             do {
                 int alt101=2;
@@ -26817,7 +26885,7 @@
 
                 switch (alt101) {
             	case 1 :
-            	    // InternalOCLinEcore.g:8095:2: rule__AttributeCS__Alternatives_6_0_1
+            	    // InternalOCLinEcore.g:8107:2: rule__AttributeCS__Alternatives_6_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_34);
             	    rule__AttributeCS__Alternatives_6_0_1();
@@ -26858,14 +26926,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0__2"
-    // InternalOCLinEcore.g:8105:1: rule__AttributeCS__Group_6_0__2 : rule__AttributeCS__Group_6_0__2__Impl ;
+    // InternalOCLinEcore.g:8117:1: rule__AttributeCS__Group_6_0__2 : rule__AttributeCS__Group_6_0__2__Impl ;
     public final void rule__AttributeCS__Group_6_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8109:1: ( rule__AttributeCS__Group_6_0__2__Impl )
-            // InternalOCLinEcore.g:8110:2: rule__AttributeCS__Group_6_0__2__Impl
+            // InternalOCLinEcore.g:8121:1: ( rule__AttributeCS__Group_6_0__2__Impl )
+            // InternalOCLinEcore.g:8122:2: rule__AttributeCS__Group_6_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_6_0__2__Impl();
@@ -26891,17 +26959,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0__2__Impl"
-    // InternalOCLinEcore.g:8116:1: rule__AttributeCS__Group_6_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:8128:1: rule__AttributeCS__Group_6_0__2__Impl : ( '}' ) ;
     public final void rule__AttributeCS__Group_6_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8120:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:8121:1: ( '}' )
+            // InternalOCLinEcore.g:8132:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:8133:1: ( '}' )
             {
-            // InternalOCLinEcore.g:8121:1: ( '}' )
-            // InternalOCLinEcore.g:8122:1: '}'
+            // InternalOCLinEcore.g:8133:1: ( '}' )
+            // InternalOCLinEcore.g:8134:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getRightCurlyBracketKeyword_6_0_2()); 
@@ -26932,14 +27000,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__0"
-    // InternalOCLinEcore.g:8141:1: rule__AttributeCS__Group_6_0_1_1__0 : rule__AttributeCS__Group_6_0_1_1__0__Impl rule__AttributeCS__Group_6_0_1_1__1 ;
+    // InternalOCLinEcore.g:8153:1: rule__AttributeCS__Group_6_0_1_1__0 : rule__AttributeCS__Group_6_0_1_1__0__Impl rule__AttributeCS__Group_6_0_1_1__1 ;
     public final void rule__AttributeCS__Group_6_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8145:1: ( rule__AttributeCS__Group_6_0_1_1__0__Impl rule__AttributeCS__Group_6_0_1_1__1 )
-            // InternalOCLinEcore.g:8146:2: rule__AttributeCS__Group_6_0_1_1__0__Impl rule__AttributeCS__Group_6_0_1_1__1
+            // InternalOCLinEcore.g:8157:1: ( rule__AttributeCS__Group_6_0_1_1__0__Impl rule__AttributeCS__Group_6_0_1_1__1 )
+            // InternalOCLinEcore.g:8158:2: rule__AttributeCS__Group_6_0_1_1__0__Impl rule__AttributeCS__Group_6_0_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__AttributeCS__Group_6_0_1_1__0__Impl();
@@ -26970,17 +27038,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__0__Impl"
-    // InternalOCLinEcore.g:8153:1: rule__AttributeCS__Group_6_0_1_1__0__Impl : ( 'initial' ) ;
+    // InternalOCLinEcore.g:8165:1: rule__AttributeCS__Group_6_0_1_1__0__Impl : ( 'initial' ) ;
     public final void rule__AttributeCS__Group_6_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8157:1: ( ( 'initial' ) )
-            // InternalOCLinEcore.g:8158:1: ( 'initial' )
+            // InternalOCLinEcore.g:8169:1: ( ( 'initial' ) )
+            // InternalOCLinEcore.g:8170:1: ( 'initial' )
             {
-            // InternalOCLinEcore.g:8158:1: ( 'initial' )
-            // InternalOCLinEcore.g:8159:1: 'initial'
+            // InternalOCLinEcore.g:8170:1: ( 'initial' )
+            // InternalOCLinEcore.g:8171:1: 'initial'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getInitialKeyword_6_0_1_1_0()); 
@@ -27011,14 +27079,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__1"
-    // InternalOCLinEcore.g:8172:1: rule__AttributeCS__Group_6_0_1_1__1 : rule__AttributeCS__Group_6_0_1_1__1__Impl rule__AttributeCS__Group_6_0_1_1__2 ;
+    // InternalOCLinEcore.g:8184:1: rule__AttributeCS__Group_6_0_1_1__1 : rule__AttributeCS__Group_6_0_1_1__1__Impl rule__AttributeCS__Group_6_0_1_1__2 ;
     public final void rule__AttributeCS__Group_6_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8176:1: ( rule__AttributeCS__Group_6_0_1_1__1__Impl rule__AttributeCS__Group_6_0_1_1__2 )
-            // InternalOCLinEcore.g:8177:2: rule__AttributeCS__Group_6_0_1_1__1__Impl rule__AttributeCS__Group_6_0_1_1__2
+            // InternalOCLinEcore.g:8188:1: ( rule__AttributeCS__Group_6_0_1_1__1__Impl rule__AttributeCS__Group_6_0_1_1__2 )
+            // InternalOCLinEcore.g:8189:2: rule__AttributeCS__Group_6_0_1_1__1__Impl rule__AttributeCS__Group_6_0_1_1__2
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__AttributeCS__Group_6_0_1_1__1__Impl();
@@ -27049,22 +27117,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__1__Impl"
-    // InternalOCLinEcore.g:8184:1: rule__AttributeCS__Group_6_0_1_1__1__Impl : ( ( ruleUnrestrictedName )? ) ;
+    // InternalOCLinEcore.g:8196:1: rule__AttributeCS__Group_6_0_1_1__1__Impl : ( ( ruleUnrestrictedName )? ) ;
     public final void rule__AttributeCS__Group_6_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8188:1: ( ( ( ruleUnrestrictedName )? ) )
-            // InternalOCLinEcore.g:8189:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:8200:1: ( ( ( ruleUnrestrictedName )? ) )
+            // InternalOCLinEcore.g:8201:1: ( ( ruleUnrestrictedName )? )
             {
-            // InternalOCLinEcore.g:8189:1: ( ( ruleUnrestrictedName )? )
-            // InternalOCLinEcore.g:8190:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:8201:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:8202:1: ( ruleUnrestrictedName )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getUnrestrictedNameParserRuleCall_6_0_1_1_1()); 
             }
-            // InternalOCLinEcore.g:8191:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:8203:1: ( ruleUnrestrictedName )?
             int alt102=2;
             int LA102_0 = input.LA(1);
 
@@ -27073,7 +27141,7 @@
             }
             switch (alt102) {
                 case 1 :
-                    // InternalOCLinEcore.g:8191:3: ruleUnrestrictedName
+                    // InternalOCLinEcore.g:8203:3: ruleUnrestrictedName
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     ruleUnrestrictedName();
@@ -27111,14 +27179,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__2"
-    // InternalOCLinEcore.g:8201:1: rule__AttributeCS__Group_6_0_1_1__2 : rule__AttributeCS__Group_6_0_1_1__2__Impl rule__AttributeCS__Group_6_0_1_1__3 ;
+    // InternalOCLinEcore.g:8213:1: rule__AttributeCS__Group_6_0_1_1__2 : rule__AttributeCS__Group_6_0_1_1__2__Impl rule__AttributeCS__Group_6_0_1_1__3 ;
     public final void rule__AttributeCS__Group_6_0_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8205:1: ( rule__AttributeCS__Group_6_0_1_1__2__Impl rule__AttributeCS__Group_6_0_1_1__3 )
-            // InternalOCLinEcore.g:8206:2: rule__AttributeCS__Group_6_0_1_1__2__Impl rule__AttributeCS__Group_6_0_1_1__3
+            // InternalOCLinEcore.g:8217:1: ( rule__AttributeCS__Group_6_0_1_1__2__Impl rule__AttributeCS__Group_6_0_1_1__3 )
+            // InternalOCLinEcore.g:8218:2: rule__AttributeCS__Group_6_0_1_1__2__Impl rule__AttributeCS__Group_6_0_1_1__3
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__AttributeCS__Group_6_0_1_1__2__Impl();
@@ -27149,17 +27217,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__2__Impl"
-    // InternalOCLinEcore.g:8213:1: rule__AttributeCS__Group_6_0_1_1__2__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:8225:1: rule__AttributeCS__Group_6_0_1_1__2__Impl : ( ':' ) ;
     public final void rule__AttributeCS__Group_6_0_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8217:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:8218:1: ( ':' )
+            // InternalOCLinEcore.g:8229:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:8230:1: ( ':' )
             {
-            // InternalOCLinEcore.g:8218:1: ( ':' )
-            // InternalOCLinEcore.g:8219:1: ':'
+            // InternalOCLinEcore.g:8230:1: ( ':' )
+            // InternalOCLinEcore.g:8231:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getColonKeyword_6_0_1_1_2()); 
@@ -27190,14 +27258,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__3"
-    // InternalOCLinEcore.g:8232:1: rule__AttributeCS__Group_6_0_1_1__3 : rule__AttributeCS__Group_6_0_1_1__3__Impl rule__AttributeCS__Group_6_0_1_1__4 ;
+    // InternalOCLinEcore.g:8244:1: rule__AttributeCS__Group_6_0_1_1__3 : rule__AttributeCS__Group_6_0_1_1__3__Impl rule__AttributeCS__Group_6_0_1_1__4 ;
     public final void rule__AttributeCS__Group_6_0_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8236:1: ( rule__AttributeCS__Group_6_0_1_1__3__Impl rule__AttributeCS__Group_6_0_1_1__4 )
-            // InternalOCLinEcore.g:8237:2: rule__AttributeCS__Group_6_0_1_1__3__Impl rule__AttributeCS__Group_6_0_1_1__4
+            // InternalOCLinEcore.g:8248:1: ( rule__AttributeCS__Group_6_0_1_1__3__Impl rule__AttributeCS__Group_6_0_1_1__4 )
+            // InternalOCLinEcore.g:8249:2: rule__AttributeCS__Group_6_0_1_1__3__Impl rule__AttributeCS__Group_6_0_1_1__4
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__AttributeCS__Group_6_0_1_1__3__Impl();
@@ -27228,22 +27296,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__3__Impl"
-    // InternalOCLinEcore.g:8244:1: rule__AttributeCS__Group_6_0_1_1__3__Impl : ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )? ) ;
+    // InternalOCLinEcore.g:8256:1: rule__AttributeCS__Group_6_0_1_1__3__Impl : ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )? ) ;
     public final void rule__AttributeCS__Group_6_0_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8248:1: ( ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )? ) )
-            // InternalOCLinEcore.g:8249:1: ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )? )
+            // InternalOCLinEcore.g:8260:1: ( ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )? ) )
+            // InternalOCLinEcore.g:8261:1: ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )? )
             {
-            // InternalOCLinEcore.g:8249:1: ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )? )
-            // InternalOCLinEcore.g:8250:1: ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )?
+            // InternalOCLinEcore.g:8261:1: ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )? )
+            // InternalOCLinEcore.g:8262:1: ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getOwnedDefaultExpressionsAssignment_6_0_1_1_3()); 
             }
-            // InternalOCLinEcore.g:8251:1: ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )?
+            // InternalOCLinEcore.g:8263:1: ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 )?
             int alt103=2;
             int LA103_0 = input.LA(1);
 
@@ -27252,7 +27320,7 @@
             }
             switch (alt103) {
                 case 1 :
-                    // InternalOCLinEcore.g:8251:2: rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3
+                    // InternalOCLinEcore.g:8263:2: rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3();
@@ -27290,14 +27358,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__4"
-    // InternalOCLinEcore.g:8261:1: rule__AttributeCS__Group_6_0_1_1__4 : rule__AttributeCS__Group_6_0_1_1__4__Impl ;
+    // InternalOCLinEcore.g:8273:1: rule__AttributeCS__Group_6_0_1_1__4 : rule__AttributeCS__Group_6_0_1_1__4__Impl ;
     public final void rule__AttributeCS__Group_6_0_1_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8265:1: ( rule__AttributeCS__Group_6_0_1_1__4__Impl )
-            // InternalOCLinEcore.g:8266:2: rule__AttributeCS__Group_6_0_1_1__4__Impl
+            // InternalOCLinEcore.g:8277:1: ( rule__AttributeCS__Group_6_0_1_1__4__Impl )
+            // InternalOCLinEcore.g:8278:2: rule__AttributeCS__Group_6_0_1_1__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_6_0_1_1__4__Impl();
@@ -27323,17 +27391,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_1__4__Impl"
-    // InternalOCLinEcore.g:8272:1: rule__AttributeCS__Group_6_0_1_1__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:8284:1: rule__AttributeCS__Group_6_0_1_1__4__Impl : ( ';' ) ;
     public final void rule__AttributeCS__Group_6_0_1_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8276:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:8277:1: ( ';' )
+            // InternalOCLinEcore.g:8288:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:8289:1: ( ';' )
             {
-            // InternalOCLinEcore.g:8277:1: ( ';' )
-            // InternalOCLinEcore.g:8278:1: ';'
+            // InternalOCLinEcore.g:8289:1: ( ';' )
+            // InternalOCLinEcore.g:8290:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getSemicolonKeyword_6_0_1_1_4()); 
@@ -27364,14 +27432,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__0"
-    // InternalOCLinEcore.g:8301:1: rule__AttributeCS__Group_6_0_1_2__0 : rule__AttributeCS__Group_6_0_1_2__0__Impl rule__AttributeCS__Group_6_0_1_2__1 ;
+    // InternalOCLinEcore.g:8313:1: rule__AttributeCS__Group_6_0_1_2__0 : rule__AttributeCS__Group_6_0_1_2__0__Impl rule__AttributeCS__Group_6_0_1_2__1 ;
     public final void rule__AttributeCS__Group_6_0_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8305:1: ( rule__AttributeCS__Group_6_0_1_2__0__Impl rule__AttributeCS__Group_6_0_1_2__1 )
-            // InternalOCLinEcore.g:8306:2: rule__AttributeCS__Group_6_0_1_2__0__Impl rule__AttributeCS__Group_6_0_1_2__1
+            // InternalOCLinEcore.g:8317:1: ( rule__AttributeCS__Group_6_0_1_2__0__Impl rule__AttributeCS__Group_6_0_1_2__1 )
+            // InternalOCLinEcore.g:8318:2: rule__AttributeCS__Group_6_0_1_2__0__Impl rule__AttributeCS__Group_6_0_1_2__1
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__AttributeCS__Group_6_0_1_2__0__Impl();
@@ -27402,17 +27470,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__0__Impl"
-    // InternalOCLinEcore.g:8313:1: rule__AttributeCS__Group_6_0_1_2__0__Impl : ( 'derivation' ) ;
+    // InternalOCLinEcore.g:8325:1: rule__AttributeCS__Group_6_0_1_2__0__Impl : ( 'derivation' ) ;
     public final void rule__AttributeCS__Group_6_0_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8317:1: ( ( 'derivation' ) )
-            // InternalOCLinEcore.g:8318:1: ( 'derivation' )
+            // InternalOCLinEcore.g:8329:1: ( ( 'derivation' ) )
+            // InternalOCLinEcore.g:8330:1: ( 'derivation' )
             {
-            // InternalOCLinEcore.g:8318:1: ( 'derivation' )
-            // InternalOCLinEcore.g:8319:1: 'derivation'
+            // InternalOCLinEcore.g:8330:1: ( 'derivation' )
+            // InternalOCLinEcore.g:8331:1: 'derivation'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getDerivationKeyword_6_0_1_2_0()); 
@@ -27443,14 +27511,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__1"
-    // InternalOCLinEcore.g:8332:1: rule__AttributeCS__Group_6_0_1_2__1 : rule__AttributeCS__Group_6_0_1_2__1__Impl rule__AttributeCS__Group_6_0_1_2__2 ;
+    // InternalOCLinEcore.g:8344:1: rule__AttributeCS__Group_6_0_1_2__1 : rule__AttributeCS__Group_6_0_1_2__1__Impl rule__AttributeCS__Group_6_0_1_2__2 ;
     public final void rule__AttributeCS__Group_6_0_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8336:1: ( rule__AttributeCS__Group_6_0_1_2__1__Impl rule__AttributeCS__Group_6_0_1_2__2 )
-            // InternalOCLinEcore.g:8337:2: rule__AttributeCS__Group_6_0_1_2__1__Impl rule__AttributeCS__Group_6_0_1_2__2
+            // InternalOCLinEcore.g:8348:1: ( rule__AttributeCS__Group_6_0_1_2__1__Impl rule__AttributeCS__Group_6_0_1_2__2 )
+            // InternalOCLinEcore.g:8349:2: rule__AttributeCS__Group_6_0_1_2__1__Impl rule__AttributeCS__Group_6_0_1_2__2
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__AttributeCS__Group_6_0_1_2__1__Impl();
@@ -27481,22 +27549,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__1__Impl"
-    // InternalOCLinEcore.g:8344:1: rule__AttributeCS__Group_6_0_1_2__1__Impl : ( ( ruleUnrestrictedName )? ) ;
+    // InternalOCLinEcore.g:8356:1: rule__AttributeCS__Group_6_0_1_2__1__Impl : ( ( ruleUnrestrictedName )? ) ;
     public final void rule__AttributeCS__Group_6_0_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8348:1: ( ( ( ruleUnrestrictedName )? ) )
-            // InternalOCLinEcore.g:8349:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:8360:1: ( ( ( ruleUnrestrictedName )? ) )
+            // InternalOCLinEcore.g:8361:1: ( ( ruleUnrestrictedName )? )
             {
-            // InternalOCLinEcore.g:8349:1: ( ( ruleUnrestrictedName )? )
-            // InternalOCLinEcore.g:8350:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:8361:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:8362:1: ( ruleUnrestrictedName )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getUnrestrictedNameParserRuleCall_6_0_1_2_1()); 
             }
-            // InternalOCLinEcore.g:8351:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:8363:1: ( ruleUnrestrictedName )?
             int alt104=2;
             int LA104_0 = input.LA(1);
 
@@ -27505,7 +27573,7 @@
             }
             switch (alt104) {
                 case 1 :
-                    // InternalOCLinEcore.g:8351:3: ruleUnrestrictedName
+                    // InternalOCLinEcore.g:8363:3: ruleUnrestrictedName
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     ruleUnrestrictedName();
@@ -27543,14 +27611,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__2"
-    // InternalOCLinEcore.g:8361:1: rule__AttributeCS__Group_6_0_1_2__2 : rule__AttributeCS__Group_6_0_1_2__2__Impl rule__AttributeCS__Group_6_0_1_2__3 ;
+    // InternalOCLinEcore.g:8373:1: rule__AttributeCS__Group_6_0_1_2__2 : rule__AttributeCS__Group_6_0_1_2__2__Impl rule__AttributeCS__Group_6_0_1_2__3 ;
     public final void rule__AttributeCS__Group_6_0_1_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8365:1: ( rule__AttributeCS__Group_6_0_1_2__2__Impl rule__AttributeCS__Group_6_0_1_2__3 )
-            // InternalOCLinEcore.g:8366:2: rule__AttributeCS__Group_6_0_1_2__2__Impl rule__AttributeCS__Group_6_0_1_2__3
+            // InternalOCLinEcore.g:8377:1: ( rule__AttributeCS__Group_6_0_1_2__2__Impl rule__AttributeCS__Group_6_0_1_2__3 )
+            // InternalOCLinEcore.g:8378:2: rule__AttributeCS__Group_6_0_1_2__2__Impl rule__AttributeCS__Group_6_0_1_2__3
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__AttributeCS__Group_6_0_1_2__2__Impl();
@@ -27581,17 +27649,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__2__Impl"
-    // InternalOCLinEcore.g:8373:1: rule__AttributeCS__Group_6_0_1_2__2__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:8385:1: rule__AttributeCS__Group_6_0_1_2__2__Impl : ( ':' ) ;
     public final void rule__AttributeCS__Group_6_0_1_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8377:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:8378:1: ( ':' )
+            // InternalOCLinEcore.g:8389:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:8390:1: ( ':' )
             {
-            // InternalOCLinEcore.g:8378:1: ( ':' )
-            // InternalOCLinEcore.g:8379:1: ':'
+            // InternalOCLinEcore.g:8390:1: ( ':' )
+            // InternalOCLinEcore.g:8391:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getColonKeyword_6_0_1_2_2()); 
@@ -27622,14 +27690,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__3"
-    // InternalOCLinEcore.g:8392:1: rule__AttributeCS__Group_6_0_1_2__3 : rule__AttributeCS__Group_6_0_1_2__3__Impl rule__AttributeCS__Group_6_0_1_2__4 ;
+    // InternalOCLinEcore.g:8404:1: rule__AttributeCS__Group_6_0_1_2__3 : rule__AttributeCS__Group_6_0_1_2__3__Impl rule__AttributeCS__Group_6_0_1_2__4 ;
     public final void rule__AttributeCS__Group_6_0_1_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8396:1: ( rule__AttributeCS__Group_6_0_1_2__3__Impl rule__AttributeCS__Group_6_0_1_2__4 )
-            // InternalOCLinEcore.g:8397:2: rule__AttributeCS__Group_6_0_1_2__3__Impl rule__AttributeCS__Group_6_0_1_2__4
+            // InternalOCLinEcore.g:8408:1: ( rule__AttributeCS__Group_6_0_1_2__3__Impl rule__AttributeCS__Group_6_0_1_2__4 )
+            // InternalOCLinEcore.g:8409:2: rule__AttributeCS__Group_6_0_1_2__3__Impl rule__AttributeCS__Group_6_0_1_2__4
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__AttributeCS__Group_6_0_1_2__3__Impl();
@@ -27660,22 +27728,22 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__3__Impl"
-    // InternalOCLinEcore.g:8404:1: rule__AttributeCS__Group_6_0_1_2__3__Impl : ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )? ) ;
+    // InternalOCLinEcore.g:8416:1: rule__AttributeCS__Group_6_0_1_2__3__Impl : ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )? ) ;
     public final void rule__AttributeCS__Group_6_0_1_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8408:1: ( ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )? ) )
-            // InternalOCLinEcore.g:8409:1: ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )? )
+            // InternalOCLinEcore.g:8420:1: ( ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )? ) )
+            // InternalOCLinEcore.g:8421:1: ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )? )
             {
-            // InternalOCLinEcore.g:8409:1: ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )? )
-            // InternalOCLinEcore.g:8410:1: ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )?
+            // InternalOCLinEcore.g:8421:1: ( ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )? )
+            // InternalOCLinEcore.g:8422:1: ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getOwnedDefaultExpressionsAssignment_6_0_1_2_3()); 
             }
-            // InternalOCLinEcore.g:8411:1: ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )?
+            // InternalOCLinEcore.g:8423:1: ( rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 )?
             int alt105=2;
             int LA105_0 = input.LA(1);
 
@@ -27684,7 +27752,7 @@
             }
             switch (alt105) {
                 case 1 :
-                    // InternalOCLinEcore.g:8411:2: rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3
+                    // InternalOCLinEcore.g:8423:2: rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3();
@@ -27722,14 +27790,14 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__4"
-    // InternalOCLinEcore.g:8421:1: rule__AttributeCS__Group_6_0_1_2__4 : rule__AttributeCS__Group_6_0_1_2__4__Impl ;
+    // InternalOCLinEcore.g:8433:1: rule__AttributeCS__Group_6_0_1_2__4 : rule__AttributeCS__Group_6_0_1_2__4__Impl ;
     public final void rule__AttributeCS__Group_6_0_1_2__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8425:1: ( rule__AttributeCS__Group_6_0_1_2__4__Impl )
-            // InternalOCLinEcore.g:8426:2: rule__AttributeCS__Group_6_0_1_2__4__Impl
+            // InternalOCLinEcore.g:8437:1: ( rule__AttributeCS__Group_6_0_1_2__4__Impl )
+            // InternalOCLinEcore.g:8438:2: rule__AttributeCS__Group_6_0_1_2__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AttributeCS__Group_6_0_1_2__4__Impl();
@@ -27755,17 +27823,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__Group_6_0_1_2__4__Impl"
-    // InternalOCLinEcore.g:8432:1: rule__AttributeCS__Group_6_0_1_2__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:8444:1: rule__AttributeCS__Group_6_0_1_2__4__Impl : ( ';' ) ;
     public final void rule__AttributeCS__Group_6_0_1_2__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8436:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:8437:1: ( ';' )
+            // InternalOCLinEcore.g:8448:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:8449:1: ( ';' )
             {
-            // InternalOCLinEcore.g:8437:1: ( ';' )
-            // InternalOCLinEcore.g:8438:1: ';'
+            // InternalOCLinEcore.g:8449:1: ( ';' )
+            // InternalOCLinEcore.g:8450:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getSemicolonKeyword_6_0_1_2_4()); 
@@ -27796,14 +27864,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__0"
-    // InternalOCLinEcore.g:8461:1: rule__DataTypeCS__Group__0 : rule__DataTypeCS__Group__0__Impl rule__DataTypeCS__Group__1 ;
+    // InternalOCLinEcore.g:8473:1: rule__DataTypeCS__Group__0 : rule__DataTypeCS__Group__0__Impl rule__DataTypeCS__Group__1 ;
     public final void rule__DataTypeCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8465:1: ( rule__DataTypeCS__Group__0__Impl rule__DataTypeCS__Group__1 )
-            // InternalOCLinEcore.g:8466:2: rule__DataTypeCS__Group__0__Impl rule__DataTypeCS__Group__1
+            // InternalOCLinEcore.g:8477:1: ( rule__DataTypeCS__Group__0__Impl rule__DataTypeCS__Group__1 )
+            // InternalOCLinEcore.g:8478:2: rule__DataTypeCS__Group__0__Impl rule__DataTypeCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_35);
             rule__DataTypeCS__Group__0__Impl();
@@ -27834,22 +27902,22 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__0__Impl"
-    // InternalOCLinEcore.g:8473:1: rule__DataTypeCS__Group__0__Impl : ( ( rule__DataTypeCS__IsPrimitiveAssignment_0 )? ) ;
+    // InternalOCLinEcore.g:8485:1: rule__DataTypeCS__Group__0__Impl : ( ( rule__DataTypeCS__IsPrimitiveAssignment_0 )? ) ;
     public final void rule__DataTypeCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8477:1: ( ( ( rule__DataTypeCS__IsPrimitiveAssignment_0 )? ) )
-            // InternalOCLinEcore.g:8478:1: ( ( rule__DataTypeCS__IsPrimitiveAssignment_0 )? )
+            // InternalOCLinEcore.g:8489:1: ( ( ( rule__DataTypeCS__IsPrimitiveAssignment_0 )? ) )
+            // InternalOCLinEcore.g:8490:1: ( ( rule__DataTypeCS__IsPrimitiveAssignment_0 )? )
             {
-            // InternalOCLinEcore.g:8478:1: ( ( rule__DataTypeCS__IsPrimitiveAssignment_0 )? )
-            // InternalOCLinEcore.g:8479:1: ( rule__DataTypeCS__IsPrimitiveAssignment_0 )?
+            // InternalOCLinEcore.g:8490:1: ( ( rule__DataTypeCS__IsPrimitiveAssignment_0 )? )
+            // InternalOCLinEcore.g:8491:1: ( rule__DataTypeCS__IsPrimitiveAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getIsPrimitiveAssignment_0()); 
             }
-            // InternalOCLinEcore.g:8480:1: ( rule__DataTypeCS__IsPrimitiveAssignment_0 )?
+            // InternalOCLinEcore.g:8492:1: ( rule__DataTypeCS__IsPrimitiveAssignment_0 )?
             int alt106=2;
             int LA106_0 = input.LA(1);
 
@@ -27858,7 +27926,7 @@
             }
             switch (alt106) {
                 case 1 :
-                    // InternalOCLinEcore.g:8480:2: rule__DataTypeCS__IsPrimitiveAssignment_0
+                    // InternalOCLinEcore.g:8492:2: rule__DataTypeCS__IsPrimitiveAssignment_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__DataTypeCS__IsPrimitiveAssignment_0();
@@ -27896,14 +27964,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__1"
-    // InternalOCLinEcore.g:8490:1: rule__DataTypeCS__Group__1 : rule__DataTypeCS__Group__1__Impl rule__DataTypeCS__Group__2 ;
+    // InternalOCLinEcore.g:8502:1: rule__DataTypeCS__Group__1 : rule__DataTypeCS__Group__1__Impl rule__DataTypeCS__Group__2 ;
     public final void rule__DataTypeCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8494:1: ( rule__DataTypeCS__Group__1__Impl rule__DataTypeCS__Group__2 )
-            // InternalOCLinEcore.g:8495:2: rule__DataTypeCS__Group__1__Impl rule__DataTypeCS__Group__2
+            // InternalOCLinEcore.g:8506:1: ( rule__DataTypeCS__Group__1__Impl rule__DataTypeCS__Group__2 )
+            // InternalOCLinEcore.g:8507:2: rule__DataTypeCS__Group__1__Impl rule__DataTypeCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__DataTypeCS__Group__1__Impl();
@@ -27934,17 +28002,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__1__Impl"
-    // InternalOCLinEcore.g:8502:1: rule__DataTypeCS__Group__1__Impl : ( 'datatype' ) ;
+    // InternalOCLinEcore.g:8514:1: rule__DataTypeCS__Group__1__Impl : ( 'datatype' ) ;
     public final void rule__DataTypeCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8506:1: ( ( 'datatype' ) )
-            // InternalOCLinEcore.g:8507:1: ( 'datatype' )
+            // InternalOCLinEcore.g:8518:1: ( ( 'datatype' ) )
+            // InternalOCLinEcore.g:8519:1: ( 'datatype' )
             {
-            // InternalOCLinEcore.g:8507:1: ( 'datatype' )
-            // InternalOCLinEcore.g:8508:1: 'datatype'
+            // InternalOCLinEcore.g:8519:1: ( 'datatype' )
+            // InternalOCLinEcore.g:8520:1: 'datatype'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getDatatypeKeyword_1()); 
@@ -27975,14 +28043,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__2"
-    // InternalOCLinEcore.g:8521:1: rule__DataTypeCS__Group__2 : rule__DataTypeCS__Group__2__Impl rule__DataTypeCS__Group__3 ;
+    // InternalOCLinEcore.g:8533:1: rule__DataTypeCS__Group__2 : rule__DataTypeCS__Group__2__Impl rule__DataTypeCS__Group__3 ;
     public final void rule__DataTypeCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8525:1: ( rule__DataTypeCS__Group__2__Impl rule__DataTypeCS__Group__3 )
-            // InternalOCLinEcore.g:8526:2: rule__DataTypeCS__Group__2__Impl rule__DataTypeCS__Group__3
+            // InternalOCLinEcore.g:8537:1: ( rule__DataTypeCS__Group__2__Impl rule__DataTypeCS__Group__3 )
+            // InternalOCLinEcore.g:8538:2: rule__DataTypeCS__Group__2__Impl rule__DataTypeCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_36);
             rule__DataTypeCS__Group__2__Impl();
@@ -28013,23 +28081,23 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__2__Impl"
-    // InternalOCLinEcore.g:8533:1: rule__DataTypeCS__Group__2__Impl : ( ( rule__DataTypeCS__NameAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:8545:1: rule__DataTypeCS__Group__2__Impl : ( ( rule__DataTypeCS__NameAssignment_2 ) ) ;
     public final void rule__DataTypeCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8537:1: ( ( ( rule__DataTypeCS__NameAssignment_2 ) ) )
-            // InternalOCLinEcore.g:8538:1: ( ( rule__DataTypeCS__NameAssignment_2 ) )
+            // InternalOCLinEcore.g:8549:1: ( ( ( rule__DataTypeCS__NameAssignment_2 ) ) )
+            // InternalOCLinEcore.g:8550:1: ( ( rule__DataTypeCS__NameAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:8538:1: ( ( rule__DataTypeCS__NameAssignment_2 ) )
-            // InternalOCLinEcore.g:8539:1: ( rule__DataTypeCS__NameAssignment_2 )
+            // InternalOCLinEcore.g:8550:1: ( ( rule__DataTypeCS__NameAssignment_2 ) )
+            // InternalOCLinEcore.g:8551:1: ( rule__DataTypeCS__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getNameAssignment_2()); 
             }
-            // InternalOCLinEcore.g:8540:1: ( rule__DataTypeCS__NameAssignment_2 )
-            // InternalOCLinEcore.g:8540:2: rule__DataTypeCS__NameAssignment_2
+            // InternalOCLinEcore.g:8552:1: ( rule__DataTypeCS__NameAssignment_2 )
+            // InternalOCLinEcore.g:8552:2: rule__DataTypeCS__NameAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DataTypeCS__NameAssignment_2();
@@ -28064,14 +28132,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__3"
-    // InternalOCLinEcore.g:8550:1: rule__DataTypeCS__Group__3 : rule__DataTypeCS__Group__3__Impl rule__DataTypeCS__Group__4 ;
+    // InternalOCLinEcore.g:8562:1: rule__DataTypeCS__Group__3 : rule__DataTypeCS__Group__3__Impl rule__DataTypeCS__Group__4 ;
     public final void rule__DataTypeCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8554:1: ( rule__DataTypeCS__Group__3__Impl rule__DataTypeCS__Group__4 )
-            // InternalOCLinEcore.g:8555:2: rule__DataTypeCS__Group__3__Impl rule__DataTypeCS__Group__4
+            // InternalOCLinEcore.g:8566:1: ( rule__DataTypeCS__Group__3__Impl rule__DataTypeCS__Group__4 )
+            // InternalOCLinEcore.g:8567:2: rule__DataTypeCS__Group__3__Impl rule__DataTypeCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_36);
             rule__DataTypeCS__Group__3__Impl();
@@ -28102,22 +28170,22 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__3__Impl"
-    // InternalOCLinEcore.g:8562:1: rule__DataTypeCS__Group__3__Impl : ( ( rule__DataTypeCS__OwnedSignatureAssignment_3 )? ) ;
+    // InternalOCLinEcore.g:8574:1: rule__DataTypeCS__Group__3__Impl : ( ( rule__DataTypeCS__OwnedSignatureAssignment_3 )? ) ;
     public final void rule__DataTypeCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8566:1: ( ( ( rule__DataTypeCS__OwnedSignatureAssignment_3 )? ) )
-            // InternalOCLinEcore.g:8567:1: ( ( rule__DataTypeCS__OwnedSignatureAssignment_3 )? )
+            // InternalOCLinEcore.g:8578:1: ( ( ( rule__DataTypeCS__OwnedSignatureAssignment_3 )? ) )
+            // InternalOCLinEcore.g:8579:1: ( ( rule__DataTypeCS__OwnedSignatureAssignment_3 )? )
             {
-            // InternalOCLinEcore.g:8567:1: ( ( rule__DataTypeCS__OwnedSignatureAssignment_3 )? )
-            // InternalOCLinEcore.g:8568:1: ( rule__DataTypeCS__OwnedSignatureAssignment_3 )?
+            // InternalOCLinEcore.g:8579:1: ( ( rule__DataTypeCS__OwnedSignatureAssignment_3 )? )
+            // InternalOCLinEcore.g:8580:1: ( rule__DataTypeCS__OwnedSignatureAssignment_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getOwnedSignatureAssignment_3()); 
             }
-            // InternalOCLinEcore.g:8569:1: ( rule__DataTypeCS__OwnedSignatureAssignment_3 )?
+            // InternalOCLinEcore.g:8581:1: ( rule__DataTypeCS__OwnedSignatureAssignment_3 )?
             int alt107=2;
             int LA107_0 = input.LA(1);
 
@@ -28126,7 +28194,7 @@
             }
             switch (alt107) {
                 case 1 :
-                    // InternalOCLinEcore.g:8569:2: rule__DataTypeCS__OwnedSignatureAssignment_3
+                    // InternalOCLinEcore.g:8581:2: rule__DataTypeCS__OwnedSignatureAssignment_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__DataTypeCS__OwnedSignatureAssignment_3();
@@ -28164,14 +28232,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__4"
-    // InternalOCLinEcore.g:8579:1: rule__DataTypeCS__Group__4 : rule__DataTypeCS__Group__4__Impl rule__DataTypeCS__Group__5 ;
+    // InternalOCLinEcore.g:8591:1: rule__DataTypeCS__Group__4 : rule__DataTypeCS__Group__4__Impl rule__DataTypeCS__Group__5 ;
     public final void rule__DataTypeCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8583:1: ( rule__DataTypeCS__Group__4__Impl rule__DataTypeCS__Group__5 )
-            // InternalOCLinEcore.g:8584:2: rule__DataTypeCS__Group__4__Impl rule__DataTypeCS__Group__5
+            // InternalOCLinEcore.g:8595:1: ( rule__DataTypeCS__Group__4__Impl rule__DataTypeCS__Group__5 )
+            // InternalOCLinEcore.g:8596:2: rule__DataTypeCS__Group__4__Impl rule__DataTypeCS__Group__5
             {
             pushFollow(FollowSets000.FOLLOW_36);
             rule__DataTypeCS__Group__4__Impl();
@@ -28202,22 +28270,22 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__4__Impl"
-    // InternalOCLinEcore.g:8591:1: rule__DataTypeCS__Group__4__Impl : ( ( rule__DataTypeCS__Group_4__0 )? ) ;
+    // InternalOCLinEcore.g:8603:1: rule__DataTypeCS__Group__4__Impl : ( ( rule__DataTypeCS__Group_4__0 )? ) ;
     public final void rule__DataTypeCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8595:1: ( ( ( rule__DataTypeCS__Group_4__0 )? ) )
-            // InternalOCLinEcore.g:8596:1: ( ( rule__DataTypeCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:8607:1: ( ( ( rule__DataTypeCS__Group_4__0 )? ) )
+            // InternalOCLinEcore.g:8608:1: ( ( rule__DataTypeCS__Group_4__0 )? )
             {
-            // InternalOCLinEcore.g:8596:1: ( ( rule__DataTypeCS__Group_4__0 )? )
-            // InternalOCLinEcore.g:8597:1: ( rule__DataTypeCS__Group_4__0 )?
+            // InternalOCLinEcore.g:8608:1: ( ( rule__DataTypeCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:8609:1: ( rule__DataTypeCS__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getGroup_4()); 
             }
-            // InternalOCLinEcore.g:8598:1: ( rule__DataTypeCS__Group_4__0 )?
+            // InternalOCLinEcore.g:8610:1: ( rule__DataTypeCS__Group_4__0 )?
             int alt108=2;
             int LA108_0 = input.LA(1);
 
@@ -28226,7 +28294,7 @@
             }
             switch (alt108) {
                 case 1 :
-                    // InternalOCLinEcore.g:8598:2: rule__DataTypeCS__Group_4__0
+                    // InternalOCLinEcore.g:8610:2: rule__DataTypeCS__Group_4__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__DataTypeCS__Group_4__0();
@@ -28264,14 +28332,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__5"
-    // InternalOCLinEcore.g:8608:1: rule__DataTypeCS__Group__5 : rule__DataTypeCS__Group__5__Impl rule__DataTypeCS__Group__6 ;
+    // InternalOCLinEcore.g:8620:1: rule__DataTypeCS__Group__5 : rule__DataTypeCS__Group__5__Impl rule__DataTypeCS__Group__6 ;
     public final void rule__DataTypeCS__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8612:1: ( rule__DataTypeCS__Group__5__Impl rule__DataTypeCS__Group__6 )
-            // InternalOCLinEcore.g:8613:2: rule__DataTypeCS__Group__5__Impl rule__DataTypeCS__Group__6
+            // InternalOCLinEcore.g:8624:1: ( rule__DataTypeCS__Group__5__Impl rule__DataTypeCS__Group__6 )
+            // InternalOCLinEcore.g:8625:2: rule__DataTypeCS__Group__5__Impl rule__DataTypeCS__Group__6
             {
             pushFollow(FollowSets000.FOLLOW_36);
             rule__DataTypeCS__Group__5__Impl();
@@ -28302,42 +28370,42 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__5__Impl"
-    // InternalOCLinEcore.g:8620:1: rule__DataTypeCS__Group__5__Impl : ( ( rule__DataTypeCS__Group_5__0 )? ) ;
+    // InternalOCLinEcore.g:8632:1: rule__DataTypeCS__Group__5__Impl : ( ( rule__DataTypeCS__Group_5__0 )? ) ;
     public final void rule__DataTypeCS__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8624:1: ( ( ( rule__DataTypeCS__Group_5__0 )? ) )
-            // InternalOCLinEcore.g:8625:1: ( ( rule__DataTypeCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:8636:1: ( ( ( rule__DataTypeCS__Group_5__0 )? ) )
+            // InternalOCLinEcore.g:8637:1: ( ( rule__DataTypeCS__Group_5__0 )? )
             {
-            // InternalOCLinEcore.g:8625:1: ( ( rule__DataTypeCS__Group_5__0 )? )
-            // InternalOCLinEcore.g:8626:1: ( rule__DataTypeCS__Group_5__0 )?
+            // InternalOCLinEcore.g:8637:1: ( ( rule__DataTypeCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:8638:1: ( rule__DataTypeCS__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getGroup_5()); 
             }
-            // InternalOCLinEcore.g:8627:1: ( rule__DataTypeCS__Group_5__0 )?
+            // InternalOCLinEcore.g:8639:1: ( rule__DataTypeCS__Group_5__0 )?
             int alt109=2;
             int LA109_0 = input.LA(1);
 
             if ( (LA109_0==100) ) {
                 int LA109_1 = input.LA(2);
 
-                if ( (LA109_1==53||LA109_1==58) ) {
-                    alt109=1;
-                }
-                else if ( (LA109_1==101) ) {
-                    int LA109_4 = input.LA(3);
+                if ( (LA109_1==101) ) {
+                    int LA109_3 = input.LA(3);
 
-                    if ( (LA109_4==52||LA109_4==100) ) {
+                    if ( (LA109_3==52||LA109_3==100) ) {
                         alt109=1;
                     }
                 }
+                else if ( (LA109_1==53||LA109_1==58) ) {
+                    alt109=1;
+                }
             }
             switch (alt109) {
                 case 1 :
-                    // InternalOCLinEcore.g:8627:2: rule__DataTypeCS__Group_5__0
+                    // InternalOCLinEcore.g:8639:2: rule__DataTypeCS__Group_5__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__DataTypeCS__Group_5__0();
@@ -28375,14 +28443,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__6"
-    // InternalOCLinEcore.g:8637:1: rule__DataTypeCS__Group__6 : rule__DataTypeCS__Group__6__Impl ;
+    // InternalOCLinEcore.g:8649:1: rule__DataTypeCS__Group__6 : rule__DataTypeCS__Group__6__Impl ;
     public final void rule__DataTypeCS__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8641:1: ( rule__DataTypeCS__Group__6__Impl )
-            // InternalOCLinEcore.g:8642:2: rule__DataTypeCS__Group__6__Impl
+            // InternalOCLinEcore.g:8653:1: ( rule__DataTypeCS__Group__6__Impl )
+            // InternalOCLinEcore.g:8654:2: rule__DataTypeCS__Group__6__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DataTypeCS__Group__6__Impl();
@@ -28408,23 +28476,23 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group__6__Impl"
-    // InternalOCLinEcore.g:8648:1: rule__DataTypeCS__Group__6__Impl : ( ( rule__DataTypeCS__Alternatives_6 ) ) ;
+    // InternalOCLinEcore.g:8660:1: rule__DataTypeCS__Group__6__Impl : ( ( rule__DataTypeCS__Alternatives_6 ) ) ;
     public final void rule__DataTypeCS__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8652:1: ( ( ( rule__DataTypeCS__Alternatives_6 ) ) )
-            // InternalOCLinEcore.g:8653:1: ( ( rule__DataTypeCS__Alternatives_6 ) )
+            // InternalOCLinEcore.g:8664:1: ( ( ( rule__DataTypeCS__Alternatives_6 ) ) )
+            // InternalOCLinEcore.g:8665:1: ( ( rule__DataTypeCS__Alternatives_6 ) )
             {
-            // InternalOCLinEcore.g:8653:1: ( ( rule__DataTypeCS__Alternatives_6 ) )
-            // InternalOCLinEcore.g:8654:1: ( rule__DataTypeCS__Alternatives_6 )
+            // InternalOCLinEcore.g:8665:1: ( ( rule__DataTypeCS__Alternatives_6 ) )
+            // InternalOCLinEcore.g:8666:1: ( rule__DataTypeCS__Alternatives_6 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getAlternatives_6()); 
             }
-            // InternalOCLinEcore.g:8655:1: ( rule__DataTypeCS__Alternatives_6 )
-            // InternalOCLinEcore.g:8655:2: rule__DataTypeCS__Alternatives_6
+            // InternalOCLinEcore.g:8667:1: ( rule__DataTypeCS__Alternatives_6 )
+            // InternalOCLinEcore.g:8667:2: rule__DataTypeCS__Alternatives_6
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DataTypeCS__Alternatives_6();
@@ -28459,14 +28527,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_4__0"
-    // InternalOCLinEcore.g:8679:1: rule__DataTypeCS__Group_4__0 : rule__DataTypeCS__Group_4__0__Impl rule__DataTypeCS__Group_4__1 ;
+    // InternalOCLinEcore.g:8691:1: rule__DataTypeCS__Group_4__0 : rule__DataTypeCS__Group_4__0__Impl rule__DataTypeCS__Group_4__1 ;
     public final void rule__DataTypeCS__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8683:1: ( rule__DataTypeCS__Group_4__0__Impl rule__DataTypeCS__Group_4__1 )
-            // InternalOCLinEcore.g:8684:2: rule__DataTypeCS__Group_4__0__Impl rule__DataTypeCS__Group_4__1
+            // InternalOCLinEcore.g:8695:1: ( rule__DataTypeCS__Group_4__0__Impl rule__DataTypeCS__Group_4__1 )
+            // InternalOCLinEcore.g:8696:2: rule__DataTypeCS__Group_4__0__Impl rule__DataTypeCS__Group_4__1
             {
             pushFollow(FollowSets000.FOLLOW_29);
             rule__DataTypeCS__Group_4__0__Impl();
@@ -28497,17 +28565,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_4__0__Impl"
-    // InternalOCLinEcore.g:8691:1: rule__DataTypeCS__Group_4__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:8703:1: rule__DataTypeCS__Group_4__0__Impl : ( ':' ) ;
     public final void rule__DataTypeCS__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8695:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:8696:1: ( ':' )
+            // InternalOCLinEcore.g:8707:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:8708:1: ( ':' )
             {
-            // InternalOCLinEcore.g:8696:1: ( ':' )
-            // InternalOCLinEcore.g:8697:1: ':'
+            // InternalOCLinEcore.g:8708:1: ( ':' )
+            // InternalOCLinEcore.g:8709:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getColonKeyword_4_0()); 
@@ -28538,14 +28606,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_4__1"
-    // InternalOCLinEcore.g:8710:1: rule__DataTypeCS__Group_4__1 : rule__DataTypeCS__Group_4__1__Impl ;
+    // InternalOCLinEcore.g:8722:1: rule__DataTypeCS__Group_4__1 : rule__DataTypeCS__Group_4__1__Impl ;
     public final void rule__DataTypeCS__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8714:1: ( rule__DataTypeCS__Group_4__1__Impl )
-            // InternalOCLinEcore.g:8715:2: rule__DataTypeCS__Group_4__1__Impl
+            // InternalOCLinEcore.g:8726:1: ( rule__DataTypeCS__Group_4__1__Impl )
+            // InternalOCLinEcore.g:8727:2: rule__DataTypeCS__Group_4__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DataTypeCS__Group_4__1__Impl();
@@ -28571,23 +28639,23 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_4__1__Impl"
-    // InternalOCLinEcore.g:8721:1: rule__DataTypeCS__Group_4__1__Impl : ( ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 ) ) ;
+    // InternalOCLinEcore.g:8733:1: rule__DataTypeCS__Group_4__1__Impl : ( ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 ) ) ;
     public final void rule__DataTypeCS__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8725:1: ( ( ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 ) ) )
-            // InternalOCLinEcore.g:8726:1: ( ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 ) )
+            // InternalOCLinEcore.g:8737:1: ( ( ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 ) ) )
+            // InternalOCLinEcore.g:8738:1: ( ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 ) )
             {
-            // InternalOCLinEcore.g:8726:1: ( ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 ) )
-            // InternalOCLinEcore.g:8727:1: ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 )
+            // InternalOCLinEcore.g:8738:1: ( ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 ) )
+            // InternalOCLinEcore.g:8739:1: ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getInstanceClassNameAssignment_4_1()); 
             }
-            // InternalOCLinEcore.g:8728:1: ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 )
-            // InternalOCLinEcore.g:8728:2: rule__DataTypeCS__InstanceClassNameAssignment_4_1
+            // InternalOCLinEcore.g:8740:1: ( rule__DataTypeCS__InstanceClassNameAssignment_4_1 )
+            // InternalOCLinEcore.g:8740:2: rule__DataTypeCS__InstanceClassNameAssignment_4_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DataTypeCS__InstanceClassNameAssignment_4_1();
@@ -28622,14 +28690,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_5__0"
-    // InternalOCLinEcore.g:8742:1: rule__DataTypeCS__Group_5__0 : rule__DataTypeCS__Group_5__0__Impl rule__DataTypeCS__Group_5__1 ;
+    // InternalOCLinEcore.g:8754:1: rule__DataTypeCS__Group_5__0 : rule__DataTypeCS__Group_5__0__Impl rule__DataTypeCS__Group_5__1 ;
     public final void rule__DataTypeCS__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8746:1: ( rule__DataTypeCS__Group_5__0__Impl rule__DataTypeCS__Group_5__1 )
-            // InternalOCLinEcore.g:8747:2: rule__DataTypeCS__Group_5__0__Impl rule__DataTypeCS__Group_5__1
+            // InternalOCLinEcore.g:8758:1: ( rule__DataTypeCS__Group_5__0__Impl rule__DataTypeCS__Group_5__1 )
+            // InternalOCLinEcore.g:8759:2: rule__DataTypeCS__Group_5__0__Impl rule__DataTypeCS__Group_5__1
             {
             pushFollow(FollowSets000.FOLLOW_37);
             rule__DataTypeCS__Group_5__0__Impl();
@@ -28660,17 +28728,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_5__0__Impl"
-    // InternalOCLinEcore.g:8754:1: rule__DataTypeCS__Group_5__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:8766:1: rule__DataTypeCS__Group_5__0__Impl : ( '{' ) ;
     public final void rule__DataTypeCS__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8758:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:8759:1: ( '{' )
+            // InternalOCLinEcore.g:8770:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:8771:1: ( '{' )
             {
-            // InternalOCLinEcore.g:8759:1: ( '{' )
-            // InternalOCLinEcore.g:8760:1: '{'
+            // InternalOCLinEcore.g:8771:1: ( '{' )
+            // InternalOCLinEcore.g:8772:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getLeftCurlyBracketKeyword_5_0()); 
@@ -28701,14 +28769,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_5__1"
-    // InternalOCLinEcore.g:8773:1: rule__DataTypeCS__Group_5__1 : rule__DataTypeCS__Group_5__1__Impl rule__DataTypeCS__Group_5__2 ;
+    // InternalOCLinEcore.g:8785:1: rule__DataTypeCS__Group_5__1 : rule__DataTypeCS__Group_5__1__Impl rule__DataTypeCS__Group_5__2 ;
     public final void rule__DataTypeCS__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8777:1: ( rule__DataTypeCS__Group_5__1__Impl rule__DataTypeCS__Group_5__2 )
-            // InternalOCLinEcore.g:8778:2: rule__DataTypeCS__Group_5__1__Impl rule__DataTypeCS__Group_5__2
+            // InternalOCLinEcore.g:8789:1: ( rule__DataTypeCS__Group_5__1__Impl rule__DataTypeCS__Group_5__2 )
+            // InternalOCLinEcore.g:8790:2: rule__DataTypeCS__Group_5__1__Impl rule__DataTypeCS__Group_5__2
             {
             pushFollow(FollowSets000.FOLLOW_37);
             rule__DataTypeCS__Group_5__1__Impl();
@@ -28739,22 +28807,22 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_5__1__Impl"
-    // InternalOCLinEcore.g:8785:1: rule__DataTypeCS__Group_5__1__Impl : ( ( rule__DataTypeCS__Alternatives_5_1 )? ) ;
+    // InternalOCLinEcore.g:8797:1: rule__DataTypeCS__Group_5__1__Impl : ( ( rule__DataTypeCS__Alternatives_5_1 )? ) ;
     public final void rule__DataTypeCS__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8789:1: ( ( ( rule__DataTypeCS__Alternatives_5_1 )? ) )
-            // InternalOCLinEcore.g:8790:1: ( ( rule__DataTypeCS__Alternatives_5_1 )? )
+            // InternalOCLinEcore.g:8801:1: ( ( ( rule__DataTypeCS__Alternatives_5_1 )? ) )
+            // InternalOCLinEcore.g:8802:1: ( ( rule__DataTypeCS__Alternatives_5_1 )? )
             {
-            // InternalOCLinEcore.g:8790:1: ( ( rule__DataTypeCS__Alternatives_5_1 )? )
-            // InternalOCLinEcore.g:8791:1: ( rule__DataTypeCS__Alternatives_5_1 )?
+            // InternalOCLinEcore.g:8802:1: ( ( rule__DataTypeCS__Alternatives_5_1 )? )
+            // InternalOCLinEcore.g:8803:1: ( rule__DataTypeCS__Alternatives_5_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getAlternatives_5_1()); 
             }
-            // InternalOCLinEcore.g:8792:1: ( rule__DataTypeCS__Alternatives_5_1 )?
+            // InternalOCLinEcore.g:8804:1: ( rule__DataTypeCS__Alternatives_5_1 )?
             int alt110=2;
             int LA110_0 = input.LA(1);
 
@@ -28763,7 +28831,7 @@
             }
             switch (alt110) {
                 case 1 :
-                    // InternalOCLinEcore.g:8792:2: rule__DataTypeCS__Alternatives_5_1
+                    // InternalOCLinEcore.g:8804:2: rule__DataTypeCS__Alternatives_5_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__DataTypeCS__Alternatives_5_1();
@@ -28801,14 +28869,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_5__2"
-    // InternalOCLinEcore.g:8802:1: rule__DataTypeCS__Group_5__2 : rule__DataTypeCS__Group_5__2__Impl ;
+    // InternalOCLinEcore.g:8814:1: rule__DataTypeCS__Group_5__2 : rule__DataTypeCS__Group_5__2__Impl ;
     public final void rule__DataTypeCS__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8806:1: ( rule__DataTypeCS__Group_5__2__Impl )
-            // InternalOCLinEcore.g:8807:2: rule__DataTypeCS__Group_5__2__Impl
+            // InternalOCLinEcore.g:8818:1: ( rule__DataTypeCS__Group_5__2__Impl )
+            // InternalOCLinEcore.g:8819:2: rule__DataTypeCS__Group_5__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DataTypeCS__Group_5__2__Impl();
@@ -28834,17 +28902,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_5__2__Impl"
-    // InternalOCLinEcore.g:8813:1: rule__DataTypeCS__Group_5__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:8825:1: rule__DataTypeCS__Group_5__2__Impl : ( '}' ) ;
     public final void rule__DataTypeCS__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8817:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:8818:1: ( '}' )
+            // InternalOCLinEcore.g:8829:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:8830:1: ( '}' )
             {
-            // InternalOCLinEcore.g:8818:1: ( '}' )
-            // InternalOCLinEcore.g:8819:1: '}'
+            // InternalOCLinEcore.g:8830:1: ( '}' )
+            // InternalOCLinEcore.g:8831:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getRightCurlyBracketKeyword_5_2()); 
@@ -28875,14 +28943,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_6_0__0"
-    // InternalOCLinEcore.g:8838:1: rule__DataTypeCS__Group_6_0__0 : rule__DataTypeCS__Group_6_0__0__Impl rule__DataTypeCS__Group_6_0__1 ;
+    // InternalOCLinEcore.g:8850:1: rule__DataTypeCS__Group_6_0__0 : rule__DataTypeCS__Group_6_0__0__Impl rule__DataTypeCS__Group_6_0__1 ;
     public final void rule__DataTypeCS__Group_6_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8842:1: ( rule__DataTypeCS__Group_6_0__0__Impl rule__DataTypeCS__Group_6_0__1 )
-            // InternalOCLinEcore.g:8843:2: rule__DataTypeCS__Group_6_0__0__Impl rule__DataTypeCS__Group_6_0__1
+            // InternalOCLinEcore.g:8854:1: ( rule__DataTypeCS__Group_6_0__0__Impl rule__DataTypeCS__Group_6_0__1 )
+            // InternalOCLinEcore.g:8855:2: rule__DataTypeCS__Group_6_0__0__Impl rule__DataTypeCS__Group_6_0__1
             {
             pushFollow(FollowSets000.FOLLOW_38);
             rule__DataTypeCS__Group_6_0__0__Impl();
@@ -28913,17 +28981,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_6_0__0__Impl"
-    // InternalOCLinEcore.g:8850:1: rule__DataTypeCS__Group_6_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:8862:1: rule__DataTypeCS__Group_6_0__0__Impl : ( '{' ) ;
     public final void rule__DataTypeCS__Group_6_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8854:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:8855:1: ( '{' )
+            // InternalOCLinEcore.g:8866:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:8867:1: ( '{' )
             {
-            // InternalOCLinEcore.g:8855:1: ( '{' )
-            // InternalOCLinEcore.g:8856:1: '{'
+            // InternalOCLinEcore.g:8867:1: ( '{' )
+            // InternalOCLinEcore.g:8868:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getLeftCurlyBracketKeyword_6_0_0()); 
@@ -28954,14 +29022,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_6_0__1"
-    // InternalOCLinEcore.g:8869:1: rule__DataTypeCS__Group_6_0__1 : rule__DataTypeCS__Group_6_0__1__Impl rule__DataTypeCS__Group_6_0__2 ;
+    // InternalOCLinEcore.g:8881:1: rule__DataTypeCS__Group_6_0__1 : rule__DataTypeCS__Group_6_0__1__Impl rule__DataTypeCS__Group_6_0__2 ;
     public final void rule__DataTypeCS__Group_6_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8873:1: ( rule__DataTypeCS__Group_6_0__1__Impl rule__DataTypeCS__Group_6_0__2 )
-            // InternalOCLinEcore.g:8874:2: rule__DataTypeCS__Group_6_0__1__Impl rule__DataTypeCS__Group_6_0__2
+            // InternalOCLinEcore.g:8885:1: ( rule__DataTypeCS__Group_6_0__1__Impl rule__DataTypeCS__Group_6_0__2 )
+            // InternalOCLinEcore.g:8886:2: rule__DataTypeCS__Group_6_0__1__Impl rule__DataTypeCS__Group_6_0__2
             {
             pushFollow(FollowSets000.FOLLOW_38);
             rule__DataTypeCS__Group_6_0__1__Impl();
@@ -28992,22 +29060,22 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_6_0__1__Impl"
-    // InternalOCLinEcore.g:8881:1: rule__DataTypeCS__Group_6_0__1__Impl : ( ( rule__DataTypeCS__Alternatives_6_0_1 )* ) ;
+    // InternalOCLinEcore.g:8893:1: rule__DataTypeCS__Group_6_0__1__Impl : ( ( rule__DataTypeCS__Alternatives_6_0_1 )* ) ;
     public final void rule__DataTypeCS__Group_6_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8885:1: ( ( ( rule__DataTypeCS__Alternatives_6_0_1 )* ) )
-            // InternalOCLinEcore.g:8886:1: ( ( rule__DataTypeCS__Alternatives_6_0_1 )* )
+            // InternalOCLinEcore.g:8897:1: ( ( ( rule__DataTypeCS__Alternatives_6_0_1 )* ) )
+            // InternalOCLinEcore.g:8898:1: ( ( rule__DataTypeCS__Alternatives_6_0_1 )* )
             {
-            // InternalOCLinEcore.g:8886:1: ( ( rule__DataTypeCS__Alternatives_6_0_1 )* )
-            // InternalOCLinEcore.g:8887:1: ( rule__DataTypeCS__Alternatives_6_0_1 )*
+            // InternalOCLinEcore.g:8898:1: ( ( rule__DataTypeCS__Alternatives_6_0_1 )* )
+            // InternalOCLinEcore.g:8899:1: ( rule__DataTypeCS__Alternatives_6_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getAlternatives_6_0_1()); 
             }
-            // InternalOCLinEcore.g:8888:1: ( rule__DataTypeCS__Alternatives_6_0_1 )*
+            // InternalOCLinEcore.g:8900:1: ( rule__DataTypeCS__Alternatives_6_0_1 )*
             loop111:
             do {
                 int alt111=2;
@@ -29020,7 +29088,7 @@
 
                 switch (alt111) {
             	case 1 :
-            	    // InternalOCLinEcore.g:8888:2: rule__DataTypeCS__Alternatives_6_0_1
+            	    // InternalOCLinEcore.g:8900:2: rule__DataTypeCS__Alternatives_6_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_39);
             	    rule__DataTypeCS__Alternatives_6_0_1();
@@ -29061,14 +29129,14 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_6_0__2"
-    // InternalOCLinEcore.g:8898:1: rule__DataTypeCS__Group_6_0__2 : rule__DataTypeCS__Group_6_0__2__Impl ;
+    // InternalOCLinEcore.g:8910:1: rule__DataTypeCS__Group_6_0__2 : rule__DataTypeCS__Group_6_0__2__Impl ;
     public final void rule__DataTypeCS__Group_6_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8902:1: ( rule__DataTypeCS__Group_6_0__2__Impl )
-            // InternalOCLinEcore.g:8903:2: rule__DataTypeCS__Group_6_0__2__Impl
+            // InternalOCLinEcore.g:8914:1: ( rule__DataTypeCS__Group_6_0__2__Impl )
+            // InternalOCLinEcore.g:8915:2: rule__DataTypeCS__Group_6_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DataTypeCS__Group_6_0__2__Impl();
@@ -29094,17 +29162,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Group_6_0__2__Impl"
-    // InternalOCLinEcore.g:8909:1: rule__DataTypeCS__Group_6_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:8921:1: rule__DataTypeCS__Group_6_0__2__Impl : ( '}' ) ;
     public final void rule__DataTypeCS__Group_6_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8913:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:8914:1: ( '}' )
+            // InternalOCLinEcore.g:8925:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:8926:1: ( '}' )
             {
-            // InternalOCLinEcore.g:8914:1: ( '}' )
-            // InternalOCLinEcore.g:8915:1: '}'
+            // InternalOCLinEcore.g:8926:1: ( '}' )
+            // InternalOCLinEcore.g:8927:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getRightCurlyBracketKeyword_6_0_2()); 
@@ -29135,14 +29203,14 @@
 
 
     // $ANTLR start "rule__DetailCS__Group__0"
-    // InternalOCLinEcore.g:8934:1: rule__DetailCS__Group__0 : rule__DetailCS__Group__0__Impl rule__DetailCS__Group__1 ;
+    // InternalOCLinEcore.g:8946:1: rule__DetailCS__Group__0 : rule__DetailCS__Group__0__Impl rule__DetailCS__Group__1 ;
     public final void rule__DetailCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8938:1: ( rule__DetailCS__Group__0__Impl rule__DetailCS__Group__1 )
-            // InternalOCLinEcore.g:8939:2: rule__DetailCS__Group__0__Impl rule__DetailCS__Group__1
+            // InternalOCLinEcore.g:8950:1: ( rule__DetailCS__Group__0__Impl rule__DetailCS__Group__1 )
+            // InternalOCLinEcore.g:8951:2: rule__DetailCS__Group__0__Impl rule__DetailCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_40);
             rule__DetailCS__Group__0__Impl();
@@ -29173,23 +29241,23 @@
 
 
     // $ANTLR start "rule__DetailCS__Group__0__Impl"
-    // InternalOCLinEcore.g:8946:1: rule__DetailCS__Group__0__Impl : ( ( rule__DetailCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:8958:1: rule__DetailCS__Group__0__Impl : ( ( rule__DetailCS__NameAssignment_0 ) ) ;
     public final void rule__DetailCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8950:1: ( ( ( rule__DetailCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:8951:1: ( ( rule__DetailCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:8962:1: ( ( ( rule__DetailCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:8963:1: ( ( rule__DetailCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:8951:1: ( ( rule__DetailCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:8952:1: ( rule__DetailCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:8963:1: ( ( rule__DetailCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:8964:1: ( rule__DetailCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDetailCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:8953:1: ( rule__DetailCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:8953:2: rule__DetailCS__NameAssignment_0
+            // InternalOCLinEcore.g:8965:1: ( rule__DetailCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:8965:2: rule__DetailCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DetailCS__NameAssignment_0();
@@ -29224,14 +29292,14 @@
 
 
     // $ANTLR start "rule__DetailCS__Group__1"
-    // InternalOCLinEcore.g:8963:1: rule__DetailCS__Group__1 : rule__DetailCS__Group__1__Impl rule__DetailCS__Group__2 ;
+    // InternalOCLinEcore.g:8975:1: rule__DetailCS__Group__1 : rule__DetailCS__Group__1__Impl rule__DetailCS__Group__2 ;
     public final void rule__DetailCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8967:1: ( rule__DetailCS__Group__1__Impl rule__DetailCS__Group__2 )
-            // InternalOCLinEcore.g:8968:2: rule__DetailCS__Group__1__Impl rule__DetailCS__Group__2
+            // InternalOCLinEcore.g:8979:1: ( rule__DetailCS__Group__1__Impl rule__DetailCS__Group__2 )
+            // InternalOCLinEcore.g:8980:2: rule__DetailCS__Group__1__Impl rule__DetailCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_41);
             rule__DetailCS__Group__1__Impl();
@@ -29262,17 +29330,17 @@
 
 
     // $ANTLR start "rule__DetailCS__Group__1__Impl"
-    // InternalOCLinEcore.g:8975:1: rule__DetailCS__Group__1__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:8987:1: rule__DetailCS__Group__1__Impl : ( '=' ) ;
     public final void rule__DetailCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8979:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:8980:1: ( '=' )
+            // InternalOCLinEcore.g:8991:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:8992:1: ( '=' )
             {
-            // InternalOCLinEcore.g:8980:1: ( '=' )
-            // InternalOCLinEcore.g:8981:1: '='
+            // InternalOCLinEcore.g:8992:1: ( '=' )
+            // InternalOCLinEcore.g:8993:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDetailCSAccess().getEqualsSignKeyword_1()); 
@@ -29303,14 +29371,14 @@
 
 
     // $ANTLR start "rule__DetailCS__Group__2"
-    // InternalOCLinEcore.g:8994:1: rule__DetailCS__Group__2 : rule__DetailCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:9006:1: rule__DetailCS__Group__2 : rule__DetailCS__Group__2__Impl ;
     public final void rule__DetailCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:8998:1: ( rule__DetailCS__Group__2__Impl )
-            // InternalOCLinEcore.g:8999:2: rule__DetailCS__Group__2__Impl
+            // InternalOCLinEcore.g:9010:1: ( rule__DetailCS__Group__2__Impl )
+            // InternalOCLinEcore.g:9011:2: rule__DetailCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DetailCS__Group__2__Impl();
@@ -29336,22 +29404,22 @@
 
 
     // $ANTLR start "rule__DetailCS__Group__2__Impl"
-    // InternalOCLinEcore.g:9005:1: rule__DetailCS__Group__2__Impl : ( ( rule__DetailCS__ValuesAssignment_2 )* ) ;
+    // InternalOCLinEcore.g:9017:1: rule__DetailCS__Group__2__Impl : ( ( rule__DetailCS__ValuesAssignment_2 )* ) ;
     public final void rule__DetailCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9009:1: ( ( ( rule__DetailCS__ValuesAssignment_2 )* ) )
-            // InternalOCLinEcore.g:9010:1: ( ( rule__DetailCS__ValuesAssignment_2 )* )
+            // InternalOCLinEcore.g:9021:1: ( ( ( rule__DetailCS__ValuesAssignment_2 )* ) )
+            // InternalOCLinEcore.g:9022:1: ( ( rule__DetailCS__ValuesAssignment_2 )* )
             {
-            // InternalOCLinEcore.g:9010:1: ( ( rule__DetailCS__ValuesAssignment_2 )* )
-            // InternalOCLinEcore.g:9011:1: ( rule__DetailCS__ValuesAssignment_2 )*
+            // InternalOCLinEcore.g:9022:1: ( ( rule__DetailCS__ValuesAssignment_2 )* )
+            // InternalOCLinEcore.g:9023:1: ( rule__DetailCS__ValuesAssignment_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDetailCSAccess().getValuesAssignment_2()); 
             }
-            // InternalOCLinEcore.g:9012:1: ( rule__DetailCS__ValuesAssignment_2 )*
+            // InternalOCLinEcore.g:9024:1: ( rule__DetailCS__ValuesAssignment_2 )*
             loop112:
             do {
                 int alt112=2;
@@ -29364,7 +29432,7 @@
 
                 switch (alt112) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9012:2: rule__DetailCS__ValuesAssignment_2
+            	    // InternalOCLinEcore.g:9024:2: rule__DetailCS__ValuesAssignment_2
             	    {
             	    pushFollow(FollowSets000.FOLLOW_42);
             	    rule__DetailCS__ValuesAssignment_2();
@@ -29405,14 +29473,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__0"
-    // InternalOCLinEcore.g:9028:1: rule__DocumentationCS__Group__0 : rule__DocumentationCS__Group__0__Impl rule__DocumentationCS__Group__1 ;
+    // InternalOCLinEcore.g:9040:1: rule__DocumentationCS__Group__0 : rule__DocumentationCS__Group__0__Impl rule__DocumentationCS__Group__1 ;
     public final void rule__DocumentationCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9032:1: ( rule__DocumentationCS__Group__0__Impl rule__DocumentationCS__Group__1 )
-            // InternalOCLinEcore.g:9033:2: rule__DocumentationCS__Group__0__Impl rule__DocumentationCS__Group__1
+            // InternalOCLinEcore.g:9044:1: ( rule__DocumentationCS__Group__0__Impl rule__DocumentationCS__Group__1 )
+            // InternalOCLinEcore.g:9045:2: rule__DocumentationCS__Group__0__Impl rule__DocumentationCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_43);
             rule__DocumentationCS__Group__0__Impl();
@@ -29443,23 +29511,23 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__0__Impl"
-    // InternalOCLinEcore.g:9040:1: rule__DocumentationCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:9052:1: rule__DocumentationCS__Group__0__Impl : ( () ) ;
     public final void rule__DocumentationCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9044:1: ( ( () ) )
-            // InternalOCLinEcore.g:9045:1: ( () )
+            // InternalOCLinEcore.g:9056:1: ( ( () ) )
+            // InternalOCLinEcore.g:9057:1: ( () )
             {
-            // InternalOCLinEcore.g:9045:1: ( () )
-            // InternalOCLinEcore.g:9046:1: ()
+            // InternalOCLinEcore.g:9057:1: ( () )
+            // InternalOCLinEcore.g:9058:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getDocumentationCSAction_0()); 
             }
-            // InternalOCLinEcore.g:9047:1: ()
-            // InternalOCLinEcore.g:9049:1: 
+            // InternalOCLinEcore.g:9059:1: ()
+            // InternalOCLinEcore.g:9061:1: 
             {
             }
 
@@ -29484,14 +29552,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__1"
-    // InternalOCLinEcore.g:9059:1: rule__DocumentationCS__Group__1 : rule__DocumentationCS__Group__1__Impl rule__DocumentationCS__Group__2 ;
+    // InternalOCLinEcore.g:9071:1: rule__DocumentationCS__Group__1 : rule__DocumentationCS__Group__1__Impl rule__DocumentationCS__Group__2 ;
     public final void rule__DocumentationCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9063:1: ( rule__DocumentationCS__Group__1__Impl rule__DocumentationCS__Group__2 )
-            // InternalOCLinEcore.g:9064:2: rule__DocumentationCS__Group__1__Impl rule__DocumentationCS__Group__2
+            // InternalOCLinEcore.g:9075:1: ( rule__DocumentationCS__Group__1__Impl rule__DocumentationCS__Group__2 )
+            // InternalOCLinEcore.g:9076:2: rule__DocumentationCS__Group__1__Impl rule__DocumentationCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_44);
             rule__DocumentationCS__Group__1__Impl();
@@ -29522,17 +29590,17 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__1__Impl"
-    // InternalOCLinEcore.g:9071:1: rule__DocumentationCS__Group__1__Impl : ( 'documentation' ) ;
+    // InternalOCLinEcore.g:9083:1: rule__DocumentationCS__Group__1__Impl : ( 'documentation' ) ;
     public final void rule__DocumentationCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9075:1: ( ( 'documentation' ) )
-            // InternalOCLinEcore.g:9076:1: ( 'documentation' )
+            // InternalOCLinEcore.g:9087:1: ( ( 'documentation' ) )
+            // InternalOCLinEcore.g:9088:1: ( 'documentation' )
             {
-            // InternalOCLinEcore.g:9076:1: ( 'documentation' )
-            // InternalOCLinEcore.g:9077:1: 'documentation'
+            // InternalOCLinEcore.g:9088:1: ( 'documentation' )
+            // InternalOCLinEcore.g:9089:1: 'documentation'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getDocumentationKeyword_1()); 
@@ -29563,14 +29631,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__2"
-    // InternalOCLinEcore.g:9090:1: rule__DocumentationCS__Group__2 : rule__DocumentationCS__Group__2__Impl rule__DocumentationCS__Group__3 ;
+    // InternalOCLinEcore.g:9102:1: rule__DocumentationCS__Group__2 : rule__DocumentationCS__Group__2__Impl rule__DocumentationCS__Group__3 ;
     public final void rule__DocumentationCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9094:1: ( rule__DocumentationCS__Group__2__Impl rule__DocumentationCS__Group__3 )
-            // InternalOCLinEcore.g:9095:2: rule__DocumentationCS__Group__2__Impl rule__DocumentationCS__Group__3
+            // InternalOCLinEcore.g:9106:1: ( rule__DocumentationCS__Group__2__Impl rule__DocumentationCS__Group__3 )
+            // InternalOCLinEcore.g:9107:2: rule__DocumentationCS__Group__2__Impl rule__DocumentationCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_44);
             rule__DocumentationCS__Group__2__Impl();
@@ -29601,22 +29669,22 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__2__Impl"
-    // InternalOCLinEcore.g:9102:1: rule__DocumentationCS__Group__2__Impl : ( ( rule__DocumentationCS__ValueAssignment_2 )? ) ;
+    // InternalOCLinEcore.g:9114:1: rule__DocumentationCS__Group__2__Impl : ( ( rule__DocumentationCS__ValueAssignment_2 )? ) ;
     public final void rule__DocumentationCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9106:1: ( ( ( rule__DocumentationCS__ValueAssignment_2 )? ) )
-            // InternalOCLinEcore.g:9107:1: ( ( rule__DocumentationCS__ValueAssignment_2 )? )
+            // InternalOCLinEcore.g:9118:1: ( ( ( rule__DocumentationCS__ValueAssignment_2 )? ) )
+            // InternalOCLinEcore.g:9119:1: ( ( rule__DocumentationCS__ValueAssignment_2 )? )
             {
-            // InternalOCLinEcore.g:9107:1: ( ( rule__DocumentationCS__ValueAssignment_2 )? )
-            // InternalOCLinEcore.g:9108:1: ( rule__DocumentationCS__ValueAssignment_2 )?
+            // InternalOCLinEcore.g:9119:1: ( ( rule__DocumentationCS__ValueAssignment_2 )? )
+            // InternalOCLinEcore.g:9120:1: ( rule__DocumentationCS__ValueAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getValueAssignment_2()); 
             }
-            // InternalOCLinEcore.g:9109:1: ( rule__DocumentationCS__ValueAssignment_2 )?
+            // InternalOCLinEcore.g:9121:1: ( rule__DocumentationCS__ValueAssignment_2 )?
             int alt113=2;
             int LA113_0 = input.LA(1);
 
@@ -29625,7 +29693,7 @@
             }
             switch (alt113) {
                 case 1 :
-                    // InternalOCLinEcore.g:9109:2: rule__DocumentationCS__ValueAssignment_2
+                    // InternalOCLinEcore.g:9121:2: rule__DocumentationCS__ValueAssignment_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__DocumentationCS__ValueAssignment_2();
@@ -29663,14 +29731,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__3"
-    // InternalOCLinEcore.g:9119:1: rule__DocumentationCS__Group__3 : rule__DocumentationCS__Group__3__Impl rule__DocumentationCS__Group__4 ;
+    // InternalOCLinEcore.g:9131:1: rule__DocumentationCS__Group__3 : rule__DocumentationCS__Group__3__Impl rule__DocumentationCS__Group__4 ;
     public final void rule__DocumentationCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9123:1: ( rule__DocumentationCS__Group__3__Impl rule__DocumentationCS__Group__4 )
-            // InternalOCLinEcore.g:9124:2: rule__DocumentationCS__Group__3__Impl rule__DocumentationCS__Group__4
+            // InternalOCLinEcore.g:9135:1: ( rule__DocumentationCS__Group__3__Impl rule__DocumentationCS__Group__4 )
+            // InternalOCLinEcore.g:9136:2: rule__DocumentationCS__Group__3__Impl rule__DocumentationCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_44);
             rule__DocumentationCS__Group__3__Impl();
@@ -29701,22 +29769,22 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__3__Impl"
-    // InternalOCLinEcore.g:9131:1: rule__DocumentationCS__Group__3__Impl : ( ( rule__DocumentationCS__Group_3__0 )? ) ;
+    // InternalOCLinEcore.g:9143:1: rule__DocumentationCS__Group__3__Impl : ( ( rule__DocumentationCS__Group_3__0 )? ) ;
     public final void rule__DocumentationCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9135:1: ( ( ( rule__DocumentationCS__Group_3__0 )? ) )
-            // InternalOCLinEcore.g:9136:1: ( ( rule__DocumentationCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:9147:1: ( ( ( rule__DocumentationCS__Group_3__0 )? ) )
+            // InternalOCLinEcore.g:9148:1: ( ( rule__DocumentationCS__Group_3__0 )? )
             {
-            // InternalOCLinEcore.g:9136:1: ( ( rule__DocumentationCS__Group_3__0 )? )
-            // InternalOCLinEcore.g:9137:1: ( rule__DocumentationCS__Group_3__0 )?
+            // InternalOCLinEcore.g:9148:1: ( ( rule__DocumentationCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:9149:1: ( rule__DocumentationCS__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getGroup_3()); 
             }
-            // InternalOCLinEcore.g:9138:1: ( rule__DocumentationCS__Group_3__0 )?
+            // InternalOCLinEcore.g:9150:1: ( rule__DocumentationCS__Group_3__0 )?
             int alt114=2;
             int LA114_0 = input.LA(1);
 
@@ -29725,7 +29793,7 @@
             }
             switch (alt114) {
                 case 1 :
-                    // InternalOCLinEcore.g:9138:2: rule__DocumentationCS__Group_3__0
+                    // InternalOCLinEcore.g:9150:2: rule__DocumentationCS__Group_3__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__DocumentationCS__Group_3__0();
@@ -29763,14 +29831,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__4"
-    // InternalOCLinEcore.g:9148:1: rule__DocumentationCS__Group__4 : rule__DocumentationCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:9160:1: rule__DocumentationCS__Group__4 : rule__DocumentationCS__Group__4__Impl ;
     public final void rule__DocumentationCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9152:1: ( rule__DocumentationCS__Group__4__Impl )
-            // InternalOCLinEcore.g:9153:2: rule__DocumentationCS__Group__4__Impl
+            // InternalOCLinEcore.g:9164:1: ( rule__DocumentationCS__Group__4__Impl )
+            // InternalOCLinEcore.g:9165:2: rule__DocumentationCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DocumentationCS__Group__4__Impl();
@@ -29796,17 +29864,17 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group__4__Impl"
-    // InternalOCLinEcore.g:9159:1: rule__DocumentationCS__Group__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:9171:1: rule__DocumentationCS__Group__4__Impl : ( ';' ) ;
     public final void rule__DocumentationCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9163:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:9164:1: ( ';' )
+            // InternalOCLinEcore.g:9175:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:9176:1: ( ';' )
             {
-            // InternalOCLinEcore.g:9164:1: ( ';' )
-            // InternalOCLinEcore.g:9165:1: ';'
+            // InternalOCLinEcore.g:9176:1: ( ';' )
+            // InternalOCLinEcore.g:9177:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getSemicolonKeyword_4()); 
@@ -29837,14 +29905,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3__0"
-    // InternalOCLinEcore.g:9188:1: rule__DocumentationCS__Group_3__0 : rule__DocumentationCS__Group_3__0__Impl rule__DocumentationCS__Group_3__1 ;
+    // InternalOCLinEcore.g:9200:1: rule__DocumentationCS__Group_3__0 : rule__DocumentationCS__Group_3__0__Impl rule__DocumentationCS__Group_3__1 ;
     public final void rule__DocumentationCS__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9192:1: ( rule__DocumentationCS__Group_3__0__Impl rule__DocumentationCS__Group_3__1 )
-            // InternalOCLinEcore.g:9193:2: rule__DocumentationCS__Group_3__0__Impl rule__DocumentationCS__Group_3__1
+            // InternalOCLinEcore.g:9204:1: ( rule__DocumentationCS__Group_3__0__Impl rule__DocumentationCS__Group_3__1 )
+            // InternalOCLinEcore.g:9205:2: rule__DocumentationCS__Group_3__0__Impl rule__DocumentationCS__Group_3__1
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__DocumentationCS__Group_3__0__Impl();
@@ -29875,17 +29943,17 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3__0__Impl"
-    // InternalOCLinEcore.g:9200:1: rule__DocumentationCS__Group_3__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:9212:1: rule__DocumentationCS__Group_3__0__Impl : ( '(' ) ;
     public final void rule__DocumentationCS__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9204:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:9205:1: ( '(' )
+            // InternalOCLinEcore.g:9216:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:9217:1: ( '(' )
             {
-            // InternalOCLinEcore.g:9205:1: ( '(' )
-            // InternalOCLinEcore.g:9206:1: '('
+            // InternalOCLinEcore.g:9217:1: ( '(' )
+            // InternalOCLinEcore.g:9218:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getLeftParenthesisKeyword_3_0()); 
@@ -29916,14 +29984,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3__1"
-    // InternalOCLinEcore.g:9219:1: rule__DocumentationCS__Group_3__1 : rule__DocumentationCS__Group_3__1__Impl rule__DocumentationCS__Group_3__2 ;
+    // InternalOCLinEcore.g:9231:1: rule__DocumentationCS__Group_3__1 : rule__DocumentationCS__Group_3__1__Impl rule__DocumentationCS__Group_3__2 ;
     public final void rule__DocumentationCS__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9223:1: ( rule__DocumentationCS__Group_3__1__Impl rule__DocumentationCS__Group_3__2 )
-            // InternalOCLinEcore.g:9224:2: rule__DocumentationCS__Group_3__1__Impl rule__DocumentationCS__Group_3__2
+            // InternalOCLinEcore.g:9235:1: ( rule__DocumentationCS__Group_3__1__Impl rule__DocumentationCS__Group_3__2 )
+            // InternalOCLinEcore.g:9236:2: rule__DocumentationCS__Group_3__1__Impl rule__DocumentationCS__Group_3__2
             {
             pushFollow(FollowSets000.FOLLOW_19);
             rule__DocumentationCS__Group_3__1__Impl();
@@ -29954,23 +30022,23 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3__1__Impl"
-    // InternalOCLinEcore.g:9231:1: rule__DocumentationCS__Group_3__1__Impl : ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 ) ) ;
+    // InternalOCLinEcore.g:9243:1: rule__DocumentationCS__Group_3__1__Impl : ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 ) ) ;
     public final void rule__DocumentationCS__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9235:1: ( ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 ) ) )
-            // InternalOCLinEcore.g:9236:1: ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 ) )
+            // InternalOCLinEcore.g:9247:1: ( ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 ) ) )
+            // InternalOCLinEcore.g:9248:1: ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 ) )
             {
-            // InternalOCLinEcore.g:9236:1: ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 ) )
-            // InternalOCLinEcore.g:9237:1: ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 )
+            // InternalOCLinEcore.g:9248:1: ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 ) )
+            // InternalOCLinEcore.g:9249:1: ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getOwnedDetailsAssignment_3_1()); 
             }
-            // InternalOCLinEcore.g:9238:1: ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 )
-            // InternalOCLinEcore.g:9238:2: rule__DocumentationCS__OwnedDetailsAssignment_3_1
+            // InternalOCLinEcore.g:9250:1: ( rule__DocumentationCS__OwnedDetailsAssignment_3_1 )
+            // InternalOCLinEcore.g:9250:2: rule__DocumentationCS__OwnedDetailsAssignment_3_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DocumentationCS__OwnedDetailsAssignment_3_1();
@@ -30005,14 +30073,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3__2"
-    // InternalOCLinEcore.g:9248:1: rule__DocumentationCS__Group_3__2 : rule__DocumentationCS__Group_3__2__Impl rule__DocumentationCS__Group_3__3 ;
+    // InternalOCLinEcore.g:9260:1: rule__DocumentationCS__Group_3__2 : rule__DocumentationCS__Group_3__2__Impl rule__DocumentationCS__Group_3__3 ;
     public final void rule__DocumentationCS__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9252:1: ( rule__DocumentationCS__Group_3__2__Impl rule__DocumentationCS__Group_3__3 )
-            // InternalOCLinEcore.g:9253:2: rule__DocumentationCS__Group_3__2__Impl rule__DocumentationCS__Group_3__3
+            // InternalOCLinEcore.g:9264:1: ( rule__DocumentationCS__Group_3__2__Impl rule__DocumentationCS__Group_3__3 )
+            // InternalOCLinEcore.g:9265:2: rule__DocumentationCS__Group_3__2__Impl rule__DocumentationCS__Group_3__3
             {
             pushFollow(FollowSets000.FOLLOW_19);
             rule__DocumentationCS__Group_3__2__Impl();
@@ -30043,22 +30111,22 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3__2__Impl"
-    // InternalOCLinEcore.g:9260:1: rule__DocumentationCS__Group_3__2__Impl : ( ( rule__DocumentationCS__Group_3_2__0 )* ) ;
+    // InternalOCLinEcore.g:9272:1: rule__DocumentationCS__Group_3__2__Impl : ( ( rule__DocumentationCS__Group_3_2__0 )* ) ;
     public final void rule__DocumentationCS__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9264:1: ( ( ( rule__DocumentationCS__Group_3_2__0 )* ) )
-            // InternalOCLinEcore.g:9265:1: ( ( rule__DocumentationCS__Group_3_2__0 )* )
+            // InternalOCLinEcore.g:9276:1: ( ( ( rule__DocumentationCS__Group_3_2__0 )* ) )
+            // InternalOCLinEcore.g:9277:1: ( ( rule__DocumentationCS__Group_3_2__0 )* )
             {
-            // InternalOCLinEcore.g:9265:1: ( ( rule__DocumentationCS__Group_3_2__0 )* )
-            // InternalOCLinEcore.g:9266:1: ( rule__DocumentationCS__Group_3_2__0 )*
+            // InternalOCLinEcore.g:9277:1: ( ( rule__DocumentationCS__Group_3_2__0 )* )
+            // InternalOCLinEcore.g:9278:1: ( rule__DocumentationCS__Group_3_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getGroup_3_2()); 
             }
-            // InternalOCLinEcore.g:9267:1: ( rule__DocumentationCS__Group_3_2__0 )*
+            // InternalOCLinEcore.g:9279:1: ( rule__DocumentationCS__Group_3_2__0 )*
             loop115:
             do {
                 int alt115=2;
@@ -30071,7 +30139,7 @@
 
                 switch (alt115) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9267:2: rule__DocumentationCS__Group_3_2__0
+            	    // InternalOCLinEcore.g:9279:2: rule__DocumentationCS__Group_3_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__DocumentationCS__Group_3_2__0();
@@ -30112,14 +30180,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3__3"
-    // InternalOCLinEcore.g:9277:1: rule__DocumentationCS__Group_3__3 : rule__DocumentationCS__Group_3__3__Impl ;
+    // InternalOCLinEcore.g:9289:1: rule__DocumentationCS__Group_3__3 : rule__DocumentationCS__Group_3__3__Impl ;
     public final void rule__DocumentationCS__Group_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9281:1: ( rule__DocumentationCS__Group_3__3__Impl )
-            // InternalOCLinEcore.g:9282:2: rule__DocumentationCS__Group_3__3__Impl
+            // InternalOCLinEcore.g:9293:1: ( rule__DocumentationCS__Group_3__3__Impl )
+            // InternalOCLinEcore.g:9294:2: rule__DocumentationCS__Group_3__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DocumentationCS__Group_3__3__Impl();
@@ -30145,17 +30213,17 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3__3__Impl"
-    // InternalOCLinEcore.g:9288:1: rule__DocumentationCS__Group_3__3__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:9300:1: rule__DocumentationCS__Group_3__3__Impl : ( ')' ) ;
     public final void rule__DocumentationCS__Group_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9292:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:9293:1: ( ')' )
+            // InternalOCLinEcore.g:9304:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:9305:1: ( ')' )
             {
-            // InternalOCLinEcore.g:9293:1: ( ')' )
-            // InternalOCLinEcore.g:9294:1: ')'
+            // InternalOCLinEcore.g:9305:1: ( ')' )
+            // InternalOCLinEcore.g:9306:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getRightParenthesisKeyword_3_3()); 
@@ -30186,14 +30254,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3_2__0"
-    // InternalOCLinEcore.g:9315:1: rule__DocumentationCS__Group_3_2__0 : rule__DocumentationCS__Group_3_2__0__Impl rule__DocumentationCS__Group_3_2__1 ;
+    // InternalOCLinEcore.g:9327:1: rule__DocumentationCS__Group_3_2__0 : rule__DocumentationCS__Group_3_2__0__Impl rule__DocumentationCS__Group_3_2__1 ;
     public final void rule__DocumentationCS__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9319:1: ( rule__DocumentationCS__Group_3_2__0__Impl rule__DocumentationCS__Group_3_2__1 )
-            // InternalOCLinEcore.g:9320:2: rule__DocumentationCS__Group_3_2__0__Impl rule__DocumentationCS__Group_3_2__1
+            // InternalOCLinEcore.g:9331:1: ( rule__DocumentationCS__Group_3_2__0__Impl rule__DocumentationCS__Group_3_2__1 )
+            // InternalOCLinEcore.g:9332:2: rule__DocumentationCS__Group_3_2__0__Impl rule__DocumentationCS__Group_3_2__1
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__DocumentationCS__Group_3_2__0__Impl();
@@ -30224,17 +30292,17 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3_2__0__Impl"
-    // InternalOCLinEcore.g:9327:1: rule__DocumentationCS__Group_3_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:9339:1: rule__DocumentationCS__Group_3_2__0__Impl : ( ',' ) ;
     public final void rule__DocumentationCS__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9331:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:9332:1: ( ',' )
+            // InternalOCLinEcore.g:9343:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:9344:1: ( ',' )
             {
-            // InternalOCLinEcore.g:9332:1: ( ',' )
-            // InternalOCLinEcore.g:9333:1: ','
+            // InternalOCLinEcore.g:9344:1: ( ',' )
+            // InternalOCLinEcore.g:9345:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getCommaKeyword_3_2_0()); 
@@ -30265,14 +30333,14 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3_2__1"
-    // InternalOCLinEcore.g:9346:1: rule__DocumentationCS__Group_3_2__1 : rule__DocumentationCS__Group_3_2__1__Impl ;
+    // InternalOCLinEcore.g:9358:1: rule__DocumentationCS__Group_3_2__1 : rule__DocumentationCS__Group_3_2__1__Impl ;
     public final void rule__DocumentationCS__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9350:1: ( rule__DocumentationCS__Group_3_2__1__Impl )
-            // InternalOCLinEcore.g:9351:2: rule__DocumentationCS__Group_3_2__1__Impl
+            // InternalOCLinEcore.g:9362:1: ( rule__DocumentationCS__Group_3_2__1__Impl )
+            // InternalOCLinEcore.g:9363:2: rule__DocumentationCS__Group_3_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DocumentationCS__Group_3_2__1__Impl();
@@ -30298,23 +30366,23 @@
 
 
     // $ANTLR start "rule__DocumentationCS__Group_3_2__1__Impl"
-    // InternalOCLinEcore.g:9357:1: rule__DocumentationCS__Group_3_2__1__Impl : ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 ) ) ;
+    // InternalOCLinEcore.g:9369:1: rule__DocumentationCS__Group_3_2__1__Impl : ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 ) ) ;
     public final void rule__DocumentationCS__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9361:1: ( ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 ) ) )
-            // InternalOCLinEcore.g:9362:1: ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 ) )
+            // InternalOCLinEcore.g:9373:1: ( ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 ) ) )
+            // InternalOCLinEcore.g:9374:1: ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 ) )
             {
-            // InternalOCLinEcore.g:9362:1: ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 ) )
-            // InternalOCLinEcore.g:9363:1: ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 )
+            // InternalOCLinEcore.g:9374:1: ( ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 ) )
+            // InternalOCLinEcore.g:9375:1: ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getOwnedDetailsAssignment_3_2_1()); 
             }
-            // InternalOCLinEcore.g:9364:1: ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 )
-            // InternalOCLinEcore.g:9364:2: rule__DocumentationCS__OwnedDetailsAssignment_3_2_1
+            // InternalOCLinEcore.g:9376:1: ( rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 )
+            // InternalOCLinEcore.g:9376:2: rule__DocumentationCS__OwnedDetailsAssignment_3_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DocumentationCS__OwnedDetailsAssignment_3_2_1();
@@ -30349,14 +30417,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__0"
-    // InternalOCLinEcore.g:9378:1: rule__EnumerationCS__Group__0 : rule__EnumerationCS__Group__0__Impl rule__EnumerationCS__Group__1 ;
+    // InternalOCLinEcore.g:9390:1: rule__EnumerationCS__Group__0 : rule__EnumerationCS__Group__0__Impl rule__EnumerationCS__Group__1 ;
     public final void rule__EnumerationCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9382:1: ( rule__EnumerationCS__Group__0__Impl rule__EnumerationCS__Group__1 )
-            // InternalOCLinEcore.g:9383:2: rule__EnumerationCS__Group__0__Impl rule__EnumerationCS__Group__1
+            // InternalOCLinEcore.g:9394:1: ( rule__EnumerationCS__Group__0__Impl rule__EnumerationCS__Group__1 )
+            // InternalOCLinEcore.g:9395:2: rule__EnumerationCS__Group__0__Impl rule__EnumerationCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__EnumerationCS__Group__0__Impl();
@@ -30387,17 +30455,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__0__Impl"
-    // InternalOCLinEcore.g:9390:1: rule__EnumerationCS__Group__0__Impl : ( 'enum' ) ;
+    // InternalOCLinEcore.g:9402:1: rule__EnumerationCS__Group__0__Impl : ( 'enum' ) ;
     public final void rule__EnumerationCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9394:1: ( ( 'enum' ) )
-            // InternalOCLinEcore.g:9395:1: ( 'enum' )
+            // InternalOCLinEcore.g:9406:1: ( ( 'enum' ) )
+            // InternalOCLinEcore.g:9407:1: ( 'enum' )
             {
-            // InternalOCLinEcore.g:9395:1: ( 'enum' )
-            // InternalOCLinEcore.g:9396:1: 'enum'
+            // InternalOCLinEcore.g:9407:1: ( 'enum' )
+            // InternalOCLinEcore.g:9408:1: 'enum'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getEnumKeyword_0()); 
@@ -30428,14 +30496,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__1"
-    // InternalOCLinEcore.g:9409:1: rule__EnumerationCS__Group__1 : rule__EnumerationCS__Group__1__Impl rule__EnumerationCS__Group__2 ;
+    // InternalOCLinEcore.g:9421:1: rule__EnumerationCS__Group__1 : rule__EnumerationCS__Group__1__Impl rule__EnumerationCS__Group__2 ;
     public final void rule__EnumerationCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9413:1: ( rule__EnumerationCS__Group__1__Impl rule__EnumerationCS__Group__2 )
-            // InternalOCLinEcore.g:9414:2: rule__EnumerationCS__Group__1__Impl rule__EnumerationCS__Group__2
+            // InternalOCLinEcore.g:9425:1: ( rule__EnumerationCS__Group__1__Impl rule__EnumerationCS__Group__2 )
+            // InternalOCLinEcore.g:9426:2: rule__EnumerationCS__Group__1__Impl rule__EnumerationCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_36);
             rule__EnumerationCS__Group__1__Impl();
@@ -30466,23 +30534,23 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__1__Impl"
-    // InternalOCLinEcore.g:9421:1: rule__EnumerationCS__Group__1__Impl : ( ( rule__EnumerationCS__NameAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:9433:1: rule__EnumerationCS__Group__1__Impl : ( ( rule__EnumerationCS__NameAssignment_1 ) ) ;
     public final void rule__EnumerationCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9425:1: ( ( ( rule__EnumerationCS__NameAssignment_1 ) ) )
-            // InternalOCLinEcore.g:9426:1: ( ( rule__EnumerationCS__NameAssignment_1 ) )
+            // InternalOCLinEcore.g:9437:1: ( ( ( rule__EnumerationCS__NameAssignment_1 ) ) )
+            // InternalOCLinEcore.g:9438:1: ( ( rule__EnumerationCS__NameAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:9426:1: ( ( rule__EnumerationCS__NameAssignment_1 ) )
-            // InternalOCLinEcore.g:9427:1: ( rule__EnumerationCS__NameAssignment_1 )
+            // InternalOCLinEcore.g:9438:1: ( ( rule__EnumerationCS__NameAssignment_1 ) )
+            // InternalOCLinEcore.g:9439:1: ( rule__EnumerationCS__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getNameAssignment_1()); 
             }
-            // InternalOCLinEcore.g:9428:1: ( rule__EnumerationCS__NameAssignment_1 )
-            // InternalOCLinEcore.g:9428:2: rule__EnumerationCS__NameAssignment_1
+            // InternalOCLinEcore.g:9440:1: ( rule__EnumerationCS__NameAssignment_1 )
+            // InternalOCLinEcore.g:9440:2: rule__EnumerationCS__NameAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationCS__NameAssignment_1();
@@ -30517,14 +30585,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__2"
-    // InternalOCLinEcore.g:9438:1: rule__EnumerationCS__Group__2 : rule__EnumerationCS__Group__2__Impl rule__EnumerationCS__Group__3 ;
+    // InternalOCLinEcore.g:9450:1: rule__EnumerationCS__Group__2 : rule__EnumerationCS__Group__2__Impl rule__EnumerationCS__Group__3 ;
     public final void rule__EnumerationCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9442:1: ( rule__EnumerationCS__Group__2__Impl rule__EnumerationCS__Group__3 )
-            // InternalOCLinEcore.g:9443:2: rule__EnumerationCS__Group__2__Impl rule__EnumerationCS__Group__3
+            // InternalOCLinEcore.g:9454:1: ( rule__EnumerationCS__Group__2__Impl rule__EnumerationCS__Group__3 )
+            // InternalOCLinEcore.g:9455:2: rule__EnumerationCS__Group__2__Impl rule__EnumerationCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_36);
             rule__EnumerationCS__Group__2__Impl();
@@ -30555,22 +30623,22 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__2__Impl"
-    // InternalOCLinEcore.g:9450:1: rule__EnumerationCS__Group__2__Impl : ( ( rule__EnumerationCS__OwnedSignatureAssignment_2 )? ) ;
+    // InternalOCLinEcore.g:9462:1: rule__EnumerationCS__Group__2__Impl : ( ( rule__EnumerationCS__OwnedSignatureAssignment_2 )? ) ;
     public final void rule__EnumerationCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9454:1: ( ( ( rule__EnumerationCS__OwnedSignatureAssignment_2 )? ) )
-            // InternalOCLinEcore.g:9455:1: ( ( rule__EnumerationCS__OwnedSignatureAssignment_2 )? )
+            // InternalOCLinEcore.g:9466:1: ( ( ( rule__EnumerationCS__OwnedSignatureAssignment_2 )? ) )
+            // InternalOCLinEcore.g:9467:1: ( ( rule__EnumerationCS__OwnedSignatureAssignment_2 )? )
             {
-            // InternalOCLinEcore.g:9455:1: ( ( rule__EnumerationCS__OwnedSignatureAssignment_2 )? )
-            // InternalOCLinEcore.g:9456:1: ( rule__EnumerationCS__OwnedSignatureAssignment_2 )?
+            // InternalOCLinEcore.g:9467:1: ( ( rule__EnumerationCS__OwnedSignatureAssignment_2 )? )
+            // InternalOCLinEcore.g:9468:1: ( rule__EnumerationCS__OwnedSignatureAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getOwnedSignatureAssignment_2()); 
             }
-            // InternalOCLinEcore.g:9457:1: ( rule__EnumerationCS__OwnedSignatureAssignment_2 )?
+            // InternalOCLinEcore.g:9469:1: ( rule__EnumerationCS__OwnedSignatureAssignment_2 )?
             int alt116=2;
             int LA116_0 = input.LA(1);
 
@@ -30579,7 +30647,7 @@
             }
             switch (alt116) {
                 case 1 :
-                    // InternalOCLinEcore.g:9457:2: rule__EnumerationCS__OwnedSignatureAssignment_2
+                    // InternalOCLinEcore.g:9469:2: rule__EnumerationCS__OwnedSignatureAssignment_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__EnumerationCS__OwnedSignatureAssignment_2();
@@ -30617,14 +30685,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__3"
-    // InternalOCLinEcore.g:9467:1: rule__EnumerationCS__Group__3 : rule__EnumerationCS__Group__3__Impl rule__EnumerationCS__Group__4 ;
+    // InternalOCLinEcore.g:9479:1: rule__EnumerationCS__Group__3 : rule__EnumerationCS__Group__3__Impl rule__EnumerationCS__Group__4 ;
     public final void rule__EnumerationCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9471:1: ( rule__EnumerationCS__Group__3__Impl rule__EnumerationCS__Group__4 )
-            // InternalOCLinEcore.g:9472:2: rule__EnumerationCS__Group__3__Impl rule__EnumerationCS__Group__4
+            // InternalOCLinEcore.g:9483:1: ( rule__EnumerationCS__Group__3__Impl rule__EnumerationCS__Group__4 )
+            // InternalOCLinEcore.g:9484:2: rule__EnumerationCS__Group__3__Impl rule__EnumerationCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_36);
             rule__EnumerationCS__Group__3__Impl();
@@ -30655,22 +30723,22 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__3__Impl"
-    // InternalOCLinEcore.g:9479:1: rule__EnumerationCS__Group__3__Impl : ( ( rule__EnumerationCS__Group_3__0 )? ) ;
+    // InternalOCLinEcore.g:9491:1: rule__EnumerationCS__Group__3__Impl : ( ( rule__EnumerationCS__Group_3__0 )? ) ;
     public final void rule__EnumerationCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9483:1: ( ( ( rule__EnumerationCS__Group_3__0 )? ) )
-            // InternalOCLinEcore.g:9484:1: ( ( rule__EnumerationCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:9495:1: ( ( ( rule__EnumerationCS__Group_3__0 )? ) )
+            // InternalOCLinEcore.g:9496:1: ( ( rule__EnumerationCS__Group_3__0 )? )
             {
-            // InternalOCLinEcore.g:9484:1: ( ( rule__EnumerationCS__Group_3__0 )? )
-            // InternalOCLinEcore.g:9485:1: ( rule__EnumerationCS__Group_3__0 )?
+            // InternalOCLinEcore.g:9496:1: ( ( rule__EnumerationCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:9497:1: ( rule__EnumerationCS__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getGroup_3()); 
             }
-            // InternalOCLinEcore.g:9486:1: ( rule__EnumerationCS__Group_3__0 )?
+            // InternalOCLinEcore.g:9498:1: ( rule__EnumerationCS__Group_3__0 )?
             int alt117=2;
             int LA117_0 = input.LA(1);
 
@@ -30679,7 +30747,7 @@
             }
             switch (alt117) {
                 case 1 :
-                    // InternalOCLinEcore.g:9486:2: rule__EnumerationCS__Group_3__0
+                    // InternalOCLinEcore.g:9498:2: rule__EnumerationCS__Group_3__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__EnumerationCS__Group_3__0();
@@ -30717,14 +30785,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__4"
-    // InternalOCLinEcore.g:9496:1: rule__EnumerationCS__Group__4 : rule__EnumerationCS__Group__4__Impl rule__EnumerationCS__Group__5 ;
+    // InternalOCLinEcore.g:9508:1: rule__EnumerationCS__Group__4 : rule__EnumerationCS__Group__4__Impl rule__EnumerationCS__Group__5 ;
     public final void rule__EnumerationCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9500:1: ( rule__EnumerationCS__Group__4__Impl rule__EnumerationCS__Group__5 )
-            // InternalOCLinEcore.g:9501:2: rule__EnumerationCS__Group__4__Impl rule__EnumerationCS__Group__5
+            // InternalOCLinEcore.g:9512:1: ( rule__EnumerationCS__Group__4__Impl rule__EnumerationCS__Group__5 )
+            // InternalOCLinEcore.g:9513:2: rule__EnumerationCS__Group__4__Impl rule__EnumerationCS__Group__5
             {
             pushFollow(FollowSets000.FOLLOW_36);
             rule__EnumerationCS__Group__4__Impl();
@@ -30755,22 +30823,22 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__4__Impl"
-    // InternalOCLinEcore.g:9508:1: rule__EnumerationCS__Group__4__Impl : ( ( rule__EnumerationCS__Group_4__0 )? ) ;
+    // InternalOCLinEcore.g:9520:1: rule__EnumerationCS__Group__4__Impl : ( ( rule__EnumerationCS__Group_4__0 )? ) ;
     public final void rule__EnumerationCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9512:1: ( ( ( rule__EnumerationCS__Group_4__0 )? ) )
-            // InternalOCLinEcore.g:9513:1: ( ( rule__EnumerationCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:9524:1: ( ( ( rule__EnumerationCS__Group_4__0 )? ) )
+            // InternalOCLinEcore.g:9525:1: ( ( rule__EnumerationCS__Group_4__0 )? )
             {
-            // InternalOCLinEcore.g:9513:1: ( ( rule__EnumerationCS__Group_4__0 )? )
-            // InternalOCLinEcore.g:9514:1: ( rule__EnumerationCS__Group_4__0 )?
+            // InternalOCLinEcore.g:9525:1: ( ( rule__EnumerationCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:9526:1: ( rule__EnumerationCS__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getGroup_4()); 
             }
-            // InternalOCLinEcore.g:9515:1: ( rule__EnumerationCS__Group_4__0 )?
+            // InternalOCLinEcore.g:9527:1: ( rule__EnumerationCS__Group_4__0 )?
             int alt118=2;
             int LA118_0 = input.LA(1);
 
@@ -30790,7 +30858,7 @@
             }
             switch (alt118) {
                 case 1 :
-                    // InternalOCLinEcore.g:9515:2: rule__EnumerationCS__Group_4__0
+                    // InternalOCLinEcore.g:9527:2: rule__EnumerationCS__Group_4__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__EnumerationCS__Group_4__0();
@@ -30828,14 +30896,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__5"
-    // InternalOCLinEcore.g:9525:1: rule__EnumerationCS__Group__5 : rule__EnumerationCS__Group__5__Impl ;
+    // InternalOCLinEcore.g:9537:1: rule__EnumerationCS__Group__5 : rule__EnumerationCS__Group__5__Impl ;
     public final void rule__EnumerationCS__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9529:1: ( rule__EnumerationCS__Group__5__Impl )
-            // InternalOCLinEcore.g:9530:2: rule__EnumerationCS__Group__5__Impl
+            // InternalOCLinEcore.g:9541:1: ( rule__EnumerationCS__Group__5__Impl )
+            // InternalOCLinEcore.g:9542:2: rule__EnumerationCS__Group__5__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationCS__Group__5__Impl();
@@ -30861,23 +30929,23 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group__5__Impl"
-    // InternalOCLinEcore.g:9536:1: rule__EnumerationCS__Group__5__Impl : ( ( rule__EnumerationCS__Alternatives_5 ) ) ;
+    // InternalOCLinEcore.g:9548:1: rule__EnumerationCS__Group__5__Impl : ( ( rule__EnumerationCS__Alternatives_5 ) ) ;
     public final void rule__EnumerationCS__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9540:1: ( ( ( rule__EnumerationCS__Alternatives_5 ) ) )
-            // InternalOCLinEcore.g:9541:1: ( ( rule__EnumerationCS__Alternatives_5 ) )
+            // InternalOCLinEcore.g:9552:1: ( ( ( rule__EnumerationCS__Alternatives_5 ) ) )
+            // InternalOCLinEcore.g:9553:1: ( ( rule__EnumerationCS__Alternatives_5 ) )
             {
-            // InternalOCLinEcore.g:9541:1: ( ( rule__EnumerationCS__Alternatives_5 ) )
-            // InternalOCLinEcore.g:9542:1: ( rule__EnumerationCS__Alternatives_5 )
+            // InternalOCLinEcore.g:9553:1: ( ( rule__EnumerationCS__Alternatives_5 ) )
+            // InternalOCLinEcore.g:9554:1: ( rule__EnumerationCS__Alternatives_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getAlternatives_5()); 
             }
-            // InternalOCLinEcore.g:9543:1: ( rule__EnumerationCS__Alternatives_5 )
-            // InternalOCLinEcore.g:9543:2: rule__EnumerationCS__Alternatives_5
+            // InternalOCLinEcore.g:9555:1: ( rule__EnumerationCS__Alternatives_5 )
+            // InternalOCLinEcore.g:9555:2: rule__EnumerationCS__Alternatives_5
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationCS__Alternatives_5();
@@ -30912,14 +30980,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_3__0"
-    // InternalOCLinEcore.g:9565:1: rule__EnumerationCS__Group_3__0 : rule__EnumerationCS__Group_3__0__Impl rule__EnumerationCS__Group_3__1 ;
+    // InternalOCLinEcore.g:9577:1: rule__EnumerationCS__Group_3__0 : rule__EnumerationCS__Group_3__0__Impl rule__EnumerationCS__Group_3__1 ;
     public final void rule__EnumerationCS__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9569:1: ( rule__EnumerationCS__Group_3__0__Impl rule__EnumerationCS__Group_3__1 )
-            // InternalOCLinEcore.g:9570:2: rule__EnumerationCS__Group_3__0__Impl rule__EnumerationCS__Group_3__1
+            // InternalOCLinEcore.g:9581:1: ( rule__EnumerationCS__Group_3__0__Impl rule__EnumerationCS__Group_3__1 )
+            // InternalOCLinEcore.g:9582:2: rule__EnumerationCS__Group_3__0__Impl rule__EnumerationCS__Group_3__1
             {
             pushFollow(FollowSets000.FOLLOW_29);
             rule__EnumerationCS__Group_3__0__Impl();
@@ -30950,17 +31018,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_3__0__Impl"
-    // InternalOCLinEcore.g:9577:1: rule__EnumerationCS__Group_3__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:9589:1: rule__EnumerationCS__Group_3__0__Impl : ( ':' ) ;
     public final void rule__EnumerationCS__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9581:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:9582:1: ( ':' )
+            // InternalOCLinEcore.g:9593:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:9594:1: ( ':' )
             {
-            // InternalOCLinEcore.g:9582:1: ( ':' )
-            // InternalOCLinEcore.g:9583:1: ':'
+            // InternalOCLinEcore.g:9594:1: ( ':' )
+            // InternalOCLinEcore.g:9595:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getColonKeyword_3_0()); 
@@ -30991,14 +31059,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_3__1"
-    // InternalOCLinEcore.g:9596:1: rule__EnumerationCS__Group_3__1 : rule__EnumerationCS__Group_3__1__Impl ;
+    // InternalOCLinEcore.g:9608:1: rule__EnumerationCS__Group_3__1 : rule__EnumerationCS__Group_3__1__Impl ;
     public final void rule__EnumerationCS__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9600:1: ( rule__EnumerationCS__Group_3__1__Impl )
-            // InternalOCLinEcore.g:9601:2: rule__EnumerationCS__Group_3__1__Impl
+            // InternalOCLinEcore.g:9612:1: ( rule__EnumerationCS__Group_3__1__Impl )
+            // InternalOCLinEcore.g:9613:2: rule__EnumerationCS__Group_3__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationCS__Group_3__1__Impl();
@@ -31024,23 +31092,23 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_3__1__Impl"
-    // InternalOCLinEcore.g:9607:1: rule__EnumerationCS__Group_3__1__Impl : ( ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 ) ) ;
+    // InternalOCLinEcore.g:9619:1: rule__EnumerationCS__Group_3__1__Impl : ( ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 ) ) ;
     public final void rule__EnumerationCS__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9611:1: ( ( ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 ) ) )
-            // InternalOCLinEcore.g:9612:1: ( ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 ) )
+            // InternalOCLinEcore.g:9623:1: ( ( ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 ) ) )
+            // InternalOCLinEcore.g:9624:1: ( ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 ) )
             {
-            // InternalOCLinEcore.g:9612:1: ( ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 ) )
-            // InternalOCLinEcore.g:9613:1: ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 )
+            // InternalOCLinEcore.g:9624:1: ( ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 ) )
+            // InternalOCLinEcore.g:9625:1: ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getInstanceClassNameAssignment_3_1()); 
             }
-            // InternalOCLinEcore.g:9614:1: ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 )
-            // InternalOCLinEcore.g:9614:2: rule__EnumerationCS__InstanceClassNameAssignment_3_1
+            // InternalOCLinEcore.g:9626:1: ( rule__EnumerationCS__InstanceClassNameAssignment_3_1 )
+            // InternalOCLinEcore.g:9626:2: rule__EnumerationCS__InstanceClassNameAssignment_3_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationCS__InstanceClassNameAssignment_3_1();
@@ -31075,14 +31143,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_4__0"
-    // InternalOCLinEcore.g:9628:1: rule__EnumerationCS__Group_4__0 : rule__EnumerationCS__Group_4__0__Impl rule__EnumerationCS__Group_4__1 ;
+    // InternalOCLinEcore.g:9640:1: rule__EnumerationCS__Group_4__0 : rule__EnumerationCS__Group_4__0__Impl rule__EnumerationCS__Group_4__1 ;
     public final void rule__EnumerationCS__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9632:1: ( rule__EnumerationCS__Group_4__0__Impl rule__EnumerationCS__Group_4__1 )
-            // InternalOCLinEcore.g:9633:2: rule__EnumerationCS__Group_4__0__Impl rule__EnumerationCS__Group_4__1
+            // InternalOCLinEcore.g:9644:1: ( rule__EnumerationCS__Group_4__0__Impl rule__EnumerationCS__Group_4__1 )
+            // InternalOCLinEcore.g:9645:2: rule__EnumerationCS__Group_4__0__Impl rule__EnumerationCS__Group_4__1
             {
             pushFollow(FollowSets000.FOLLOW_37);
             rule__EnumerationCS__Group_4__0__Impl();
@@ -31113,17 +31181,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_4__0__Impl"
-    // InternalOCLinEcore.g:9640:1: rule__EnumerationCS__Group_4__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:9652:1: rule__EnumerationCS__Group_4__0__Impl : ( '{' ) ;
     public final void rule__EnumerationCS__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9644:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:9645:1: ( '{' )
+            // InternalOCLinEcore.g:9656:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:9657:1: ( '{' )
             {
-            // InternalOCLinEcore.g:9645:1: ( '{' )
-            // InternalOCLinEcore.g:9646:1: '{'
+            // InternalOCLinEcore.g:9657:1: ( '{' )
+            // InternalOCLinEcore.g:9658:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getLeftCurlyBracketKeyword_4_0()); 
@@ -31154,14 +31222,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_4__1"
-    // InternalOCLinEcore.g:9659:1: rule__EnumerationCS__Group_4__1 : rule__EnumerationCS__Group_4__1__Impl rule__EnumerationCS__Group_4__2 ;
+    // InternalOCLinEcore.g:9671:1: rule__EnumerationCS__Group_4__1 : rule__EnumerationCS__Group_4__1__Impl rule__EnumerationCS__Group_4__2 ;
     public final void rule__EnumerationCS__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9663:1: ( rule__EnumerationCS__Group_4__1__Impl rule__EnumerationCS__Group_4__2 )
-            // InternalOCLinEcore.g:9664:2: rule__EnumerationCS__Group_4__1__Impl rule__EnumerationCS__Group_4__2
+            // InternalOCLinEcore.g:9675:1: ( rule__EnumerationCS__Group_4__1__Impl rule__EnumerationCS__Group_4__2 )
+            // InternalOCLinEcore.g:9676:2: rule__EnumerationCS__Group_4__1__Impl rule__EnumerationCS__Group_4__2
             {
             pushFollow(FollowSets000.FOLLOW_37);
             rule__EnumerationCS__Group_4__1__Impl();
@@ -31192,22 +31260,22 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_4__1__Impl"
-    // InternalOCLinEcore.g:9671:1: rule__EnumerationCS__Group_4__1__Impl : ( ( rule__EnumerationCS__Alternatives_4_1 )? ) ;
+    // InternalOCLinEcore.g:9683:1: rule__EnumerationCS__Group_4__1__Impl : ( ( rule__EnumerationCS__Alternatives_4_1 )? ) ;
     public final void rule__EnumerationCS__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9675:1: ( ( ( rule__EnumerationCS__Alternatives_4_1 )? ) )
-            // InternalOCLinEcore.g:9676:1: ( ( rule__EnumerationCS__Alternatives_4_1 )? )
+            // InternalOCLinEcore.g:9687:1: ( ( ( rule__EnumerationCS__Alternatives_4_1 )? ) )
+            // InternalOCLinEcore.g:9688:1: ( ( rule__EnumerationCS__Alternatives_4_1 )? )
             {
-            // InternalOCLinEcore.g:9676:1: ( ( rule__EnumerationCS__Alternatives_4_1 )? )
-            // InternalOCLinEcore.g:9677:1: ( rule__EnumerationCS__Alternatives_4_1 )?
+            // InternalOCLinEcore.g:9688:1: ( ( rule__EnumerationCS__Alternatives_4_1 )? )
+            // InternalOCLinEcore.g:9689:1: ( rule__EnumerationCS__Alternatives_4_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getAlternatives_4_1()); 
             }
-            // InternalOCLinEcore.g:9678:1: ( rule__EnumerationCS__Alternatives_4_1 )?
+            // InternalOCLinEcore.g:9690:1: ( rule__EnumerationCS__Alternatives_4_1 )?
             int alt119=2;
             int LA119_0 = input.LA(1);
 
@@ -31216,7 +31284,7 @@
             }
             switch (alt119) {
                 case 1 :
-                    // InternalOCLinEcore.g:9678:2: rule__EnumerationCS__Alternatives_4_1
+                    // InternalOCLinEcore.g:9690:2: rule__EnumerationCS__Alternatives_4_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__EnumerationCS__Alternatives_4_1();
@@ -31254,14 +31322,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_4__2"
-    // InternalOCLinEcore.g:9688:1: rule__EnumerationCS__Group_4__2 : rule__EnumerationCS__Group_4__2__Impl ;
+    // InternalOCLinEcore.g:9700:1: rule__EnumerationCS__Group_4__2 : rule__EnumerationCS__Group_4__2__Impl ;
     public final void rule__EnumerationCS__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9692:1: ( rule__EnumerationCS__Group_4__2__Impl )
-            // InternalOCLinEcore.g:9693:2: rule__EnumerationCS__Group_4__2__Impl
+            // InternalOCLinEcore.g:9704:1: ( rule__EnumerationCS__Group_4__2__Impl )
+            // InternalOCLinEcore.g:9705:2: rule__EnumerationCS__Group_4__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationCS__Group_4__2__Impl();
@@ -31287,17 +31355,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_4__2__Impl"
-    // InternalOCLinEcore.g:9699:1: rule__EnumerationCS__Group_4__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:9711:1: rule__EnumerationCS__Group_4__2__Impl : ( '}' ) ;
     public final void rule__EnumerationCS__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9703:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:9704:1: ( '}' )
+            // InternalOCLinEcore.g:9715:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:9716:1: ( '}' )
             {
-            // InternalOCLinEcore.g:9704:1: ( '}' )
-            // InternalOCLinEcore.g:9705:1: '}'
+            // InternalOCLinEcore.g:9716:1: ( '}' )
+            // InternalOCLinEcore.g:9717:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getRightCurlyBracketKeyword_4_2()); 
@@ -31328,14 +31396,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_5_0__0"
-    // InternalOCLinEcore.g:9724:1: rule__EnumerationCS__Group_5_0__0 : rule__EnumerationCS__Group_5_0__0__Impl rule__EnumerationCS__Group_5_0__1 ;
+    // InternalOCLinEcore.g:9736:1: rule__EnumerationCS__Group_5_0__0 : rule__EnumerationCS__Group_5_0__0__Impl rule__EnumerationCS__Group_5_0__1 ;
     public final void rule__EnumerationCS__Group_5_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9728:1: ( rule__EnumerationCS__Group_5_0__0__Impl rule__EnumerationCS__Group_5_0__1 )
-            // InternalOCLinEcore.g:9729:2: rule__EnumerationCS__Group_5_0__0__Impl rule__EnumerationCS__Group_5_0__1
+            // InternalOCLinEcore.g:9740:1: ( rule__EnumerationCS__Group_5_0__0__Impl rule__EnumerationCS__Group_5_0__1 )
+            // InternalOCLinEcore.g:9741:2: rule__EnumerationCS__Group_5_0__0__Impl rule__EnumerationCS__Group_5_0__1
             {
             pushFollow(FollowSets000.FOLLOW_45);
             rule__EnumerationCS__Group_5_0__0__Impl();
@@ -31366,17 +31434,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_5_0__0__Impl"
-    // InternalOCLinEcore.g:9736:1: rule__EnumerationCS__Group_5_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:9748:1: rule__EnumerationCS__Group_5_0__0__Impl : ( '{' ) ;
     public final void rule__EnumerationCS__Group_5_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9740:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:9741:1: ( '{' )
+            // InternalOCLinEcore.g:9752:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:9753:1: ( '{' )
             {
-            // InternalOCLinEcore.g:9741:1: ( '{' )
-            // InternalOCLinEcore.g:9742:1: '{'
+            // InternalOCLinEcore.g:9753:1: ( '{' )
+            // InternalOCLinEcore.g:9754:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getLeftCurlyBracketKeyword_5_0_0()); 
@@ -31407,14 +31475,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_5_0__1"
-    // InternalOCLinEcore.g:9755:1: rule__EnumerationCS__Group_5_0__1 : rule__EnumerationCS__Group_5_0__1__Impl rule__EnumerationCS__Group_5_0__2 ;
+    // InternalOCLinEcore.g:9767:1: rule__EnumerationCS__Group_5_0__1 : rule__EnumerationCS__Group_5_0__1__Impl rule__EnumerationCS__Group_5_0__2 ;
     public final void rule__EnumerationCS__Group_5_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9759:1: ( rule__EnumerationCS__Group_5_0__1__Impl rule__EnumerationCS__Group_5_0__2 )
-            // InternalOCLinEcore.g:9760:2: rule__EnumerationCS__Group_5_0__1__Impl rule__EnumerationCS__Group_5_0__2
+            // InternalOCLinEcore.g:9771:1: ( rule__EnumerationCS__Group_5_0__1__Impl rule__EnumerationCS__Group_5_0__2 )
+            // InternalOCLinEcore.g:9772:2: rule__EnumerationCS__Group_5_0__1__Impl rule__EnumerationCS__Group_5_0__2
             {
             pushFollow(FollowSets000.FOLLOW_45);
             rule__EnumerationCS__Group_5_0__1__Impl();
@@ -31445,22 +31513,22 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_5_0__1__Impl"
-    // InternalOCLinEcore.g:9767:1: rule__EnumerationCS__Group_5_0__1__Impl : ( ( rule__EnumerationCS__Alternatives_5_0_1 )* ) ;
+    // InternalOCLinEcore.g:9779:1: rule__EnumerationCS__Group_5_0__1__Impl : ( ( rule__EnumerationCS__Alternatives_5_0_1 )* ) ;
     public final void rule__EnumerationCS__Group_5_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9771:1: ( ( ( rule__EnumerationCS__Alternatives_5_0_1 )* ) )
-            // InternalOCLinEcore.g:9772:1: ( ( rule__EnumerationCS__Alternatives_5_0_1 )* )
+            // InternalOCLinEcore.g:9783:1: ( ( ( rule__EnumerationCS__Alternatives_5_0_1 )* ) )
+            // InternalOCLinEcore.g:9784:1: ( ( rule__EnumerationCS__Alternatives_5_0_1 )* )
             {
-            // InternalOCLinEcore.g:9772:1: ( ( rule__EnumerationCS__Alternatives_5_0_1 )* )
-            // InternalOCLinEcore.g:9773:1: ( rule__EnumerationCS__Alternatives_5_0_1 )*
+            // InternalOCLinEcore.g:9784:1: ( ( rule__EnumerationCS__Alternatives_5_0_1 )* )
+            // InternalOCLinEcore.g:9785:1: ( rule__EnumerationCS__Alternatives_5_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getAlternatives_5_0_1()); 
             }
-            // InternalOCLinEcore.g:9774:1: ( rule__EnumerationCS__Alternatives_5_0_1 )*
+            // InternalOCLinEcore.g:9786:1: ( rule__EnumerationCS__Alternatives_5_0_1 )*
             loop120:
             do {
                 int alt120=2;
@@ -31473,7 +31541,7 @@
 
                 switch (alt120) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9774:2: rule__EnumerationCS__Alternatives_5_0_1
+            	    // InternalOCLinEcore.g:9786:2: rule__EnumerationCS__Alternatives_5_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_46);
             	    rule__EnumerationCS__Alternatives_5_0_1();
@@ -31514,14 +31582,14 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_5_0__2"
-    // InternalOCLinEcore.g:9784:1: rule__EnumerationCS__Group_5_0__2 : rule__EnumerationCS__Group_5_0__2__Impl ;
+    // InternalOCLinEcore.g:9796:1: rule__EnumerationCS__Group_5_0__2 : rule__EnumerationCS__Group_5_0__2__Impl ;
     public final void rule__EnumerationCS__Group_5_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9788:1: ( rule__EnumerationCS__Group_5_0__2__Impl )
-            // InternalOCLinEcore.g:9789:2: rule__EnumerationCS__Group_5_0__2__Impl
+            // InternalOCLinEcore.g:9800:1: ( rule__EnumerationCS__Group_5_0__2__Impl )
+            // InternalOCLinEcore.g:9801:2: rule__EnumerationCS__Group_5_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationCS__Group_5_0__2__Impl();
@@ -31547,17 +31615,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Group_5_0__2__Impl"
-    // InternalOCLinEcore.g:9795:1: rule__EnumerationCS__Group_5_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:9807:1: rule__EnumerationCS__Group_5_0__2__Impl : ( '}' ) ;
     public final void rule__EnumerationCS__Group_5_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9799:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:9800:1: ( '}' )
+            // InternalOCLinEcore.g:9811:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:9812:1: ( '}' )
             {
-            // InternalOCLinEcore.g:9800:1: ( '}' )
-            // InternalOCLinEcore.g:9801:1: '}'
+            // InternalOCLinEcore.g:9812:1: ( '}' )
+            // InternalOCLinEcore.g:9813:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getRightCurlyBracketKeyword_5_0_2()); 
@@ -31588,14 +31656,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group__0"
-    // InternalOCLinEcore.g:9820:1: rule__EnumerationLiteralCS__Group__0 : rule__EnumerationLiteralCS__Group__0__Impl rule__EnumerationLiteralCS__Group__1 ;
+    // InternalOCLinEcore.g:9832:1: rule__EnumerationLiteralCS__Group__0 : rule__EnumerationLiteralCS__Group__0__Impl rule__EnumerationLiteralCS__Group__1 ;
     public final void rule__EnumerationLiteralCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9824:1: ( rule__EnumerationLiteralCS__Group__0__Impl rule__EnumerationLiteralCS__Group__1 )
-            // InternalOCLinEcore.g:9825:2: rule__EnumerationLiteralCS__Group__0__Impl rule__EnumerationLiteralCS__Group__1
+            // InternalOCLinEcore.g:9836:1: ( rule__EnumerationLiteralCS__Group__0__Impl rule__EnumerationLiteralCS__Group__1 )
+            // InternalOCLinEcore.g:9837:2: rule__EnumerationLiteralCS__Group__0__Impl rule__EnumerationLiteralCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_47);
             rule__EnumerationLiteralCS__Group__0__Impl();
@@ -31626,23 +31694,23 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group__0__Impl"
-    // InternalOCLinEcore.g:9832:1: rule__EnumerationLiteralCS__Group__0__Impl : ( ( rule__EnumerationLiteralCS__Alternatives_0 ) ) ;
+    // InternalOCLinEcore.g:9844:1: rule__EnumerationLiteralCS__Group__0__Impl : ( ( rule__EnumerationLiteralCS__Alternatives_0 ) ) ;
     public final void rule__EnumerationLiteralCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9836:1: ( ( ( rule__EnumerationLiteralCS__Alternatives_0 ) ) )
-            // InternalOCLinEcore.g:9837:1: ( ( rule__EnumerationLiteralCS__Alternatives_0 ) )
+            // InternalOCLinEcore.g:9848:1: ( ( ( rule__EnumerationLiteralCS__Alternatives_0 ) ) )
+            // InternalOCLinEcore.g:9849:1: ( ( rule__EnumerationLiteralCS__Alternatives_0 ) )
             {
-            // InternalOCLinEcore.g:9837:1: ( ( rule__EnumerationLiteralCS__Alternatives_0 ) )
-            // InternalOCLinEcore.g:9838:1: ( rule__EnumerationLiteralCS__Alternatives_0 )
+            // InternalOCLinEcore.g:9849:1: ( ( rule__EnumerationLiteralCS__Alternatives_0 ) )
+            // InternalOCLinEcore.g:9850:1: ( rule__EnumerationLiteralCS__Alternatives_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getAlternatives_0()); 
             }
-            // InternalOCLinEcore.g:9839:1: ( rule__EnumerationLiteralCS__Alternatives_0 )
-            // InternalOCLinEcore.g:9839:2: rule__EnumerationLiteralCS__Alternatives_0
+            // InternalOCLinEcore.g:9851:1: ( rule__EnumerationLiteralCS__Alternatives_0 )
+            // InternalOCLinEcore.g:9851:2: rule__EnumerationLiteralCS__Alternatives_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationLiteralCS__Alternatives_0();
@@ -31677,14 +31745,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group__1"
-    // InternalOCLinEcore.g:9849:1: rule__EnumerationLiteralCS__Group__1 : rule__EnumerationLiteralCS__Group__1__Impl rule__EnumerationLiteralCS__Group__2 ;
+    // InternalOCLinEcore.g:9861:1: rule__EnumerationLiteralCS__Group__1 : rule__EnumerationLiteralCS__Group__1__Impl rule__EnumerationLiteralCS__Group__2 ;
     public final void rule__EnumerationLiteralCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9853:1: ( rule__EnumerationLiteralCS__Group__1__Impl rule__EnumerationLiteralCS__Group__2 )
-            // InternalOCLinEcore.g:9854:2: rule__EnumerationLiteralCS__Group__1__Impl rule__EnumerationLiteralCS__Group__2
+            // InternalOCLinEcore.g:9865:1: ( rule__EnumerationLiteralCS__Group__1__Impl rule__EnumerationLiteralCS__Group__2 )
+            // InternalOCLinEcore.g:9866:2: rule__EnumerationLiteralCS__Group__1__Impl rule__EnumerationLiteralCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_47);
             rule__EnumerationLiteralCS__Group__1__Impl();
@@ -31715,22 +31783,22 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group__1__Impl"
-    // InternalOCLinEcore.g:9861:1: rule__EnumerationLiteralCS__Group__1__Impl : ( ( rule__EnumerationLiteralCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:9873:1: rule__EnumerationLiteralCS__Group__1__Impl : ( ( rule__EnumerationLiteralCS__Group_1__0 )? ) ;
     public final void rule__EnumerationLiteralCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9865:1: ( ( ( rule__EnumerationLiteralCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:9866:1: ( ( rule__EnumerationLiteralCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:9877:1: ( ( ( rule__EnumerationLiteralCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:9878:1: ( ( rule__EnumerationLiteralCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:9866:1: ( ( rule__EnumerationLiteralCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:9867:1: ( rule__EnumerationLiteralCS__Group_1__0 )?
+            // InternalOCLinEcore.g:9878:1: ( ( rule__EnumerationLiteralCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:9879:1: ( rule__EnumerationLiteralCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:9868:1: ( rule__EnumerationLiteralCS__Group_1__0 )?
+            // InternalOCLinEcore.g:9880:1: ( rule__EnumerationLiteralCS__Group_1__0 )?
             int alt121=2;
             int LA121_0 = input.LA(1);
 
@@ -31739,7 +31807,7 @@
             }
             switch (alt121) {
                 case 1 :
-                    // InternalOCLinEcore.g:9868:2: rule__EnumerationLiteralCS__Group_1__0
+                    // InternalOCLinEcore.g:9880:2: rule__EnumerationLiteralCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__EnumerationLiteralCS__Group_1__0();
@@ -31777,14 +31845,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group__2"
-    // InternalOCLinEcore.g:9878:1: rule__EnumerationLiteralCS__Group__2 : rule__EnumerationLiteralCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:9890:1: rule__EnumerationLiteralCS__Group__2 : rule__EnumerationLiteralCS__Group__2__Impl ;
     public final void rule__EnumerationLiteralCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9882:1: ( rule__EnumerationLiteralCS__Group__2__Impl )
-            // InternalOCLinEcore.g:9883:2: rule__EnumerationLiteralCS__Group__2__Impl
+            // InternalOCLinEcore.g:9894:1: ( rule__EnumerationLiteralCS__Group__2__Impl )
+            // InternalOCLinEcore.g:9895:2: rule__EnumerationLiteralCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationLiteralCS__Group__2__Impl();
@@ -31810,23 +31878,23 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group__2__Impl"
-    // InternalOCLinEcore.g:9889:1: rule__EnumerationLiteralCS__Group__2__Impl : ( ( rule__EnumerationLiteralCS__Alternatives_2 ) ) ;
+    // InternalOCLinEcore.g:9901:1: rule__EnumerationLiteralCS__Group__2__Impl : ( ( rule__EnumerationLiteralCS__Alternatives_2 ) ) ;
     public final void rule__EnumerationLiteralCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9893:1: ( ( ( rule__EnumerationLiteralCS__Alternatives_2 ) ) )
-            // InternalOCLinEcore.g:9894:1: ( ( rule__EnumerationLiteralCS__Alternatives_2 ) )
+            // InternalOCLinEcore.g:9905:1: ( ( ( rule__EnumerationLiteralCS__Alternatives_2 ) ) )
+            // InternalOCLinEcore.g:9906:1: ( ( rule__EnumerationLiteralCS__Alternatives_2 ) )
             {
-            // InternalOCLinEcore.g:9894:1: ( ( rule__EnumerationLiteralCS__Alternatives_2 ) )
-            // InternalOCLinEcore.g:9895:1: ( rule__EnumerationLiteralCS__Alternatives_2 )
+            // InternalOCLinEcore.g:9906:1: ( ( rule__EnumerationLiteralCS__Alternatives_2 ) )
+            // InternalOCLinEcore.g:9907:1: ( rule__EnumerationLiteralCS__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getAlternatives_2()); 
             }
-            // InternalOCLinEcore.g:9896:1: ( rule__EnumerationLiteralCS__Alternatives_2 )
-            // InternalOCLinEcore.g:9896:2: rule__EnumerationLiteralCS__Alternatives_2
+            // InternalOCLinEcore.g:9908:1: ( rule__EnumerationLiteralCS__Alternatives_2 )
+            // InternalOCLinEcore.g:9908:2: rule__EnumerationLiteralCS__Alternatives_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationLiteralCS__Alternatives_2();
@@ -31861,14 +31929,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_0_0__0"
-    // InternalOCLinEcore.g:9912:1: rule__EnumerationLiteralCS__Group_0_0__0 : rule__EnumerationLiteralCS__Group_0_0__0__Impl rule__EnumerationLiteralCS__Group_0_0__1 ;
+    // InternalOCLinEcore.g:9924:1: rule__EnumerationLiteralCS__Group_0_0__0 : rule__EnumerationLiteralCS__Group_0_0__0__Impl rule__EnumerationLiteralCS__Group_0_0__1 ;
     public final void rule__EnumerationLiteralCS__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9916:1: ( rule__EnumerationLiteralCS__Group_0_0__0__Impl rule__EnumerationLiteralCS__Group_0_0__1 )
-            // InternalOCLinEcore.g:9917:2: rule__EnumerationLiteralCS__Group_0_0__0__Impl rule__EnumerationLiteralCS__Group_0_0__1
+            // InternalOCLinEcore.g:9928:1: ( rule__EnumerationLiteralCS__Group_0_0__0__Impl rule__EnumerationLiteralCS__Group_0_0__1 )
+            // InternalOCLinEcore.g:9929:2: rule__EnumerationLiteralCS__Group_0_0__0__Impl rule__EnumerationLiteralCS__Group_0_0__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__EnumerationLiteralCS__Group_0_0__0__Impl();
@@ -31899,17 +31967,17 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_0_0__0__Impl"
-    // InternalOCLinEcore.g:9924:1: rule__EnumerationLiteralCS__Group_0_0__0__Impl : ( 'literal' ) ;
+    // InternalOCLinEcore.g:9936:1: rule__EnumerationLiteralCS__Group_0_0__0__Impl : ( 'literal' ) ;
     public final void rule__EnumerationLiteralCS__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9928:1: ( ( 'literal' ) )
-            // InternalOCLinEcore.g:9929:1: ( 'literal' )
+            // InternalOCLinEcore.g:9940:1: ( ( 'literal' ) )
+            // InternalOCLinEcore.g:9941:1: ( 'literal' )
             {
-            // InternalOCLinEcore.g:9929:1: ( 'literal' )
-            // InternalOCLinEcore.g:9930:1: 'literal'
+            // InternalOCLinEcore.g:9941:1: ( 'literal' )
+            // InternalOCLinEcore.g:9942:1: 'literal'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getLiteralKeyword_0_0_0()); 
@@ -31940,14 +32008,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_0_0__1"
-    // InternalOCLinEcore.g:9943:1: rule__EnumerationLiteralCS__Group_0_0__1 : rule__EnumerationLiteralCS__Group_0_0__1__Impl ;
+    // InternalOCLinEcore.g:9955:1: rule__EnumerationLiteralCS__Group_0_0__1 : rule__EnumerationLiteralCS__Group_0_0__1__Impl ;
     public final void rule__EnumerationLiteralCS__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9947:1: ( rule__EnumerationLiteralCS__Group_0_0__1__Impl )
-            // InternalOCLinEcore.g:9948:2: rule__EnumerationLiteralCS__Group_0_0__1__Impl
+            // InternalOCLinEcore.g:9959:1: ( rule__EnumerationLiteralCS__Group_0_0__1__Impl )
+            // InternalOCLinEcore.g:9960:2: rule__EnumerationLiteralCS__Group_0_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationLiteralCS__Group_0_0__1__Impl();
@@ -31973,23 +32041,23 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_0_0__1__Impl"
-    // InternalOCLinEcore.g:9954:1: rule__EnumerationLiteralCS__Group_0_0__1__Impl : ( ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 ) ) ;
+    // InternalOCLinEcore.g:9966:1: rule__EnumerationLiteralCS__Group_0_0__1__Impl : ( ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 ) ) ;
     public final void rule__EnumerationLiteralCS__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9958:1: ( ( ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 ) ) )
-            // InternalOCLinEcore.g:9959:1: ( ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 ) )
+            // InternalOCLinEcore.g:9970:1: ( ( ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 ) ) )
+            // InternalOCLinEcore.g:9971:1: ( ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 ) )
             {
-            // InternalOCLinEcore.g:9959:1: ( ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 ) )
-            // InternalOCLinEcore.g:9960:1: ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 )
+            // InternalOCLinEcore.g:9971:1: ( ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 ) )
+            // InternalOCLinEcore.g:9972:1: ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getNameAssignment_0_0_1()); 
             }
-            // InternalOCLinEcore.g:9961:1: ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 )
-            // InternalOCLinEcore.g:9961:2: rule__EnumerationLiteralCS__NameAssignment_0_0_1
+            // InternalOCLinEcore.g:9973:1: ( rule__EnumerationLiteralCS__NameAssignment_0_0_1 )
+            // InternalOCLinEcore.g:9973:2: rule__EnumerationLiteralCS__NameAssignment_0_0_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationLiteralCS__NameAssignment_0_0_1();
@@ -32024,14 +32092,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_1__0"
-    // InternalOCLinEcore.g:9975:1: rule__EnumerationLiteralCS__Group_1__0 : rule__EnumerationLiteralCS__Group_1__0__Impl rule__EnumerationLiteralCS__Group_1__1 ;
+    // InternalOCLinEcore.g:9987:1: rule__EnumerationLiteralCS__Group_1__0 : rule__EnumerationLiteralCS__Group_1__0__Impl rule__EnumerationLiteralCS__Group_1__1 ;
     public final void rule__EnumerationLiteralCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9979:1: ( rule__EnumerationLiteralCS__Group_1__0__Impl rule__EnumerationLiteralCS__Group_1__1 )
-            // InternalOCLinEcore.g:9980:2: rule__EnumerationLiteralCS__Group_1__0__Impl rule__EnumerationLiteralCS__Group_1__1
+            // InternalOCLinEcore.g:9991:1: ( rule__EnumerationLiteralCS__Group_1__0__Impl rule__EnumerationLiteralCS__Group_1__1 )
+            // InternalOCLinEcore.g:9992:2: rule__EnumerationLiteralCS__Group_1__0__Impl rule__EnumerationLiteralCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_48);
             rule__EnumerationLiteralCS__Group_1__0__Impl();
@@ -32062,17 +32130,17 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:9987:1: rule__EnumerationLiteralCS__Group_1__0__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:9999:1: rule__EnumerationLiteralCS__Group_1__0__Impl : ( '=' ) ;
     public final void rule__EnumerationLiteralCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:9991:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:9992:1: ( '=' )
+            // InternalOCLinEcore.g:10003:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:10004:1: ( '=' )
             {
-            // InternalOCLinEcore.g:9992:1: ( '=' )
-            // InternalOCLinEcore.g:9993:1: '='
+            // InternalOCLinEcore.g:10004:1: ( '=' )
+            // InternalOCLinEcore.g:10005:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getEqualsSignKeyword_1_0()); 
@@ -32103,14 +32171,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_1__1"
-    // InternalOCLinEcore.g:10006:1: rule__EnumerationLiteralCS__Group_1__1 : rule__EnumerationLiteralCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:10018:1: rule__EnumerationLiteralCS__Group_1__1 : rule__EnumerationLiteralCS__Group_1__1__Impl ;
     public final void rule__EnumerationLiteralCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10010:1: ( rule__EnumerationLiteralCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:10011:2: rule__EnumerationLiteralCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:10022:1: ( rule__EnumerationLiteralCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:10023:2: rule__EnumerationLiteralCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationLiteralCS__Group_1__1__Impl();
@@ -32136,23 +32204,23 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:10017:1: rule__EnumerationLiteralCS__Group_1__1__Impl : ( ( rule__EnumerationLiteralCS__ValueAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:10029:1: rule__EnumerationLiteralCS__Group_1__1__Impl : ( ( rule__EnumerationLiteralCS__ValueAssignment_1_1 ) ) ;
     public final void rule__EnumerationLiteralCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10021:1: ( ( ( rule__EnumerationLiteralCS__ValueAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:10022:1: ( ( rule__EnumerationLiteralCS__ValueAssignment_1_1 ) )
+            // InternalOCLinEcore.g:10033:1: ( ( ( rule__EnumerationLiteralCS__ValueAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:10034:1: ( ( rule__EnumerationLiteralCS__ValueAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:10022:1: ( ( rule__EnumerationLiteralCS__ValueAssignment_1_1 ) )
-            // InternalOCLinEcore.g:10023:1: ( rule__EnumerationLiteralCS__ValueAssignment_1_1 )
+            // InternalOCLinEcore.g:10034:1: ( ( rule__EnumerationLiteralCS__ValueAssignment_1_1 ) )
+            // InternalOCLinEcore.g:10035:1: ( rule__EnumerationLiteralCS__ValueAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getValueAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:10024:1: ( rule__EnumerationLiteralCS__ValueAssignment_1_1 )
-            // InternalOCLinEcore.g:10024:2: rule__EnumerationLiteralCS__ValueAssignment_1_1
+            // InternalOCLinEcore.g:10036:1: ( rule__EnumerationLiteralCS__ValueAssignment_1_1 )
+            // InternalOCLinEcore.g:10036:2: rule__EnumerationLiteralCS__ValueAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationLiteralCS__ValueAssignment_1_1();
@@ -32187,14 +32255,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_2_0__0"
-    // InternalOCLinEcore.g:10038:1: rule__EnumerationLiteralCS__Group_2_0__0 : rule__EnumerationLiteralCS__Group_2_0__0__Impl rule__EnumerationLiteralCS__Group_2_0__1 ;
+    // InternalOCLinEcore.g:10050:1: rule__EnumerationLiteralCS__Group_2_0__0 : rule__EnumerationLiteralCS__Group_2_0__0__Impl rule__EnumerationLiteralCS__Group_2_0__1 ;
     public final void rule__EnumerationLiteralCS__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10042:1: ( rule__EnumerationLiteralCS__Group_2_0__0__Impl rule__EnumerationLiteralCS__Group_2_0__1 )
-            // InternalOCLinEcore.g:10043:2: rule__EnumerationLiteralCS__Group_2_0__0__Impl rule__EnumerationLiteralCS__Group_2_0__1
+            // InternalOCLinEcore.g:10054:1: ( rule__EnumerationLiteralCS__Group_2_0__0__Impl rule__EnumerationLiteralCS__Group_2_0__1 )
+            // InternalOCLinEcore.g:10055:2: rule__EnumerationLiteralCS__Group_2_0__0__Impl rule__EnumerationLiteralCS__Group_2_0__1
             {
             pushFollow(FollowSets000.FOLLOW_49);
             rule__EnumerationLiteralCS__Group_2_0__0__Impl();
@@ -32225,17 +32293,17 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_2_0__0__Impl"
-    // InternalOCLinEcore.g:10050:1: rule__EnumerationLiteralCS__Group_2_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:10062:1: rule__EnumerationLiteralCS__Group_2_0__0__Impl : ( '{' ) ;
     public final void rule__EnumerationLiteralCS__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10054:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:10055:1: ( '{' )
+            // InternalOCLinEcore.g:10066:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:10067:1: ( '{' )
             {
-            // InternalOCLinEcore.g:10055:1: ( '{' )
-            // InternalOCLinEcore.g:10056:1: '{'
+            // InternalOCLinEcore.g:10067:1: ( '{' )
+            // InternalOCLinEcore.g:10068:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getLeftCurlyBracketKeyword_2_0_0()); 
@@ -32266,14 +32334,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_2_0__1"
-    // InternalOCLinEcore.g:10069:1: rule__EnumerationLiteralCS__Group_2_0__1 : rule__EnumerationLiteralCS__Group_2_0__1__Impl rule__EnumerationLiteralCS__Group_2_0__2 ;
+    // InternalOCLinEcore.g:10081:1: rule__EnumerationLiteralCS__Group_2_0__1 : rule__EnumerationLiteralCS__Group_2_0__1__Impl rule__EnumerationLiteralCS__Group_2_0__2 ;
     public final void rule__EnumerationLiteralCS__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10073:1: ( rule__EnumerationLiteralCS__Group_2_0__1__Impl rule__EnumerationLiteralCS__Group_2_0__2 )
-            // InternalOCLinEcore.g:10074:2: rule__EnumerationLiteralCS__Group_2_0__1__Impl rule__EnumerationLiteralCS__Group_2_0__2
+            // InternalOCLinEcore.g:10085:1: ( rule__EnumerationLiteralCS__Group_2_0__1__Impl rule__EnumerationLiteralCS__Group_2_0__2 )
+            // InternalOCLinEcore.g:10086:2: rule__EnumerationLiteralCS__Group_2_0__1__Impl rule__EnumerationLiteralCS__Group_2_0__2
             {
             pushFollow(FollowSets000.FOLLOW_49);
             rule__EnumerationLiteralCS__Group_2_0__1__Impl();
@@ -32304,22 +32372,22 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_2_0__1__Impl"
-    // InternalOCLinEcore.g:10081:1: rule__EnumerationLiteralCS__Group_2_0__1__Impl : ( ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )* ) ;
+    // InternalOCLinEcore.g:10093:1: rule__EnumerationLiteralCS__Group_2_0__1__Impl : ( ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )* ) ;
     public final void rule__EnumerationLiteralCS__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10085:1: ( ( ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )* ) )
-            // InternalOCLinEcore.g:10086:1: ( ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )* )
+            // InternalOCLinEcore.g:10097:1: ( ( ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )* ) )
+            // InternalOCLinEcore.g:10098:1: ( ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )* )
             {
-            // InternalOCLinEcore.g:10086:1: ( ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )* )
-            // InternalOCLinEcore.g:10087:1: ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )*
+            // InternalOCLinEcore.g:10098:1: ( ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )* )
+            // InternalOCLinEcore.g:10099:1: ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getOwnedAnnotationsAssignment_2_0_1()); 
             }
-            // InternalOCLinEcore.g:10088:1: ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )*
+            // InternalOCLinEcore.g:10100:1: ( rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 )*
             loop122:
             do {
                 int alt122=2;
@@ -32332,7 +32400,7 @@
 
                 switch (alt122) {
             	case 1 :
-            	    // InternalOCLinEcore.g:10088:2: rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1
+            	    // InternalOCLinEcore.g:10100:2: rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_50);
             	    rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1();
@@ -32373,14 +32441,14 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_2_0__2"
-    // InternalOCLinEcore.g:10098:1: rule__EnumerationLiteralCS__Group_2_0__2 : rule__EnumerationLiteralCS__Group_2_0__2__Impl ;
+    // InternalOCLinEcore.g:10110:1: rule__EnumerationLiteralCS__Group_2_0__2 : rule__EnumerationLiteralCS__Group_2_0__2__Impl ;
     public final void rule__EnumerationLiteralCS__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10102:1: ( rule__EnumerationLiteralCS__Group_2_0__2__Impl )
-            // InternalOCLinEcore.g:10103:2: rule__EnumerationLiteralCS__Group_2_0__2__Impl
+            // InternalOCLinEcore.g:10114:1: ( rule__EnumerationLiteralCS__Group_2_0__2__Impl )
+            // InternalOCLinEcore.g:10115:2: rule__EnumerationLiteralCS__Group_2_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__EnumerationLiteralCS__Group_2_0__2__Impl();
@@ -32406,17 +32474,17 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__Group_2_0__2__Impl"
-    // InternalOCLinEcore.g:10109:1: rule__EnumerationLiteralCS__Group_2_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:10121:1: rule__EnumerationLiteralCS__Group_2_0__2__Impl : ( '}' ) ;
     public final void rule__EnumerationLiteralCS__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10113:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:10114:1: ( '}' )
+            // InternalOCLinEcore.g:10125:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:10126:1: ( '}' )
             {
-            // InternalOCLinEcore.g:10114:1: ( '}' )
-            // InternalOCLinEcore.g:10115:1: '}'
+            // InternalOCLinEcore.g:10126:1: ( '}' )
+            // InternalOCLinEcore.g:10127:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getRightCurlyBracketKeyword_2_0_2()); 
@@ -32447,14 +32515,14 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__0"
-    // InternalOCLinEcore.g:10134:1: rule__ImportCS__Group__0 : rule__ImportCS__Group__0__Impl rule__ImportCS__Group__1 ;
+    // InternalOCLinEcore.g:10146:1: rule__ImportCS__Group__0 : rule__ImportCS__Group__0__Impl rule__ImportCS__Group__1 ;
     public final void rule__ImportCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10138:1: ( rule__ImportCS__Group__0__Impl rule__ImportCS__Group__1 )
-            // InternalOCLinEcore.g:10139:2: rule__ImportCS__Group__0__Impl rule__ImportCS__Group__1
+            // InternalOCLinEcore.g:10150:1: ( rule__ImportCS__Group__0__Impl rule__ImportCS__Group__1 )
+            // InternalOCLinEcore.g:10151:2: rule__ImportCS__Group__0__Impl rule__ImportCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__ImportCS__Group__0__Impl();
@@ -32485,23 +32553,23 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__0__Impl"
-    // InternalOCLinEcore.g:10146:1: rule__ImportCS__Group__0__Impl : ( ( rule__ImportCS__Alternatives_0 ) ) ;
+    // InternalOCLinEcore.g:10158:1: rule__ImportCS__Group__0__Impl : ( ( rule__ImportCS__Alternatives_0 ) ) ;
     public final void rule__ImportCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10150:1: ( ( ( rule__ImportCS__Alternatives_0 ) ) )
-            // InternalOCLinEcore.g:10151:1: ( ( rule__ImportCS__Alternatives_0 ) )
+            // InternalOCLinEcore.g:10162:1: ( ( ( rule__ImportCS__Alternatives_0 ) ) )
+            // InternalOCLinEcore.g:10163:1: ( ( rule__ImportCS__Alternatives_0 ) )
             {
-            // InternalOCLinEcore.g:10151:1: ( ( rule__ImportCS__Alternatives_0 ) )
-            // InternalOCLinEcore.g:10152:1: ( rule__ImportCS__Alternatives_0 )
+            // InternalOCLinEcore.g:10163:1: ( ( rule__ImportCS__Alternatives_0 ) )
+            // InternalOCLinEcore.g:10164:1: ( rule__ImportCS__Alternatives_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getAlternatives_0()); 
             }
-            // InternalOCLinEcore.g:10153:1: ( rule__ImportCS__Alternatives_0 )
-            // InternalOCLinEcore.g:10153:2: rule__ImportCS__Alternatives_0
+            // InternalOCLinEcore.g:10165:1: ( rule__ImportCS__Alternatives_0 )
+            // InternalOCLinEcore.g:10165:2: rule__ImportCS__Alternatives_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ImportCS__Alternatives_0();
@@ -32536,14 +32604,14 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__1"
-    // InternalOCLinEcore.g:10163:1: rule__ImportCS__Group__1 : rule__ImportCS__Group__1__Impl rule__ImportCS__Group__2 ;
+    // InternalOCLinEcore.g:10175:1: rule__ImportCS__Group__1 : rule__ImportCS__Group__1__Impl rule__ImportCS__Group__2 ;
     public final void rule__ImportCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10167:1: ( rule__ImportCS__Group__1__Impl rule__ImportCS__Group__2 )
-            // InternalOCLinEcore.g:10168:2: rule__ImportCS__Group__1__Impl rule__ImportCS__Group__2
+            // InternalOCLinEcore.g:10179:1: ( rule__ImportCS__Group__1__Impl rule__ImportCS__Group__2 )
+            // InternalOCLinEcore.g:10180:2: rule__ImportCS__Group__1__Impl rule__ImportCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__ImportCS__Group__1__Impl();
@@ -32574,27 +32642,27 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__1__Impl"
-    // InternalOCLinEcore.g:10175:1: rule__ImportCS__Group__1__Impl : ( ( rule__ImportCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:10187:1: rule__ImportCS__Group__1__Impl : ( ( rule__ImportCS__Group_1__0 )? ) ;
     public final void rule__ImportCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10179:1: ( ( ( rule__ImportCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:10180:1: ( ( rule__ImportCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:10191:1: ( ( ( rule__ImportCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:10192:1: ( ( rule__ImportCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:10180:1: ( ( rule__ImportCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:10181:1: ( rule__ImportCS__Group_1__0 )?
+            // InternalOCLinEcore.g:10192:1: ( ( rule__ImportCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:10193:1: ( rule__ImportCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:10182:1: ( rule__ImportCS__Group_1__0 )?
+            // InternalOCLinEcore.g:10194:1: ( rule__ImportCS__Group_1__0 )?
             int alt123=2;
             alt123 = dfa123.predict(input);
             switch (alt123) {
                 case 1 :
-                    // InternalOCLinEcore.g:10182:2: rule__ImportCS__Group_1__0
+                    // InternalOCLinEcore.g:10194:2: rule__ImportCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ImportCS__Group_1__0();
@@ -32632,14 +32700,14 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__2"
-    // InternalOCLinEcore.g:10192:1: rule__ImportCS__Group__2 : rule__ImportCS__Group__2__Impl rule__ImportCS__Group__3 ;
+    // InternalOCLinEcore.g:10204:1: rule__ImportCS__Group__2 : rule__ImportCS__Group__2__Impl rule__ImportCS__Group__3 ;
     public final void rule__ImportCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10196:1: ( rule__ImportCS__Group__2__Impl rule__ImportCS__Group__3 )
-            // InternalOCLinEcore.g:10197:2: rule__ImportCS__Group__2__Impl rule__ImportCS__Group__3
+            // InternalOCLinEcore.g:10208:1: ( rule__ImportCS__Group__2__Impl rule__ImportCS__Group__3 )
+            // InternalOCLinEcore.g:10209:2: rule__ImportCS__Group__2__Impl rule__ImportCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_51);
             rule__ImportCS__Group__2__Impl();
@@ -32670,23 +32738,23 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__2__Impl"
-    // InternalOCLinEcore.g:10204:1: rule__ImportCS__Group__2__Impl : ( ( rule__ImportCS__OwnedPathNameAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:10216:1: rule__ImportCS__Group__2__Impl : ( ( rule__ImportCS__OwnedPathNameAssignment_2 ) ) ;
     public final void rule__ImportCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10208:1: ( ( ( rule__ImportCS__OwnedPathNameAssignment_2 ) ) )
-            // InternalOCLinEcore.g:10209:1: ( ( rule__ImportCS__OwnedPathNameAssignment_2 ) )
+            // InternalOCLinEcore.g:10220:1: ( ( ( rule__ImportCS__OwnedPathNameAssignment_2 ) ) )
+            // InternalOCLinEcore.g:10221:1: ( ( rule__ImportCS__OwnedPathNameAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:10209:1: ( ( rule__ImportCS__OwnedPathNameAssignment_2 ) )
-            // InternalOCLinEcore.g:10210:1: ( rule__ImportCS__OwnedPathNameAssignment_2 )
+            // InternalOCLinEcore.g:10221:1: ( ( rule__ImportCS__OwnedPathNameAssignment_2 ) )
+            // InternalOCLinEcore.g:10222:1: ( rule__ImportCS__OwnedPathNameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getOwnedPathNameAssignment_2()); 
             }
-            // InternalOCLinEcore.g:10211:1: ( rule__ImportCS__OwnedPathNameAssignment_2 )
-            // InternalOCLinEcore.g:10211:2: rule__ImportCS__OwnedPathNameAssignment_2
+            // InternalOCLinEcore.g:10223:1: ( rule__ImportCS__OwnedPathNameAssignment_2 )
+            // InternalOCLinEcore.g:10223:2: rule__ImportCS__OwnedPathNameAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ImportCS__OwnedPathNameAssignment_2();
@@ -32721,14 +32789,14 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__3"
-    // InternalOCLinEcore.g:10221:1: rule__ImportCS__Group__3 : rule__ImportCS__Group__3__Impl rule__ImportCS__Group__4 ;
+    // InternalOCLinEcore.g:10233:1: rule__ImportCS__Group__3 : rule__ImportCS__Group__3__Impl rule__ImportCS__Group__4 ;
     public final void rule__ImportCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10225:1: ( rule__ImportCS__Group__3__Impl rule__ImportCS__Group__4 )
-            // InternalOCLinEcore.g:10226:2: rule__ImportCS__Group__3__Impl rule__ImportCS__Group__4
+            // InternalOCLinEcore.g:10237:1: ( rule__ImportCS__Group__3__Impl rule__ImportCS__Group__4 )
+            // InternalOCLinEcore.g:10238:2: rule__ImportCS__Group__3__Impl rule__ImportCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_51);
             rule__ImportCS__Group__3__Impl();
@@ -32759,22 +32827,22 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__3__Impl"
-    // InternalOCLinEcore.g:10233:1: rule__ImportCS__Group__3__Impl : ( ( rule__ImportCS__IsAllAssignment_3 )? ) ;
+    // InternalOCLinEcore.g:10245:1: rule__ImportCS__Group__3__Impl : ( ( rule__ImportCS__IsAllAssignment_3 )? ) ;
     public final void rule__ImportCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10237:1: ( ( ( rule__ImportCS__IsAllAssignment_3 )? ) )
-            // InternalOCLinEcore.g:10238:1: ( ( rule__ImportCS__IsAllAssignment_3 )? )
+            // InternalOCLinEcore.g:10249:1: ( ( ( rule__ImportCS__IsAllAssignment_3 )? ) )
+            // InternalOCLinEcore.g:10250:1: ( ( rule__ImportCS__IsAllAssignment_3 )? )
             {
-            // InternalOCLinEcore.g:10238:1: ( ( rule__ImportCS__IsAllAssignment_3 )? )
-            // InternalOCLinEcore.g:10239:1: ( rule__ImportCS__IsAllAssignment_3 )?
+            // InternalOCLinEcore.g:10250:1: ( ( rule__ImportCS__IsAllAssignment_3 )? )
+            // InternalOCLinEcore.g:10251:1: ( rule__ImportCS__IsAllAssignment_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getIsAllAssignment_3()); 
             }
-            // InternalOCLinEcore.g:10240:1: ( rule__ImportCS__IsAllAssignment_3 )?
+            // InternalOCLinEcore.g:10252:1: ( rule__ImportCS__IsAllAssignment_3 )?
             int alt124=2;
             int LA124_0 = input.LA(1);
 
@@ -32783,7 +32851,7 @@
             }
             switch (alt124) {
                 case 1 :
-                    // InternalOCLinEcore.g:10240:2: rule__ImportCS__IsAllAssignment_3
+                    // InternalOCLinEcore.g:10252:2: rule__ImportCS__IsAllAssignment_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ImportCS__IsAllAssignment_3();
@@ -32821,14 +32889,14 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__4"
-    // InternalOCLinEcore.g:10250:1: rule__ImportCS__Group__4 : rule__ImportCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:10262:1: rule__ImportCS__Group__4 : rule__ImportCS__Group__4__Impl ;
     public final void rule__ImportCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10254:1: ( rule__ImportCS__Group__4__Impl )
-            // InternalOCLinEcore.g:10255:2: rule__ImportCS__Group__4__Impl
+            // InternalOCLinEcore.g:10266:1: ( rule__ImportCS__Group__4__Impl )
+            // InternalOCLinEcore.g:10267:2: rule__ImportCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ImportCS__Group__4__Impl();
@@ -32854,17 +32922,17 @@
 
 
     // $ANTLR start "rule__ImportCS__Group__4__Impl"
-    // InternalOCLinEcore.g:10261:1: rule__ImportCS__Group__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:10273:1: rule__ImportCS__Group__4__Impl : ( ';' ) ;
     public final void rule__ImportCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10265:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:10266:1: ( ';' )
+            // InternalOCLinEcore.g:10277:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:10278:1: ( ';' )
             {
-            // InternalOCLinEcore.g:10266:1: ( ';' )
-            // InternalOCLinEcore.g:10267:1: ';'
+            // InternalOCLinEcore.g:10278:1: ( ';' )
+            // InternalOCLinEcore.g:10279:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getSemicolonKeyword_4()); 
@@ -32895,14 +32963,14 @@
 
 
     // $ANTLR start "rule__ImportCS__Group_1__0"
-    // InternalOCLinEcore.g:10290:1: rule__ImportCS__Group_1__0 : rule__ImportCS__Group_1__0__Impl rule__ImportCS__Group_1__1 ;
+    // InternalOCLinEcore.g:10302:1: rule__ImportCS__Group_1__0 : rule__ImportCS__Group_1__0__Impl rule__ImportCS__Group_1__1 ;
     public final void rule__ImportCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10294:1: ( rule__ImportCS__Group_1__0__Impl rule__ImportCS__Group_1__1 )
-            // InternalOCLinEcore.g:10295:2: rule__ImportCS__Group_1__0__Impl rule__ImportCS__Group_1__1
+            // InternalOCLinEcore.g:10306:1: ( rule__ImportCS__Group_1__0__Impl rule__ImportCS__Group_1__1 )
+            // InternalOCLinEcore.g:10307:2: rule__ImportCS__Group_1__0__Impl rule__ImportCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_52);
             rule__ImportCS__Group_1__0__Impl();
@@ -32933,23 +33001,23 @@
 
 
     // $ANTLR start "rule__ImportCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:10302:1: rule__ImportCS__Group_1__0__Impl : ( ( rule__ImportCS__NameAssignment_1_0 ) ) ;
+    // InternalOCLinEcore.g:10314:1: rule__ImportCS__Group_1__0__Impl : ( ( rule__ImportCS__NameAssignment_1_0 ) ) ;
     public final void rule__ImportCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10306:1: ( ( ( rule__ImportCS__NameAssignment_1_0 ) ) )
-            // InternalOCLinEcore.g:10307:1: ( ( rule__ImportCS__NameAssignment_1_0 ) )
+            // InternalOCLinEcore.g:10318:1: ( ( ( rule__ImportCS__NameAssignment_1_0 ) ) )
+            // InternalOCLinEcore.g:10319:1: ( ( rule__ImportCS__NameAssignment_1_0 ) )
             {
-            // InternalOCLinEcore.g:10307:1: ( ( rule__ImportCS__NameAssignment_1_0 ) )
-            // InternalOCLinEcore.g:10308:1: ( rule__ImportCS__NameAssignment_1_0 )
+            // InternalOCLinEcore.g:10319:1: ( ( rule__ImportCS__NameAssignment_1_0 ) )
+            // InternalOCLinEcore.g:10320:1: ( rule__ImportCS__NameAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getNameAssignment_1_0()); 
             }
-            // InternalOCLinEcore.g:10309:1: ( rule__ImportCS__NameAssignment_1_0 )
-            // InternalOCLinEcore.g:10309:2: rule__ImportCS__NameAssignment_1_0
+            // InternalOCLinEcore.g:10321:1: ( rule__ImportCS__NameAssignment_1_0 )
+            // InternalOCLinEcore.g:10321:2: rule__ImportCS__NameAssignment_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ImportCS__NameAssignment_1_0();
@@ -32984,14 +33052,14 @@
 
 
     // $ANTLR start "rule__ImportCS__Group_1__1"
-    // InternalOCLinEcore.g:10319:1: rule__ImportCS__Group_1__1 : rule__ImportCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:10331:1: rule__ImportCS__Group_1__1 : rule__ImportCS__Group_1__1__Impl ;
     public final void rule__ImportCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10323:1: ( rule__ImportCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:10324:2: rule__ImportCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:10335:1: ( rule__ImportCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:10336:2: rule__ImportCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ImportCS__Group_1__1__Impl();
@@ -33017,17 +33085,17 @@
 
 
     // $ANTLR start "rule__ImportCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:10330:1: rule__ImportCS__Group_1__1__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:10342:1: rule__ImportCS__Group_1__1__Impl : ( ':' ) ;
     public final void rule__ImportCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10334:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:10335:1: ( ':' )
+            // InternalOCLinEcore.g:10346:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:10347:1: ( ':' )
             {
-            // InternalOCLinEcore.g:10335:1: ( ':' )
-            // InternalOCLinEcore.g:10336:1: ':'
+            // InternalOCLinEcore.g:10347:1: ( ':' )
+            // InternalOCLinEcore.g:10348:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getColonKeyword_1_1()); 
@@ -33058,14 +33126,14 @@
 
 
     // $ANTLR start "rule__ModelElementRefCS__Group__0"
-    // InternalOCLinEcore.g:10353:1: rule__ModelElementRefCS__Group__0 : rule__ModelElementRefCS__Group__0__Impl rule__ModelElementRefCS__Group__1 ;
+    // InternalOCLinEcore.g:10365:1: rule__ModelElementRefCS__Group__0 : rule__ModelElementRefCS__Group__0__Impl rule__ModelElementRefCS__Group__1 ;
     public final void rule__ModelElementRefCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10357:1: ( rule__ModelElementRefCS__Group__0__Impl rule__ModelElementRefCS__Group__1 )
-            // InternalOCLinEcore.g:10358:2: rule__ModelElementRefCS__Group__0__Impl rule__ModelElementRefCS__Group__1
+            // InternalOCLinEcore.g:10369:1: ( rule__ModelElementRefCS__Group__0__Impl rule__ModelElementRefCS__Group__1 )
+            // InternalOCLinEcore.g:10370:2: rule__ModelElementRefCS__Group__0__Impl rule__ModelElementRefCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__ModelElementRefCS__Group__0__Impl();
@@ -33096,17 +33164,17 @@
 
 
     // $ANTLR start "rule__ModelElementRefCS__Group__0__Impl"
-    // InternalOCLinEcore.g:10365:1: rule__ModelElementRefCS__Group__0__Impl : ( 'reference' ) ;
+    // InternalOCLinEcore.g:10377:1: rule__ModelElementRefCS__Group__0__Impl : ( 'reference' ) ;
     public final void rule__ModelElementRefCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10369:1: ( ( 'reference' ) )
-            // InternalOCLinEcore.g:10370:1: ( 'reference' )
+            // InternalOCLinEcore.g:10381:1: ( ( 'reference' ) )
+            // InternalOCLinEcore.g:10382:1: ( 'reference' )
             {
-            // InternalOCLinEcore.g:10370:1: ( 'reference' )
-            // InternalOCLinEcore.g:10371:1: 'reference'
+            // InternalOCLinEcore.g:10382:1: ( 'reference' )
+            // InternalOCLinEcore.g:10383:1: 'reference'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getModelElementRefCSAccess().getReferenceKeyword_0()); 
@@ -33137,14 +33205,14 @@
 
 
     // $ANTLR start "rule__ModelElementRefCS__Group__1"
-    // InternalOCLinEcore.g:10384:1: rule__ModelElementRefCS__Group__1 : rule__ModelElementRefCS__Group__1__Impl rule__ModelElementRefCS__Group__2 ;
+    // InternalOCLinEcore.g:10396:1: rule__ModelElementRefCS__Group__1 : rule__ModelElementRefCS__Group__1__Impl rule__ModelElementRefCS__Group__2 ;
     public final void rule__ModelElementRefCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10388:1: ( rule__ModelElementRefCS__Group__1__Impl rule__ModelElementRefCS__Group__2 )
-            // InternalOCLinEcore.g:10389:2: rule__ModelElementRefCS__Group__1__Impl rule__ModelElementRefCS__Group__2
+            // InternalOCLinEcore.g:10400:1: ( rule__ModelElementRefCS__Group__1__Impl rule__ModelElementRefCS__Group__2 )
+            // InternalOCLinEcore.g:10401:2: rule__ModelElementRefCS__Group__1__Impl rule__ModelElementRefCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_53);
             rule__ModelElementRefCS__Group__1__Impl();
@@ -33175,23 +33243,23 @@
 
 
     // $ANTLR start "rule__ModelElementRefCS__Group__1__Impl"
-    // InternalOCLinEcore.g:10396:1: rule__ModelElementRefCS__Group__1__Impl : ( ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:10408:1: rule__ModelElementRefCS__Group__1__Impl : ( ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 ) ) ;
     public final void rule__ModelElementRefCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10400:1: ( ( ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 ) ) )
-            // InternalOCLinEcore.g:10401:1: ( ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 ) )
+            // InternalOCLinEcore.g:10412:1: ( ( ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 ) ) )
+            // InternalOCLinEcore.g:10413:1: ( ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:10401:1: ( ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 ) )
-            // InternalOCLinEcore.g:10402:1: ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 )
+            // InternalOCLinEcore.g:10413:1: ( ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 ) )
+            // InternalOCLinEcore.g:10414:1: ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getModelElementRefCSAccess().getOwnedPathNameAssignment_1()); 
             }
-            // InternalOCLinEcore.g:10403:1: ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 )
-            // InternalOCLinEcore.g:10403:2: rule__ModelElementRefCS__OwnedPathNameAssignment_1
+            // InternalOCLinEcore.g:10415:1: ( rule__ModelElementRefCS__OwnedPathNameAssignment_1 )
+            // InternalOCLinEcore.g:10415:2: rule__ModelElementRefCS__OwnedPathNameAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ModelElementRefCS__OwnedPathNameAssignment_1();
@@ -33226,14 +33294,14 @@
 
 
     // $ANTLR start "rule__ModelElementRefCS__Group__2"
-    // InternalOCLinEcore.g:10413:1: rule__ModelElementRefCS__Group__2 : rule__ModelElementRefCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:10425:1: rule__ModelElementRefCS__Group__2 : rule__ModelElementRefCS__Group__2__Impl ;
     public final void rule__ModelElementRefCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10417:1: ( rule__ModelElementRefCS__Group__2__Impl )
-            // InternalOCLinEcore.g:10418:2: rule__ModelElementRefCS__Group__2__Impl
+            // InternalOCLinEcore.g:10429:1: ( rule__ModelElementRefCS__Group__2__Impl )
+            // InternalOCLinEcore.g:10430:2: rule__ModelElementRefCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ModelElementRefCS__Group__2__Impl();
@@ -33259,17 +33327,17 @@
 
 
     // $ANTLR start "rule__ModelElementRefCS__Group__2__Impl"
-    // InternalOCLinEcore.g:10424:1: rule__ModelElementRefCS__Group__2__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:10436:1: rule__ModelElementRefCS__Group__2__Impl : ( ';' ) ;
     public final void rule__ModelElementRefCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10428:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:10429:1: ( ';' )
+            // InternalOCLinEcore.g:10440:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:10441:1: ( ';' )
             {
-            // InternalOCLinEcore.g:10429:1: ( ';' )
-            // InternalOCLinEcore.g:10430:1: ';'
+            // InternalOCLinEcore.g:10441:1: ( ';' )
+            // InternalOCLinEcore.g:10442:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getModelElementRefCSAccess().getSemicolonKeyword_2()); 
@@ -33300,14 +33368,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__0"
-    // InternalOCLinEcore.g:10449:1: rule__OperationCS__Group__0 : rule__OperationCS__Group__0__Impl rule__OperationCS__Group__1 ;
+    // InternalOCLinEcore.g:10461:1: rule__OperationCS__Group__0 : rule__OperationCS__Group__0__Impl rule__OperationCS__Group__1 ;
     public final void rule__OperationCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10453:1: ( rule__OperationCS__Group__0__Impl rule__OperationCS__Group__1 )
-            // InternalOCLinEcore.g:10454:2: rule__OperationCS__Group__0__Impl rule__OperationCS__Group__1
+            // InternalOCLinEcore.g:10465:1: ( rule__OperationCS__Group__0__Impl rule__OperationCS__Group__1 )
+            // InternalOCLinEcore.g:10466:2: rule__OperationCS__Group__0__Impl rule__OperationCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_54);
             rule__OperationCS__Group__0__Impl();
@@ -33338,22 +33406,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__0__Impl"
-    // InternalOCLinEcore.g:10461:1: rule__OperationCS__Group__0__Impl : ( ( rule__OperationCS__Alternatives_0 )? ) ;
+    // InternalOCLinEcore.g:10473:1: rule__OperationCS__Group__0__Impl : ( ( rule__OperationCS__Alternatives_0 )? ) ;
     public final void rule__OperationCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10465:1: ( ( ( rule__OperationCS__Alternatives_0 )? ) )
-            // InternalOCLinEcore.g:10466:1: ( ( rule__OperationCS__Alternatives_0 )? )
+            // InternalOCLinEcore.g:10477:1: ( ( ( rule__OperationCS__Alternatives_0 )? ) )
+            // InternalOCLinEcore.g:10478:1: ( ( rule__OperationCS__Alternatives_0 )? )
             {
-            // InternalOCLinEcore.g:10466:1: ( ( rule__OperationCS__Alternatives_0 )? )
-            // InternalOCLinEcore.g:10467:1: ( rule__OperationCS__Alternatives_0 )?
+            // InternalOCLinEcore.g:10478:1: ( ( rule__OperationCS__Alternatives_0 )? )
+            // InternalOCLinEcore.g:10479:1: ( rule__OperationCS__Alternatives_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getAlternatives_0()); 
             }
-            // InternalOCLinEcore.g:10468:1: ( rule__OperationCS__Alternatives_0 )?
+            // InternalOCLinEcore.g:10480:1: ( rule__OperationCS__Alternatives_0 )?
             int alt125=2;
             int LA125_0 = input.LA(1);
 
@@ -33362,7 +33430,7 @@
             }
             switch (alt125) {
                 case 1 :
-                    // InternalOCLinEcore.g:10468:2: rule__OperationCS__Alternatives_0
+                    // InternalOCLinEcore.g:10480:2: rule__OperationCS__Alternatives_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__Alternatives_0();
@@ -33400,14 +33468,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__1"
-    // InternalOCLinEcore.g:10478:1: rule__OperationCS__Group__1 : rule__OperationCS__Group__1__Impl rule__OperationCS__Group__2 ;
+    // InternalOCLinEcore.g:10490:1: rule__OperationCS__Group__1 : rule__OperationCS__Group__1__Impl rule__OperationCS__Group__2 ;
     public final void rule__OperationCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10482:1: ( rule__OperationCS__Group__1__Impl rule__OperationCS__Group__2 )
-            // InternalOCLinEcore.g:10483:2: rule__OperationCS__Group__1__Impl rule__OperationCS__Group__2
+            // InternalOCLinEcore.g:10494:1: ( rule__OperationCS__Group__1__Impl rule__OperationCS__Group__2 )
+            // InternalOCLinEcore.g:10495:2: rule__OperationCS__Group__1__Impl rule__OperationCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_55);
             rule__OperationCS__Group__1__Impl();
@@ -33438,17 +33506,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__1__Impl"
-    // InternalOCLinEcore.g:10490:1: rule__OperationCS__Group__1__Impl : ( 'operation' ) ;
+    // InternalOCLinEcore.g:10502:1: rule__OperationCS__Group__1__Impl : ( 'operation' ) ;
     public final void rule__OperationCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10494:1: ( ( 'operation' ) )
-            // InternalOCLinEcore.g:10495:1: ( 'operation' )
+            // InternalOCLinEcore.g:10506:1: ( ( 'operation' ) )
+            // InternalOCLinEcore.g:10507:1: ( 'operation' )
             {
-            // InternalOCLinEcore.g:10495:1: ( 'operation' )
-            // InternalOCLinEcore.g:10496:1: 'operation'
+            // InternalOCLinEcore.g:10507:1: ( 'operation' )
+            // InternalOCLinEcore.g:10508:1: 'operation'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOperationKeyword_1()); 
@@ -33479,14 +33547,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__2"
-    // InternalOCLinEcore.g:10509:1: rule__OperationCS__Group__2 : rule__OperationCS__Group__2__Impl rule__OperationCS__Group__3 ;
+    // InternalOCLinEcore.g:10521:1: rule__OperationCS__Group__2 : rule__OperationCS__Group__2__Impl rule__OperationCS__Group__3 ;
     public final void rule__OperationCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10513:1: ( rule__OperationCS__Group__2__Impl rule__OperationCS__Group__3 )
-            // InternalOCLinEcore.g:10514:2: rule__OperationCS__Group__2__Impl rule__OperationCS__Group__3
+            // InternalOCLinEcore.g:10525:1: ( rule__OperationCS__Group__2__Impl rule__OperationCS__Group__3 )
+            // InternalOCLinEcore.g:10526:2: rule__OperationCS__Group__2__Impl rule__OperationCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_55);
             rule__OperationCS__Group__2__Impl();
@@ -33517,22 +33585,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__2__Impl"
-    // InternalOCLinEcore.g:10521:1: rule__OperationCS__Group__2__Impl : ( ( rule__OperationCS__OwnedSignatureAssignment_2 )? ) ;
+    // InternalOCLinEcore.g:10533:1: rule__OperationCS__Group__2__Impl : ( ( rule__OperationCS__OwnedSignatureAssignment_2 )? ) ;
     public final void rule__OperationCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10525:1: ( ( ( rule__OperationCS__OwnedSignatureAssignment_2 )? ) )
-            // InternalOCLinEcore.g:10526:1: ( ( rule__OperationCS__OwnedSignatureAssignment_2 )? )
+            // InternalOCLinEcore.g:10537:1: ( ( ( rule__OperationCS__OwnedSignatureAssignment_2 )? ) )
+            // InternalOCLinEcore.g:10538:1: ( ( rule__OperationCS__OwnedSignatureAssignment_2 )? )
             {
-            // InternalOCLinEcore.g:10526:1: ( ( rule__OperationCS__OwnedSignatureAssignment_2 )? )
-            // InternalOCLinEcore.g:10527:1: ( rule__OperationCS__OwnedSignatureAssignment_2 )?
+            // InternalOCLinEcore.g:10538:1: ( ( rule__OperationCS__OwnedSignatureAssignment_2 )? )
+            // InternalOCLinEcore.g:10539:1: ( rule__OperationCS__OwnedSignatureAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedSignatureAssignment_2()); 
             }
-            // InternalOCLinEcore.g:10528:1: ( rule__OperationCS__OwnedSignatureAssignment_2 )?
+            // InternalOCLinEcore.g:10540:1: ( rule__OperationCS__OwnedSignatureAssignment_2 )?
             int alt126=2;
             int LA126_0 = input.LA(1);
 
@@ -33541,7 +33609,7 @@
             }
             switch (alt126) {
                 case 1 :
-                    // InternalOCLinEcore.g:10528:2: rule__OperationCS__OwnedSignatureAssignment_2
+                    // InternalOCLinEcore.g:10540:2: rule__OperationCS__OwnedSignatureAssignment_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__OwnedSignatureAssignment_2();
@@ -33579,14 +33647,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__3"
-    // InternalOCLinEcore.g:10538:1: rule__OperationCS__Group__3 : rule__OperationCS__Group__3__Impl rule__OperationCS__Group__4 ;
+    // InternalOCLinEcore.g:10550:1: rule__OperationCS__Group__3 : rule__OperationCS__Group__3__Impl rule__OperationCS__Group__4 ;
     public final void rule__OperationCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10542:1: ( rule__OperationCS__Group__3__Impl rule__OperationCS__Group__4 )
-            // InternalOCLinEcore.g:10543:2: rule__OperationCS__Group__3__Impl rule__OperationCS__Group__4
+            // InternalOCLinEcore.g:10554:1: ( rule__OperationCS__Group__3__Impl rule__OperationCS__Group__4 )
+            // InternalOCLinEcore.g:10555:2: rule__OperationCS__Group__3__Impl rule__OperationCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_11);
             rule__OperationCS__Group__3__Impl();
@@ -33617,23 +33685,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__3__Impl"
-    // InternalOCLinEcore.g:10550:1: rule__OperationCS__Group__3__Impl : ( ( rule__OperationCS__NameAssignment_3 ) ) ;
+    // InternalOCLinEcore.g:10562:1: rule__OperationCS__Group__3__Impl : ( ( rule__OperationCS__NameAssignment_3 ) ) ;
     public final void rule__OperationCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10554:1: ( ( ( rule__OperationCS__NameAssignment_3 ) ) )
-            // InternalOCLinEcore.g:10555:1: ( ( rule__OperationCS__NameAssignment_3 ) )
+            // InternalOCLinEcore.g:10566:1: ( ( ( rule__OperationCS__NameAssignment_3 ) ) )
+            // InternalOCLinEcore.g:10567:1: ( ( rule__OperationCS__NameAssignment_3 ) )
             {
-            // InternalOCLinEcore.g:10555:1: ( ( rule__OperationCS__NameAssignment_3 ) )
-            // InternalOCLinEcore.g:10556:1: ( rule__OperationCS__NameAssignment_3 )
+            // InternalOCLinEcore.g:10567:1: ( ( rule__OperationCS__NameAssignment_3 ) )
+            // InternalOCLinEcore.g:10568:1: ( rule__OperationCS__NameAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getNameAssignment_3()); 
             }
-            // InternalOCLinEcore.g:10557:1: ( rule__OperationCS__NameAssignment_3 )
-            // InternalOCLinEcore.g:10557:2: rule__OperationCS__NameAssignment_3
+            // InternalOCLinEcore.g:10569:1: ( rule__OperationCS__NameAssignment_3 )
+            // InternalOCLinEcore.g:10569:2: rule__OperationCS__NameAssignment_3
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__NameAssignment_3();
@@ -33668,14 +33736,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__4"
-    // InternalOCLinEcore.g:10567:1: rule__OperationCS__Group__4 : rule__OperationCS__Group__4__Impl rule__OperationCS__Group__5 ;
+    // InternalOCLinEcore.g:10579:1: rule__OperationCS__Group__4 : rule__OperationCS__Group__4__Impl rule__OperationCS__Group__5 ;
     public final void rule__OperationCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10571:1: ( rule__OperationCS__Group__4__Impl rule__OperationCS__Group__5 )
-            // InternalOCLinEcore.g:10572:2: rule__OperationCS__Group__4__Impl rule__OperationCS__Group__5
+            // InternalOCLinEcore.g:10583:1: ( rule__OperationCS__Group__4__Impl rule__OperationCS__Group__5 )
+            // InternalOCLinEcore.g:10584:2: rule__OperationCS__Group__4__Impl rule__OperationCS__Group__5
             {
             pushFollow(FollowSets000.FOLLOW_56);
             rule__OperationCS__Group__4__Impl();
@@ -33706,17 +33774,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__4__Impl"
-    // InternalOCLinEcore.g:10579:1: rule__OperationCS__Group__4__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:10591:1: rule__OperationCS__Group__4__Impl : ( '(' ) ;
     public final void rule__OperationCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10583:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:10584:1: ( '(' )
+            // InternalOCLinEcore.g:10595:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:10596:1: ( '(' )
             {
-            // InternalOCLinEcore.g:10584:1: ( '(' )
-            // InternalOCLinEcore.g:10585:1: '('
+            // InternalOCLinEcore.g:10596:1: ( '(' )
+            // InternalOCLinEcore.g:10597:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getLeftParenthesisKeyword_4()); 
@@ -33747,14 +33815,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__5"
-    // InternalOCLinEcore.g:10598:1: rule__OperationCS__Group__5 : rule__OperationCS__Group__5__Impl rule__OperationCS__Group__6 ;
+    // InternalOCLinEcore.g:10610:1: rule__OperationCS__Group__5 : rule__OperationCS__Group__5__Impl rule__OperationCS__Group__6 ;
     public final void rule__OperationCS__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10602:1: ( rule__OperationCS__Group__5__Impl rule__OperationCS__Group__6 )
-            // InternalOCLinEcore.g:10603:2: rule__OperationCS__Group__5__Impl rule__OperationCS__Group__6
+            // InternalOCLinEcore.g:10614:1: ( rule__OperationCS__Group__5__Impl rule__OperationCS__Group__6 )
+            // InternalOCLinEcore.g:10615:2: rule__OperationCS__Group__5__Impl rule__OperationCS__Group__6
             {
             pushFollow(FollowSets000.FOLLOW_56);
             rule__OperationCS__Group__5__Impl();
@@ -33785,22 +33853,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__5__Impl"
-    // InternalOCLinEcore.g:10610:1: rule__OperationCS__Group__5__Impl : ( ( rule__OperationCS__Group_5__0 )? ) ;
+    // InternalOCLinEcore.g:10622:1: rule__OperationCS__Group__5__Impl : ( ( rule__OperationCS__Group_5__0 )? ) ;
     public final void rule__OperationCS__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10614:1: ( ( ( rule__OperationCS__Group_5__0 )? ) )
-            // InternalOCLinEcore.g:10615:1: ( ( rule__OperationCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:10626:1: ( ( ( rule__OperationCS__Group_5__0 )? ) )
+            // InternalOCLinEcore.g:10627:1: ( ( rule__OperationCS__Group_5__0 )? )
             {
-            // InternalOCLinEcore.g:10615:1: ( ( rule__OperationCS__Group_5__0 )? )
-            // InternalOCLinEcore.g:10616:1: ( rule__OperationCS__Group_5__0 )?
+            // InternalOCLinEcore.g:10627:1: ( ( rule__OperationCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:10628:1: ( rule__OperationCS__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getGroup_5()); 
             }
-            // InternalOCLinEcore.g:10617:1: ( rule__OperationCS__Group_5__0 )?
+            // InternalOCLinEcore.g:10629:1: ( rule__OperationCS__Group_5__0 )?
             int alt127=2;
             int LA127_0 = input.LA(1);
 
@@ -33809,7 +33877,7 @@
             }
             switch (alt127) {
                 case 1 :
-                    // InternalOCLinEcore.g:10617:2: rule__OperationCS__Group_5__0
+                    // InternalOCLinEcore.g:10629:2: rule__OperationCS__Group_5__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__Group_5__0();
@@ -33847,14 +33915,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__6"
-    // InternalOCLinEcore.g:10627:1: rule__OperationCS__Group__6 : rule__OperationCS__Group__6__Impl rule__OperationCS__Group__7 ;
+    // InternalOCLinEcore.g:10639:1: rule__OperationCS__Group__6 : rule__OperationCS__Group__6__Impl rule__OperationCS__Group__7 ;
     public final void rule__OperationCS__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10631:1: ( rule__OperationCS__Group__6__Impl rule__OperationCS__Group__7 )
-            // InternalOCLinEcore.g:10632:2: rule__OperationCS__Group__6__Impl rule__OperationCS__Group__7
+            // InternalOCLinEcore.g:10643:1: ( rule__OperationCS__Group__6__Impl rule__OperationCS__Group__7 )
+            // InternalOCLinEcore.g:10644:2: rule__OperationCS__Group__6__Impl rule__OperationCS__Group__7
             {
             pushFollow(FollowSets000.FOLLOW_57);
             rule__OperationCS__Group__6__Impl();
@@ -33885,17 +33953,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__6__Impl"
-    // InternalOCLinEcore.g:10639:1: rule__OperationCS__Group__6__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:10651:1: rule__OperationCS__Group__6__Impl : ( ')' ) ;
     public final void rule__OperationCS__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10643:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:10644:1: ( ')' )
+            // InternalOCLinEcore.g:10655:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:10656:1: ( ')' )
             {
-            // InternalOCLinEcore.g:10644:1: ( ')' )
-            // InternalOCLinEcore.g:10645:1: ')'
+            // InternalOCLinEcore.g:10656:1: ( ')' )
+            // InternalOCLinEcore.g:10657:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getRightParenthesisKeyword_6()); 
@@ -33926,14 +33994,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__7"
-    // InternalOCLinEcore.g:10658:1: rule__OperationCS__Group__7 : rule__OperationCS__Group__7__Impl rule__OperationCS__Group__8 ;
+    // InternalOCLinEcore.g:10670:1: rule__OperationCS__Group__7 : rule__OperationCS__Group__7__Impl rule__OperationCS__Group__8 ;
     public final void rule__OperationCS__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10662:1: ( rule__OperationCS__Group__7__Impl rule__OperationCS__Group__8 )
-            // InternalOCLinEcore.g:10663:2: rule__OperationCS__Group__7__Impl rule__OperationCS__Group__8
+            // InternalOCLinEcore.g:10674:1: ( rule__OperationCS__Group__7__Impl rule__OperationCS__Group__8 )
+            // InternalOCLinEcore.g:10675:2: rule__OperationCS__Group__7__Impl rule__OperationCS__Group__8
             {
             pushFollow(FollowSets000.FOLLOW_57);
             rule__OperationCS__Group__7__Impl();
@@ -33964,22 +34032,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__7__Impl"
-    // InternalOCLinEcore.g:10670:1: rule__OperationCS__Group__7__Impl : ( ( rule__OperationCS__Group_7__0 )? ) ;
+    // InternalOCLinEcore.g:10682:1: rule__OperationCS__Group__7__Impl : ( ( rule__OperationCS__Group_7__0 )? ) ;
     public final void rule__OperationCS__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10674:1: ( ( ( rule__OperationCS__Group_7__0 )? ) )
-            // InternalOCLinEcore.g:10675:1: ( ( rule__OperationCS__Group_7__0 )? )
+            // InternalOCLinEcore.g:10686:1: ( ( ( rule__OperationCS__Group_7__0 )? ) )
+            // InternalOCLinEcore.g:10687:1: ( ( rule__OperationCS__Group_7__0 )? )
             {
-            // InternalOCLinEcore.g:10675:1: ( ( rule__OperationCS__Group_7__0 )? )
-            // InternalOCLinEcore.g:10676:1: ( rule__OperationCS__Group_7__0 )?
+            // InternalOCLinEcore.g:10687:1: ( ( rule__OperationCS__Group_7__0 )? )
+            // InternalOCLinEcore.g:10688:1: ( rule__OperationCS__Group_7__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getGroup_7()); 
             }
-            // InternalOCLinEcore.g:10677:1: ( rule__OperationCS__Group_7__0 )?
+            // InternalOCLinEcore.g:10689:1: ( rule__OperationCS__Group_7__0 )?
             int alt128=2;
             int LA128_0 = input.LA(1);
 
@@ -33988,7 +34056,7 @@
             }
             switch (alt128) {
                 case 1 :
-                    // InternalOCLinEcore.g:10677:2: rule__OperationCS__Group_7__0
+                    // InternalOCLinEcore.g:10689:2: rule__OperationCS__Group_7__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__Group_7__0();
@@ -34026,14 +34094,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__8"
-    // InternalOCLinEcore.g:10687:1: rule__OperationCS__Group__8 : rule__OperationCS__Group__8__Impl rule__OperationCS__Group__9 ;
+    // InternalOCLinEcore.g:10699:1: rule__OperationCS__Group__8 : rule__OperationCS__Group__8__Impl rule__OperationCS__Group__9 ;
     public final void rule__OperationCS__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10691:1: ( rule__OperationCS__Group__8__Impl rule__OperationCS__Group__9 )
-            // InternalOCLinEcore.g:10692:2: rule__OperationCS__Group__8__Impl rule__OperationCS__Group__9
+            // InternalOCLinEcore.g:10703:1: ( rule__OperationCS__Group__8__Impl rule__OperationCS__Group__9 )
+            // InternalOCLinEcore.g:10704:2: rule__OperationCS__Group__8__Impl rule__OperationCS__Group__9
             {
             pushFollow(FollowSets000.FOLLOW_57);
             rule__OperationCS__Group__8__Impl();
@@ -34064,22 +34132,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__8__Impl"
-    // InternalOCLinEcore.g:10699:1: rule__OperationCS__Group__8__Impl : ( ( rule__OperationCS__Group_8__0 )? ) ;
+    // InternalOCLinEcore.g:10711:1: rule__OperationCS__Group__8__Impl : ( ( rule__OperationCS__Group_8__0 )? ) ;
     public final void rule__OperationCS__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10703:1: ( ( ( rule__OperationCS__Group_8__0 )? ) )
-            // InternalOCLinEcore.g:10704:1: ( ( rule__OperationCS__Group_8__0 )? )
+            // InternalOCLinEcore.g:10715:1: ( ( ( rule__OperationCS__Group_8__0 )? ) )
+            // InternalOCLinEcore.g:10716:1: ( ( rule__OperationCS__Group_8__0 )? )
             {
-            // InternalOCLinEcore.g:10704:1: ( ( rule__OperationCS__Group_8__0 )? )
-            // InternalOCLinEcore.g:10705:1: ( rule__OperationCS__Group_8__0 )?
+            // InternalOCLinEcore.g:10716:1: ( ( rule__OperationCS__Group_8__0 )? )
+            // InternalOCLinEcore.g:10717:1: ( rule__OperationCS__Group_8__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getGroup_8()); 
             }
-            // InternalOCLinEcore.g:10706:1: ( rule__OperationCS__Group_8__0 )?
+            // InternalOCLinEcore.g:10718:1: ( rule__OperationCS__Group_8__0 )?
             int alt129=2;
             int LA129_0 = input.LA(1);
 
@@ -34088,7 +34156,7 @@
             }
             switch (alt129) {
                 case 1 :
-                    // InternalOCLinEcore.g:10706:2: rule__OperationCS__Group_8__0
+                    // InternalOCLinEcore.g:10718:2: rule__OperationCS__Group_8__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__Group_8__0();
@@ -34126,14 +34194,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__9"
-    // InternalOCLinEcore.g:10716:1: rule__OperationCS__Group__9 : rule__OperationCS__Group__9__Impl rule__OperationCS__Group__10 ;
+    // InternalOCLinEcore.g:10728:1: rule__OperationCS__Group__9 : rule__OperationCS__Group__9__Impl rule__OperationCS__Group__10 ;
     public final void rule__OperationCS__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10720:1: ( rule__OperationCS__Group__9__Impl rule__OperationCS__Group__10 )
-            // InternalOCLinEcore.g:10721:2: rule__OperationCS__Group__9__Impl rule__OperationCS__Group__10
+            // InternalOCLinEcore.g:10732:1: ( rule__OperationCS__Group__9__Impl rule__OperationCS__Group__10 )
+            // InternalOCLinEcore.g:10733:2: rule__OperationCS__Group__9__Impl rule__OperationCS__Group__10
             {
             pushFollow(FollowSets000.FOLLOW_57);
             rule__OperationCS__Group__9__Impl();
@@ -34164,35 +34232,35 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__9__Impl"
-    // InternalOCLinEcore.g:10728:1: rule__OperationCS__Group__9__Impl : ( ( rule__OperationCS__Group_9__0 )? ) ;
+    // InternalOCLinEcore.g:10740:1: rule__OperationCS__Group__9__Impl : ( ( rule__OperationCS__Group_9__0 )? ) ;
     public final void rule__OperationCS__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10732:1: ( ( ( rule__OperationCS__Group_9__0 )? ) )
-            // InternalOCLinEcore.g:10733:1: ( ( rule__OperationCS__Group_9__0 )? )
+            // InternalOCLinEcore.g:10744:1: ( ( ( rule__OperationCS__Group_9__0 )? ) )
+            // InternalOCLinEcore.g:10745:1: ( ( rule__OperationCS__Group_9__0 )? )
             {
-            // InternalOCLinEcore.g:10733:1: ( ( rule__OperationCS__Group_9__0 )? )
-            // InternalOCLinEcore.g:10734:1: ( rule__OperationCS__Group_9__0 )?
+            // InternalOCLinEcore.g:10745:1: ( ( rule__OperationCS__Group_9__0 )? )
+            // InternalOCLinEcore.g:10746:1: ( rule__OperationCS__Group_9__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getGroup_9()); 
             }
-            // InternalOCLinEcore.g:10735:1: ( rule__OperationCS__Group_9__0 )?
+            // InternalOCLinEcore.g:10747:1: ( rule__OperationCS__Group_9__0 )?
             int alt130=2;
             int LA130_0 = input.LA(1);
 
             if ( (LA130_0==100) ) {
                 int LA130_1 = input.LA(2);
 
-                if ( (LA130_1==26||LA130_1==37||LA130_1==49||LA130_1==122||LA130_1==124||LA130_1==127) ) {
+                if ( (LA130_1==26||LA130_1==37||(LA130_1>=48 && LA130_1<=49)||LA130_1==122||LA130_1==124||(LA130_1>=126 && LA130_1<=127)) ) {
                     alt130=1;
                 }
             }
             switch (alt130) {
                 case 1 :
-                    // InternalOCLinEcore.g:10735:2: rule__OperationCS__Group_9__0
+                    // InternalOCLinEcore.g:10747:2: rule__OperationCS__Group_9__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__Group_9__0();
@@ -34230,14 +34298,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__10"
-    // InternalOCLinEcore.g:10745:1: rule__OperationCS__Group__10 : rule__OperationCS__Group__10__Impl ;
+    // InternalOCLinEcore.g:10757:1: rule__OperationCS__Group__10 : rule__OperationCS__Group__10__Impl ;
     public final void rule__OperationCS__Group__10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10749:1: ( rule__OperationCS__Group__10__Impl )
-            // InternalOCLinEcore.g:10750:2: rule__OperationCS__Group__10__Impl
+            // InternalOCLinEcore.g:10761:1: ( rule__OperationCS__Group__10__Impl )
+            // InternalOCLinEcore.g:10762:2: rule__OperationCS__Group__10__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group__10__Impl();
@@ -34263,23 +34331,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group__10__Impl"
-    // InternalOCLinEcore.g:10756:1: rule__OperationCS__Group__10__Impl : ( ( rule__OperationCS__Alternatives_10 ) ) ;
+    // InternalOCLinEcore.g:10768:1: rule__OperationCS__Group__10__Impl : ( ( rule__OperationCS__Alternatives_10 ) ) ;
     public final void rule__OperationCS__Group__10__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10760:1: ( ( ( rule__OperationCS__Alternatives_10 ) ) )
-            // InternalOCLinEcore.g:10761:1: ( ( rule__OperationCS__Alternatives_10 ) )
+            // InternalOCLinEcore.g:10772:1: ( ( ( rule__OperationCS__Alternatives_10 ) ) )
+            // InternalOCLinEcore.g:10773:1: ( ( rule__OperationCS__Alternatives_10 ) )
             {
-            // InternalOCLinEcore.g:10761:1: ( ( rule__OperationCS__Alternatives_10 ) )
-            // InternalOCLinEcore.g:10762:1: ( rule__OperationCS__Alternatives_10 )
+            // InternalOCLinEcore.g:10773:1: ( ( rule__OperationCS__Alternatives_10 ) )
+            // InternalOCLinEcore.g:10774:1: ( rule__OperationCS__Alternatives_10 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getAlternatives_10()); 
             }
-            // InternalOCLinEcore.g:10763:1: ( rule__OperationCS__Alternatives_10 )
-            // InternalOCLinEcore.g:10763:2: rule__OperationCS__Alternatives_10
+            // InternalOCLinEcore.g:10775:1: ( rule__OperationCS__Alternatives_10 )
+            // InternalOCLinEcore.g:10775:2: rule__OperationCS__Alternatives_10
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Alternatives_10();
@@ -34314,14 +34382,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_0_0__0"
-    // InternalOCLinEcore.g:10795:1: rule__OperationCS__Group_0_0__0 : rule__OperationCS__Group_0_0__0__Impl rule__OperationCS__Group_0_0__1 ;
+    // InternalOCLinEcore.g:10807:1: rule__OperationCS__Group_0_0__0 : rule__OperationCS__Group_0_0__0__Impl rule__OperationCS__Group_0_0__1 ;
     public final void rule__OperationCS__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10799:1: ( rule__OperationCS__Group_0_0__0__Impl rule__OperationCS__Group_0_0__1 )
-            // InternalOCLinEcore.g:10800:2: rule__OperationCS__Group_0_0__0__Impl rule__OperationCS__Group_0_0__1
+            // InternalOCLinEcore.g:10811:1: ( rule__OperationCS__Group_0_0__0__Impl rule__OperationCS__Group_0_0__1 )
+            // InternalOCLinEcore.g:10812:2: rule__OperationCS__Group_0_0__0__Impl rule__OperationCS__Group_0_0__1
             {
             pushFollow(FollowSets000.FOLLOW_26);
             rule__OperationCS__Group_0_0__0__Impl();
@@ -34352,23 +34420,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_0_0__0__Impl"
-    // InternalOCLinEcore.g:10807:1: rule__OperationCS__Group_0_0__0__Impl : ( ( rule__OperationCS__QualifiersAssignment_0_0_0 ) ) ;
+    // InternalOCLinEcore.g:10819:1: rule__OperationCS__Group_0_0__0__Impl : ( ( rule__OperationCS__QualifiersAssignment_0_0_0 ) ) ;
     public final void rule__OperationCS__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10811:1: ( ( ( rule__OperationCS__QualifiersAssignment_0_0_0 ) ) )
-            // InternalOCLinEcore.g:10812:1: ( ( rule__OperationCS__QualifiersAssignment_0_0_0 ) )
+            // InternalOCLinEcore.g:10823:1: ( ( ( rule__OperationCS__QualifiersAssignment_0_0_0 ) ) )
+            // InternalOCLinEcore.g:10824:1: ( ( rule__OperationCS__QualifiersAssignment_0_0_0 ) )
             {
-            // InternalOCLinEcore.g:10812:1: ( ( rule__OperationCS__QualifiersAssignment_0_0_0 ) )
-            // InternalOCLinEcore.g:10813:1: ( rule__OperationCS__QualifiersAssignment_0_0_0 )
+            // InternalOCLinEcore.g:10824:1: ( ( rule__OperationCS__QualifiersAssignment_0_0_0 ) )
+            // InternalOCLinEcore.g:10825:1: ( rule__OperationCS__QualifiersAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_0_0()); 
             }
-            // InternalOCLinEcore.g:10814:1: ( rule__OperationCS__QualifiersAssignment_0_0_0 )
-            // InternalOCLinEcore.g:10814:2: rule__OperationCS__QualifiersAssignment_0_0_0
+            // InternalOCLinEcore.g:10826:1: ( rule__OperationCS__QualifiersAssignment_0_0_0 )
+            // InternalOCLinEcore.g:10826:2: rule__OperationCS__QualifiersAssignment_0_0_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__QualifiersAssignment_0_0_0();
@@ -34403,14 +34471,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_0_0__1"
-    // InternalOCLinEcore.g:10824:1: rule__OperationCS__Group_0_0__1 : rule__OperationCS__Group_0_0__1__Impl ;
+    // InternalOCLinEcore.g:10836:1: rule__OperationCS__Group_0_0__1 : rule__OperationCS__Group_0_0__1__Impl ;
     public final void rule__OperationCS__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10828:1: ( rule__OperationCS__Group_0_0__1__Impl )
-            // InternalOCLinEcore.g:10829:2: rule__OperationCS__Group_0_0__1__Impl
+            // InternalOCLinEcore.g:10840:1: ( rule__OperationCS__Group_0_0__1__Impl )
+            // InternalOCLinEcore.g:10841:2: rule__OperationCS__Group_0_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_0_0__1__Impl();
@@ -34436,22 +34504,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_0_0__1__Impl"
-    // InternalOCLinEcore.g:10835:1: rule__OperationCS__Group_0_0__1__Impl : ( ( rule__OperationCS__QualifiersAssignment_0_0_1 )? ) ;
+    // InternalOCLinEcore.g:10847:1: rule__OperationCS__Group_0_0__1__Impl : ( ( rule__OperationCS__QualifiersAssignment_0_0_1 )? ) ;
     public final void rule__OperationCS__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10839:1: ( ( ( rule__OperationCS__QualifiersAssignment_0_0_1 )? ) )
-            // InternalOCLinEcore.g:10840:1: ( ( rule__OperationCS__QualifiersAssignment_0_0_1 )? )
+            // InternalOCLinEcore.g:10851:1: ( ( ( rule__OperationCS__QualifiersAssignment_0_0_1 )? ) )
+            // InternalOCLinEcore.g:10852:1: ( ( rule__OperationCS__QualifiersAssignment_0_0_1 )? )
             {
-            // InternalOCLinEcore.g:10840:1: ( ( rule__OperationCS__QualifiersAssignment_0_0_1 )? )
-            // InternalOCLinEcore.g:10841:1: ( rule__OperationCS__QualifiersAssignment_0_0_1 )?
+            // InternalOCLinEcore.g:10852:1: ( ( rule__OperationCS__QualifiersAssignment_0_0_1 )? )
+            // InternalOCLinEcore.g:10853:1: ( rule__OperationCS__QualifiersAssignment_0_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_0_1()); 
             }
-            // InternalOCLinEcore.g:10842:1: ( rule__OperationCS__QualifiersAssignment_0_0_1 )?
+            // InternalOCLinEcore.g:10854:1: ( rule__OperationCS__QualifiersAssignment_0_0_1 )?
             int alt131=2;
             int LA131_0 = input.LA(1);
 
@@ -34460,7 +34528,7 @@
             }
             switch (alt131) {
                 case 1 :
-                    // InternalOCLinEcore.g:10842:2: rule__OperationCS__QualifiersAssignment_0_0_1
+                    // InternalOCLinEcore.g:10854:2: rule__OperationCS__QualifiersAssignment_0_0_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__QualifiersAssignment_0_0_1();
@@ -34498,14 +34566,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_0_1__0"
-    // InternalOCLinEcore.g:10856:1: rule__OperationCS__Group_0_1__0 : rule__OperationCS__Group_0_1__0__Impl rule__OperationCS__Group_0_1__1 ;
+    // InternalOCLinEcore.g:10868:1: rule__OperationCS__Group_0_1__0 : rule__OperationCS__Group_0_1__0__Impl rule__OperationCS__Group_0_1__1 ;
     public final void rule__OperationCS__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10860:1: ( rule__OperationCS__Group_0_1__0__Impl rule__OperationCS__Group_0_1__1 )
-            // InternalOCLinEcore.g:10861:2: rule__OperationCS__Group_0_1__0__Impl rule__OperationCS__Group_0_1__1
+            // InternalOCLinEcore.g:10872:1: ( rule__OperationCS__Group_0_1__0__Impl rule__OperationCS__Group_0_1__1 )
+            // InternalOCLinEcore.g:10873:2: rule__OperationCS__Group_0_1__0__Impl rule__OperationCS__Group_0_1__1
             {
             pushFollow(FollowSets000.FOLLOW_27);
             rule__OperationCS__Group_0_1__0__Impl();
@@ -34536,23 +34604,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_0_1__0__Impl"
-    // InternalOCLinEcore.g:10868:1: rule__OperationCS__Group_0_1__0__Impl : ( ( rule__OperationCS__QualifiersAssignment_0_1_0 ) ) ;
+    // InternalOCLinEcore.g:10880:1: rule__OperationCS__Group_0_1__0__Impl : ( ( rule__OperationCS__QualifiersAssignment_0_1_0 ) ) ;
     public final void rule__OperationCS__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10872:1: ( ( ( rule__OperationCS__QualifiersAssignment_0_1_0 ) ) )
-            // InternalOCLinEcore.g:10873:1: ( ( rule__OperationCS__QualifiersAssignment_0_1_0 ) )
+            // InternalOCLinEcore.g:10884:1: ( ( ( rule__OperationCS__QualifiersAssignment_0_1_0 ) ) )
+            // InternalOCLinEcore.g:10885:1: ( ( rule__OperationCS__QualifiersAssignment_0_1_0 ) )
             {
-            // InternalOCLinEcore.g:10873:1: ( ( rule__OperationCS__QualifiersAssignment_0_1_0 ) )
-            // InternalOCLinEcore.g:10874:1: ( rule__OperationCS__QualifiersAssignment_0_1_0 )
+            // InternalOCLinEcore.g:10885:1: ( ( rule__OperationCS__QualifiersAssignment_0_1_0 ) )
+            // InternalOCLinEcore.g:10886:1: ( rule__OperationCS__QualifiersAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_1_0()); 
             }
-            // InternalOCLinEcore.g:10875:1: ( rule__OperationCS__QualifiersAssignment_0_1_0 )
-            // InternalOCLinEcore.g:10875:2: rule__OperationCS__QualifiersAssignment_0_1_0
+            // InternalOCLinEcore.g:10887:1: ( rule__OperationCS__QualifiersAssignment_0_1_0 )
+            // InternalOCLinEcore.g:10887:2: rule__OperationCS__QualifiersAssignment_0_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__QualifiersAssignment_0_1_0();
@@ -34587,14 +34655,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_0_1__1"
-    // InternalOCLinEcore.g:10885:1: rule__OperationCS__Group_0_1__1 : rule__OperationCS__Group_0_1__1__Impl ;
+    // InternalOCLinEcore.g:10897:1: rule__OperationCS__Group_0_1__1 : rule__OperationCS__Group_0_1__1__Impl ;
     public final void rule__OperationCS__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10889:1: ( rule__OperationCS__Group_0_1__1__Impl )
-            // InternalOCLinEcore.g:10890:2: rule__OperationCS__Group_0_1__1__Impl
+            // InternalOCLinEcore.g:10901:1: ( rule__OperationCS__Group_0_1__1__Impl )
+            // InternalOCLinEcore.g:10902:2: rule__OperationCS__Group_0_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_0_1__1__Impl();
@@ -34620,22 +34688,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_0_1__1__Impl"
-    // InternalOCLinEcore.g:10896:1: rule__OperationCS__Group_0_1__1__Impl : ( ( rule__OperationCS__QualifiersAssignment_0_1_1 )? ) ;
+    // InternalOCLinEcore.g:10908:1: rule__OperationCS__Group_0_1__1__Impl : ( ( rule__OperationCS__QualifiersAssignment_0_1_1 )? ) ;
     public final void rule__OperationCS__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10900:1: ( ( ( rule__OperationCS__QualifiersAssignment_0_1_1 )? ) )
-            // InternalOCLinEcore.g:10901:1: ( ( rule__OperationCS__QualifiersAssignment_0_1_1 )? )
+            // InternalOCLinEcore.g:10912:1: ( ( ( rule__OperationCS__QualifiersAssignment_0_1_1 )? ) )
+            // InternalOCLinEcore.g:10913:1: ( ( rule__OperationCS__QualifiersAssignment_0_1_1 )? )
             {
-            // InternalOCLinEcore.g:10901:1: ( ( rule__OperationCS__QualifiersAssignment_0_1_1 )? )
-            // InternalOCLinEcore.g:10902:1: ( rule__OperationCS__QualifiersAssignment_0_1_1 )?
+            // InternalOCLinEcore.g:10913:1: ( ( rule__OperationCS__QualifiersAssignment_0_1_1 )? )
+            // InternalOCLinEcore.g:10914:1: ( rule__OperationCS__QualifiersAssignment_0_1_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_1_1()); 
             }
-            // InternalOCLinEcore.g:10903:1: ( rule__OperationCS__QualifiersAssignment_0_1_1 )?
+            // InternalOCLinEcore.g:10915:1: ( rule__OperationCS__QualifiersAssignment_0_1_1 )?
             int alt132=2;
             int LA132_0 = input.LA(1);
 
@@ -34644,7 +34712,7 @@
             }
             switch (alt132) {
                 case 1 :
-                    // InternalOCLinEcore.g:10903:2: rule__OperationCS__QualifiersAssignment_0_1_1
+                    // InternalOCLinEcore.g:10915:2: rule__OperationCS__QualifiersAssignment_0_1_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__QualifiersAssignment_0_1_1();
@@ -34682,14 +34750,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_5__0"
-    // InternalOCLinEcore.g:10917:1: rule__OperationCS__Group_5__0 : rule__OperationCS__Group_5__0__Impl rule__OperationCS__Group_5__1 ;
+    // InternalOCLinEcore.g:10929:1: rule__OperationCS__Group_5__0 : rule__OperationCS__Group_5__0__Impl rule__OperationCS__Group_5__1 ;
     public final void rule__OperationCS__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10921:1: ( rule__OperationCS__Group_5__0__Impl rule__OperationCS__Group_5__1 )
-            // InternalOCLinEcore.g:10922:2: rule__OperationCS__Group_5__0__Impl rule__OperationCS__Group_5__1
+            // InternalOCLinEcore.g:10933:1: ( rule__OperationCS__Group_5__0__Impl rule__OperationCS__Group_5__1 )
+            // InternalOCLinEcore.g:10934:2: rule__OperationCS__Group_5__0__Impl rule__OperationCS__Group_5__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__OperationCS__Group_5__0__Impl();
@@ -34720,23 +34788,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_5__0__Impl"
-    // InternalOCLinEcore.g:10929:1: rule__OperationCS__Group_5__0__Impl : ( ( rule__OperationCS__OwnedParametersAssignment_5_0 ) ) ;
+    // InternalOCLinEcore.g:10941:1: rule__OperationCS__Group_5__0__Impl : ( ( rule__OperationCS__OwnedParametersAssignment_5_0 ) ) ;
     public final void rule__OperationCS__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10933:1: ( ( ( rule__OperationCS__OwnedParametersAssignment_5_0 ) ) )
-            // InternalOCLinEcore.g:10934:1: ( ( rule__OperationCS__OwnedParametersAssignment_5_0 ) )
+            // InternalOCLinEcore.g:10945:1: ( ( ( rule__OperationCS__OwnedParametersAssignment_5_0 ) ) )
+            // InternalOCLinEcore.g:10946:1: ( ( rule__OperationCS__OwnedParametersAssignment_5_0 ) )
             {
-            // InternalOCLinEcore.g:10934:1: ( ( rule__OperationCS__OwnedParametersAssignment_5_0 ) )
-            // InternalOCLinEcore.g:10935:1: ( rule__OperationCS__OwnedParametersAssignment_5_0 )
+            // InternalOCLinEcore.g:10946:1: ( ( rule__OperationCS__OwnedParametersAssignment_5_0 ) )
+            // InternalOCLinEcore.g:10947:1: ( rule__OperationCS__OwnedParametersAssignment_5_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedParametersAssignment_5_0()); 
             }
-            // InternalOCLinEcore.g:10936:1: ( rule__OperationCS__OwnedParametersAssignment_5_0 )
-            // InternalOCLinEcore.g:10936:2: rule__OperationCS__OwnedParametersAssignment_5_0
+            // InternalOCLinEcore.g:10948:1: ( rule__OperationCS__OwnedParametersAssignment_5_0 )
+            // InternalOCLinEcore.g:10948:2: rule__OperationCS__OwnedParametersAssignment_5_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__OwnedParametersAssignment_5_0();
@@ -34771,14 +34839,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_5__1"
-    // InternalOCLinEcore.g:10946:1: rule__OperationCS__Group_5__1 : rule__OperationCS__Group_5__1__Impl ;
+    // InternalOCLinEcore.g:10958:1: rule__OperationCS__Group_5__1 : rule__OperationCS__Group_5__1__Impl ;
     public final void rule__OperationCS__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10950:1: ( rule__OperationCS__Group_5__1__Impl )
-            // InternalOCLinEcore.g:10951:2: rule__OperationCS__Group_5__1__Impl
+            // InternalOCLinEcore.g:10962:1: ( rule__OperationCS__Group_5__1__Impl )
+            // InternalOCLinEcore.g:10963:2: rule__OperationCS__Group_5__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_5__1__Impl();
@@ -34804,22 +34872,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_5__1__Impl"
-    // InternalOCLinEcore.g:10957:1: rule__OperationCS__Group_5__1__Impl : ( ( rule__OperationCS__Group_5_1__0 )* ) ;
+    // InternalOCLinEcore.g:10969:1: rule__OperationCS__Group_5__1__Impl : ( ( rule__OperationCS__Group_5_1__0 )* ) ;
     public final void rule__OperationCS__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10961:1: ( ( ( rule__OperationCS__Group_5_1__0 )* ) )
-            // InternalOCLinEcore.g:10962:1: ( ( rule__OperationCS__Group_5_1__0 )* )
+            // InternalOCLinEcore.g:10973:1: ( ( ( rule__OperationCS__Group_5_1__0 )* ) )
+            // InternalOCLinEcore.g:10974:1: ( ( rule__OperationCS__Group_5_1__0 )* )
             {
-            // InternalOCLinEcore.g:10962:1: ( ( rule__OperationCS__Group_5_1__0 )* )
-            // InternalOCLinEcore.g:10963:1: ( rule__OperationCS__Group_5_1__0 )*
+            // InternalOCLinEcore.g:10974:1: ( ( rule__OperationCS__Group_5_1__0 )* )
+            // InternalOCLinEcore.g:10975:1: ( rule__OperationCS__Group_5_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getGroup_5_1()); 
             }
-            // InternalOCLinEcore.g:10964:1: ( rule__OperationCS__Group_5_1__0 )*
+            // InternalOCLinEcore.g:10976:1: ( rule__OperationCS__Group_5_1__0 )*
             loop133:
             do {
                 int alt133=2;
@@ -34832,7 +34900,7 @@
 
                 switch (alt133) {
             	case 1 :
-            	    // InternalOCLinEcore.g:10964:2: rule__OperationCS__Group_5_1__0
+            	    // InternalOCLinEcore.g:10976:2: rule__OperationCS__Group_5_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__OperationCS__Group_5_1__0();
@@ -34873,14 +34941,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_5_1__0"
-    // InternalOCLinEcore.g:10978:1: rule__OperationCS__Group_5_1__0 : rule__OperationCS__Group_5_1__0__Impl rule__OperationCS__Group_5_1__1 ;
+    // InternalOCLinEcore.g:10990:1: rule__OperationCS__Group_5_1__0 : rule__OperationCS__Group_5_1__0__Impl rule__OperationCS__Group_5_1__1 ;
     public final void rule__OperationCS__Group_5_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10982:1: ( rule__OperationCS__Group_5_1__0__Impl rule__OperationCS__Group_5_1__1 )
-            // InternalOCLinEcore.g:10983:2: rule__OperationCS__Group_5_1__0__Impl rule__OperationCS__Group_5_1__1
+            // InternalOCLinEcore.g:10994:1: ( rule__OperationCS__Group_5_1__0__Impl rule__OperationCS__Group_5_1__1 )
+            // InternalOCLinEcore.g:10995:2: rule__OperationCS__Group_5_1__0__Impl rule__OperationCS__Group_5_1__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__OperationCS__Group_5_1__0__Impl();
@@ -34911,17 +34979,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_5_1__0__Impl"
-    // InternalOCLinEcore.g:10990:1: rule__OperationCS__Group_5_1__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:11002:1: rule__OperationCS__Group_5_1__0__Impl : ( ',' ) ;
     public final void rule__OperationCS__Group_5_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:10994:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:10995:1: ( ',' )
+            // InternalOCLinEcore.g:11006:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:11007:1: ( ',' )
             {
-            // InternalOCLinEcore.g:10995:1: ( ',' )
-            // InternalOCLinEcore.g:10996:1: ','
+            // InternalOCLinEcore.g:11007:1: ( ',' )
+            // InternalOCLinEcore.g:11008:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getCommaKeyword_5_1_0()); 
@@ -34952,14 +35020,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_5_1__1"
-    // InternalOCLinEcore.g:11009:1: rule__OperationCS__Group_5_1__1 : rule__OperationCS__Group_5_1__1__Impl ;
+    // InternalOCLinEcore.g:11021:1: rule__OperationCS__Group_5_1__1 : rule__OperationCS__Group_5_1__1__Impl ;
     public final void rule__OperationCS__Group_5_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11013:1: ( rule__OperationCS__Group_5_1__1__Impl )
-            // InternalOCLinEcore.g:11014:2: rule__OperationCS__Group_5_1__1__Impl
+            // InternalOCLinEcore.g:11025:1: ( rule__OperationCS__Group_5_1__1__Impl )
+            // InternalOCLinEcore.g:11026:2: rule__OperationCS__Group_5_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_5_1__1__Impl();
@@ -34985,23 +35053,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_5_1__1__Impl"
-    // InternalOCLinEcore.g:11020:1: rule__OperationCS__Group_5_1__1__Impl : ( ( rule__OperationCS__OwnedParametersAssignment_5_1_1 ) ) ;
+    // InternalOCLinEcore.g:11032:1: rule__OperationCS__Group_5_1__1__Impl : ( ( rule__OperationCS__OwnedParametersAssignment_5_1_1 ) ) ;
     public final void rule__OperationCS__Group_5_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11024:1: ( ( ( rule__OperationCS__OwnedParametersAssignment_5_1_1 ) ) )
-            // InternalOCLinEcore.g:11025:1: ( ( rule__OperationCS__OwnedParametersAssignment_5_1_1 ) )
+            // InternalOCLinEcore.g:11036:1: ( ( ( rule__OperationCS__OwnedParametersAssignment_5_1_1 ) ) )
+            // InternalOCLinEcore.g:11037:1: ( ( rule__OperationCS__OwnedParametersAssignment_5_1_1 ) )
             {
-            // InternalOCLinEcore.g:11025:1: ( ( rule__OperationCS__OwnedParametersAssignment_5_1_1 ) )
-            // InternalOCLinEcore.g:11026:1: ( rule__OperationCS__OwnedParametersAssignment_5_1_1 )
+            // InternalOCLinEcore.g:11037:1: ( ( rule__OperationCS__OwnedParametersAssignment_5_1_1 ) )
+            // InternalOCLinEcore.g:11038:1: ( rule__OperationCS__OwnedParametersAssignment_5_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedParametersAssignment_5_1_1()); 
             }
-            // InternalOCLinEcore.g:11027:1: ( rule__OperationCS__OwnedParametersAssignment_5_1_1 )
-            // InternalOCLinEcore.g:11027:2: rule__OperationCS__OwnedParametersAssignment_5_1_1
+            // InternalOCLinEcore.g:11039:1: ( rule__OperationCS__OwnedParametersAssignment_5_1_1 )
+            // InternalOCLinEcore.g:11039:2: rule__OperationCS__OwnedParametersAssignment_5_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__OwnedParametersAssignment_5_1_1();
@@ -35036,14 +35104,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_7__0"
-    // InternalOCLinEcore.g:11041:1: rule__OperationCS__Group_7__0 : rule__OperationCS__Group_7__0__Impl rule__OperationCS__Group_7__1 ;
+    // InternalOCLinEcore.g:11053:1: rule__OperationCS__Group_7__0 : rule__OperationCS__Group_7__0__Impl rule__OperationCS__Group_7__1 ;
     public final void rule__OperationCS__Group_7__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11045:1: ( rule__OperationCS__Group_7__0__Impl rule__OperationCS__Group_7__1 )
-            // InternalOCLinEcore.g:11046:2: rule__OperationCS__Group_7__0__Impl rule__OperationCS__Group_7__1
+            // InternalOCLinEcore.g:11057:1: ( rule__OperationCS__Group_7__0__Impl rule__OperationCS__Group_7__1 )
+            // InternalOCLinEcore.g:11058:2: rule__OperationCS__Group_7__0__Impl rule__OperationCS__Group_7__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__OperationCS__Group_7__0__Impl();
@@ -35074,17 +35142,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_7__0__Impl"
-    // InternalOCLinEcore.g:11053:1: rule__OperationCS__Group_7__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:11065:1: rule__OperationCS__Group_7__0__Impl : ( ':' ) ;
     public final void rule__OperationCS__Group_7__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11057:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:11058:1: ( ':' )
+            // InternalOCLinEcore.g:11069:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:11070:1: ( ':' )
             {
-            // InternalOCLinEcore.g:11058:1: ( ':' )
-            // InternalOCLinEcore.g:11059:1: ':'
+            // InternalOCLinEcore.g:11070:1: ( ':' )
+            // InternalOCLinEcore.g:11071:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getColonKeyword_7_0()); 
@@ -35115,14 +35183,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_7__1"
-    // InternalOCLinEcore.g:11072:1: rule__OperationCS__Group_7__1 : rule__OperationCS__Group_7__1__Impl ;
+    // InternalOCLinEcore.g:11084:1: rule__OperationCS__Group_7__1 : rule__OperationCS__Group_7__1__Impl ;
     public final void rule__OperationCS__Group_7__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11076:1: ( rule__OperationCS__Group_7__1__Impl )
-            // InternalOCLinEcore.g:11077:2: rule__OperationCS__Group_7__1__Impl
+            // InternalOCLinEcore.g:11088:1: ( rule__OperationCS__Group_7__1__Impl )
+            // InternalOCLinEcore.g:11089:2: rule__OperationCS__Group_7__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_7__1__Impl();
@@ -35148,23 +35216,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_7__1__Impl"
-    // InternalOCLinEcore.g:11083:1: rule__OperationCS__Group_7__1__Impl : ( ( rule__OperationCS__OwnedTypeAssignment_7_1 ) ) ;
+    // InternalOCLinEcore.g:11095:1: rule__OperationCS__Group_7__1__Impl : ( ( rule__OperationCS__OwnedTypeAssignment_7_1 ) ) ;
     public final void rule__OperationCS__Group_7__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11087:1: ( ( ( rule__OperationCS__OwnedTypeAssignment_7_1 ) ) )
-            // InternalOCLinEcore.g:11088:1: ( ( rule__OperationCS__OwnedTypeAssignment_7_1 ) )
+            // InternalOCLinEcore.g:11099:1: ( ( ( rule__OperationCS__OwnedTypeAssignment_7_1 ) ) )
+            // InternalOCLinEcore.g:11100:1: ( ( rule__OperationCS__OwnedTypeAssignment_7_1 ) )
             {
-            // InternalOCLinEcore.g:11088:1: ( ( rule__OperationCS__OwnedTypeAssignment_7_1 ) )
-            // InternalOCLinEcore.g:11089:1: ( rule__OperationCS__OwnedTypeAssignment_7_1 )
+            // InternalOCLinEcore.g:11100:1: ( ( rule__OperationCS__OwnedTypeAssignment_7_1 ) )
+            // InternalOCLinEcore.g:11101:1: ( rule__OperationCS__OwnedTypeAssignment_7_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedTypeAssignment_7_1()); 
             }
-            // InternalOCLinEcore.g:11090:1: ( rule__OperationCS__OwnedTypeAssignment_7_1 )
-            // InternalOCLinEcore.g:11090:2: rule__OperationCS__OwnedTypeAssignment_7_1
+            // InternalOCLinEcore.g:11102:1: ( rule__OperationCS__OwnedTypeAssignment_7_1 )
+            // InternalOCLinEcore.g:11102:2: rule__OperationCS__OwnedTypeAssignment_7_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__OwnedTypeAssignment_7_1();
@@ -35199,14 +35267,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8__0"
-    // InternalOCLinEcore.g:11104:1: rule__OperationCS__Group_8__0 : rule__OperationCS__Group_8__0__Impl rule__OperationCS__Group_8__1 ;
+    // InternalOCLinEcore.g:11116:1: rule__OperationCS__Group_8__0 : rule__OperationCS__Group_8__0__Impl rule__OperationCS__Group_8__1 ;
     public final void rule__OperationCS__Group_8__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11108:1: ( rule__OperationCS__Group_8__0__Impl rule__OperationCS__Group_8__1 )
-            // InternalOCLinEcore.g:11109:2: rule__OperationCS__Group_8__0__Impl rule__OperationCS__Group_8__1
+            // InternalOCLinEcore.g:11120:1: ( rule__OperationCS__Group_8__0__Impl rule__OperationCS__Group_8__1 )
+            // InternalOCLinEcore.g:11121:2: rule__OperationCS__Group_8__0__Impl rule__OperationCS__Group_8__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__OperationCS__Group_8__0__Impl();
@@ -35237,17 +35305,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8__0__Impl"
-    // InternalOCLinEcore.g:11116:1: rule__OperationCS__Group_8__0__Impl : ( 'throws' ) ;
+    // InternalOCLinEcore.g:11128:1: rule__OperationCS__Group_8__0__Impl : ( 'throws' ) ;
     public final void rule__OperationCS__Group_8__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11120:1: ( ( 'throws' ) )
-            // InternalOCLinEcore.g:11121:1: ( 'throws' )
+            // InternalOCLinEcore.g:11132:1: ( ( 'throws' ) )
+            // InternalOCLinEcore.g:11133:1: ( 'throws' )
             {
-            // InternalOCLinEcore.g:11121:1: ( 'throws' )
-            // InternalOCLinEcore.g:11122:1: 'throws'
+            // InternalOCLinEcore.g:11133:1: ( 'throws' )
+            // InternalOCLinEcore.g:11134:1: 'throws'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getThrowsKeyword_8_0()); 
@@ -35278,14 +35346,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8__1"
-    // InternalOCLinEcore.g:11135:1: rule__OperationCS__Group_8__1 : rule__OperationCS__Group_8__1__Impl rule__OperationCS__Group_8__2 ;
+    // InternalOCLinEcore.g:11147:1: rule__OperationCS__Group_8__1 : rule__OperationCS__Group_8__1__Impl rule__OperationCS__Group_8__2 ;
     public final void rule__OperationCS__Group_8__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11139:1: ( rule__OperationCS__Group_8__1__Impl rule__OperationCS__Group_8__2 )
-            // InternalOCLinEcore.g:11140:2: rule__OperationCS__Group_8__1__Impl rule__OperationCS__Group_8__2
+            // InternalOCLinEcore.g:11151:1: ( rule__OperationCS__Group_8__1__Impl rule__OperationCS__Group_8__2 )
+            // InternalOCLinEcore.g:11152:2: rule__OperationCS__Group_8__1__Impl rule__OperationCS__Group_8__2
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__OperationCS__Group_8__1__Impl();
@@ -35316,23 +35384,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8__1__Impl"
-    // InternalOCLinEcore.g:11147:1: rule__OperationCS__Group_8__1__Impl : ( ( rule__OperationCS__OwnedExceptionsAssignment_8_1 ) ) ;
+    // InternalOCLinEcore.g:11159:1: rule__OperationCS__Group_8__1__Impl : ( ( rule__OperationCS__OwnedExceptionsAssignment_8_1 ) ) ;
     public final void rule__OperationCS__Group_8__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11151:1: ( ( ( rule__OperationCS__OwnedExceptionsAssignment_8_1 ) ) )
-            // InternalOCLinEcore.g:11152:1: ( ( rule__OperationCS__OwnedExceptionsAssignment_8_1 ) )
+            // InternalOCLinEcore.g:11163:1: ( ( ( rule__OperationCS__OwnedExceptionsAssignment_8_1 ) ) )
+            // InternalOCLinEcore.g:11164:1: ( ( rule__OperationCS__OwnedExceptionsAssignment_8_1 ) )
             {
-            // InternalOCLinEcore.g:11152:1: ( ( rule__OperationCS__OwnedExceptionsAssignment_8_1 ) )
-            // InternalOCLinEcore.g:11153:1: ( rule__OperationCS__OwnedExceptionsAssignment_8_1 )
+            // InternalOCLinEcore.g:11164:1: ( ( rule__OperationCS__OwnedExceptionsAssignment_8_1 ) )
+            // InternalOCLinEcore.g:11165:1: ( rule__OperationCS__OwnedExceptionsAssignment_8_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedExceptionsAssignment_8_1()); 
             }
-            // InternalOCLinEcore.g:11154:1: ( rule__OperationCS__OwnedExceptionsAssignment_8_1 )
-            // InternalOCLinEcore.g:11154:2: rule__OperationCS__OwnedExceptionsAssignment_8_1
+            // InternalOCLinEcore.g:11166:1: ( rule__OperationCS__OwnedExceptionsAssignment_8_1 )
+            // InternalOCLinEcore.g:11166:2: rule__OperationCS__OwnedExceptionsAssignment_8_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__OwnedExceptionsAssignment_8_1();
@@ -35367,14 +35435,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8__2"
-    // InternalOCLinEcore.g:11164:1: rule__OperationCS__Group_8__2 : rule__OperationCS__Group_8__2__Impl ;
+    // InternalOCLinEcore.g:11176:1: rule__OperationCS__Group_8__2 : rule__OperationCS__Group_8__2__Impl ;
     public final void rule__OperationCS__Group_8__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11168:1: ( rule__OperationCS__Group_8__2__Impl )
-            // InternalOCLinEcore.g:11169:2: rule__OperationCS__Group_8__2__Impl
+            // InternalOCLinEcore.g:11180:1: ( rule__OperationCS__Group_8__2__Impl )
+            // InternalOCLinEcore.g:11181:2: rule__OperationCS__Group_8__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_8__2__Impl();
@@ -35400,22 +35468,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8__2__Impl"
-    // InternalOCLinEcore.g:11175:1: rule__OperationCS__Group_8__2__Impl : ( ( rule__OperationCS__Group_8_2__0 )* ) ;
+    // InternalOCLinEcore.g:11187:1: rule__OperationCS__Group_8__2__Impl : ( ( rule__OperationCS__Group_8_2__0 )* ) ;
     public final void rule__OperationCS__Group_8__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11179:1: ( ( ( rule__OperationCS__Group_8_2__0 )* ) )
-            // InternalOCLinEcore.g:11180:1: ( ( rule__OperationCS__Group_8_2__0 )* )
+            // InternalOCLinEcore.g:11191:1: ( ( ( rule__OperationCS__Group_8_2__0 )* ) )
+            // InternalOCLinEcore.g:11192:1: ( ( rule__OperationCS__Group_8_2__0 )* )
             {
-            // InternalOCLinEcore.g:11180:1: ( ( rule__OperationCS__Group_8_2__0 )* )
-            // InternalOCLinEcore.g:11181:1: ( rule__OperationCS__Group_8_2__0 )*
+            // InternalOCLinEcore.g:11192:1: ( ( rule__OperationCS__Group_8_2__0 )* )
+            // InternalOCLinEcore.g:11193:1: ( rule__OperationCS__Group_8_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getGroup_8_2()); 
             }
-            // InternalOCLinEcore.g:11182:1: ( rule__OperationCS__Group_8_2__0 )*
+            // InternalOCLinEcore.g:11194:1: ( rule__OperationCS__Group_8_2__0 )*
             loop134:
             do {
                 int alt134=2;
@@ -35428,7 +35496,7 @@
 
                 switch (alt134) {
             	case 1 :
-            	    // InternalOCLinEcore.g:11182:2: rule__OperationCS__Group_8_2__0
+            	    // InternalOCLinEcore.g:11194:2: rule__OperationCS__Group_8_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__OperationCS__Group_8_2__0();
@@ -35469,14 +35537,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8_2__0"
-    // InternalOCLinEcore.g:11198:1: rule__OperationCS__Group_8_2__0 : rule__OperationCS__Group_8_2__0__Impl rule__OperationCS__Group_8_2__1 ;
+    // InternalOCLinEcore.g:11210:1: rule__OperationCS__Group_8_2__0 : rule__OperationCS__Group_8_2__0__Impl rule__OperationCS__Group_8_2__1 ;
     public final void rule__OperationCS__Group_8_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11202:1: ( rule__OperationCS__Group_8_2__0__Impl rule__OperationCS__Group_8_2__1 )
-            // InternalOCLinEcore.g:11203:2: rule__OperationCS__Group_8_2__0__Impl rule__OperationCS__Group_8_2__1
+            // InternalOCLinEcore.g:11214:1: ( rule__OperationCS__Group_8_2__0__Impl rule__OperationCS__Group_8_2__1 )
+            // InternalOCLinEcore.g:11215:2: rule__OperationCS__Group_8_2__0__Impl rule__OperationCS__Group_8_2__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__OperationCS__Group_8_2__0__Impl();
@@ -35507,17 +35575,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8_2__0__Impl"
-    // InternalOCLinEcore.g:11210:1: rule__OperationCS__Group_8_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:11222:1: rule__OperationCS__Group_8_2__0__Impl : ( ',' ) ;
     public final void rule__OperationCS__Group_8_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11214:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:11215:1: ( ',' )
+            // InternalOCLinEcore.g:11226:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:11227:1: ( ',' )
             {
-            // InternalOCLinEcore.g:11215:1: ( ',' )
-            // InternalOCLinEcore.g:11216:1: ','
+            // InternalOCLinEcore.g:11227:1: ( ',' )
+            // InternalOCLinEcore.g:11228:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getCommaKeyword_8_2_0()); 
@@ -35548,14 +35616,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8_2__1"
-    // InternalOCLinEcore.g:11229:1: rule__OperationCS__Group_8_2__1 : rule__OperationCS__Group_8_2__1__Impl ;
+    // InternalOCLinEcore.g:11241:1: rule__OperationCS__Group_8_2__1 : rule__OperationCS__Group_8_2__1__Impl ;
     public final void rule__OperationCS__Group_8_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11233:1: ( rule__OperationCS__Group_8_2__1__Impl )
-            // InternalOCLinEcore.g:11234:2: rule__OperationCS__Group_8_2__1__Impl
+            // InternalOCLinEcore.g:11245:1: ( rule__OperationCS__Group_8_2__1__Impl )
+            // InternalOCLinEcore.g:11246:2: rule__OperationCS__Group_8_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_8_2__1__Impl();
@@ -35581,23 +35649,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_8_2__1__Impl"
-    // InternalOCLinEcore.g:11240:1: rule__OperationCS__Group_8_2__1__Impl : ( ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 ) ) ;
+    // InternalOCLinEcore.g:11252:1: rule__OperationCS__Group_8_2__1__Impl : ( ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 ) ) ;
     public final void rule__OperationCS__Group_8_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11244:1: ( ( ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 ) ) )
-            // InternalOCLinEcore.g:11245:1: ( ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 ) )
+            // InternalOCLinEcore.g:11256:1: ( ( ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 ) ) )
+            // InternalOCLinEcore.g:11257:1: ( ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 ) )
             {
-            // InternalOCLinEcore.g:11245:1: ( ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 ) )
-            // InternalOCLinEcore.g:11246:1: ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 )
+            // InternalOCLinEcore.g:11257:1: ( ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 ) )
+            // InternalOCLinEcore.g:11258:1: ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedExceptionsAssignment_8_2_1()); 
             }
-            // InternalOCLinEcore.g:11247:1: ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 )
-            // InternalOCLinEcore.g:11247:2: rule__OperationCS__OwnedExceptionsAssignment_8_2_1
+            // InternalOCLinEcore.g:11259:1: ( rule__OperationCS__OwnedExceptionsAssignment_8_2_1 )
+            // InternalOCLinEcore.g:11259:2: rule__OperationCS__OwnedExceptionsAssignment_8_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__OwnedExceptionsAssignment_8_2_1();
@@ -35632,14 +35700,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9__0"
-    // InternalOCLinEcore.g:11261:1: rule__OperationCS__Group_9__0 : rule__OperationCS__Group_9__0__Impl rule__OperationCS__Group_9__1 ;
+    // InternalOCLinEcore.g:11273:1: rule__OperationCS__Group_9__0 : rule__OperationCS__Group_9__0__Impl rule__OperationCS__Group_9__1 ;
     public final void rule__OperationCS__Group_9__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11265:1: ( rule__OperationCS__Group_9__0__Impl rule__OperationCS__Group_9__1 )
-            // InternalOCLinEcore.g:11266:2: rule__OperationCS__Group_9__0__Impl rule__OperationCS__Group_9__1
+            // InternalOCLinEcore.g:11277:1: ( rule__OperationCS__Group_9__0__Impl rule__OperationCS__Group_9__1 )
+            // InternalOCLinEcore.g:11278:2: rule__OperationCS__Group_9__0__Impl rule__OperationCS__Group_9__1
             {
             pushFollow(FollowSets000.FOLLOW_58);
             rule__OperationCS__Group_9__0__Impl();
@@ -35670,17 +35738,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9__0__Impl"
-    // InternalOCLinEcore.g:11273:1: rule__OperationCS__Group_9__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:11285:1: rule__OperationCS__Group_9__0__Impl : ( '{' ) ;
     public final void rule__OperationCS__Group_9__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11277:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:11278:1: ( '{' )
+            // InternalOCLinEcore.g:11289:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:11290:1: ( '{' )
             {
-            // InternalOCLinEcore.g:11278:1: ( '{' )
-            // InternalOCLinEcore.g:11279:1: '{'
+            // InternalOCLinEcore.g:11290:1: ( '{' )
+            // InternalOCLinEcore.g:11291:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_9_0()); 
@@ -35711,14 +35779,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9__1"
-    // InternalOCLinEcore.g:11292:1: rule__OperationCS__Group_9__1 : rule__OperationCS__Group_9__1__Impl rule__OperationCS__Group_9__2 ;
+    // InternalOCLinEcore.g:11304:1: rule__OperationCS__Group_9__1 : rule__OperationCS__Group_9__1__Impl rule__OperationCS__Group_9__2 ;
     public final void rule__OperationCS__Group_9__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11296:1: ( rule__OperationCS__Group_9__1__Impl rule__OperationCS__Group_9__2 )
-            // InternalOCLinEcore.g:11297:2: rule__OperationCS__Group_9__1__Impl rule__OperationCS__Group_9__2
+            // InternalOCLinEcore.g:11308:1: ( rule__OperationCS__Group_9__1__Impl rule__OperationCS__Group_9__2 )
+            // InternalOCLinEcore.g:11309:2: rule__OperationCS__Group_9__1__Impl rule__OperationCS__Group_9__2
             {
             pushFollow(FollowSets000.FOLLOW_22);
             rule__OperationCS__Group_9__1__Impl();
@@ -35749,26 +35817,26 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9__1__Impl"
-    // InternalOCLinEcore.g:11304:1: rule__OperationCS__Group_9__1__Impl : ( ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* ) ) ;
+    // InternalOCLinEcore.g:11316:1: rule__OperationCS__Group_9__1__Impl : ( ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* ) ) ;
     public final void rule__OperationCS__Group_9__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11308:1: ( ( ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* ) ) )
-            // InternalOCLinEcore.g:11309:1: ( ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* ) )
+            // InternalOCLinEcore.g:11320:1: ( ( ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* ) ) )
+            // InternalOCLinEcore.g:11321:1: ( ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* ) )
             {
-            // InternalOCLinEcore.g:11309:1: ( ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* ) )
-            // InternalOCLinEcore.g:11310:1: ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* )
+            // InternalOCLinEcore.g:11321:1: ( ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* ) )
+            // InternalOCLinEcore.g:11322:1: ( ( rule__OperationCS__Group_9_1__0 ) ) ( ( rule__OperationCS__Group_9_1__0 )* )
             {
-            // InternalOCLinEcore.g:11310:1: ( ( rule__OperationCS__Group_9_1__0 ) )
-            // InternalOCLinEcore.g:11311:1: ( rule__OperationCS__Group_9_1__0 )
+            // InternalOCLinEcore.g:11322:1: ( ( rule__OperationCS__Group_9_1__0 ) )
+            // InternalOCLinEcore.g:11323:1: ( rule__OperationCS__Group_9_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getGroup_9_1()); 
             }
-            // InternalOCLinEcore.g:11312:1: ( rule__OperationCS__Group_9_1__0 )
-            // InternalOCLinEcore.g:11312:2: rule__OperationCS__Group_9_1__0
+            // InternalOCLinEcore.g:11324:1: ( rule__OperationCS__Group_9_1__0 )
+            // InternalOCLinEcore.g:11324:2: rule__OperationCS__Group_9_1__0
             {
             pushFollow(FollowSets000.FOLLOW_59);
             rule__OperationCS__Group_9_1__0();
@@ -35784,26 +35852,26 @@
 
             }
 
-            // InternalOCLinEcore.g:11315:1: ( ( rule__OperationCS__Group_9_1__0 )* )
-            // InternalOCLinEcore.g:11316:1: ( rule__OperationCS__Group_9_1__0 )*
+            // InternalOCLinEcore.g:11327:1: ( ( rule__OperationCS__Group_9_1__0 )* )
+            // InternalOCLinEcore.g:11328:1: ( rule__OperationCS__Group_9_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getGroup_9_1()); 
             }
-            // InternalOCLinEcore.g:11317:1: ( rule__OperationCS__Group_9_1__0 )*
+            // InternalOCLinEcore.g:11329:1: ( rule__OperationCS__Group_9_1__0 )*
             loop135:
             do {
                 int alt135=2;
                 int LA135_0 = input.LA(1);
 
-                if ( (LA135_0==26||LA135_0==37||LA135_0==49||LA135_0==122||LA135_0==124||LA135_0==127) ) {
+                if ( (LA135_0==26||LA135_0==37||(LA135_0>=48 && LA135_0<=49)||LA135_0==122||LA135_0==124||(LA135_0>=126 && LA135_0<=127)) ) {
                     alt135=1;
                 }
 
 
                 switch (alt135) {
             	case 1 :
-            	    // InternalOCLinEcore.g:11317:2: rule__OperationCS__Group_9_1__0
+            	    // InternalOCLinEcore.g:11329:2: rule__OperationCS__Group_9_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_59);
             	    rule__OperationCS__Group_9_1__0();
@@ -35847,14 +35915,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9__2"
-    // InternalOCLinEcore.g:11328:1: rule__OperationCS__Group_9__2 : rule__OperationCS__Group_9__2__Impl ;
+    // InternalOCLinEcore.g:11340:1: rule__OperationCS__Group_9__2 : rule__OperationCS__Group_9__2__Impl ;
     public final void rule__OperationCS__Group_9__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11332:1: ( rule__OperationCS__Group_9__2__Impl )
-            // InternalOCLinEcore.g:11333:2: rule__OperationCS__Group_9__2__Impl
+            // InternalOCLinEcore.g:11344:1: ( rule__OperationCS__Group_9__2__Impl )
+            // InternalOCLinEcore.g:11345:2: rule__OperationCS__Group_9__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_9__2__Impl();
@@ -35880,17 +35948,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9__2__Impl"
-    // InternalOCLinEcore.g:11339:1: rule__OperationCS__Group_9__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:11351:1: rule__OperationCS__Group_9__2__Impl : ( '}' ) ;
     public final void rule__OperationCS__Group_9__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11343:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:11344:1: ( '}' )
+            // InternalOCLinEcore.g:11355:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:11356:1: ( '}' )
             {
-            // InternalOCLinEcore.g:11344:1: ( '}' )
-            // InternalOCLinEcore.g:11345:1: '}'
+            // InternalOCLinEcore.g:11356:1: ( '}' )
+            // InternalOCLinEcore.g:11357:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2()); 
@@ -35921,14 +35989,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9_1__0"
-    // InternalOCLinEcore.g:11364:1: rule__OperationCS__Group_9_1__0 : rule__OperationCS__Group_9_1__0__Impl rule__OperationCS__Group_9_1__1 ;
+    // InternalOCLinEcore.g:11376:1: rule__OperationCS__Group_9_1__0 : rule__OperationCS__Group_9_1__0__Impl rule__OperationCS__Group_9_1__1 ;
     public final void rule__OperationCS__Group_9_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11368:1: ( rule__OperationCS__Group_9_1__0__Impl rule__OperationCS__Group_9_1__1 )
-            // InternalOCLinEcore.g:11369:2: rule__OperationCS__Group_9_1__0__Impl rule__OperationCS__Group_9_1__1
+            // InternalOCLinEcore.g:11380:1: ( rule__OperationCS__Group_9_1__0__Impl rule__OperationCS__Group_9_1__1 )
+            // InternalOCLinEcore.g:11381:2: rule__OperationCS__Group_9_1__0__Impl rule__OperationCS__Group_9_1__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__OperationCS__Group_9_1__0__Impl();
@@ -35959,23 +36027,23 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9_1__0__Impl"
-    // InternalOCLinEcore.g:11376:1: rule__OperationCS__Group_9_1__0__Impl : ( ( rule__OperationCS__Alternatives_9_1_0 ) ) ;
+    // InternalOCLinEcore.g:11388:1: rule__OperationCS__Group_9_1__0__Impl : ( ( rule__OperationCS__Alternatives_9_1_0 ) ) ;
     public final void rule__OperationCS__Group_9_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11380:1: ( ( ( rule__OperationCS__Alternatives_9_1_0 ) ) )
-            // InternalOCLinEcore.g:11381:1: ( ( rule__OperationCS__Alternatives_9_1_0 ) )
+            // InternalOCLinEcore.g:11392:1: ( ( ( rule__OperationCS__Alternatives_9_1_0 ) ) )
+            // InternalOCLinEcore.g:11393:1: ( ( rule__OperationCS__Alternatives_9_1_0 ) )
             {
-            // InternalOCLinEcore.g:11381:1: ( ( rule__OperationCS__Alternatives_9_1_0 ) )
-            // InternalOCLinEcore.g:11382:1: ( rule__OperationCS__Alternatives_9_1_0 )
+            // InternalOCLinEcore.g:11393:1: ( ( rule__OperationCS__Alternatives_9_1_0 ) )
+            // InternalOCLinEcore.g:11394:1: ( rule__OperationCS__Alternatives_9_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getAlternatives_9_1_0()); 
             }
-            // InternalOCLinEcore.g:11383:1: ( rule__OperationCS__Alternatives_9_1_0 )
-            // InternalOCLinEcore.g:11383:2: rule__OperationCS__Alternatives_9_1_0
+            // InternalOCLinEcore.g:11395:1: ( rule__OperationCS__Alternatives_9_1_0 )
+            // InternalOCLinEcore.g:11395:2: rule__OperationCS__Alternatives_9_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Alternatives_9_1_0();
@@ -36010,14 +36078,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9_1__1"
-    // InternalOCLinEcore.g:11393:1: rule__OperationCS__Group_9_1__1 : rule__OperationCS__Group_9_1__1__Impl ;
+    // InternalOCLinEcore.g:11405:1: rule__OperationCS__Group_9_1__1 : rule__OperationCS__Group_9_1__1__Impl ;
     public final void rule__OperationCS__Group_9_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11397:1: ( rule__OperationCS__Group_9_1__1__Impl )
-            // InternalOCLinEcore.g:11398:2: rule__OperationCS__Group_9_1__1__Impl
+            // InternalOCLinEcore.g:11409:1: ( rule__OperationCS__Group_9_1__1__Impl )
+            // InternalOCLinEcore.g:11410:2: rule__OperationCS__Group_9_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_9_1__1__Impl();
@@ -36043,22 +36111,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_9_1__1__Impl"
-    // InternalOCLinEcore.g:11404:1: rule__OperationCS__Group_9_1__1__Impl : ( ( ',' )? ) ;
+    // InternalOCLinEcore.g:11416:1: rule__OperationCS__Group_9_1__1__Impl : ( ( ',' )? ) ;
     public final void rule__OperationCS__Group_9_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11408:1: ( ( ( ',' )? ) )
-            // InternalOCLinEcore.g:11409:1: ( ( ',' )? )
+            // InternalOCLinEcore.g:11420:1: ( ( ( ',' )? ) )
+            // InternalOCLinEcore.g:11421:1: ( ( ',' )? )
             {
-            // InternalOCLinEcore.g:11409:1: ( ( ',' )? )
-            // InternalOCLinEcore.g:11410:1: ( ',' )?
+            // InternalOCLinEcore.g:11421:1: ( ( ',' )? )
+            // InternalOCLinEcore.g:11422:1: ( ',' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getCommaKeyword_9_1_1()); 
             }
-            // InternalOCLinEcore.g:11411:1: ( ',' )?
+            // InternalOCLinEcore.g:11423:1: ( ',' )?
             int alt136=2;
             int LA136_0 = input.LA(1);
 
@@ -36067,7 +36135,7 @@
             }
             switch (alt136) {
                 case 1 :
-                    // InternalOCLinEcore.g:11412:2: ','
+                    // InternalOCLinEcore.g:11424:2: ','
                     {
                     match(input,99,FollowSets000.FOLLOW_2); if (state.failed) return ;
 
@@ -36101,14 +36169,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0__0"
-    // InternalOCLinEcore.g:11427:1: rule__OperationCS__Group_10_0__0 : rule__OperationCS__Group_10_0__0__Impl rule__OperationCS__Group_10_0__1 ;
+    // InternalOCLinEcore.g:11439:1: rule__OperationCS__Group_10_0__0 : rule__OperationCS__Group_10_0__0__Impl rule__OperationCS__Group_10_0__1 ;
     public final void rule__OperationCS__Group_10_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11431:1: ( rule__OperationCS__Group_10_0__0__Impl rule__OperationCS__Group_10_0__1 )
-            // InternalOCLinEcore.g:11432:2: rule__OperationCS__Group_10_0__0__Impl rule__OperationCS__Group_10_0__1
+            // InternalOCLinEcore.g:11443:1: ( rule__OperationCS__Group_10_0__0__Impl rule__OperationCS__Group_10_0__1 )
+            // InternalOCLinEcore.g:11444:2: rule__OperationCS__Group_10_0__0__Impl rule__OperationCS__Group_10_0__1
             {
             pushFollow(FollowSets000.FOLLOW_60);
             rule__OperationCS__Group_10_0__0__Impl();
@@ -36139,17 +36207,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0__0__Impl"
-    // InternalOCLinEcore.g:11439:1: rule__OperationCS__Group_10_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:11451:1: rule__OperationCS__Group_10_0__0__Impl : ( '{' ) ;
     public final void rule__OperationCS__Group_10_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11443:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:11444:1: ( '{' )
+            // InternalOCLinEcore.g:11455:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:11456:1: ( '{' )
             {
-            // InternalOCLinEcore.g:11444:1: ( '{' )
-            // InternalOCLinEcore.g:11445:1: '{'
+            // InternalOCLinEcore.g:11456:1: ( '{' )
+            // InternalOCLinEcore.g:11457:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_10_0_0()); 
@@ -36180,14 +36248,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0__1"
-    // InternalOCLinEcore.g:11458:1: rule__OperationCS__Group_10_0__1 : rule__OperationCS__Group_10_0__1__Impl rule__OperationCS__Group_10_0__2 ;
+    // InternalOCLinEcore.g:11470:1: rule__OperationCS__Group_10_0__1 : rule__OperationCS__Group_10_0__1__Impl rule__OperationCS__Group_10_0__2 ;
     public final void rule__OperationCS__Group_10_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11462:1: ( rule__OperationCS__Group_10_0__1__Impl rule__OperationCS__Group_10_0__2 )
-            // InternalOCLinEcore.g:11463:2: rule__OperationCS__Group_10_0__1__Impl rule__OperationCS__Group_10_0__2
+            // InternalOCLinEcore.g:11474:1: ( rule__OperationCS__Group_10_0__1__Impl rule__OperationCS__Group_10_0__2 )
+            // InternalOCLinEcore.g:11475:2: rule__OperationCS__Group_10_0__1__Impl rule__OperationCS__Group_10_0__2
             {
             pushFollow(FollowSets000.FOLLOW_60);
             rule__OperationCS__Group_10_0__1__Impl();
@@ -36218,22 +36286,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0__1__Impl"
-    // InternalOCLinEcore.g:11470:1: rule__OperationCS__Group_10_0__1__Impl : ( ( rule__OperationCS__Alternatives_10_0_1 )* ) ;
+    // InternalOCLinEcore.g:11482:1: rule__OperationCS__Group_10_0__1__Impl : ( ( rule__OperationCS__Alternatives_10_0_1 )* ) ;
     public final void rule__OperationCS__Group_10_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11474:1: ( ( ( rule__OperationCS__Alternatives_10_0_1 )* ) )
-            // InternalOCLinEcore.g:11475:1: ( ( rule__OperationCS__Alternatives_10_0_1 )* )
+            // InternalOCLinEcore.g:11486:1: ( ( ( rule__OperationCS__Alternatives_10_0_1 )* ) )
+            // InternalOCLinEcore.g:11487:1: ( ( rule__OperationCS__Alternatives_10_0_1 )* )
             {
-            // InternalOCLinEcore.g:11475:1: ( ( rule__OperationCS__Alternatives_10_0_1 )* )
-            // InternalOCLinEcore.g:11476:1: ( rule__OperationCS__Alternatives_10_0_1 )*
+            // InternalOCLinEcore.g:11487:1: ( ( rule__OperationCS__Alternatives_10_0_1 )* )
+            // InternalOCLinEcore.g:11488:1: ( rule__OperationCS__Alternatives_10_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getAlternatives_10_0_1()); 
             }
-            // InternalOCLinEcore.g:11477:1: ( rule__OperationCS__Alternatives_10_0_1 )*
+            // InternalOCLinEcore.g:11489:1: ( rule__OperationCS__Alternatives_10_0_1 )*
             loop137:
             do {
                 int alt137=2;
@@ -36246,7 +36314,7 @@
 
                 switch (alt137) {
             	case 1 :
-            	    // InternalOCLinEcore.g:11477:2: rule__OperationCS__Alternatives_10_0_1
+            	    // InternalOCLinEcore.g:11489:2: rule__OperationCS__Alternatives_10_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_61);
             	    rule__OperationCS__Alternatives_10_0_1();
@@ -36287,14 +36355,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0__2"
-    // InternalOCLinEcore.g:11487:1: rule__OperationCS__Group_10_0__2 : rule__OperationCS__Group_10_0__2__Impl ;
+    // InternalOCLinEcore.g:11499:1: rule__OperationCS__Group_10_0__2 : rule__OperationCS__Group_10_0__2__Impl ;
     public final void rule__OperationCS__Group_10_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11491:1: ( rule__OperationCS__Group_10_0__2__Impl )
-            // InternalOCLinEcore.g:11492:2: rule__OperationCS__Group_10_0__2__Impl
+            // InternalOCLinEcore.g:11503:1: ( rule__OperationCS__Group_10_0__2__Impl )
+            // InternalOCLinEcore.g:11504:2: rule__OperationCS__Group_10_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_10_0__2__Impl();
@@ -36320,17 +36388,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0__2__Impl"
-    // InternalOCLinEcore.g:11498:1: rule__OperationCS__Group_10_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:11510:1: rule__OperationCS__Group_10_0__2__Impl : ( '}' ) ;
     public final void rule__OperationCS__Group_10_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11502:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:11503:1: ( '}' )
+            // InternalOCLinEcore.g:11514:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:11515:1: ( '}' )
             {
-            // InternalOCLinEcore.g:11503:1: ( '}' )
-            // InternalOCLinEcore.g:11504:1: '}'
+            // InternalOCLinEcore.g:11515:1: ( '}' )
+            // InternalOCLinEcore.g:11516:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_10_0_2()); 
@@ -36361,14 +36429,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__0"
-    // InternalOCLinEcore.g:11523:1: rule__OperationCS__Group_10_0_1_2__0 : rule__OperationCS__Group_10_0_1_2__0__Impl rule__OperationCS__Group_10_0_1_2__1 ;
+    // InternalOCLinEcore.g:11535:1: rule__OperationCS__Group_10_0_1_2__0 : rule__OperationCS__Group_10_0_1_2__0__Impl rule__OperationCS__Group_10_0_1_2__1 ;
     public final void rule__OperationCS__Group_10_0_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11527:1: ( rule__OperationCS__Group_10_0_1_2__0__Impl rule__OperationCS__Group_10_0_1_2__1 )
-            // InternalOCLinEcore.g:11528:2: rule__OperationCS__Group_10_0_1_2__0__Impl rule__OperationCS__Group_10_0_1_2__1
+            // InternalOCLinEcore.g:11539:1: ( rule__OperationCS__Group_10_0_1_2__0__Impl rule__OperationCS__Group_10_0_1_2__1 )
+            // InternalOCLinEcore.g:11540:2: rule__OperationCS__Group_10_0_1_2__0__Impl rule__OperationCS__Group_10_0_1_2__1
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__OperationCS__Group_10_0_1_2__0__Impl();
@@ -36399,17 +36467,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__0__Impl"
-    // InternalOCLinEcore.g:11535:1: rule__OperationCS__Group_10_0_1_2__0__Impl : ( 'body' ) ;
+    // InternalOCLinEcore.g:11547:1: rule__OperationCS__Group_10_0_1_2__0__Impl : ( 'body' ) ;
     public final void rule__OperationCS__Group_10_0_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11539:1: ( ( 'body' ) )
-            // InternalOCLinEcore.g:11540:1: ( 'body' )
+            // InternalOCLinEcore.g:11551:1: ( ( 'body' ) )
+            // InternalOCLinEcore.g:11552:1: ( 'body' )
             {
-            // InternalOCLinEcore.g:11540:1: ( 'body' )
-            // InternalOCLinEcore.g:11541:1: 'body'
+            // InternalOCLinEcore.g:11552:1: ( 'body' )
+            // InternalOCLinEcore.g:11553:1: 'body'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getBodyKeyword_10_0_1_2_0()); 
@@ -36440,14 +36508,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__1"
-    // InternalOCLinEcore.g:11554:1: rule__OperationCS__Group_10_0_1_2__1 : rule__OperationCS__Group_10_0_1_2__1__Impl rule__OperationCS__Group_10_0_1_2__2 ;
+    // InternalOCLinEcore.g:11566:1: rule__OperationCS__Group_10_0_1_2__1 : rule__OperationCS__Group_10_0_1_2__1__Impl rule__OperationCS__Group_10_0_1_2__2 ;
     public final void rule__OperationCS__Group_10_0_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11558:1: ( rule__OperationCS__Group_10_0_1_2__1__Impl rule__OperationCS__Group_10_0_1_2__2 )
-            // InternalOCLinEcore.g:11559:2: rule__OperationCS__Group_10_0_1_2__1__Impl rule__OperationCS__Group_10_0_1_2__2
+            // InternalOCLinEcore.g:11570:1: ( rule__OperationCS__Group_10_0_1_2__1__Impl rule__OperationCS__Group_10_0_1_2__2 )
+            // InternalOCLinEcore.g:11571:2: rule__OperationCS__Group_10_0_1_2__1__Impl rule__OperationCS__Group_10_0_1_2__2
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__OperationCS__Group_10_0_1_2__1__Impl();
@@ -36478,22 +36546,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__1__Impl"
-    // InternalOCLinEcore.g:11566:1: rule__OperationCS__Group_10_0_1_2__1__Impl : ( ( ruleUnrestrictedName )? ) ;
+    // InternalOCLinEcore.g:11578:1: rule__OperationCS__Group_10_0_1_2__1__Impl : ( ( ruleUnrestrictedName )? ) ;
     public final void rule__OperationCS__Group_10_0_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11570:1: ( ( ( ruleUnrestrictedName )? ) )
-            // InternalOCLinEcore.g:11571:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:11582:1: ( ( ( ruleUnrestrictedName )? ) )
+            // InternalOCLinEcore.g:11583:1: ( ( ruleUnrestrictedName )? )
             {
-            // InternalOCLinEcore.g:11571:1: ( ( ruleUnrestrictedName )? )
-            // InternalOCLinEcore.g:11572:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:11583:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:11584:1: ( ruleUnrestrictedName )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getUnrestrictedNameParserRuleCall_10_0_1_2_1()); 
             }
-            // InternalOCLinEcore.g:11573:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:11585:1: ( ruleUnrestrictedName )?
             int alt138=2;
             int LA138_0 = input.LA(1);
 
@@ -36502,7 +36570,7 @@
             }
             switch (alt138) {
                 case 1 :
-                    // InternalOCLinEcore.g:11573:3: ruleUnrestrictedName
+                    // InternalOCLinEcore.g:11585:3: ruleUnrestrictedName
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     ruleUnrestrictedName();
@@ -36540,14 +36608,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__2"
-    // InternalOCLinEcore.g:11583:1: rule__OperationCS__Group_10_0_1_2__2 : rule__OperationCS__Group_10_0_1_2__2__Impl rule__OperationCS__Group_10_0_1_2__3 ;
+    // InternalOCLinEcore.g:11595:1: rule__OperationCS__Group_10_0_1_2__2 : rule__OperationCS__Group_10_0_1_2__2__Impl rule__OperationCS__Group_10_0_1_2__3 ;
     public final void rule__OperationCS__Group_10_0_1_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11587:1: ( rule__OperationCS__Group_10_0_1_2__2__Impl rule__OperationCS__Group_10_0_1_2__3 )
-            // InternalOCLinEcore.g:11588:2: rule__OperationCS__Group_10_0_1_2__2__Impl rule__OperationCS__Group_10_0_1_2__3
+            // InternalOCLinEcore.g:11599:1: ( rule__OperationCS__Group_10_0_1_2__2__Impl rule__OperationCS__Group_10_0_1_2__3 )
+            // InternalOCLinEcore.g:11600:2: rule__OperationCS__Group_10_0_1_2__2__Impl rule__OperationCS__Group_10_0_1_2__3
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__OperationCS__Group_10_0_1_2__2__Impl();
@@ -36578,17 +36646,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__2__Impl"
-    // InternalOCLinEcore.g:11595:1: rule__OperationCS__Group_10_0_1_2__2__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:11607:1: rule__OperationCS__Group_10_0_1_2__2__Impl : ( ':' ) ;
     public final void rule__OperationCS__Group_10_0_1_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11599:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:11600:1: ( ':' )
+            // InternalOCLinEcore.g:11611:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:11612:1: ( ':' )
             {
-            // InternalOCLinEcore.g:11600:1: ( ':' )
-            // InternalOCLinEcore.g:11601:1: ':'
+            // InternalOCLinEcore.g:11612:1: ( ':' )
+            // InternalOCLinEcore.g:11613:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getColonKeyword_10_0_1_2_2()); 
@@ -36619,14 +36687,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__3"
-    // InternalOCLinEcore.g:11614:1: rule__OperationCS__Group_10_0_1_2__3 : rule__OperationCS__Group_10_0_1_2__3__Impl rule__OperationCS__Group_10_0_1_2__4 ;
+    // InternalOCLinEcore.g:11626:1: rule__OperationCS__Group_10_0_1_2__3 : rule__OperationCS__Group_10_0_1_2__3__Impl rule__OperationCS__Group_10_0_1_2__4 ;
     public final void rule__OperationCS__Group_10_0_1_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11618:1: ( rule__OperationCS__Group_10_0_1_2__3__Impl rule__OperationCS__Group_10_0_1_2__4 )
-            // InternalOCLinEcore.g:11619:2: rule__OperationCS__Group_10_0_1_2__3__Impl rule__OperationCS__Group_10_0_1_2__4
+            // InternalOCLinEcore.g:11630:1: ( rule__OperationCS__Group_10_0_1_2__3__Impl rule__OperationCS__Group_10_0_1_2__4 )
+            // InternalOCLinEcore.g:11631:2: rule__OperationCS__Group_10_0_1_2__3__Impl rule__OperationCS__Group_10_0_1_2__4
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__OperationCS__Group_10_0_1_2__3__Impl();
@@ -36657,22 +36725,22 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__3__Impl"
-    // InternalOCLinEcore.g:11626:1: rule__OperationCS__Group_10_0_1_2__3__Impl : ( ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )? ) ;
+    // InternalOCLinEcore.g:11638:1: rule__OperationCS__Group_10_0_1_2__3__Impl : ( ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )? ) ;
     public final void rule__OperationCS__Group_10_0_1_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11630:1: ( ( ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )? ) )
-            // InternalOCLinEcore.g:11631:1: ( ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )? )
+            // InternalOCLinEcore.g:11642:1: ( ( ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )? ) )
+            // InternalOCLinEcore.g:11643:1: ( ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )? )
             {
-            // InternalOCLinEcore.g:11631:1: ( ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )? )
-            // InternalOCLinEcore.g:11632:1: ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )?
+            // InternalOCLinEcore.g:11643:1: ( ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )? )
+            // InternalOCLinEcore.g:11644:1: ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedBodyExpressionsAssignment_10_0_1_2_3()); 
             }
-            // InternalOCLinEcore.g:11633:1: ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )?
+            // InternalOCLinEcore.g:11645:1: ( rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 )?
             int alt139=2;
             int LA139_0 = input.LA(1);
 
@@ -36681,7 +36749,7 @@
             }
             switch (alt139) {
                 case 1 :
-                    // InternalOCLinEcore.g:11633:2: rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3
+                    // InternalOCLinEcore.g:11645:2: rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3();
@@ -36719,14 +36787,14 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__4"
-    // InternalOCLinEcore.g:11643:1: rule__OperationCS__Group_10_0_1_2__4 : rule__OperationCS__Group_10_0_1_2__4__Impl ;
+    // InternalOCLinEcore.g:11655:1: rule__OperationCS__Group_10_0_1_2__4 : rule__OperationCS__Group_10_0_1_2__4__Impl ;
     public final void rule__OperationCS__Group_10_0_1_2__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11647:1: ( rule__OperationCS__Group_10_0_1_2__4__Impl )
-            // InternalOCLinEcore.g:11648:2: rule__OperationCS__Group_10_0_1_2__4__Impl
+            // InternalOCLinEcore.g:11659:1: ( rule__OperationCS__Group_10_0_1_2__4__Impl )
+            // InternalOCLinEcore.g:11660:2: rule__OperationCS__Group_10_0_1_2__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__OperationCS__Group_10_0_1_2__4__Impl();
@@ -36752,17 +36820,17 @@
 
 
     // $ANTLR start "rule__OperationCS__Group_10_0_1_2__4__Impl"
-    // InternalOCLinEcore.g:11654:1: rule__OperationCS__Group_10_0_1_2__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:11666:1: rule__OperationCS__Group_10_0_1_2__4__Impl : ( ';' ) ;
     public final void rule__OperationCS__Group_10_0_1_2__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11658:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:11659:1: ( ';' )
+            // InternalOCLinEcore.g:11670:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:11671:1: ( ';' )
             {
-            // InternalOCLinEcore.g:11659:1: ( ';' )
-            // InternalOCLinEcore.g:11660:1: ';'
+            // InternalOCLinEcore.g:11671:1: ( ';' )
+            // InternalOCLinEcore.g:11672:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_0_1_2_4()); 
@@ -36793,14 +36861,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__0"
-    // InternalOCLinEcore.g:11683:1: rule__PackageCS__Group__0 : rule__PackageCS__Group__0__Impl rule__PackageCS__Group__1 ;
+    // InternalOCLinEcore.g:11695:1: rule__PackageCS__Group__0 : rule__PackageCS__Group__0__Impl rule__PackageCS__Group__1 ;
     public final void rule__PackageCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11687:1: ( rule__PackageCS__Group__0__Impl rule__PackageCS__Group__1 )
-            // InternalOCLinEcore.g:11688:2: rule__PackageCS__Group__0__Impl rule__PackageCS__Group__1
+            // InternalOCLinEcore.g:11699:1: ( rule__PackageCS__Group__0__Impl rule__PackageCS__Group__1 )
+            // InternalOCLinEcore.g:11700:2: rule__PackageCS__Group__0__Impl rule__PackageCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__PackageCS__Group__0__Impl();
@@ -36831,17 +36899,17 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__0__Impl"
-    // InternalOCLinEcore.g:11695:1: rule__PackageCS__Group__0__Impl : ( 'package' ) ;
+    // InternalOCLinEcore.g:11707:1: rule__PackageCS__Group__0__Impl : ( 'package' ) ;
     public final void rule__PackageCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11699:1: ( ( 'package' ) )
-            // InternalOCLinEcore.g:11700:1: ( 'package' )
+            // InternalOCLinEcore.g:11711:1: ( ( 'package' ) )
+            // InternalOCLinEcore.g:11712:1: ( 'package' )
             {
-            // InternalOCLinEcore.g:11700:1: ( 'package' )
-            // InternalOCLinEcore.g:11701:1: 'package'
+            // InternalOCLinEcore.g:11712:1: ( 'package' )
+            // InternalOCLinEcore.g:11713:1: 'package'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getPackageKeyword_0()); 
@@ -36872,14 +36940,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__1"
-    // InternalOCLinEcore.g:11714:1: rule__PackageCS__Group__1 : rule__PackageCS__Group__1__Impl rule__PackageCS__Group__2 ;
+    // InternalOCLinEcore.g:11726:1: rule__PackageCS__Group__1 : rule__PackageCS__Group__1__Impl rule__PackageCS__Group__2 ;
     public final void rule__PackageCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11718:1: ( rule__PackageCS__Group__1__Impl rule__PackageCS__Group__2 )
-            // InternalOCLinEcore.g:11719:2: rule__PackageCS__Group__1__Impl rule__PackageCS__Group__2
+            // InternalOCLinEcore.g:11730:1: ( rule__PackageCS__Group__1__Impl rule__PackageCS__Group__2 )
+            // InternalOCLinEcore.g:11731:2: rule__PackageCS__Group__1__Impl rule__PackageCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_25);
             rule__PackageCS__Group__1__Impl();
@@ -36910,23 +36978,23 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__1__Impl"
-    // InternalOCLinEcore.g:11726:1: rule__PackageCS__Group__1__Impl : ( ( rule__PackageCS__NameAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:11738:1: rule__PackageCS__Group__1__Impl : ( ( rule__PackageCS__NameAssignment_1 ) ) ;
     public final void rule__PackageCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11730:1: ( ( ( rule__PackageCS__NameAssignment_1 ) ) )
-            // InternalOCLinEcore.g:11731:1: ( ( rule__PackageCS__NameAssignment_1 ) )
+            // InternalOCLinEcore.g:11742:1: ( ( ( rule__PackageCS__NameAssignment_1 ) ) )
+            // InternalOCLinEcore.g:11743:1: ( ( rule__PackageCS__NameAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:11731:1: ( ( rule__PackageCS__NameAssignment_1 ) )
-            // InternalOCLinEcore.g:11732:1: ( rule__PackageCS__NameAssignment_1 )
+            // InternalOCLinEcore.g:11743:1: ( ( rule__PackageCS__NameAssignment_1 ) )
+            // InternalOCLinEcore.g:11744:1: ( rule__PackageCS__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getNameAssignment_1()); 
             }
-            // InternalOCLinEcore.g:11733:1: ( rule__PackageCS__NameAssignment_1 )
-            // InternalOCLinEcore.g:11733:2: rule__PackageCS__NameAssignment_1
+            // InternalOCLinEcore.g:11745:1: ( rule__PackageCS__NameAssignment_1 )
+            // InternalOCLinEcore.g:11745:2: rule__PackageCS__NameAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PackageCS__NameAssignment_1();
@@ -36961,14 +37029,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__2"
-    // InternalOCLinEcore.g:11743:1: rule__PackageCS__Group__2 : rule__PackageCS__Group__2__Impl rule__PackageCS__Group__3 ;
+    // InternalOCLinEcore.g:11755:1: rule__PackageCS__Group__2 : rule__PackageCS__Group__2__Impl rule__PackageCS__Group__3 ;
     public final void rule__PackageCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11747:1: ( rule__PackageCS__Group__2__Impl rule__PackageCS__Group__3 )
-            // InternalOCLinEcore.g:11748:2: rule__PackageCS__Group__2__Impl rule__PackageCS__Group__3
+            // InternalOCLinEcore.g:11759:1: ( rule__PackageCS__Group__2__Impl rule__PackageCS__Group__3 )
+            // InternalOCLinEcore.g:11760:2: rule__PackageCS__Group__2__Impl rule__PackageCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_25);
             rule__PackageCS__Group__2__Impl();
@@ -36999,22 +37067,22 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__2__Impl"
-    // InternalOCLinEcore.g:11755:1: rule__PackageCS__Group__2__Impl : ( ( rule__PackageCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:11767:1: rule__PackageCS__Group__2__Impl : ( ( rule__PackageCS__Group_2__0 )? ) ;
     public final void rule__PackageCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11759:1: ( ( ( rule__PackageCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:11760:1: ( ( rule__PackageCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:11771:1: ( ( ( rule__PackageCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:11772:1: ( ( rule__PackageCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:11760:1: ( ( rule__PackageCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:11761:1: ( rule__PackageCS__Group_2__0 )?
+            // InternalOCLinEcore.g:11772:1: ( ( rule__PackageCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:11773:1: ( rule__PackageCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:11762:1: ( rule__PackageCS__Group_2__0 )?
+            // InternalOCLinEcore.g:11774:1: ( rule__PackageCS__Group_2__0 )?
             int alt140=2;
             int LA140_0 = input.LA(1);
 
@@ -37023,7 +37091,7 @@
             }
             switch (alt140) {
                 case 1 :
-                    // InternalOCLinEcore.g:11762:2: rule__PackageCS__Group_2__0
+                    // InternalOCLinEcore.g:11774:2: rule__PackageCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PackageCS__Group_2__0();
@@ -37061,14 +37129,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__3"
-    // InternalOCLinEcore.g:11772:1: rule__PackageCS__Group__3 : rule__PackageCS__Group__3__Impl rule__PackageCS__Group__4 ;
+    // InternalOCLinEcore.g:11784:1: rule__PackageCS__Group__3 : rule__PackageCS__Group__3__Impl rule__PackageCS__Group__4 ;
     public final void rule__PackageCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11776:1: ( rule__PackageCS__Group__3__Impl rule__PackageCS__Group__4 )
-            // InternalOCLinEcore.g:11777:2: rule__PackageCS__Group__3__Impl rule__PackageCS__Group__4
+            // InternalOCLinEcore.g:11788:1: ( rule__PackageCS__Group__3__Impl rule__PackageCS__Group__4 )
+            // InternalOCLinEcore.g:11789:2: rule__PackageCS__Group__3__Impl rule__PackageCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_25);
             rule__PackageCS__Group__3__Impl();
@@ -37099,22 +37167,22 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__3__Impl"
-    // InternalOCLinEcore.g:11784:1: rule__PackageCS__Group__3__Impl : ( ( rule__PackageCS__Group_3__0 )? ) ;
+    // InternalOCLinEcore.g:11796:1: rule__PackageCS__Group__3__Impl : ( ( rule__PackageCS__Group_3__0 )? ) ;
     public final void rule__PackageCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11788:1: ( ( ( rule__PackageCS__Group_3__0 )? ) )
-            // InternalOCLinEcore.g:11789:1: ( ( rule__PackageCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:11800:1: ( ( ( rule__PackageCS__Group_3__0 )? ) )
+            // InternalOCLinEcore.g:11801:1: ( ( rule__PackageCS__Group_3__0 )? )
             {
-            // InternalOCLinEcore.g:11789:1: ( ( rule__PackageCS__Group_3__0 )? )
-            // InternalOCLinEcore.g:11790:1: ( rule__PackageCS__Group_3__0 )?
+            // InternalOCLinEcore.g:11801:1: ( ( rule__PackageCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:11802:1: ( rule__PackageCS__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getGroup_3()); 
             }
-            // InternalOCLinEcore.g:11791:1: ( rule__PackageCS__Group_3__0 )?
+            // InternalOCLinEcore.g:11803:1: ( rule__PackageCS__Group_3__0 )?
             int alt141=2;
             int LA141_0 = input.LA(1);
 
@@ -37123,7 +37191,7 @@
             }
             switch (alt141) {
                 case 1 :
-                    // InternalOCLinEcore.g:11791:2: rule__PackageCS__Group_3__0
+                    // InternalOCLinEcore.g:11803:2: rule__PackageCS__Group_3__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PackageCS__Group_3__0();
@@ -37161,14 +37229,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__4"
-    // InternalOCLinEcore.g:11801:1: rule__PackageCS__Group__4 : rule__PackageCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:11813:1: rule__PackageCS__Group__4 : rule__PackageCS__Group__4__Impl ;
     public final void rule__PackageCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11805:1: ( rule__PackageCS__Group__4__Impl )
-            // InternalOCLinEcore.g:11806:2: rule__PackageCS__Group__4__Impl
+            // InternalOCLinEcore.g:11817:1: ( rule__PackageCS__Group__4__Impl )
+            // InternalOCLinEcore.g:11818:2: rule__PackageCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PackageCS__Group__4__Impl();
@@ -37194,23 +37262,23 @@
 
 
     // $ANTLR start "rule__PackageCS__Group__4__Impl"
-    // InternalOCLinEcore.g:11812:1: rule__PackageCS__Group__4__Impl : ( ( rule__PackageCS__Alternatives_4 ) ) ;
+    // InternalOCLinEcore.g:11824:1: rule__PackageCS__Group__4__Impl : ( ( rule__PackageCS__Alternatives_4 ) ) ;
     public final void rule__PackageCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11816:1: ( ( ( rule__PackageCS__Alternatives_4 ) ) )
-            // InternalOCLinEcore.g:11817:1: ( ( rule__PackageCS__Alternatives_4 ) )
+            // InternalOCLinEcore.g:11828:1: ( ( ( rule__PackageCS__Alternatives_4 ) ) )
+            // InternalOCLinEcore.g:11829:1: ( ( rule__PackageCS__Alternatives_4 ) )
             {
-            // InternalOCLinEcore.g:11817:1: ( ( rule__PackageCS__Alternatives_4 ) )
-            // InternalOCLinEcore.g:11818:1: ( rule__PackageCS__Alternatives_4 )
+            // InternalOCLinEcore.g:11829:1: ( ( rule__PackageCS__Alternatives_4 ) )
+            // InternalOCLinEcore.g:11830:1: ( rule__PackageCS__Alternatives_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getAlternatives_4()); 
             }
-            // InternalOCLinEcore.g:11819:1: ( rule__PackageCS__Alternatives_4 )
-            // InternalOCLinEcore.g:11819:2: rule__PackageCS__Alternatives_4
+            // InternalOCLinEcore.g:11831:1: ( rule__PackageCS__Alternatives_4 )
+            // InternalOCLinEcore.g:11831:2: rule__PackageCS__Alternatives_4
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PackageCS__Alternatives_4();
@@ -37245,14 +37313,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_2__0"
-    // InternalOCLinEcore.g:11839:1: rule__PackageCS__Group_2__0 : rule__PackageCS__Group_2__0__Impl rule__PackageCS__Group_2__1 ;
+    // InternalOCLinEcore.g:11851:1: rule__PackageCS__Group_2__0 : rule__PackageCS__Group_2__0__Impl rule__PackageCS__Group_2__1 ;
     public final void rule__PackageCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11843:1: ( rule__PackageCS__Group_2__0__Impl rule__PackageCS__Group_2__1 )
-            // InternalOCLinEcore.g:11844:2: rule__PackageCS__Group_2__0__Impl rule__PackageCS__Group_2__1
+            // InternalOCLinEcore.g:11855:1: ( rule__PackageCS__Group_2__0__Impl rule__PackageCS__Group_2__1 )
+            // InternalOCLinEcore.g:11856:2: rule__PackageCS__Group_2__0__Impl rule__PackageCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__PackageCS__Group_2__0__Impl();
@@ -37283,17 +37351,17 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:11851:1: rule__PackageCS__Group_2__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:11863:1: rule__PackageCS__Group_2__0__Impl : ( ':' ) ;
     public final void rule__PackageCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11855:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:11856:1: ( ':' )
+            // InternalOCLinEcore.g:11867:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:11868:1: ( ':' )
             {
-            // InternalOCLinEcore.g:11856:1: ( ':' )
-            // InternalOCLinEcore.g:11857:1: ':'
+            // InternalOCLinEcore.g:11868:1: ( ':' )
+            // InternalOCLinEcore.g:11869:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getColonKeyword_2_0()); 
@@ -37324,14 +37392,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_2__1"
-    // InternalOCLinEcore.g:11870:1: rule__PackageCS__Group_2__1 : rule__PackageCS__Group_2__1__Impl ;
+    // InternalOCLinEcore.g:11882:1: rule__PackageCS__Group_2__1 : rule__PackageCS__Group_2__1__Impl ;
     public final void rule__PackageCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11874:1: ( rule__PackageCS__Group_2__1__Impl )
-            // InternalOCLinEcore.g:11875:2: rule__PackageCS__Group_2__1__Impl
+            // InternalOCLinEcore.g:11886:1: ( rule__PackageCS__Group_2__1__Impl )
+            // InternalOCLinEcore.g:11887:2: rule__PackageCS__Group_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PackageCS__Group_2__1__Impl();
@@ -37357,23 +37425,23 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:11881:1: rule__PackageCS__Group_2__1__Impl : ( ( rule__PackageCS__NsPrefixAssignment_2_1 ) ) ;
+    // InternalOCLinEcore.g:11893:1: rule__PackageCS__Group_2__1__Impl : ( ( rule__PackageCS__NsPrefixAssignment_2_1 ) ) ;
     public final void rule__PackageCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11885:1: ( ( ( rule__PackageCS__NsPrefixAssignment_2_1 ) ) )
-            // InternalOCLinEcore.g:11886:1: ( ( rule__PackageCS__NsPrefixAssignment_2_1 ) )
+            // InternalOCLinEcore.g:11897:1: ( ( ( rule__PackageCS__NsPrefixAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:11898:1: ( ( rule__PackageCS__NsPrefixAssignment_2_1 ) )
             {
-            // InternalOCLinEcore.g:11886:1: ( ( rule__PackageCS__NsPrefixAssignment_2_1 ) )
-            // InternalOCLinEcore.g:11887:1: ( rule__PackageCS__NsPrefixAssignment_2_1 )
+            // InternalOCLinEcore.g:11898:1: ( ( rule__PackageCS__NsPrefixAssignment_2_1 ) )
+            // InternalOCLinEcore.g:11899:1: ( rule__PackageCS__NsPrefixAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getNsPrefixAssignment_2_1()); 
             }
-            // InternalOCLinEcore.g:11888:1: ( rule__PackageCS__NsPrefixAssignment_2_1 )
-            // InternalOCLinEcore.g:11888:2: rule__PackageCS__NsPrefixAssignment_2_1
+            // InternalOCLinEcore.g:11900:1: ( rule__PackageCS__NsPrefixAssignment_2_1 )
+            // InternalOCLinEcore.g:11900:2: rule__PackageCS__NsPrefixAssignment_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PackageCS__NsPrefixAssignment_2_1();
@@ -37408,14 +37476,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_3__0"
-    // InternalOCLinEcore.g:11902:1: rule__PackageCS__Group_3__0 : rule__PackageCS__Group_3__0__Impl rule__PackageCS__Group_3__1 ;
+    // InternalOCLinEcore.g:11914:1: rule__PackageCS__Group_3__0 : rule__PackageCS__Group_3__0__Impl rule__PackageCS__Group_3__1 ;
     public final void rule__PackageCS__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11906:1: ( rule__PackageCS__Group_3__0__Impl rule__PackageCS__Group_3__1 )
-            // InternalOCLinEcore.g:11907:2: rule__PackageCS__Group_3__0__Impl rule__PackageCS__Group_3__1
+            // InternalOCLinEcore.g:11918:1: ( rule__PackageCS__Group_3__0__Impl rule__PackageCS__Group_3__1 )
+            // InternalOCLinEcore.g:11919:2: rule__PackageCS__Group_3__0__Impl rule__PackageCS__Group_3__1
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__PackageCS__Group_3__0__Impl();
@@ -37446,17 +37514,17 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_3__0__Impl"
-    // InternalOCLinEcore.g:11914:1: rule__PackageCS__Group_3__0__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:11926:1: rule__PackageCS__Group_3__0__Impl : ( '=' ) ;
     public final void rule__PackageCS__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11918:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:11919:1: ( '=' )
+            // InternalOCLinEcore.g:11930:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:11931:1: ( '=' )
             {
-            // InternalOCLinEcore.g:11919:1: ( '=' )
-            // InternalOCLinEcore.g:11920:1: '='
+            // InternalOCLinEcore.g:11931:1: ( '=' )
+            // InternalOCLinEcore.g:11932:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getEqualsSignKeyword_3_0()); 
@@ -37487,14 +37555,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_3__1"
-    // InternalOCLinEcore.g:11933:1: rule__PackageCS__Group_3__1 : rule__PackageCS__Group_3__1__Impl ;
+    // InternalOCLinEcore.g:11945:1: rule__PackageCS__Group_3__1 : rule__PackageCS__Group_3__1__Impl ;
     public final void rule__PackageCS__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11937:1: ( rule__PackageCS__Group_3__1__Impl )
-            // InternalOCLinEcore.g:11938:2: rule__PackageCS__Group_3__1__Impl
+            // InternalOCLinEcore.g:11949:1: ( rule__PackageCS__Group_3__1__Impl )
+            // InternalOCLinEcore.g:11950:2: rule__PackageCS__Group_3__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PackageCS__Group_3__1__Impl();
@@ -37520,23 +37588,23 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_3__1__Impl"
-    // InternalOCLinEcore.g:11944:1: rule__PackageCS__Group_3__1__Impl : ( ( rule__PackageCS__NsURIAssignment_3_1 ) ) ;
+    // InternalOCLinEcore.g:11956:1: rule__PackageCS__Group_3__1__Impl : ( ( rule__PackageCS__NsURIAssignment_3_1 ) ) ;
     public final void rule__PackageCS__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11948:1: ( ( ( rule__PackageCS__NsURIAssignment_3_1 ) ) )
-            // InternalOCLinEcore.g:11949:1: ( ( rule__PackageCS__NsURIAssignment_3_1 ) )
+            // InternalOCLinEcore.g:11960:1: ( ( ( rule__PackageCS__NsURIAssignment_3_1 ) ) )
+            // InternalOCLinEcore.g:11961:1: ( ( rule__PackageCS__NsURIAssignment_3_1 ) )
             {
-            // InternalOCLinEcore.g:11949:1: ( ( rule__PackageCS__NsURIAssignment_3_1 ) )
-            // InternalOCLinEcore.g:11950:1: ( rule__PackageCS__NsURIAssignment_3_1 )
+            // InternalOCLinEcore.g:11961:1: ( ( rule__PackageCS__NsURIAssignment_3_1 ) )
+            // InternalOCLinEcore.g:11962:1: ( rule__PackageCS__NsURIAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getNsURIAssignment_3_1()); 
             }
-            // InternalOCLinEcore.g:11951:1: ( rule__PackageCS__NsURIAssignment_3_1 )
-            // InternalOCLinEcore.g:11951:2: rule__PackageCS__NsURIAssignment_3_1
+            // InternalOCLinEcore.g:11963:1: ( rule__PackageCS__NsURIAssignment_3_1 )
+            // InternalOCLinEcore.g:11963:2: rule__PackageCS__NsURIAssignment_3_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PackageCS__NsURIAssignment_3_1();
@@ -37571,14 +37639,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_4_0__0"
-    // InternalOCLinEcore.g:11965:1: rule__PackageCS__Group_4_0__0 : rule__PackageCS__Group_4_0__0__Impl rule__PackageCS__Group_4_0__1 ;
+    // InternalOCLinEcore.g:11977:1: rule__PackageCS__Group_4_0__0 : rule__PackageCS__Group_4_0__0__Impl rule__PackageCS__Group_4_0__1 ;
     public final void rule__PackageCS__Group_4_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11969:1: ( rule__PackageCS__Group_4_0__0__Impl rule__PackageCS__Group_4_0__1 )
-            // InternalOCLinEcore.g:11970:2: rule__PackageCS__Group_4_0__0__Impl rule__PackageCS__Group_4_0__1
+            // InternalOCLinEcore.g:11981:1: ( rule__PackageCS__Group_4_0__0__Impl rule__PackageCS__Group_4_0__1 )
+            // InternalOCLinEcore.g:11982:2: rule__PackageCS__Group_4_0__0__Impl rule__PackageCS__Group_4_0__1
             {
             pushFollow(FollowSets000.FOLLOW_62);
             rule__PackageCS__Group_4_0__0__Impl();
@@ -37609,17 +37677,17 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_4_0__0__Impl"
-    // InternalOCLinEcore.g:11977:1: rule__PackageCS__Group_4_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:11989:1: rule__PackageCS__Group_4_0__0__Impl : ( '{' ) ;
     public final void rule__PackageCS__Group_4_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:11981:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:11982:1: ( '{' )
+            // InternalOCLinEcore.g:11993:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:11994:1: ( '{' )
             {
-            // InternalOCLinEcore.g:11982:1: ( '{' )
-            // InternalOCLinEcore.g:11983:1: '{'
+            // InternalOCLinEcore.g:11994:1: ( '{' )
+            // InternalOCLinEcore.g:11995:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getLeftCurlyBracketKeyword_4_0_0()); 
@@ -37650,14 +37718,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_4_0__1"
-    // InternalOCLinEcore.g:11996:1: rule__PackageCS__Group_4_0__1 : rule__PackageCS__Group_4_0__1__Impl rule__PackageCS__Group_4_0__2 ;
+    // InternalOCLinEcore.g:12008:1: rule__PackageCS__Group_4_0__1 : rule__PackageCS__Group_4_0__1__Impl rule__PackageCS__Group_4_0__2 ;
     public final void rule__PackageCS__Group_4_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12000:1: ( rule__PackageCS__Group_4_0__1__Impl rule__PackageCS__Group_4_0__2 )
-            // InternalOCLinEcore.g:12001:2: rule__PackageCS__Group_4_0__1__Impl rule__PackageCS__Group_4_0__2
+            // InternalOCLinEcore.g:12012:1: ( rule__PackageCS__Group_4_0__1__Impl rule__PackageCS__Group_4_0__2 )
+            // InternalOCLinEcore.g:12013:2: rule__PackageCS__Group_4_0__1__Impl rule__PackageCS__Group_4_0__2
             {
             pushFollow(FollowSets000.FOLLOW_62);
             rule__PackageCS__Group_4_0__1__Impl();
@@ -37688,22 +37756,22 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_4_0__1__Impl"
-    // InternalOCLinEcore.g:12008:1: rule__PackageCS__Group_4_0__1__Impl : ( ( rule__PackageCS__Alternatives_4_0_1 )* ) ;
+    // InternalOCLinEcore.g:12020:1: rule__PackageCS__Group_4_0__1__Impl : ( ( rule__PackageCS__Alternatives_4_0_1 )* ) ;
     public final void rule__PackageCS__Group_4_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12012:1: ( ( ( rule__PackageCS__Alternatives_4_0_1 )* ) )
-            // InternalOCLinEcore.g:12013:1: ( ( rule__PackageCS__Alternatives_4_0_1 )* )
+            // InternalOCLinEcore.g:12024:1: ( ( ( rule__PackageCS__Alternatives_4_0_1 )* ) )
+            // InternalOCLinEcore.g:12025:1: ( ( rule__PackageCS__Alternatives_4_0_1 )* )
             {
-            // InternalOCLinEcore.g:12013:1: ( ( rule__PackageCS__Alternatives_4_0_1 )* )
-            // InternalOCLinEcore.g:12014:1: ( rule__PackageCS__Alternatives_4_0_1 )*
+            // InternalOCLinEcore.g:12025:1: ( ( rule__PackageCS__Alternatives_4_0_1 )* )
+            // InternalOCLinEcore.g:12026:1: ( rule__PackageCS__Alternatives_4_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getAlternatives_4_0_1()); 
             }
-            // InternalOCLinEcore.g:12015:1: ( rule__PackageCS__Alternatives_4_0_1 )*
+            // InternalOCLinEcore.g:12027:1: ( rule__PackageCS__Alternatives_4_0_1 )*
             loop142:
             do {
                 int alt142=2;
@@ -37716,7 +37784,7 @@
 
                 switch (alt142) {
             	case 1 :
-            	    // InternalOCLinEcore.g:12015:2: rule__PackageCS__Alternatives_4_0_1
+            	    // InternalOCLinEcore.g:12027:2: rule__PackageCS__Alternatives_4_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_63);
             	    rule__PackageCS__Alternatives_4_0_1();
@@ -37757,14 +37825,14 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_4_0__2"
-    // InternalOCLinEcore.g:12025:1: rule__PackageCS__Group_4_0__2 : rule__PackageCS__Group_4_0__2__Impl ;
+    // InternalOCLinEcore.g:12037:1: rule__PackageCS__Group_4_0__2 : rule__PackageCS__Group_4_0__2__Impl ;
     public final void rule__PackageCS__Group_4_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12029:1: ( rule__PackageCS__Group_4_0__2__Impl )
-            // InternalOCLinEcore.g:12030:2: rule__PackageCS__Group_4_0__2__Impl
+            // InternalOCLinEcore.g:12041:1: ( rule__PackageCS__Group_4_0__2__Impl )
+            // InternalOCLinEcore.g:12042:2: rule__PackageCS__Group_4_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PackageCS__Group_4_0__2__Impl();
@@ -37790,17 +37858,17 @@
 
 
     // $ANTLR start "rule__PackageCS__Group_4_0__2__Impl"
-    // InternalOCLinEcore.g:12036:1: rule__PackageCS__Group_4_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:12048:1: rule__PackageCS__Group_4_0__2__Impl : ( '}' ) ;
     public final void rule__PackageCS__Group_4_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12040:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:12041:1: ( '}' )
+            // InternalOCLinEcore.g:12052:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:12053:1: ( '}' )
             {
-            // InternalOCLinEcore.g:12041:1: ( '}' )
-            // InternalOCLinEcore.g:12042:1: '}'
+            // InternalOCLinEcore.g:12053:1: ( '}' )
+            // InternalOCLinEcore.g:12054:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getRightCurlyBracketKeyword_4_0_2()); 
@@ -37831,14 +37899,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group__0"
-    // InternalOCLinEcore.g:12061:1: rule__ParameterCS__Group__0 : rule__ParameterCS__Group__0__Impl rule__ParameterCS__Group__1 ;
+    // InternalOCLinEcore.g:12073:1: rule__ParameterCS__Group__0 : rule__ParameterCS__Group__0__Impl rule__ParameterCS__Group__1 ;
     public final void rule__ParameterCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12065:1: ( rule__ParameterCS__Group__0__Impl rule__ParameterCS__Group__1 )
-            // InternalOCLinEcore.g:12066:2: rule__ParameterCS__Group__0__Impl rule__ParameterCS__Group__1
+            // InternalOCLinEcore.g:12077:1: ( rule__ParameterCS__Group__0__Impl rule__ParameterCS__Group__1 )
+            // InternalOCLinEcore.g:12078:2: rule__ParameterCS__Group__0__Impl rule__ParameterCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_64);
             rule__ParameterCS__Group__0__Impl();
@@ -37869,23 +37937,23 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group__0__Impl"
-    // InternalOCLinEcore.g:12073:1: rule__ParameterCS__Group__0__Impl : ( ( rule__ParameterCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:12085:1: rule__ParameterCS__Group__0__Impl : ( ( rule__ParameterCS__NameAssignment_0 ) ) ;
     public final void rule__ParameterCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12077:1: ( ( ( rule__ParameterCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:12078:1: ( ( rule__ParameterCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:12089:1: ( ( ( rule__ParameterCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:12090:1: ( ( rule__ParameterCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:12078:1: ( ( rule__ParameterCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:12079:1: ( rule__ParameterCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:12090:1: ( ( rule__ParameterCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:12091:1: ( rule__ParameterCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:12080:1: ( rule__ParameterCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:12080:2: rule__ParameterCS__NameAssignment_0
+            // InternalOCLinEcore.g:12092:1: ( rule__ParameterCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:12092:2: rule__ParameterCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ParameterCS__NameAssignment_0();
@@ -37920,14 +37988,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group__1"
-    // InternalOCLinEcore.g:12090:1: rule__ParameterCS__Group__1 : rule__ParameterCS__Group__1__Impl rule__ParameterCS__Group__2 ;
+    // InternalOCLinEcore.g:12102:1: rule__ParameterCS__Group__1 : rule__ParameterCS__Group__1__Impl rule__ParameterCS__Group__2 ;
     public final void rule__ParameterCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12094:1: ( rule__ParameterCS__Group__1__Impl rule__ParameterCS__Group__2 )
-            // InternalOCLinEcore.g:12095:2: rule__ParameterCS__Group__1__Impl rule__ParameterCS__Group__2
+            // InternalOCLinEcore.g:12106:1: ( rule__ParameterCS__Group__1__Impl rule__ParameterCS__Group__2 )
+            // InternalOCLinEcore.g:12107:2: rule__ParameterCS__Group__1__Impl rule__ParameterCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_64);
             rule__ParameterCS__Group__1__Impl();
@@ -37958,22 +38026,22 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group__1__Impl"
-    // InternalOCLinEcore.g:12102:1: rule__ParameterCS__Group__1__Impl : ( ( rule__ParameterCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:12114:1: rule__ParameterCS__Group__1__Impl : ( ( rule__ParameterCS__Group_1__0 )? ) ;
     public final void rule__ParameterCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12106:1: ( ( ( rule__ParameterCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:12107:1: ( ( rule__ParameterCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:12118:1: ( ( ( rule__ParameterCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:12119:1: ( ( rule__ParameterCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:12107:1: ( ( rule__ParameterCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:12108:1: ( rule__ParameterCS__Group_1__0 )?
+            // InternalOCLinEcore.g:12119:1: ( ( rule__ParameterCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:12120:1: ( rule__ParameterCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:12109:1: ( rule__ParameterCS__Group_1__0 )?
+            // InternalOCLinEcore.g:12121:1: ( rule__ParameterCS__Group_1__0 )?
             int alt143=2;
             int LA143_0 = input.LA(1);
 
@@ -37982,7 +38050,7 @@
             }
             switch (alt143) {
                 case 1 :
-                    // InternalOCLinEcore.g:12109:2: rule__ParameterCS__Group_1__0
+                    // InternalOCLinEcore.g:12121:2: rule__ParameterCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ParameterCS__Group_1__0();
@@ -38020,14 +38088,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group__2"
-    // InternalOCLinEcore.g:12119:1: rule__ParameterCS__Group__2 : rule__ParameterCS__Group__2__Impl rule__ParameterCS__Group__3 ;
+    // InternalOCLinEcore.g:12131:1: rule__ParameterCS__Group__2 : rule__ParameterCS__Group__2__Impl rule__ParameterCS__Group__3 ;
     public final void rule__ParameterCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12123:1: ( rule__ParameterCS__Group__2__Impl rule__ParameterCS__Group__3 )
-            // InternalOCLinEcore.g:12124:2: rule__ParameterCS__Group__2__Impl rule__ParameterCS__Group__3
+            // InternalOCLinEcore.g:12135:1: ( rule__ParameterCS__Group__2__Impl rule__ParameterCS__Group__3 )
+            // InternalOCLinEcore.g:12136:2: rule__ParameterCS__Group__2__Impl rule__ParameterCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_64);
             rule__ParameterCS__Group__2__Impl();
@@ -38058,22 +38126,22 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group__2__Impl"
-    // InternalOCLinEcore.g:12131:1: rule__ParameterCS__Group__2__Impl : ( ( rule__ParameterCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:12143:1: rule__ParameterCS__Group__2__Impl : ( ( rule__ParameterCS__Group_2__0 )? ) ;
     public final void rule__ParameterCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12135:1: ( ( ( rule__ParameterCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:12136:1: ( ( rule__ParameterCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:12147:1: ( ( ( rule__ParameterCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:12148:1: ( ( rule__ParameterCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:12136:1: ( ( rule__ParameterCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:12137:1: ( rule__ParameterCS__Group_2__0 )?
+            // InternalOCLinEcore.g:12148:1: ( ( rule__ParameterCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:12149:1: ( rule__ParameterCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:12138:1: ( rule__ParameterCS__Group_2__0 )?
+            // InternalOCLinEcore.g:12150:1: ( rule__ParameterCS__Group_2__0 )?
             int alt144=2;
             int LA144_0 = input.LA(1);
 
@@ -38086,7 +38154,7 @@
             }
             switch (alt144) {
                 case 1 :
-                    // InternalOCLinEcore.g:12138:2: rule__ParameterCS__Group_2__0
+                    // InternalOCLinEcore.g:12150:2: rule__ParameterCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ParameterCS__Group_2__0();
@@ -38124,14 +38192,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group__3"
-    // InternalOCLinEcore.g:12148:1: rule__ParameterCS__Group__3 : rule__ParameterCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:12160:1: rule__ParameterCS__Group__3 : rule__ParameterCS__Group__3__Impl ;
     public final void rule__ParameterCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12152:1: ( rule__ParameterCS__Group__3__Impl )
-            // InternalOCLinEcore.g:12153:2: rule__ParameterCS__Group__3__Impl
+            // InternalOCLinEcore.g:12164:1: ( rule__ParameterCS__Group__3__Impl )
+            // InternalOCLinEcore.g:12165:2: rule__ParameterCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ParameterCS__Group__3__Impl();
@@ -38157,22 +38225,22 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group__3__Impl"
-    // InternalOCLinEcore.g:12159:1: rule__ParameterCS__Group__3__Impl : ( ( rule__ParameterCS__Group_3__0 )? ) ;
+    // InternalOCLinEcore.g:12171:1: rule__ParameterCS__Group__3__Impl : ( ( rule__ParameterCS__Group_3__0 )? ) ;
     public final void rule__ParameterCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12163:1: ( ( ( rule__ParameterCS__Group_3__0 )? ) )
-            // InternalOCLinEcore.g:12164:1: ( ( rule__ParameterCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:12175:1: ( ( ( rule__ParameterCS__Group_3__0 )? ) )
+            // InternalOCLinEcore.g:12176:1: ( ( rule__ParameterCS__Group_3__0 )? )
             {
-            // InternalOCLinEcore.g:12164:1: ( ( rule__ParameterCS__Group_3__0 )? )
-            // InternalOCLinEcore.g:12165:1: ( rule__ParameterCS__Group_3__0 )?
+            // InternalOCLinEcore.g:12176:1: ( ( rule__ParameterCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:12177:1: ( rule__ParameterCS__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getGroup_3()); 
             }
-            // InternalOCLinEcore.g:12166:1: ( rule__ParameterCS__Group_3__0 )?
+            // InternalOCLinEcore.g:12178:1: ( rule__ParameterCS__Group_3__0 )?
             int alt145=2;
             int LA145_0 = input.LA(1);
 
@@ -38181,7 +38249,7 @@
             }
             switch (alt145) {
                 case 1 :
-                    // InternalOCLinEcore.g:12166:2: rule__ParameterCS__Group_3__0
+                    // InternalOCLinEcore.g:12178:2: rule__ParameterCS__Group_3__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ParameterCS__Group_3__0();
@@ -38219,14 +38287,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_1__0"
-    // InternalOCLinEcore.g:12184:1: rule__ParameterCS__Group_1__0 : rule__ParameterCS__Group_1__0__Impl rule__ParameterCS__Group_1__1 ;
+    // InternalOCLinEcore.g:12196:1: rule__ParameterCS__Group_1__0 : rule__ParameterCS__Group_1__0__Impl rule__ParameterCS__Group_1__1 ;
     public final void rule__ParameterCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12188:1: ( rule__ParameterCS__Group_1__0__Impl rule__ParameterCS__Group_1__1 )
-            // InternalOCLinEcore.g:12189:2: rule__ParameterCS__Group_1__0__Impl rule__ParameterCS__Group_1__1
+            // InternalOCLinEcore.g:12200:1: ( rule__ParameterCS__Group_1__0__Impl rule__ParameterCS__Group_1__1 )
+            // InternalOCLinEcore.g:12201:2: rule__ParameterCS__Group_1__0__Impl rule__ParameterCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__ParameterCS__Group_1__0__Impl();
@@ -38257,17 +38325,17 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:12196:1: rule__ParameterCS__Group_1__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:12208:1: rule__ParameterCS__Group_1__0__Impl : ( ':' ) ;
     public final void rule__ParameterCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12200:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:12201:1: ( ':' )
+            // InternalOCLinEcore.g:12212:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:12213:1: ( ':' )
             {
-            // InternalOCLinEcore.g:12201:1: ( ':' )
-            // InternalOCLinEcore.g:12202:1: ':'
+            // InternalOCLinEcore.g:12213:1: ( ':' )
+            // InternalOCLinEcore.g:12214:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getColonKeyword_1_0()); 
@@ -38298,14 +38366,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_1__1"
-    // InternalOCLinEcore.g:12215:1: rule__ParameterCS__Group_1__1 : rule__ParameterCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:12227:1: rule__ParameterCS__Group_1__1 : rule__ParameterCS__Group_1__1__Impl ;
     public final void rule__ParameterCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12219:1: ( rule__ParameterCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:12220:2: rule__ParameterCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:12231:1: ( rule__ParameterCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:12232:2: rule__ParameterCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ParameterCS__Group_1__1__Impl();
@@ -38331,23 +38399,23 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:12226:1: rule__ParameterCS__Group_1__1__Impl : ( ( rule__ParameterCS__OwnedTypeAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:12238:1: rule__ParameterCS__Group_1__1__Impl : ( ( rule__ParameterCS__OwnedTypeAssignment_1_1 ) ) ;
     public final void rule__ParameterCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12230:1: ( ( ( rule__ParameterCS__OwnedTypeAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:12231:1: ( ( rule__ParameterCS__OwnedTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:12242:1: ( ( ( rule__ParameterCS__OwnedTypeAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:12243:1: ( ( rule__ParameterCS__OwnedTypeAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:12231:1: ( ( rule__ParameterCS__OwnedTypeAssignment_1_1 ) )
-            // InternalOCLinEcore.g:12232:1: ( rule__ParameterCS__OwnedTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:12243:1: ( ( rule__ParameterCS__OwnedTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:12244:1: ( rule__ParameterCS__OwnedTypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getOwnedTypeAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:12233:1: ( rule__ParameterCS__OwnedTypeAssignment_1_1 )
-            // InternalOCLinEcore.g:12233:2: rule__ParameterCS__OwnedTypeAssignment_1_1
+            // InternalOCLinEcore.g:12245:1: ( rule__ParameterCS__OwnedTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:12245:2: rule__ParameterCS__OwnedTypeAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ParameterCS__OwnedTypeAssignment_1_1();
@@ -38382,14 +38450,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2__0"
-    // InternalOCLinEcore.g:12247:1: rule__ParameterCS__Group_2__0 : rule__ParameterCS__Group_2__0__Impl rule__ParameterCS__Group_2__1 ;
+    // InternalOCLinEcore.g:12259:1: rule__ParameterCS__Group_2__0 : rule__ParameterCS__Group_2__0__Impl rule__ParameterCS__Group_2__1 ;
     public final void rule__ParameterCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12251:1: ( rule__ParameterCS__Group_2__0__Impl rule__ParameterCS__Group_2__1 )
-            // InternalOCLinEcore.g:12252:2: rule__ParameterCS__Group_2__0__Impl rule__ParameterCS__Group_2__1
+            // InternalOCLinEcore.g:12263:1: ( rule__ParameterCS__Group_2__0__Impl rule__ParameterCS__Group_2__1 )
+            // InternalOCLinEcore.g:12264:2: rule__ParameterCS__Group_2__0__Impl rule__ParameterCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_65);
             rule__ParameterCS__Group_2__0__Impl();
@@ -38420,17 +38488,17 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:12259:1: rule__ParameterCS__Group_2__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:12271:1: rule__ParameterCS__Group_2__0__Impl : ( '{' ) ;
     public final void rule__ParameterCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12263:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:12264:1: ( '{' )
+            // InternalOCLinEcore.g:12275:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:12276:1: ( '{' )
             {
-            // InternalOCLinEcore.g:12264:1: ( '{' )
-            // InternalOCLinEcore.g:12265:1: '{'
+            // InternalOCLinEcore.g:12276:1: ( '{' )
+            // InternalOCLinEcore.g:12277:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getLeftCurlyBracketKeyword_2_0()); 
@@ -38461,14 +38529,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2__1"
-    // InternalOCLinEcore.g:12278:1: rule__ParameterCS__Group_2__1 : rule__ParameterCS__Group_2__1__Impl rule__ParameterCS__Group_2__2 ;
+    // InternalOCLinEcore.g:12290:1: rule__ParameterCS__Group_2__1 : rule__ParameterCS__Group_2__1__Impl rule__ParameterCS__Group_2__2 ;
     public final void rule__ParameterCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12282:1: ( rule__ParameterCS__Group_2__1__Impl rule__ParameterCS__Group_2__2 )
-            // InternalOCLinEcore.g:12283:2: rule__ParameterCS__Group_2__1__Impl rule__ParameterCS__Group_2__2
+            // InternalOCLinEcore.g:12294:1: ( rule__ParameterCS__Group_2__1__Impl rule__ParameterCS__Group_2__2 )
+            // InternalOCLinEcore.g:12295:2: rule__ParameterCS__Group_2__1__Impl rule__ParameterCS__Group_2__2
             {
             pushFollow(FollowSets000.FOLLOW_22);
             rule__ParameterCS__Group_2__1__Impl();
@@ -38499,26 +38567,26 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:12290:1: rule__ParameterCS__Group_2__1__Impl : ( ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* ) ) ;
+    // InternalOCLinEcore.g:12302:1: rule__ParameterCS__Group_2__1__Impl : ( ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* ) ) ;
     public final void rule__ParameterCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12294:1: ( ( ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* ) ) )
-            // InternalOCLinEcore.g:12295:1: ( ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* ) )
+            // InternalOCLinEcore.g:12306:1: ( ( ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* ) ) )
+            // InternalOCLinEcore.g:12307:1: ( ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* ) )
             {
-            // InternalOCLinEcore.g:12295:1: ( ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* ) )
-            // InternalOCLinEcore.g:12296:1: ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* )
+            // InternalOCLinEcore.g:12307:1: ( ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* ) )
+            // InternalOCLinEcore.g:12308:1: ( ( rule__ParameterCS__Group_2_1__0 ) ) ( ( rule__ParameterCS__Group_2_1__0 )* )
             {
-            // InternalOCLinEcore.g:12296:1: ( ( rule__ParameterCS__Group_2_1__0 ) )
-            // InternalOCLinEcore.g:12297:1: ( rule__ParameterCS__Group_2_1__0 )
+            // InternalOCLinEcore.g:12308:1: ( ( rule__ParameterCS__Group_2_1__0 ) )
+            // InternalOCLinEcore.g:12309:1: ( rule__ParameterCS__Group_2_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getGroup_2_1()); 
             }
-            // InternalOCLinEcore.g:12298:1: ( rule__ParameterCS__Group_2_1__0 )
-            // InternalOCLinEcore.g:12298:2: rule__ParameterCS__Group_2_1__0
+            // InternalOCLinEcore.g:12310:1: ( rule__ParameterCS__Group_2_1__0 )
+            // InternalOCLinEcore.g:12310:2: rule__ParameterCS__Group_2_1__0
             {
             pushFollow(FollowSets000.FOLLOW_66);
             rule__ParameterCS__Group_2_1__0();
@@ -38534,13 +38602,13 @@
 
             }
 
-            // InternalOCLinEcore.g:12301:1: ( ( rule__ParameterCS__Group_2_1__0 )* )
-            // InternalOCLinEcore.g:12302:1: ( rule__ParameterCS__Group_2_1__0 )*
+            // InternalOCLinEcore.g:12313:1: ( ( rule__ParameterCS__Group_2_1__0 )* )
+            // InternalOCLinEcore.g:12314:1: ( rule__ParameterCS__Group_2_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getGroup_2_1()); 
             }
-            // InternalOCLinEcore.g:12303:1: ( rule__ParameterCS__Group_2_1__0 )*
+            // InternalOCLinEcore.g:12315:1: ( rule__ParameterCS__Group_2_1__0 )*
             loop146:
             do {
                 int alt146=2;
@@ -38553,7 +38621,7 @@
 
                 switch (alt146) {
             	case 1 :
-            	    // InternalOCLinEcore.g:12303:2: rule__ParameterCS__Group_2_1__0
+            	    // InternalOCLinEcore.g:12315:2: rule__ParameterCS__Group_2_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_66);
             	    rule__ParameterCS__Group_2_1__0();
@@ -38597,14 +38665,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2__2"
-    // InternalOCLinEcore.g:12314:1: rule__ParameterCS__Group_2__2 : rule__ParameterCS__Group_2__2__Impl ;
+    // InternalOCLinEcore.g:12326:1: rule__ParameterCS__Group_2__2 : rule__ParameterCS__Group_2__2__Impl ;
     public final void rule__ParameterCS__Group_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12318:1: ( rule__ParameterCS__Group_2__2__Impl )
-            // InternalOCLinEcore.g:12319:2: rule__ParameterCS__Group_2__2__Impl
+            // InternalOCLinEcore.g:12330:1: ( rule__ParameterCS__Group_2__2__Impl )
+            // InternalOCLinEcore.g:12331:2: rule__ParameterCS__Group_2__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ParameterCS__Group_2__2__Impl();
@@ -38630,17 +38698,17 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2__2__Impl"
-    // InternalOCLinEcore.g:12325:1: rule__ParameterCS__Group_2__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:12337:1: rule__ParameterCS__Group_2__2__Impl : ( '}' ) ;
     public final void rule__ParameterCS__Group_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12329:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:12330:1: ( '}' )
+            // InternalOCLinEcore.g:12341:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:12342:1: ( '}' )
             {
-            // InternalOCLinEcore.g:12330:1: ( '}' )
-            // InternalOCLinEcore.g:12331:1: '}'
+            // InternalOCLinEcore.g:12342:1: ( '}' )
+            // InternalOCLinEcore.g:12343:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getRightCurlyBracketKeyword_2_2()); 
@@ -38671,14 +38739,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2_1__0"
-    // InternalOCLinEcore.g:12350:1: rule__ParameterCS__Group_2_1__0 : rule__ParameterCS__Group_2_1__0__Impl rule__ParameterCS__Group_2_1__1 ;
+    // InternalOCLinEcore.g:12362:1: rule__ParameterCS__Group_2_1__0 : rule__ParameterCS__Group_2_1__0__Impl rule__ParameterCS__Group_2_1__1 ;
     public final void rule__ParameterCS__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12354:1: ( rule__ParameterCS__Group_2_1__0__Impl rule__ParameterCS__Group_2_1__1 )
-            // InternalOCLinEcore.g:12355:2: rule__ParameterCS__Group_2_1__0__Impl rule__ParameterCS__Group_2_1__1
+            // InternalOCLinEcore.g:12366:1: ( rule__ParameterCS__Group_2_1__0__Impl rule__ParameterCS__Group_2_1__1 )
+            // InternalOCLinEcore.g:12367:2: rule__ParameterCS__Group_2_1__0__Impl rule__ParameterCS__Group_2_1__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__ParameterCS__Group_2_1__0__Impl();
@@ -38709,23 +38777,23 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2_1__0__Impl"
-    // InternalOCLinEcore.g:12362:1: rule__ParameterCS__Group_2_1__0__Impl : ( ( rule__ParameterCS__Alternatives_2_1_0 ) ) ;
+    // InternalOCLinEcore.g:12374:1: rule__ParameterCS__Group_2_1__0__Impl : ( ( rule__ParameterCS__Alternatives_2_1_0 ) ) ;
     public final void rule__ParameterCS__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12366:1: ( ( ( rule__ParameterCS__Alternatives_2_1_0 ) ) )
-            // InternalOCLinEcore.g:12367:1: ( ( rule__ParameterCS__Alternatives_2_1_0 ) )
+            // InternalOCLinEcore.g:12378:1: ( ( ( rule__ParameterCS__Alternatives_2_1_0 ) ) )
+            // InternalOCLinEcore.g:12379:1: ( ( rule__ParameterCS__Alternatives_2_1_0 ) )
             {
-            // InternalOCLinEcore.g:12367:1: ( ( rule__ParameterCS__Alternatives_2_1_0 ) )
-            // InternalOCLinEcore.g:12368:1: ( rule__ParameterCS__Alternatives_2_1_0 )
+            // InternalOCLinEcore.g:12379:1: ( ( rule__ParameterCS__Alternatives_2_1_0 ) )
+            // InternalOCLinEcore.g:12380:1: ( rule__ParameterCS__Alternatives_2_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getAlternatives_2_1_0()); 
             }
-            // InternalOCLinEcore.g:12369:1: ( rule__ParameterCS__Alternatives_2_1_0 )
-            // InternalOCLinEcore.g:12369:2: rule__ParameterCS__Alternatives_2_1_0
+            // InternalOCLinEcore.g:12381:1: ( rule__ParameterCS__Alternatives_2_1_0 )
+            // InternalOCLinEcore.g:12381:2: rule__ParameterCS__Alternatives_2_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ParameterCS__Alternatives_2_1_0();
@@ -38760,14 +38828,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2_1__1"
-    // InternalOCLinEcore.g:12379:1: rule__ParameterCS__Group_2_1__1 : rule__ParameterCS__Group_2_1__1__Impl ;
+    // InternalOCLinEcore.g:12391:1: rule__ParameterCS__Group_2_1__1 : rule__ParameterCS__Group_2_1__1__Impl ;
     public final void rule__ParameterCS__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12383:1: ( rule__ParameterCS__Group_2_1__1__Impl )
-            // InternalOCLinEcore.g:12384:2: rule__ParameterCS__Group_2_1__1__Impl
+            // InternalOCLinEcore.g:12395:1: ( rule__ParameterCS__Group_2_1__1__Impl )
+            // InternalOCLinEcore.g:12396:2: rule__ParameterCS__Group_2_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ParameterCS__Group_2_1__1__Impl();
@@ -38793,22 +38861,22 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_2_1__1__Impl"
-    // InternalOCLinEcore.g:12390:1: rule__ParameterCS__Group_2_1__1__Impl : ( ( ',' )? ) ;
+    // InternalOCLinEcore.g:12402:1: rule__ParameterCS__Group_2_1__1__Impl : ( ( ',' )? ) ;
     public final void rule__ParameterCS__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12394:1: ( ( ( ',' )? ) )
-            // InternalOCLinEcore.g:12395:1: ( ( ',' )? )
+            // InternalOCLinEcore.g:12406:1: ( ( ( ',' )? ) )
+            // InternalOCLinEcore.g:12407:1: ( ( ',' )? )
             {
-            // InternalOCLinEcore.g:12395:1: ( ( ',' )? )
-            // InternalOCLinEcore.g:12396:1: ( ',' )?
+            // InternalOCLinEcore.g:12407:1: ( ( ',' )? )
+            // InternalOCLinEcore.g:12408:1: ( ',' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getCommaKeyword_2_1_1()); 
             }
-            // InternalOCLinEcore.g:12397:1: ( ',' )?
+            // InternalOCLinEcore.g:12409:1: ( ',' )?
             int alt147=2;
             int LA147_0 = input.LA(1);
 
@@ -38817,7 +38885,7 @@
             }
             switch (alt147) {
                 case 1 :
-                    // InternalOCLinEcore.g:12398:2: ','
+                    // InternalOCLinEcore.g:12410:2: ','
                     {
                     match(input,99,FollowSets000.FOLLOW_2); if (state.failed) return ;
 
@@ -38851,14 +38919,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_3__0"
-    // InternalOCLinEcore.g:12413:1: rule__ParameterCS__Group_3__0 : rule__ParameterCS__Group_3__0__Impl rule__ParameterCS__Group_3__1 ;
+    // InternalOCLinEcore.g:12425:1: rule__ParameterCS__Group_3__0 : rule__ParameterCS__Group_3__0__Impl rule__ParameterCS__Group_3__1 ;
     public final void rule__ParameterCS__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12417:1: ( rule__ParameterCS__Group_3__0__Impl rule__ParameterCS__Group_3__1 )
-            // InternalOCLinEcore.g:12418:2: rule__ParameterCS__Group_3__0__Impl rule__ParameterCS__Group_3__1
+            // InternalOCLinEcore.g:12429:1: ( rule__ParameterCS__Group_3__0__Impl rule__ParameterCS__Group_3__1 )
+            // InternalOCLinEcore.g:12430:2: rule__ParameterCS__Group_3__0__Impl rule__ParameterCS__Group_3__1
             {
             pushFollow(FollowSets000.FOLLOW_49);
             rule__ParameterCS__Group_3__0__Impl();
@@ -38889,17 +38957,17 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_3__0__Impl"
-    // InternalOCLinEcore.g:12425:1: rule__ParameterCS__Group_3__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:12437:1: rule__ParameterCS__Group_3__0__Impl : ( '{' ) ;
     public final void rule__ParameterCS__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12429:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:12430:1: ( '{' )
+            // InternalOCLinEcore.g:12441:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:12442:1: ( '{' )
             {
-            // InternalOCLinEcore.g:12430:1: ( '{' )
-            // InternalOCLinEcore.g:12431:1: '{'
+            // InternalOCLinEcore.g:12442:1: ( '{' )
+            // InternalOCLinEcore.g:12443:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getLeftCurlyBracketKeyword_3_0()); 
@@ -38930,14 +38998,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_3__1"
-    // InternalOCLinEcore.g:12444:1: rule__ParameterCS__Group_3__1 : rule__ParameterCS__Group_3__1__Impl rule__ParameterCS__Group_3__2 ;
+    // InternalOCLinEcore.g:12456:1: rule__ParameterCS__Group_3__1 : rule__ParameterCS__Group_3__1__Impl rule__ParameterCS__Group_3__2 ;
     public final void rule__ParameterCS__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12448:1: ( rule__ParameterCS__Group_3__1__Impl rule__ParameterCS__Group_3__2 )
-            // InternalOCLinEcore.g:12449:2: rule__ParameterCS__Group_3__1__Impl rule__ParameterCS__Group_3__2
+            // InternalOCLinEcore.g:12460:1: ( rule__ParameterCS__Group_3__1__Impl rule__ParameterCS__Group_3__2 )
+            // InternalOCLinEcore.g:12461:2: rule__ParameterCS__Group_3__1__Impl rule__ParameterCS__Group_3__2
             {
             pushFollow(FollowSets000.FOLLOW_49);
             rule__ParameterCS__Group_3__1__Impl();
@@ -38968,22 +39036,22 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_3__1__Impl"
-    // InternalOCLinEcore.g:12456:1: rule__ParameterCS__Group_3__1__Impl : ( ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )* ) ;
+    // InternalOCLinEcore.g:12468:1: rule__ParameterCS__Group_3__1__Impl : ( ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )* ) ;
     public final void rule__ParameterCS__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12460:1: ( ( ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )* ) )
-            // InternalOCLinEcore.g:12461:1: ( ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )* )
+            // InternalOCLinEcore.g:12472:1: ( ( ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )* ) )
+            // InternalOCLinEcore.g:12473:1: ( ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )* )
             {
-            // InternalOCLinEcore.g:12461:1: ( ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )* )
-            // InternalOCLinEcore.g:12462:1: ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )*
+            // InternalOCLinEcore.g:12473:1: ( ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )* )
+            // InternalOCLinEcore.g:12474:1: ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getOwnedAnnotationsAssignment_3_1()); 
             }
-            // InternalOCLinEcore.g:12463:1: ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )*
+            // InternalOCLinEcore.g:12475:1: ( rule__ParameterCS__OwnedAnnotationsAssignment_3_1 )*
             loop148:
             do {
                 int alt148=2;
@@ -38996,7 +39064,7 @@
 
                 switch (alt148) {
             	case 1 :
-            	    // InternalOCLinEcore.g:12463:2: rule__ParameterCS__OwnedAnnotationsAssignment_3_1
+            	    // InternalOCLinEcore.g:12475:2: rule__ParameterCS__OwnedAnnotationsAssignment_3_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_50);
             	    rule__ParameterCS__OwnedAnnotationsAssignment_3_1();
@@ -39037,14 +39105,14 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_3__2"
-    // InternalOCLinEcore.g:12473:1: rule__ParameterCS__Group_3__2 : rule__ParameterCS__Group_3__2__Impl ;
+    // InternalOCLinEcore.g:12485:1: rule__ParameterCS__Group_3__2 : rule__ParameterCS__Group_3__2__Impl ;
     public final void rule__ParameterCS__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12477:1: ( rule__ParameterCS__Group_3__2__Impl )
-            // InternalOCLinEcore.g:12478:2: rule__ParameterCS__Group_3__2__Impl
+            // InternalOCLinEcore.g:12489:1: ( rule__ParameterCS__Group_3__2__Impl )
+            // InternalOCLinEcore.g:12490:2: rule__ParameterCS__Group_3__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ParameterCS__Group_3__2__Impl();
@@ -39070,17 +39138,17 @@
 
 
     // $ANTLR start "rule__ParameterCS__Group_3__2__Impl"
-    // InternalOCLinEcore.g:12484:1: rule__ParameterCS__Group_3__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:12496:1: rule__ParameterCS__Group_3__2__Impl : ( '}' ) ;
     public final void rule__ParameterCS__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12488:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:12489:1: ( '}' )
+            // InternalOCLinEcore.g:12500:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:12501:1: ( '}' )
             {
-            // InternalOCLinEcore.g:12489:1: ( '}' )
-            // InternalOCLinEcore.g:12490:1: '}'
+            // InternalOCLinEcore.g:12501:1: ( '}' )
+            // InternalOCLinEcore.g:12502:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getRightCurlyBracketKeyword_3_2()); 
@@ -39111,14 +39179,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__0"
-    // InternalOCLinEcore.g:12509:1: rule__ReferenceCS__Group__0 : rule__ReferenceCS__Group__0__Impl rule__ReferenceCS__Group__1 ;
+    // InternalOCLinEcore.g:12521:1: rule__ReferenceCS__Group__0 : rule__ReferenceCS__Group__0__Impl rule__ReferenceCS__Group__1 ;
     public final void rule__ReferenceCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12513:1: ( rule__ReferenceCS__Group__0__Impl rule__ReferenceCS__Group__1 )
-            // InternalOCLinEcore.g:12514:2: rule__ReferenceCS__Group__0__Impl rule__ReferenceCS__Group__1
+            // InternalOCLinEcore.g:12525:1: ( rule__ReferenceCS__Group__0__Impl rule__ReferenceCS__Group__1 )
+            // InternalOCLinEcore.g:12526:2: rule__ReferenceCS__Group__0__Impl rule__ReferenceCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_67);
             rule__ReferenceCS__Group__0__Impl();
@@ -39149,22 +39217,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__0__Impl"
-    // InternalOCLinEcore.g:12521:1: rule__ReferenceCS__Group__0__Impl : ( ( rule__ReferenceCS__Alternatives_0 )? ) ;
+    // InternalOCLinEcore.g:12533:1: rule__ReferenceCS__Group__0__Impl : ( ( rule__ReferenceCS__Alternatives_0 )? ) ;
     public final void rule__ReferenceCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12525:1: ( ( ( rule__ReferenceCS__Alternatives_0 )? ) )
-            // InternalOCLinEcore.g:12526:1: ( ( rule__ReferenceCS__Alternatives_0 )? )
+            // InternalOCLinEcore.g:12537:1: ( ( ( rule__ReferenceCS__Alternatives_0 )? ) )
+            // InternalOCLinEcore.g:12538:1: ( ( rule__ReferenceCS__Alternatives_0 )? )
             {
-            // InternalOCLinEcore.g:12526:1: ( ( rule__ReferenceCS__Alternatives_0 )? )
-            // InternalOCLinEcore.g:12527:1: ( rule__ReferenceCS__Alternatives_0 )?
+            // InternalOCLinEcore.g:12538:1: ( ( rule__ReferenceCS__Alternatives_0 )? )
+            // InternalOCLinEcore.g:12539:1: ( rule__ReferenceCS__Alternatives_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getAlternatives_0()); 
             }
-            // InternalOCLinEcore.g:12528:1: ( rule__ReferenceCS__Alternatives_0 )?
+            // InternalOCLinEcore.g:12540:1: ( rule__ReferenceCS__Alternatives_0 )?
             int alt149=2;
             int LA149_0 = input.LA(1);
 
@@ -39173,7 +39241,7 @@
             }
             switch (alt149) {
                 case 1 :
-                    // InternalOCLinEcore.g:12528:2: rule__ReferenceCS__Alternatives_0
+                    // InternalOCLinEcore.g:12540:2: rule__ReferenceCS__Alternatives_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Alternatives_0();
@@ -39211,14 +39279,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__1"
-    // InternalOCLinEcore.g:12538:1: rule__ReferenceCS__Group__1 : rule__ReferenceCS__Group__1__Impl rule__ReferenceCS__Group__2 ;
+    // InternalOCLinEcore.g:12550:1: rule__ReferenceCS__Group__1 : rule__ReferenceCS__Group__1__Impl rule__ReferenceCS__Group__2 ;
     public final void rule__ReferenceCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12542:1: ( rule__ReferenceCS__Group__1__Impl rule__ReferenceCS__Group__2 )
-            // InternalOCLinEcore.g:12543:2: rule__ReferenceCS__Group__1__Impl rule__ReferenceCS__Group__2
+            // InternalOCLinEcore.g:12554:1: ( rule__ReferenceCS__Group__1__Impl rule__ReferenceCS__Group__2 )
+            // InternalOCLinEcore.g:12555:2: rule__ReferenceCS__Group__1__Impl rule__ReferenceCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__ReferenceCS__Group__1__Impl();
@@ -39249,17 +39317,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__1__Impl"
-    // InternalOCLinEcore.g:12550:1: rule__ReferenceCS__Group__1__Impl : ( 'property' ) ;
+    // InternalOCLinEcore.g:12562:1: rule__ReferenceCS__Group__1__Impl : ( 'property' ) ;
     public final void rule__ReferenceCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12554:1: ( ( 'property' ) )
-            // InternalOCLinEcore.g:12555:1: ( 'property' )
+            // InternalOCLinEcore.g:12566:1: ( ( 'property' ) )
+            // InternalOCLinEcore.g:12567:1: ( 'property' )
             {
-            // InternalOCLinEcore.g:12555:1: ( 'property' )
-            // InternalOCLinEcore.g:12556:1: 'property'
+            // InternalOCLinEcore.g:12567:1: ( 'property' )
+            // InternalOCLinEcore.g:12568:1: 'property'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getPropertyKeyword_1()); 
@@ -39290,14 +39358,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__2"
-    // InternalOCLinEcore.g:12569:1: rule__ReferenceCS__Group__2 : rule__ReferenceCS__Group__2__Impl rule__ReferenceCS__Group__3 ;
+    // InternalOCLinEcore.g:12581:1: rule__ReferenceCS__Group__2 : rule__ReferenceCS__Group__2__Impl rule__ReferenceCS__Group__3 ;
     public final void rule__ReferenceCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12573:1: ( rule__ReferenceCS__Group__2__Impl rule__ReferenceCS__Group__3 )
-            // InternalOCLinEcore.g:12574:2: rule__ReferenceCS__Group__2__Impl rule__ReferenceCS__Group__3
+            // InternalOCLinEcore.g:12585:1: ( rule__ReferenceCS__Group__2__Impl rule__ReferenceCS__Group__3 )
+            // InternalOCLinEcore.g:12586:2: rule__ReferenceCS__Group__2__Impl rule__ReferenceCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_68);
             rule__ReferenceCS__Group__2__Impl();
@@ -39328,23 +39396,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__2__Impl"
-    // InternalOCLinEcore.g:12581:1: rule__ReferenceCS__Group__2__Impl : ( ( rule__ReferenceCS__NameAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:12593:1: rule__ReferenceCS__Group__2__Impl : ( ( rule__ReferenceCS__NameAssignment_2 ) ) ;
     public final void rule__ReferenceCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12585:1: ( ( ( rule__ReferenceCS__NameAssignment_2 ) ) )
-            // InternalOCLinEcore.g:12586:1: ( ( rule__ReferenceCS__NameAssignment_2 ) )
+            // InternalOCLinEcore.g:12597:1: ( ( ( rule__ReferenceCS__NameAssignment_2 ) ) )
+            // InternalOCLinEcore.g:12598:1: ( ( rule__ReferenceCS__NameAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:12586:1: ( ( rule__ReferenceCS__NameAssignment_2 ) )
-            // InternalOCLinEcore.g:12587:1: ( rule__ReferenceCS__NameAssignment_2 )
+            // InternalOCLinEcore.g:12598:1: ( ( rule__ReferenceCS__NameAssignment_2 ) )
+            // InternalOCLinEcore.g:12599:1: ( rule__ReferenceCS__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getNameAssignment_2()); 
             }
-            // InternalOCLinEcore.g:12588:1: ( rule__ReferenceCS__NameAssignment_2 )
-            // InternalOCLinEcore.g:12588:2: rule__ReferenceCS__NameAssignment_2
+            // InternalOCLinEcore.g:12600:1: ( rule__ReferenceCS__NameAssignment_2 )
+            // InternalOCLinEcore.g:12600:2: rule__ReferenceCS__NameAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__NameAssignment_2();
@@ -39379,14 +39447,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__3"
-    // InternalOCLinEcore.g:12598:1: rule__ReferenceCS__Group__3 : rule__ReferenceCS__Group__3__Impl rule__ReferenceCS__Group__4 ;
+    // InternalOCLinEcore.g:12610:1: rule__ReferenceCS__Group__3 : rule__ReferenceCS__Group__3__Impl rule__ReferenceCS__Group__4 ;
     public final void rule__ReferenceCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12602:1: ( rule__ReferenceCS__Group__3__Impl rule__ReferenceCS__Group__4 )
-            // InternalOCLinEcore.g:12603:2: rule__ReferenceCS__Group__3__Impl rule__ReferenceCS__Group__4
+            // InternalOCLinEcore.g:12614:1: ( rule__ReferenceCS__Group__3__Impl rule__ReferenceCS__Group__4 )
+            // InternalOCLinEcore.g:12615:2: rule__ReferenceCS__Group__3__Impl rule__ReferenceCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_68);
             rule__ReferenceCS__Group__3__Impl();
@@ -39417,22 +39485,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__3__Impl"
-    // InternalOCLinEcore.g:12610:1: rule__ReferenceCS__Group__3__Impl : ( ( rule__ReferenceCS__Group_3__0 )? ) ;
+    // InternalOCLinEcore.g:12622:1: rule__ReferenceCS__Group__3__Impl : ( ( rule__ReferenceCS__Group_3__0 )? ) ;
     public final void rule__ReferenceCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12614:1: ( ( ( rule__ReferenceCS__Group_3__0 )? ) )
-            // InternalOCLinEcore.g:12615:1: ( ( rule__ReferenceCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:12626:1: ( ( ( rule__ReferenceCS__Group_3__0 )? ) )
+            // InternalOCLinEcore.g:12627:1: ( ( rule__ReferenceCS__Group_3__0 )? )
             {
-            // InternalOCLinEcore.g:12615:1: ( ( rule__ReferenceCS__Group_3__0 )? )
-            // InternalOCLinEcore.g:12616:1: ( rule__ReferenceCS__Group_3__0 )?
+            // InternalOCLinEcore.g:12627:1: ( ( rule__ReferenceCS__Group_3__0 )? )
+            // InternalOCLinEcore.g:12628:1: ( rule__ReferenceCS__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getGroup_3()); 
             }
-            // InternalOCLinEcore.g:12617:1: ( rule__ReferenceCS__Group_3__0 )?
+            // InternalOCLinEcore.g:12629:1: ( rule__ReferenceCS__Group_3__0 )?
             int alt150=2;
             int LA150_0 = input.LA(1);
 
@@ -39441,7 +39509,7 @@
             }
             switch (alt150) {
                 case 1 :
-                    // InternalOCLinEcore.g:12617:2: rule__ReferenceCS__Group_3__0
+                    // InternalOCLinEcore.g:12629:2: rule__ReferenceCS__Group_3__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_3__0();
@@ -39479,14 +39547,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__4"
-    // InternalOCLinEcore.g:12627:1: rule__ReferenceCS__Group__4 : rule__ReferenceCS__Group__4__Impl rule__ReferenceCS__Group__5 ;
+    // InternalOCLinEcore.g:12639:1: rule__ReferenceCS__Group__4 : rule__ReferenceCS__Group__4__Impl rule__ReferenceCS__Group__5 ;
     public final void rule__ReferenceCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12631:1: ( rule__ReferenceCS__Group__4__Impl rule__ReferenceCS__Group__5 )
-            // InternalOCLinEcore.g:12632:2: rule__ReferenceCS__Group__4__Impl rule__ReferenceCS__Group__5
+            // InternalOCLinEcore.g:12643:1: ( rule__ReferenceCS__Group__4__Impl rule__ReferenceCS__Group__5 )
+            // InternalOCLinEcore.g:12644:2: rule__ReferenceCS__Group__4__Impl rule__ReferenceCS__Group__5
             {
             pushFollow(FollowSets000.FOLLOW_68);
             rule__ReferenceCS__Group__4__Impl();
@@ -39517,22 +39585,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__4__Impl"
-    // InternalOCLinEcore.g:12639:1: rule__ReferenceCS__Group__4__Impl : ( ( rule__ReferenceCS__Group_4__0 )? ) ;
+    // InternalOCLinEcore.g:12651:1: rule__ReferenceCS__Group__4__Impl : ( ( rule__ReferenceCS__Group_4__0 )? ) ;
     public final void rule__ReferenceCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12643:1: ( ( ( rule__ReferenceCS__Group_4__0 )? ) )
-            // InternalOCLinEcore.g:12644:1: ( ( rule__ReferenceCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:12655:1: ( ( ( rule__ReferenceCS__Group_4__0 )? ) )
+            // InternalOCLinEcore.g:12656:1: ( ( rule__ReferenceCS__Group_4__0 )? )
             {
-            // InternalOCLinEcore.g:12644:1: ( ( rule__ReferenceCS__Group_4__0 )? )
-            // InternalOCLinEcore.g:12645:1: ( rule__ReferenceCS__Group_4__0 )?
+            // InternalOCLinEcore.g:12656:1: ( ( rule__ReferenceCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:12657:1: ( rule__ReferenceCS__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getGroup_4()); 
             }
-            // InternalOCLinEcore.g:12646:1: ( rule__ReferenceCS__Group_4__0 )?
+            // InternalOCLinEcore.g:12658:1: ( rule__ReferenceCS__Group_4__0 )?
             int alt151=2;
             int LA151_0 = input.LA(1);
 
@@ -39541,7 +39609,7 @@
             }
             switch (alt151) {
                 case 1 :
-                    // InternalOCLinEcore.g:12646:2: rule__ReferenceCS__Group_4__0
+                    // InternalOCLinEcore.g:12658:2: rule__ReferenceCS__Group_4__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_4__0();
@@ -39579,14 +39647,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__5"
-    // InternalOCLinEcore.g:12656:1: rule__ReferenceCS__Group__5 : rule__ReferenceCS__Group__5__Impl rule__ReferenceCS__Group__6 ;
+    // InternalOCLinEcore.g:12668:1: rule__ReferenceCS__Group__5 : rule__ReferenceCS__Group__5__Impl rule__ReferenceCS__Group__6 ;
     public final void rule__ReferenceCS__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12660:1: ( rule__ReferenceCS__Group__5__Impl rule__ReferenceCS__Group__6 )
-            // InternalOCLinEcore.g:12661:2: rule__ReferenceCS__Group__5__Impl rule__ReferenceCS__Group__6
+            // InternalOCLinEcore.g:12672:1: ( rule__ReferenceCS__Group__5__Impl rule__ReferenceCS__Group__6 )
+            // InternalOCLinEcore.g:12673:2: rule__ReferenceCS__Group__5__Impl rule__ReferenceCS__Group__6
             {
             pushFollow(FollowSets000.FOLLOW_68);
             rule__ReferenceCS__Group__5__Impl();
@@ -39617,22 +39685,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__5__Impl"
-    // InternalOCLinEcore.g:12668:1: rule__ReferenceCS__Group__5__Impl : ( ( rule__ReferenceCS__Group_5__0 )? ) ;
+    // InternalOCLinEcore.g:12680:1: rule__ReferenceCS__Group__5__Impl : ( ( rule__ReferenceCS__Group_5__0 )? ) ;
     public final void rule__ReferenceCS__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12672:1: ( ( ( rule__ReferenceCS__Group_5__0 )? ) )
-            // InternalOCLinEcore.g:12673:1: ( ( rule__ReferenceCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:12684:1: ( ( ( rule__ReferenceCS__Group_5__0 )? ) )
+            // InternalOCLinEcore.g:12685:1: ( ( rule__ReferenceCS__Group_5__0 )? )
             {
-            // InternalOCLinEcore.g:12673:1: ( ( rule__ReferenceCS__Group_5__0 )? )
-            // InternalOCLinEcore.g:12674:1: ( rule__ReferenceCS__Group_5__0 )?
+            // InternalOCLinEcore.g:12685:1: ( ( rule__ReferenceCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:12686:1: ( rule__ReferenceCS__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getGroup_5()); 
             }
-            // InternalOCLinEcore.g:12675:1: ( rule__ReferenceCS__Group_5__0 )?
+            // InternalOCLinEcore.g:12687:1: ( rule__ReferenceCS__Group_5__0 )?
             int alt152=2;
             int LA152_0 = input.LA(1);
 
@@ -39641,7 +39709,7 @@
             }
             switch (alt152) {
                 case 1 :
-                    // InternalOCLinEcore.g:12675:2: rule__ReferenceCS__Group_5__0
+                    // InternalOCLinEcore.g:12687:2: rule__ReferenceCS__Group_5__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_5__0();
@@ -39679,14 +39747,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__6"
-    // InternalOCLinEcore.g:12685:1: rule__ReferenceCS__Group__6 : rule__ReferenceCS__Group__6__Impl rule__ReferenceCS__Group__7 ;
+    // InternalOCLinEcore.g:12697:1: rule__ReferenceCS__Group__6 : rule__ReferenceCS__Group__6__Impl rule__ReferenceCS__Group__7 ;
     public final void rule__ReferenceCS__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12689:1: ( rule__ReferenceCS__Group__6__Impl rule__ReferenceCS__Group__7 )
-            // InternalOCLinEcore.g:12690:2: rule__ReferenceCS__Group__6__Impl rule__ReferenceCS__Group__7
+            // InternalOCLinEcore.g:12701:1: ( rule__ReferenceCS__Group__6__Impl rule__ReferenceCS__Group__7 )
+            // InternalOCLinEcore.g:12702:2: rule__ReferenceCS__Group__6__Impl rule__ReferenceCS__Group__7
             {
             pushFollow(FollowSets000.FOLLOW_68);
             rule__ReferenceCS__Group__6__Impl();
@@ -39717,22 +39785,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__6__Impl"
-    // InternalOCLinEcore.g:12697:1: rule__ReferenceCS__Group__6__Impl : ( ( rule__ReferenceCS__Group_6__0 )? ) ;
+    // InternalOCLinEcore.g:12709:1: rule__ReferenceCS__Group__6__Impl : ( ( rule__ReferenceCS__Group_6__0 )? ) ;
     public final void rule__ReferenceCS__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12701:1: ( ( ( rule__ReferenceCS__Group_6__0 )? ) )
-            // InternalOCLinEcore.g:12702:1: ( ( rule__ReferenceCS__Group_6__0 )? )
+            // InternalOCLinEcore.g:12713:1: ( ( ( rule__ReferenceCS__Group_6__0 )? ) )
+            // InternalOCLinEcore.g:12714:1: ( ( rule__ReferenceCS__Group_6__0 )? )
             {
-            // InternalOCLinEcore.g:12702:1: ( ( rule__ReferenceCS__Group_6__0 )? )
-            // InternalOCLinEcore.g:12703:1: ( rule__ReferenceCS__Group_6__0 )?
+            // InternalOCLinEcore.g:12714:1: ( ( rule__ReferenceCS__Group_6__0 )? )
+            // InternalOCLinEcore.g:12715:1: ( rule__ReferenceCS__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getGroup_6()); 
             }
-            // InternalOCLinEcore.g:12704:1: ( rule__ReferenceCS__Group_6__0 )?
+            // InternalOCLinEcore.g:12716:1: ( rule__ReferenceCS__Group_6__0 )?
             int alt153=2;
             int LA153_0 = input.LA(1);
 
@@ -39745,7 +39813,7 @@
             }
             switch (alt153) {
                 case 1 :
-                    // InternalOCLinEcore.g:12704:2: rule__ReferenceCS__Group_6__0
+                    // InternalOCLinEcore.g:12716:2: rule__ReferenceCS__Group_6__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__Group_6__0();
@@ -39783,14 +39851,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__7"
-    // InternalOCLinEcore.g:12714:1: rule__ReferenceCS__Group__7 : rule__ReferenceCS__Group__7__Impl ;
+    // InternalOCLinEcore.g:12726:1: rule__ReferenceCS__Group__7 : rule__ReferenceCS__Group__7__Impl ;
     public final void rule__ReferenceCS__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12718:1: ( rule__ReferenceCS__Group__7__Impl )
-            // InternalOCLinEcore.g:12719:2: rule__ReferenceCS__Group__7__Impl
+            // InternalOCLinEcore.g:12730:1: ( rule__ReferenceCS__Group__7__Impl )
+            // InternalOCLinEcore.g:12731:2: rule__ReferenceCS__Group__7__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group__7__Impl();
@@ -39816,23 +39884,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group__7__Impl"
-    // InternalOCLinEcore.g:12725:1: rule__ReferenceCS__Group__7__Impl : ( ( rule__ReferenceCS__Alternatives_7 ) ) ;
+    // InternalOCLinEcore.g:12737:1: rule__ReferenceCS__Group__7__Impl : ( ( rule__ReferenceCS__Alternatives_7 ) ) ;
     public final void rule__ReferenceCS__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12729:1: ( ( ( rule__ReferenceCS__Alternatives_7 ) ) )
-            // InternalOCLinEcore.g:12730:1: ( ( rule__ReferenceCS__Alternatives_7 ) )
+            // InternalOCLinEcore.g:12741:1: ( ( ( rule__ReferenceCS__Alternatives_7 ) ) )
+            // InternalOCLinEcore.g:12742:1: ( ( rule__ReferenceCS__Alternatives_7 ) )
             {
-            // InternalOCLinEcore.g:12730:1: ( ( rule__ReferenceCS__Alternatives_7 ) )
-            // InternalOCLinEcore.g:12731:1: ( rule__ReferenceCS__Alternatives_7 )
+            // InternalOCLinEcore.g:12742:1: ( ( rule__ReferenceCS__Alternatives_7 ) )
+            // InternalOCLinEcore.g:12743:1: ( rule__ReferenceCS__Alternatives_7 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getAlternatives_7()); 
             }
-            // InternalOCLinEcore.g:12732:1: ( rule__ReferenceCS__Alternatives_7 )
-            // InternalOCLinEcore.g:12732:2: rule__ReferenceCS__Alternatives_7
+            // InternalOCLinEcore.g:12744:1: ( rule__ReferenceCS__Alternatives_7 )
+            // InternalOCLinEcore.g:12744:2: rule__ReferenceCS__Alternatives_7
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Alternatives_7();
@@ -39867,14 +39935,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_0_0__0"
-    // InternalOCLinEcore.g:12758:1: rule__ReferenceCS__Group_0_0__0 : rule__ReferenceCS__Group_0_0__0__Impl rule__ReferenceCS__Group_0_0__1 ;
+    // InternalOCLinEcore.g:12770:1: rule__ReferenceCS__Group_0_0__0 : rule__ReferenceCS__Group_0_0__0__Impl rule__ReferenceCS__Group_0_0__1 ;
     public final void rule__ReferenceCS__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12762:1: ( rule__ReferenceCS__Group_0_0__0__Impl rule__ReferenceCS__Group_0_0__1 )
-            // InternalOCLinEcore.g:12763:2: rule__ReferenceCS__Group_0_0__0__Impl rule__ReferenceCS__Group_0_0__1
+            // InternalOCLinEcore.g:12774:1: ( rule__ReferenceCS__Group_0_0__0__Impl rule__ReferenceCS__Group_0_0__1 )
+            // InternalOCLinEcore.g:12775:2: rule__ReferenceCS__Group_0_0__0__Impl rule__ReferenceCS__Group_0_0__1
             {
             pushFollow(FollowSets000.FOLLOW_26);
             rule__ReferenceCS__Group_0_0__0__Impl();
@@ -39905,23 +39973,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_0_0__0__Impl"
-    // InternalOCLinEcore.g:12770:1: rule__ReferenceCS__Group_0_0__0__Impl : ( ( rule__ReferenceCS__QualifiersAssignment_0_0_0 ) ) ;
+    // InternalOCLinEcore.g:12782:1: rule__ReferenceCS__Group_0_0__0__Impl : ( ( rule__ReferenceCS__QualifiersAssignment_0_0_0 ) ) ;
     public final void rule__ReferenceCS__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12774:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_0_0_0 ) ) )
-            // InternalOCLinEcore.g:12775:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_0_0 ) )
+            // InternalOCLinEcore.g:12786:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_0_0_0 ) ) )
+            // InternalOCLinEcore.g:12787:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_0_0 ) )
             {
-            // InternalOCLinEcore.g:12775:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_0_0 ) )
-            // InternalOCLinEcore.g:12776:1: ( rule__ReferenceCS__QualifiersAssignment_0_0_0 )
+            // InternalOCLinEcore.g:12787:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_0_0 ) )
+            // InternalOCLinEcore.g:12788:1: ( rule__ReferenceCS__QualifiersAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_0_0()); 
             }
-            // InternalOCLinEcore.g:12777:1: ( rule__ReferenceCS__QualifiersAssignment_0_0_0 )
-            // InternalOCLinEcore.g:12777:2: rule__ReferenceCS__QualifiersAssignment_0_0_0
+            // InternalOCLinEcore.g:12789:1: ( rule__ReferenceCS__QualifiersAssignment_0_0_0 )
+            // InternalOCLinEcore.g:12789:2: rule__ReferenceCS__QualifiersAssignment_0_0_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__QualifiersAssignment_0_0_0();
@@ -39956,14 +40024,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_0_0__1"
-    // InternalOCLinEcore.g:12787:1: rule__ReferenceCS__Group_0_0__1 : rule__ReferenceCS__Group_0_0__1__Impl ;
+    // InternalOCLinEcore.g:12799:1: rule__ReferenceCS__Group_0_0__1 : rule__ReferenceCS__Group_0_0__1__Impl ;
     public final void rule__ReferenceCS__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12791:1: ( rule__ReferenceCS__Group_0_0__1__Impl )
-            // InternalOCLinEcore.g:12792:2: rule__ReferenceCS__Group_0_0__1__Impl
+            // InternalOCLinEcore.g:12803:1: ( rule__ReferenceCS__Group_0_0__1__Impl )
+            // InternalOCLinEcore.g:12804:2: rule__ReferenceCS__Group_0_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_0_0__1__Impl();
@@ -39989,22 +40057,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_0_0__1__Impl"
-    // InternalOCLinEcore.g:12798:1: rule__ReferenceCS__Group_0_0__1__Impl : ( ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )? ) ;
+    // InternalOCLinEcore.g:12810:1: rule__ReferenceCS__Group_0_0__1__Impl : ( ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )? ) ;
     public final void rule__ReferenceCS__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12802:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )? ) )
-            // InternalOCLinEcore.g:12803:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )? )
+            // InternalOCLinEcore.g:12814:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )? ) )
+            // InternalOCLinEcore.g:12815:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )? )
             {
-            // InternalOCLinEcore.g:12803:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )? )
-            // InternalOCLinEcore.g:12804:1: ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )?
+            // InternalOCLinEcore.g:12815:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )? )
+            // InternalOCLinEcore.g:12816:1: ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_0_1()); 
             }
-            // InternalOCLinEcore.g:12805:1: ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )?
+            // InternalOCLinEcore.g:12817:1: ( rule__ReferenceCS__QualifiersAssignment_0_0_1 )?
             int alt154=2;
             int LA154_0 = input.LA(1);
 
@@ -40013,7 +40081,7 @@
             }
             switch (alt154) {
                 case 1 :
-                    // InternalOCLinEcore.g:12805:2: rule__ReferenceCS__QualifiersAssignment_0_0_1
+                    // InternalOCLinEcore.g:12817:2: rule__ReferenceCS__QualifiersAssignment_0_0_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_0_0_1();
@@ -40051,14 +40119,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_0_1__0"
-    // InternalOCLinEcore.g:12819:1: rule__ReferenceCS__Group_0_1__0 : rule__ReferenceCS__Group_0_1__0__Impl rule__ReferenceCS__Group_0_1__1 ;
+    // InternalOCLinEcore.g:12831:1: rule__ReferenceCS__Group_0_1__0 : rule__ReferenceCS__Group_0_1__0__Impl rule__ReferenceCS__Group_0_1__1 ;
     public final void rule__ReferenceCS__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12823:1: ( rule__ReferenceCS__Group_0_1__0__Impl rule__ReferenceCS__Group_0_1__1 )
-            // InternalOCLinEcore.g:12824:2: rule__ReferenceCS__Group_0_1__0__Impl rule__ReferenceCS__Group_0_1__1
+            // InternalOCLinEcore.g:12835:1: ( rule__ReferenceCS__Group_0_1__0__Impl rule__ReferenceCS__Group_0_1__1 )
+            // InternalOCLinEcore.g:12836:2: rule__ReferenceCS__Group_0_1__0__Impl rule__ReferenceCS__Group_0_1__1
             {
             pushFollow(FollowSets000.FOLLOW_27);
             rule__ReferenceCS__Group_0_1__0__Impl();
@@ -40089,23 +40157,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_0_1__0__Impl"
-    // InternalOCLinEcore.g:12831:1: rule__ReferenceCS__Group_0_1__0__Impl : ( ( rule__ReferenceCS__QualifiersAssignment_0_1_0 ) ) ;
+    // InternalOCLinEcore.g:12843:1: rule__ReferenceCS__Group_0_1__0__Impl : ( ( rule__ReferenceCS__QualifiersAssignment_0_1_0 ) ) ;
     public final void rule__ReferenceCS__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12835:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_0_1_0 ) ) )
-            // InternalOCLinEcore.g:12836:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_1_0 ) )
+            // InternalOCLinEcore.g:12847:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_0_1_0 ) ) )
+            // InternalOCLinEcore.g:12848:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_1_0 ) )
             {
-            // InternalOCLinEcore.g:12836:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_1_0 ) )
-            // InternalOCLinEcore.g:12837:1: ( rule__ReferenceCS__QualifiersAssignment_0_1_0 )
+            // InternalOCLinEcore.g:12848:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_1_0 ) )
+            // InternalOCLinEcore.g:12849:1: ( rule__ReferenceCS__QualifiersAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_1_0()); 
             }
-            // InternalOCLinEcore.g:12838:1: ( rule__ReferenceCS__QualifiersAssignment_0_1_0 )
-            // InternalOCLinEcore.g:12838:2: rule__ReferenceCS__QualifiersAssignment_0_1_0
+            // InternalOCLinEcore.g:12850:1: ( rule__ReferenceCS__QualifiersAssignment_0_1_0 )
+            // InternalOCLinEcore.g:12850:2: rule__ReferenceCS__QualifiersAssignment_0_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__QualifiersAssignment_0_1_0();
@@ -40140,14 +40208,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_0_1__1"
-    // InternalOCLinEcore.g:12848:1: rule__ReferenceCS__Group_0_1__1 : rule__ReferenceCS__Group_0_1__1__Impl ;
+    // InternalOCLinEcore.g:12860:1: rule__ReferenceCS__Group_0_1__1 : rule__ReferenceCS__Group_0_1__1__Impl ;
     public final void rule__ReferenceCS__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12852:1: ( rule__ReferenceCS__Group_0_1__1__Impl )
-            // InternalOCLinEcore.g:12853:2: rule__ReferenceCS__Group_0_1__1__Impl
+            // InternalOCLinEcore.g:12864:1: ( rule__ReferenceCS__Group_0_1__1__Impl )
+            // InternalOCLinEcore.g:12865:2: rule__ReferenceCS__Group_0_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_0_1__1__Impl();
@@ -40173,22 +40241,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_0_1__1__Impl"
-    // InternalOCLinEcore.g:12859:1: rule__ReferenceCS__Group_0_1__1__Impl : ( ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )? ) ;
+    // InternalOCLinEcore.g:12871:1: rule__ReferenceCS__Group_0_1__1__Impl : ( ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )? ) ;
     public final void rule__ReferenceCS__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12863:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )? ) )
-            // InternalOCLinEcore.g:12864:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )? )
+            // InternalOCLinEcore.g:12875:1: ( ( ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )? ) )
+            // InternalOCLinEcore.g:12876:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )? )
             {
-            // InternalOCLinEcore.g:12864:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )? )
-            // InternalOCLinEcore.g:12865:1: ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )?
+            // InternalOCLinEcore.g:12876:1: ( ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )? )
+            // InternalOCLinEcore.g:12877:1: ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_1_1()); 
             }
-            // InternalOCLinEcore.g:12866:1: ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )?
+            // InternalOCLinEcore.g:12878:1: ( rule__ReferenceCS__QualifiersAssignment_0_1_1 )?
             int alt155=2;
             int LA155_0 = input.LA(1);
 
@@ -40197,7 +40265,7 @@
             }
             switch (alt155) {
                 case 1 :
-                    // InternalOCLinEcore.g:12866:2: rule__ReferenceCS__QualifiersAssignment_0_1_1
+                    // InternalOCLinEcore.g:12878:2: rule__ReferenceCS__QualifiersAssignment_0_1_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__QualifiersAssignment_0_1_1();
@@ -40235,14 +40303,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_3__0"
-    // InternalOCLinEcore.g:12880:1: rule__ReferenceCS__Group_3__0 : rule__ReferenceCS__Group_3__0__Impl rule__ReferenceCS__Group_3__1 ;
+    // InternalOCLinEcore.g:12892:1: rule__ReferenceCS__Group_3__0 : rule__ReferenceCS__Group_3__0__Impl rule__ReferenceCS__Group_3__1 ;
     public final void rule__ReferenceCS__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12884:1: ( rule__ReferenceCS__Group_3__0__Impl rule__ReferenceCS__Group_3__1 )
-            // InternalOCLinEcore.g:12885:2: rule__ReferenceCS__Group_3__0__Impl rule__ReferenceCS__Group_3__1
+            // InternalOCLinEcore.g:12896:1: ( rule__ReferenceCS__Group_3__0__Impl rule__ReferenceCS__Group_3__1 )
+            // InternalOCLinEcore.g:12897:2: rule__ReferenceCS__Group_3__0__Impl rule__ReferenceCS__Group_3__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__ReferenceCS__Group_3__0__Impl();
@@ -40273,17 +40341,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_3__0__Impl"
-    // InternalOCLinEcore.g:12892:1: rule__ReferenceCS__Group_3__0__Impl : ( '#' ) ;
+    // InternalOCLinEcore.g:12904:1: rule__ReferenceCS__Group_3__0__Impl : ( '#' ) ;
     public final void rule__ReferenceCS__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12896:1: ( ( '#' ) )
-            // InternalOCLinEcore.g:12897:1: ( '#' )
+            // InternalOCLinEcore.g:12908:1: ( ( '#' ) )
+            // InternalOCLinEcore.g:12909:1: ( '#' )
             {
-            // InternalOCLinEcore.g:12897:1: ( '#' )
-            // InternalOCLinEcore.g:12898:1: '#'
+            // InternalOCLinEcore.g:12909:1: ( '#' )
+            // InternalOCLinEcore.g:12910:1: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getNumberSignKeyword_3_0()); 
@@ -40314,14 +40382,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_3__1"
-    // InternalOCLinEcore.g:12911:1: rule__ReferenceCS__Group_3__1 : rule__ReferenceCS__Group_3__1__Impl ;
+    // InternalOCLinEcore.g:12923:1: rule__ReferenceCS__Group_3__1 : rule__ReferenceCS__Group_3__1__Impl ;
     public final void rule__ReferenceCS__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12915:1: ( rule__ReferenceCS__Group_3__1__Impl )
-            // InternalOCLinEcore.g:12916:2: rule__ReferenceCS__Group_3__1__Impl
+            // InternalOCLinEcore.g:12927:1: ( rule__ReferenceCS__Group_3__1__Impl )
+            // InternalOCLinEcore.g:12928:2: rule__ReferenceCS__Group_3__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_3__1__Impl();
@@ -40347,23 +40415,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_3__1__Impl"
-    // InternalOCLinEcore.g:12922:1: rule__ReferenceCS__Group_3__1__Impl : ( ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 ) ) ;
+    // InternalOCLinEcore.g:12934:1: rule__ReferenceCS__Group_3__1__Impl : ( ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 ) ) ;
     public final void rule__ReferenceCS__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12926:1: ( ( ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 ) ) )
-            // InternalOCLinEcore.g:12927:1: ( ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 ) )
+            // InternalOCLinEcore.g:12938:1: ( ( ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 ) ) )
+            // InternalOCLinEcore.g:12939:1: ( ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 ) )
             {
-            // InternalOCLinEcore.g:12927:1: ( ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 ) )
-            // InternalOCLinEcore.g:12928:1: ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 )
+            // InternalOCLinEcore.g:12939:1: ( ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 ) )
+            // InternalOCLinEcore.g:12940:1: ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredOppositeAssignment_3_1()); 
             }
-            // InternalOCLinEcore.g:12929:1: ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 )
-            // InternalOCLinEcore.g:12929:2: rule__ReferenceCS__ReferredOppositeAssignment_3_1
+            // InternalOCLinEcore.g:12941:1: ( rule__ReferenceCS__ReferredOppositeAssignment_3_1 )
+            // InternalOCLinEcore.g:12941:2: rule__ReferenceCS__ReferredOppositeAssignment_3_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__ReferredOppositeAssignment_3_1();
@@ -40398,14 +40466,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_4__0"
-    // InternalOCLinEcore.g:12943:1: rule__ReferenceCS__Group_4__0 : rule__ReferenceCS__Group_4__0__Impl rule__ReferenceCS__Group_4__1 ;
+    // InternalOCLinEcore.g:12955:1: rule__ReferenceCS__Group_4__0 : rule__ReferenceCS__Group_4__0__Impl rule__ReferenceCS__Group_4__1 ;
     public final void rule__ReferenceCS__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12947:1: ( rule__ReferenceCS__Group_4__0__Impl rule__ReferenceCS__Group_4__1 )
-            // InternalOCLinEcore.g:12948:2: rule__ReferenceCS__Group_4__0__Impl rule__ReferenceCS__Group_4__1
+            // InternalOCLinEcore.g:12959:1: ( rule__ReferenceCS__Group_4__0__Impl rule__ReferenceCS__Group_4__1 )
+            // InternalOCLinEcore.g:12960:2: rule__ReferenceCS__Group_4__0__Impl rule__ReferenceCS__Group_4__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__ReferenceCS__Group_4__0__Impl();
@@ -40436,17 +40504,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_4__0__Impl"
-    // InternalOCLinEcore.g:12955:1: rule__ReferenceCS__Group_4__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:12967:1: rule__ReferenceCS__Group_4__0__Impl : ( ':' ) ;
     public final void rule__ReferenceCS__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12959:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:12960:1: ( ':' )
+            // InternalOCLinEcore.g:12971:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:12972:1: ( ':' )
             {
-            // InternalOCLinEcore.g:12960:1: ( ':' )
-            // InternalOCLinEcore.g:12961:1: ':'
+            // InternalOCLinEcore.g:12972:1: ( ':' )
+            // InternalOCLinEcore.g:12973:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getColonKeyword_4_0()); 
@@ -40477,14 +40545,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_4__1"
-    // InternalOCLinEcore.g:12974:1: rule__ReferenceCS__Group_4__1 : rule__ReferenceCS__Group_4__1__Impl ;
+    // InternalOCLinEcore.g:12986:1: rule__ReferenceCS__Group_4__1 : rule__ReferenceCS__Group_4__1__Impl ;
     public final void rule__ReferenceCS__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12978:1: ( rule__ReferenceCS__Group_4__1__Impl )
-            // InternalOCLinEcore.g:12979:2: rule__ReferenceCS__Group_4__1__Impl
+            // InternalOCLinEcore.g:12990:1: ( rule__ReferenceCS__Group_4__1__Impl )
+            // InternalOCLinEcore.g:12991:2: rule__ReferenceCS__Group_4__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_4__1__Impl();
@@ -40510,23 +40578,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_4__1__Impl"
-    // InternalOCLinEcore.g:12985:1: rule__ReferenceCS__Group_4__1__Impl : ( ( rule__ReferenceCS__OwnedTypeAssignment_4_1 ) ) ;
+    // InternalOCLinEcore.g:12997:1: rule__ReferenceCS__Group_4__1__Impl : ( ( rule__ReferenceCS__OwnedTypeAssignment_4_1 ) ) ;
     public final void rule__ReferenceCS__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:12989:1: ( ( ( rule__ReferenceCS__OwnedTypeAssignment_4_1 ) ) )
-            // InternalOCLinEcore.g:12990:1: ( ( rule__ReferenceCS__OwnedTypeAssignment_4_1 ) )
+            // InternalOCLinEcore.g:13001:1: ( ( ( rule__ReferenceCS__OwnedTypeAssignment_4_1 ) ) )
+            // InternalOCLinEcore.g:13002:1: ( ( rule__ReferenceCS__OwnedTypeAssignment_4_1 ) )
             {
-            // InternalOCLinEcore.g:12990:1: ( ( rule__ReferenceCS__OwnedTypeAssignment_4_1 ) )
-            // InternalOCLinEcore.g:12991:1: ( rule__ReferenceCS__OwnedTypeAssignment_4_1 )
+            // InternalOCLinEcore.g:13002:1: ( ( rule__ReferenceCS__OwnedTypeAssignment_4_1 ) )
+            // InternalOCLinEcore.g:13003:1: ( rule__ReferenceCS__OwnedTypeAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getOwnedTypeAssignment_4_1()); 
             }
-            // InternalOCLinEcore.g:12992:1: ( rule__ReferenceCS__OwnedTypeAssignment_4_1 )
-            // InternalOCLinEcore.g:12992:2: rule__ReferenceCS__OwnedTypeAssignment_4_1
+            // InternalOCLinEcore.g:13004:1: ( rule__ReferenceCS__OwnedTypeAssignment_4_1 )
+            // InternalOCLinEcore.g:13004:2: rule__ReferenceCS__OwnedTypeAssignment_4_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__OwnedTypeAssignment_4_1();
@@ -40561,14 +40629,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_5__0"
-    // InternalOCLinEcore.g:13006:1: rule__ReferenceCS__Group_5__0 : rule__ReferenceCS__Group_5__0__Impl rule__ReferenceCS__Group_5__1 ;
+    // InternalOCLinEcore.g:13018:1: rule__ReferenceCS__Group_5__0 : rule__ReferenceCS__Group_5__0__Impl rule__ReferenceCS__Group_5__1 ;
     public final void rule__ReferenceCS__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13010:1: ( rule__ReferenceCS__Group_5__0__Impl rule__ReferenceCS__Group_5__1 )
-            // InternalOCLinEcore.g:13011:2: rule__ReferenceCS__Group_5__0__Impl rule__ReferenceCS__Group_5__1
+            // InternalOCLinEcore.g:13022:1: ( rule__ReferenceCS__Group_5__0__Impl rule__ReferenceCS__Group_5__1 )
+            // InternalOCLinEcore.g:13023:2: rule__ReferenceCS__Group_5__0__Impl rule__ReferenceCS__Group_5__1
             {
             pushFollow(FollowSets000.FOLLOW_29);
             rule__ReferenceCS__Group_5__0__Impl();
@@ -40599,17 +40667,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_5__0__Impl"
-    // InternalOCLinEcore.g:13018:1: rule__ReferenceCS__Group_5__0__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:13030:1: rule__ReferenceCS__Group_5__0__Impl : ( '=' ) ;
     public final void rule__ReferenceCS__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13022:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:13023:1: ( '=' )
+            // InternalOCLinEcore.g:13034:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:13035:1: ( '=' )
             {
-            // InternalOCLinEcore.g:13023:1: ( '=' )
-            // InternalOCLinEcore.g:13024:1: '='
+            // InternalOCLinEcore.g:13035:1: ( '=' )
+            // InternalOCLinEcore.g:13036:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getEqualsSignKeyword_5_0()); 
@@ -40640,14 +40708,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_5__1"
-    // InternalOCLinEcore.g:13037:1: rule__ReferenceCS__Group_5__1 : rule__ReferenceCS__Group_5__1__Impl ;
+    // InternalOCLinEcore.g:13049:1: rule__ReferenceCS__Group_5__1 : rule__ReferenceCS__Group_5__1__Impl ;
     public final void rule__ReferenceCS__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13041:1: ( rule__ReferenceCS__Group_5__1__Impl )
-            // InternalOCLinEcore.g:13042:2: rule__ReferenceCS__Group_5__1__Impl
+            // InternalOCLinEcore.g:13053:1: ( rule__ReferenceCS__Group_5__1__Impl )
+            // InternalOCLinEcore.g:13054:2: rule__ReferenceCS__Group_5__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_5__1__Impl();
@@ -40673,23 +40741,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_5__1__Impl"
-    // InternalOCLinEcore.g:13048:1: rule__ReferenceCS__Group_5__1__Impl : ( ( rule__ReferenceCS__DefaultAssignment_5_1 ) ) ;
+    // InternalOCLinEcore.g:13060:1: rule__ReferenceCS__Group_5__1__Impl : ( ( rule__ReferenceCS__DefaultAssignment_5_1 ) ) ;
     public final void rule__ReferenceCS__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13052:1: ( ( ( rule__ReferenceCS__DefaultAssignment_5_1 ) ) )
-            // InternalOCLinEcore.g:13053:1: ( ( rule__ReferenceCS__DefaultAssignment_5_1 ) )
+            // InternalOCLinEcore.g:13064:1: ( ( ( rule__ReferenceCS__DefaultAssignment_5_1 ) ) )
+            // InternalOCLinEcore.g:13065:1: ( ( rule__ReferenceCS__DefaultAssignment_5_1 ) )
             {
-            // InternalOCLinEcore.g:13053:1: ( ( rule__ReferenceCS__DefaultAssignment_5_1 ) )
-            // InternalOCLinEcore.g:13054:1: ( rule__ReferenceCS__DefaultAssignment_5_1 )
+            // InternalOCLinEcore.g:13065:1: ( ( rule__ReferenceCS__DefaultAssignment_5_1 ) )
+            // InternalOCLinEcore.g:13066:1: ( rule__ReferenceCS__DefaultAssignment_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getDefaultAssignment_5_1()); 
             }
-            // InternalOCLinEcore.g:13055:1: ( rule__ReferenceCS__DefaultAssignment_5_1 )
-            // InternalOCLinEcore.g:13055:2: rule__ReferenceCS__DefaultAssignment_5_1
+            // InternalOCLinEcore.g:13067:1: ( rule__ReferenceCS__DefaultAssignment_5_1 )
+            // InternalOCLinEcore.g:13067:2: rule__ReferenceCS__DefaultAssignment_5_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__DefaultAssignment_5_1();
@@ -40724,14 +40792,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6__0"
-    // InternalOCLinEcore.g:13069:1: rule__ReferenceCS__Group_6__0 : rule__ReferenceCS__Group_6__0__Impl rule__ReferenceCS__Group_6__1 ;
+    // InternalOCLinEcore.g:13081:1: rule__ReferenceCS__Group_6__0 : rule__ReferenceCS__Group_6__0__Impl rule__ReferenceCS__Group_6__1 ;
     public final void rule__ReferenceCS__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13073:1: ( rule__ReferenceCS__Group_6__0__Impl rule__ReferenceCS__Group_6__1 )
-            // InternalOCLinEcore.g:13074:2: rule__ReferenceCS__Group_6__0__Impl rule__ReferenceCS__Group_6__1
+            // InternalOCLinEcore.g:13085:1: ( rule__ReferenceCS__Group_6__0__Impl rule__ReferenceCS__Group_6__1 )
+            // InternalOCLinEcore.g:13086:2: rule__ReferenceCS__Group_6__0__Impl rule__ReferenceCS__Group_6__1
             {
             pushFollow(FollowSets000.FOLLOW_69);
             rule__ReferenceCS__Group_6__0__Impl();
@@ -40762,17 +40830,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6__0__Impl"
-    // InternalOCLinEcore.g:13081:1: rule__ReferenceCS__Group_6__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:13093:1: rule__ReferenceCS__Group_6__0__Impl : ( '{' ) ;
     public final void rule__ReferenceCS__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13085:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:13086:1: ( '{' )
+            // InternalOCLinEcore.g:13097:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:13098:1: ( '{' )
             {
-            // InternalOCLinEcore.g:13086:1: ( '{' )
-            // InternalOCLinEcore.g:13087:1: '{'
+            // InternalOCLinEcore.g:13098:1: ( '{' )
+            // InternalOCLinEcore.g:13099:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getLeftCurlyBracketKeyword_6_0()); 
@@ -40803,14 +40871,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6__1"
-    // InternalOCLinEcore.g:13100:1: rule__ReferenceCS__Group_6__1 : rule__ReferenceCS__Group_6__1__Impl rule__ReferenceCS__Group_6__2 ;
+    // InternalOCLinEcore.g:13112:1: rule__ReferenceCS__Group_6__1 : rule__ReferenceCS__Group_6__1__Impl rule__ReferenceCS__Group_6__2 ;
     public final void rule__ReferenceCS__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13104:1: ( rule__ReferenceCS__Group_6__1__Impl rule__ReferenceCS__Group_6__2 )
-            // InternalOCLinEcore.g:13105:2: rule__ReferenceCS__Group_6__1__Impl rule__ReferenceCS__Group_6__2
+            // InternalOCLinEcore.g:13116:1: ( rule__ReferenceCS__Group_6__1__Impl rule__ReferenceCS__Group_6__2 )
+            // InternalOCLinEcore.g:13117:2: rule__ReferenceCS__Group_6__1__Impl rule__ReferenceCS__Group_6__2
             {
             pushFollow(FollowSets000.FOLLOW_22);
             rule__ReferenceCS__Group_6__1__Impl();
@@ -40841,26 +40909,26 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6__1__Impl"
-    // InternalOCLinEcore.g:13112:1: rule__ReferenceCS__Group_6__1__Impl : ( ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* ) ) ;
+    // InternalOCLinEcore.g:13124:1: rule__ReferenceCS__Group_6__1__Impl : ( ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* ) ) ;
     public final void rule__ReferenceCS__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13116:1: ( ( ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* ) ) )
-            // InternalOCLinEcore.g:13117:1: ( ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* ) )
+            // InternalOCLinEcore.g:13128:1: ( ( ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* ) ) )
+            // InternalOCLinEcore.g:13129:1: ( ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* ) )
             {
-            // InternalOCLinEcore.g:13117:1: ( ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* ) )
-            // InternalOCLinEcore.g:13118:1: ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* )
+            // InternalOCLinEcore.g:13129:1: ( ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* ) )
+            // InternalOCLinEcore.g:13130:1: ( ( rule__ReferenceCS__Group_6_1__0 ) ) ( ( rule__ReferenceCS__Group_6_1__0 )* )
             {
-            // InternalOCLinEcore.g:13118:1: ( ( rule__ReferenceCS__Group_6_1__0 ) )
-            // InternalOCLinEcore.g:13119:1: ( rule__ReferenceCS__Group_6_1__0 )
+            // InternalOCLinEcore.g:13130:1: ( ( rule__ReferenceCS__Group_6_1__0 ) )
+            // InternalOCLinEcore.g:13131:1: ( rule__ReferenceCS__Group_6_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getGroup_6_1()); 
             }
-            // InternalOCLinEcore.g:13120:1: ( rule__ReferenceCS__Group_6_1__0 )
-            // InternalOCLinEcore.g:13120:2: rule__ReferenceCS__Group_6_1__0
+            // InternalOCLinEcore.g:13132:1: ( rule__ReferenceCS__Group_6_1__0 )
+            // InternalOCLinEcore.g:13132:2: rule__ReferenceCS__Group_6_1__0
             {
             pushFollow(FollowSets000.FOLLOW_70);
             rule__ReferenceCS__Group_6_1__0();
@@ -40876,13 +40944,13 @@
 
             }
 
-            // InternalOCLinEcore.g:13123:1: ( ( rule__ReferenceCS__Group_6_1__0 )* )
-            // InternalOCLinEcore.g:13124:1: ( rule__ReferenceCS__Group_6_1__0 )*
+            // InternalOCLinEcore.g:13135:1: ( ( rule__ReferenceCS__Group_6_1__0 )* )
+            // InternalOCLinEcore.g:13136:1: ( rule__ReferenceCS__Group_6_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getGroup_6_1()); 
             }
-            // InternalOCLinEcore.g:13125:1: ( rule__ReferenceCS__Group_6_1__0 )*
+            // InternalOCLinEcore.g:13137:1: ( rule__ReferenceCS__Group_6_1__0 )*
             loop156:
             do {
                 int alt156=2;
@@ -40895,7 +40963,7 @@
 
                 switch (alt156) {
             	case 1 :
-            	    // InternalOCLinEcore.g:13125:2: rule__ReferenceCS__Group_6_1__0
+            	    // InternalOCLinEcore.g:13137:2: rule__ReferenceCS__Group_6_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_70);
             	    rule__ReferenceCS__Group_6_1__0();
@@ -40939,14 +41007,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6__2"
-    // InternalOCLinEcore.g:13136:1: rule__ReferenceCS__Group_6__2 : rule__ReferenceCS__Group_6__2__Impl ;
+    // InternalOCLinEcore.g:13148:1: rule__ReferenceCS__Group_6__2 : rule__ReferenceCS__Group_6__2__Impl ;
     public final void rule__ReferenceCS__Group_6__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13140:1: ( rule__ReferenceCS__Group_6__2__Impl )
-            // InternalOCLinEcore.g:13141:2: rule__ReferenceCS__Group_6__2__Impl
+            // InternalOCLinEcore.g:13152:1: ( rule__ReferenceCS__Group_6__2__Impl )
+            // InternalOCLinEcore.g:13153:2: rule__ReferenceCS__Group_6__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_6__2__Impl();
@@ -40972,17 +41040,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6__2__Impl"
-    // InternalOCLinEcore.g:13147:1: rule__ReferenceCS__Group_6__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:13159:1: rule__ReferenceCS__Group_6__2__Impl : ( '}' ) ;
     public final void rule__ReferenceCS__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13151:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:13152:1: ( '}' )
+            // InternalOCLinEcore.g:13163:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:13164:1: ( '}' )
             {
-            // InternalOCLinEcore.g:13152:1: ( '}' )
-            // InternalOCLinEcore.g:13153:1: '}'
+            // InternalOCLinEcore.g:13164:1: ( '}' )
+            // InternalOCLinEcore.g:13165:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getRightCurlyBracketKeyword_6_2()); 
@@ -41013,14 +41081,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6_1__0"
-    // InternalOCLinEcore.g:13172:1: rule__ReferenceCS__Group_6_1__0 : rule__ReferenceCS__Group_6_1__0__Impl rule__ReferenceCS__Group_6_1__1 ;
+    // InternalOCLinEcore.g:13184:1: rule__ReferenceCS__Group_6_1__0 : rule__ReferenceCS__Group_6_1__0__Impl rule__ReferenceCS__Group_6_1__1 ;
     public final void rule__ReferenceCS__Group_6_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13176:1: ( rule__ReferenceCS__Group_6_1__0__Impl rule__ReferenceCS__Group_6_1__1 )
-            // InternalOCLinEcore.g:13177:2: rule__ReferenceCS__Group_6_1__0__Impl rule__ReferenceCS__Group_6_1__1
+            // InternalOCLinEcore.g:13188:1: ( rule__ReferenceCS__Group_6_1__0__Impl rule__ReferenceCS__Group_6_1__1 )
+            // InternalOCLinEcore.g:13189:2: rule__ReferenceCS__Group_6_1__0__Impl rule__ReferenceCS__Group_6_1__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__ReferenceCS__Group_6_1__0__Impl();
@@ -41051,23 +41119,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6_1__0__Impl"
-    // InternalOCLinEcore.g:13184:1: rule__ReferenceCS__Group_6_1__0__Impl : ( ( rule__ReferenceCS__Alternatives_6_1_0 ) ) ;
+    // InternalOCLinEcore.g:13196:1: rule__ReferenceCS__Group_6_1__0__Impl : ( ( rule__ReferenceCS__Alternatives_6_1_0 ) ) ;
     public final void rule__ReferenceCS__Group_6_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13188:1: ( ( ( rule__ReferenceCS__Alternatives_6_1_0 ) ) )
-            // InternalOCLinEcore.g:13189:1: ( ( rule__ReferenceCS__Alternatives_6_1_0 ) )
+            // InternalOCLinEcore.g:13200:1: ( ( ( rule__ReferenceCS__Alternatives_6_1_0 ) ) )
+            // InternalOCLinEcore.g:13201:1: ( ( rule__ReferenceCS__Alternatives_6_1_0 ) )
             {
-            // InternalOCLinEcore.g:13189:1: ( ( rule__ReferenceCS__Alternatives_6_1_0 ) )
-            // InternalOCLinEcore.g:13190:1: ( rule__ReferenceCS__Alternatives_6_1_0 )
+            // InternalOCLinEcore.g:13201:1: ( ( rule__ReferenceCS__Alternatives_6_1_0 ) )
+            // InternalOCLinEcore.g:13202:1: ( rule__ReferenceCS__Alternatives_6_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getAlternatives_6_1_0()); 
             }
-            // InternalOCLinEcore.g:13191:1: ( rule__ReferenceCS__Alternatives_6_1_0 )
-            // InternalOCLinEcore.g:13191:2: rule__ReferenceCS__Alternatives_6_1_0
+            // InternalOCLinEcore.g:13203:1: ( rule__ReferenceCS__Alternatives_6_1_0 )
+            // InternalOCLinEcore.g:13203:2: rule__ReferenceCS__Alternatives_6_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Alternatives_6_1_0();
@@ -41102,14 +41170,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6_1__1"
-    // InternalOCLinEcore.g:13201:1: rule__ReferenceCS__Group_6_1__1 : rule__ReferenceCS__Group_6_1__1__Impl ;
+    // InternalOCLinEcore.g:13213:1: rule__ReferenceCS__Group_6_1__1 : rule__ReferenceCS__Group_6_1__1__Impl ;
     public final void rule__ReferenceCS__Group_6_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13205:1: ( rule__ReferenceCS__Group_6_1__1__Impl )
-            // InternalOCLinEcore.g:13206:2: rule__ReferenceCS__Group_6_1__1__Impl
+            // InternalOCLinEcore.g:13217:1: ( rule__ReferenceCS__Group_6_1__1__Impl )
+            // InternalOCLinEcore.g:13218:2: rule__ReferenceCS__Group_6_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_6_1__1__Impl();
@@ -41135,22 +41203,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_6_1__1__Impl"
-    // InternalOCLinEcore.g:13212:1: rule__ReferenceCS__Group_6_1__1__Impl : ( ( ',' )? ) ;
+    // InternalOCLinEcore.g:13224:1: rule__ReferenceCS__Group_6_1__1__Impl : ( ( ',' )? ) ;
     public final void rule__ReferenceCS__Group_6_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13216:1: ( ( ( ',' )? ) )
-            // InternalOCLinEcore.g:13217:1: ( ( ',' )? )
+            // InternalOCLinEcore.g:13228:1: ( ( ( ',' )? ) )
+            // InternalOCLinEcore.g:13229:1: ( ( ',' )? )
             {
-            // InternalOCLinEcore.g:13217:1: ( ( ',' )? )
-            // InternalOCLinEcore.g:13218:1: ( ',' )?
+            // InternalOCLinEcore.g:13229:1: ( ( ',' )? )
+            // InternalOCLinEcore.g:13230:1: ( ',' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_1_1()); 
             }
-            // InternalOCLinEcore.g:13219:1: ( ',' )?
+            // InternalOCLinEcore.g:13231:1: ( ',' )?
             int alt157=2;
             int LA157_0 = input.LA(1);
 
@@ -41159,7 +41227,7 @@
             }
             switch (alt157) {
                 case 1 :
-                    // InternalOCLinEcore.g:13220:2: ','
+                    // InternalOCLinEcore.g:13232:2: ','
                     {
                     match(input,99,FollowSets000.FOLLOW_2); if (state.failed) return ;
 
@@ -41193,14 +41261,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0__0"
-    // InternalOCLinEcore.g:13235:1: rule__ReferenceCS__Group_7_0__0 : rule__ReferenceCS__Group_7_0__0__Impl rule__ReferenceCS__Group_7_0__1 ;
+    // InternalOCLinEcore.g:13247:1: rule__ReferenceCS__Group_7_0__0 : rule__ReferenceCS__Group_7_0__0__Impl rule__ReferenceCS__Group_7_0__1 ;
     public final void rule__ReferenceCS__Group_7_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13239:1: ( rule__ReferenceCS__Group_7_0__0__Impl rule__ReferenceCS__Group_7_0__1 )
-            // InternalOCLinEcore.g:13240:2: rule__ReferenceCS__Group_7_0__0__Impl rule__ReferenceCS__Group_7_0__1
+            // InternalOCLinEcore.g:13251:1: ( rule__ReferenceCS__Group_7_0__0__Impl rule__ReferenceCS__Group_7_0__1 )
+            // InternalOCLinEcore.g:13252:2: rule__ReferenceCS__Group_7_0__0__Impl rule__ReferenceCS__Group_7_0__1
             {
             pushFollow(FollowSets000.FOLLOW_71);
             rule__ReferenceCS__Group_7_0__0__Impl();
@@ -41231,17 +41299,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0__0__Impl"
-    // InternalOCLinEcore.g:13247:1: rule__ReferenceCS__Group_7_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:13259:1: rule__ReferenceCS__Group_7_0__0__Impl : ( '{' ) ;
     public final void rule__ReferenceCS__Group_7_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13251:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:13252:1: ( '{' )
+            // InternalOCLinEcore.g:13263:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:13264:1: ( '{' )
             {
-            // InternalOCLinEcore.g:13252:1: ( '{' )
-            // InternalOCLinEcore.g:13253:1: '{'
+            // InternalOCLinEcore.g:13264:1: ( '{' )
+            // InternalOCLinEcore.g:13265:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getLeftCurlyBracketKeyword_7_0_0()); 
@@ -41272,14 +41340,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0__1"
-    // InternalOCLinEcore.g:13266:1: rule__ReferenceCS__Group_7_0__1 : rule__ReferenceCS__Group_7_0__1__Impl rule__ReferenceCS__Group_7_0__2 ;
+    // InternalOCLinEcore.g:13278:1: rule__ReferenceCS__Group_7_0__1 : rule__ReferenceCS__Group_7_0__1__Impl rule__ReferenceCS__Group_7_0__2 ;
     public final void rule__ReferenceCS__Group_7_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13270:1: ( rule__ReferenceCS__Group_7_0__1__Impl rule__ReferenceCS__Group_7_0__2 )
-            // InternalOCLinEcore.g:13271:2: rule__ReferenceCS__Group_7_0__1__Impl rule__ReferenceCS__Group_7_0__2
+            // InternalOCLinEcore.g:13282:1: ( rule__ReferenceCS__Group_7_0__1__Impl rule__ReferenceCS__Group_7_0__2 )
+            // InternalOCLinEcore.g:13283:2: rule__ReferenceCS__Group_7_0__1__Impl rule__ReferenceCS__Group_7_0__2
             {
             pushFollow(FollowSets000.FOLLOW_71);
             rule__ReferenceCS__Group_7_0__1__Impl();
@@ -41310,22 +41378,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0__1__Impl"
-    // InternalOCLinEcore.g:13278:1: rule__ReferenceCS__Group_7_0__1__Impl : ( ( rule__ReferenceCS__Alternatives_7_0_1 )* ) ;
+    // InternalOCLinEcore.g:13290:1: rule__ReferenceCS__Group_7_0__1__Impl : ( ( rule__ReferenceCS__Alternatives_7_0_1 )* ) ;
     public final void rule__ReferenceCS__Group_7_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13282:1: ( ( ( rule__ReferenceCS__Alternatives_7_0_1 )* ) )
-            // InternalOCLinEcore.g:13283:1: ( ( rule__ReferenceCS__Alternatives_7_0_1 )* )
+            // InternalOCLinEcore.g:13294:1: ( ( ( rule__ReferenceCS__Alternatives_7_0_1 )* ) )
+            // InternalOCLinEcore.g:13295:1: ( ( rule__ReferenceCS__Alternatives_7_0_1 )* )
             {
-            // InternalOCLinEcore.g:13283:1: ( ( rule__ReferenceCS__Alternatives_7_0_1 )* )
-            // InternalOCLinEcore.g:13284:1: ( rule__ReferenceCS__Alternatives_7_0_1 )*
+            // InternalOCLinEcore.g:13295:1: ( ( rule__ReferenceCS__Alternatives_7_0_1 )* )
+            // InternalOCLinEcore.g:13296:1: ( rule__ReferenceCS__Alternatives_7_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getAlternatives_7_0_1()); 
             }
-            // InternalOCLinEcore.g:13285:1: ( rule__ReferenceCS__Alternatives_7_0_1 )*
+            // InternalOCLinEcore.g:13297:1: ( rule__ReferenceCS__Alternatives_7_0_1 )*
             loop158:
             do {
                 int alt158=2;
@@ -41338,7 +41406,7 @@
 
                 switch (alt158) {
             	case 1 :
-            	    // InternalOCLinEcore.g:13285:2: rule__ReferenceCS__Alternatives_7_0_1
+            	    // InternalOCLinEcore.g:13297:2: rule__ReferenceCS__Alternatives_7_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_72);
             	    rule__ReferenceCS__Alternatives_7_0_1();
@@ -41379,14 +41447,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0__2"
-    // InternalOCLinEcore.g:13295:1: rule__ReferenceCS__Group_7_0__2 : rule__ReferenceCS__Group_7_0__2__Impl ;
+    // InternalOCLinEcore.g:13307:1: rule__ReferenceCS__Group_7_0__2 : rule__ReferenceCS__Group_7_0__2__Impl ;
     public final void rule__ReferenceCS__Group_7_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13299:1: ( rule__ReferenceCS__Group_7_0__2__Impl )
-            // InternalOCLinEcore.g:13300:2: rule__ReferenceCS__Group_7_0__2__Impl
+            // InternalOCLinEcore.g:13311:1: ( rule__ReferenceCS__Group_7_0__2__Impl )
+            // InternalOCLinEcore.g:13312:2: rule__ReferenceCS__Group_7_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_7_0__2__Impl();
@@ -41412,17 +41480,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0__2__Impl"
-    // InternalOCLinEcore.g:13306:1: rule__ReferenceCS__Group_7_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:13318:1: rule__ReferenceCS__Group_7_0__2__Impl : ( '}' ) ;
     public final void rule__ReferenceCS__Group_7_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13310:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:13311:1: ( '}' )
+            // InternalOCLinEcore.g:13322:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:13323:1: ( '}' )
             {
-            // InternalOCLinEcore.g:13311:1: ( '}' )
-            // InternalOCLinEcore.g:13312:1: '}'
+            // InternalOCLinEcore.g:13323:1: ( '}' )
+            // InternalOCLinEcore.g:13324:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getRightCurlyBracketKeyword_7_0_2()); 
@@ -41453,14 +41521,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1__0"
-    // InternalOCLinEcore.g:13331:1: rule__ReferenceCS__Group_7_0_1_1__0 : rule__ReferenceCS__Group_7_0_1_1__0__Impl rule__ReferenceCS__Group_7_0_1_1__1 ;
+    // InternalOCLinEcore.g:13343:1: rule__ReferenceCS__Group_7_0_1_1__0 : rule__ReferenceCS__Group_7_0_1_1__0__Impl rule__ReferenceCS__Group_7_0_1_1__1 ;
     public final void rule__ReferenceCS__Group_7_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13335:1: ( rule__ReferenceCS__Group_7_0_1_1__0__Impl rule__ReferenceCS__Group_7_0_1_1__1 )
-            // InternalOCLinEcore.g:13336:2: rule__ReferenceCS__Group_7_0_1_1__0__Impl rule__ReferenceCS__Group_7_0_1_1__1
+            // InternalOCLinEcore.g:13347:1: ( rule__ReferenceCS__Group_7_0_1_1__0__Impl rule__ReferenceCS__Group_7_0_1_1__1 )
+            // InternalOCLinEcore.g:13348:2: rule__ReferenceCS__Group_7_0_1_1__0__Impl rule__ReferenceCS__Group_7_0_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__ReferenceCS__Group_7_0_1_1__0__Impl();
@@ -41491,17 +41559,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1__0__Impl"
-    // InternalOCLinEcore.g:13343:1: rule__ReferenceCS__Group_7_0_1_1__0__Impl : ( 'key' ) ;
+    // InternalOCLinEcore.g:13355:1: rule__ReferenceCS__Group_7_0_1_1__0__Impl : ( 'key' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13347:1: ( ( 'key' ) )
-            // InternalOCLinEcore.g:13348:1: ( 'key' )
+            // InternalOCLinEcore.g:13359:1: ( ( 'key' ) )
+            // InternalOCLinEcore.g:13360:1: ( 'key' )
             {
-            // InternalOCLinEcore.g:13348:1: ( 'key' )
-            // InternalOCLinEcore.g:13349:1: 'key'
+            // InternalOCLinEcore.g:13360:1: ( 'key' )
+            // InternalOCLinEcore.g:13361:1: 'key'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getKeyKeyword_7_0_1_1_0()); 
@@ -41532,14 +41600,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1__1"
-    // InternalOCLinEcore.g:13362:1: rule__ReferenceCS__Group_7_0_1_1__1 : rule__ReferenceCS__Group_7_0_1_1__1__Impl rule__ReferenceCS__Group_7_0_1_1__2 ;
+    // InternalOCLinEcore.g:13374:1: rule__ReferenceCS__Group_7_0_1_1__1 : rule__ReferenceCS__Group_7_0_1_1__1__Impl rule__ReferenceCS__Group_7_0_1_1__2 ;
     public final void rule__ReferenceCS__Group_7_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13366:1: ( rule__ReferenceCS__Group_7_0_1_1__1__Impl rule__ReferenceCS__Group_7_0_1_1__2 )
-            // InternalOCLinEcore.g:13367:2: rule__ReferenceCS__Group_7_0_1_1__1__Impl rule__ReferenceCS__Group_7_0_1_1__2
+            // InternalOCLinEcore.g:13378:1: ( rule__ReferenceCS__Group_7_0_1_1__1__Impl rule__ReferenceCS__Group_7_0_1_1__2 )
+            // InternalOCLinEcore.g:13379:2: rule__ReferenceCS__Group_7_0_1_1__1__Impl rule__ReferenceCS__Group_7_0_1_1__2
             {
             pushFollow(FollowSets000.FOLLOW_73);
             rule__ReferenceCS__Group_7_0_1_1__1__Impl();
@@ -41570,23 +41638,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1__1__Impl"
-    // InternalOCLinEcore.g:13374:1: rule__ReferenceCS__Group_7_0_1_1__1__Impl : ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 ) ) ;
+    // InternalOCLinEcore.g:13386:1: rule__ReferenceCS__Group_7_0_1_1__1__Impl : ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 ) ) ;
     public final void rule__ReferenceCS__Group_7_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13378:1: ( ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 ) ) )
-            // InternalOCLinEcore.g:13379:1: ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 ) )
+            // InternalOCLinEcore.g:13390:1: ( ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 ) ) )
+            // InternalOCLinEcore.g:13391:1: ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 ) )
             {
-            // InternalOCLinEcore.g:13379:1: ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 ) )
-            // InternalOCLinEcore.g:13380:1: ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 )
+            // InternalOCLinEcore.g:13391:1: ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 ) )
+            // InternalOCLinEcore.g:13392:1: ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredKeysAssignment_7_0_1_1_1()); 
             }
-            // InternalOCLinEcore.g:13381:1: ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 )
-            // InternalOCLinEcore.g:13381:2: rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1
+            // InternalOCLinEcore.g:13393:1: ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 )
+            // InternalOCLinEcore.g:13393:2: rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1();
@@ -41621,14 +41689,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1__2"
-    // InternalOCLinEcore.g:13391:1: rule__ReferenceCS__Group_7_0_1_1__2 : rule__ReferenceCS__Group_7_0_1_1__2__Impl rule__ReferenceCS__Group_7_0_1_1__3 ;
+    // InternalOCLinEcore.g:13403:1: rule__ReferenceCS__Group_7_0_1_1__2 : rule__ReferenceCS__Group_7_0_1_1__2__Impl rule__ReferenceCS__Group_7_0_1_1__3 ;
     public final void rule__ReferenceCS__Group_7_0_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13395:1: ( rule__ReferenceCS__Group_7_0_1_1__2__Impl rule__ReferenceCS__Group_7_0_1_1__3 )
-            // InternalOCLinEcore.g:13396:2: rule__ReferenceCS__Group_7_0_1_1__2__Impl rule__ReferenceCS__Group_7_0_1_1__3
+            // InternalOCLinEcore.g:13407:1: ( rule__ReferenceCS__Group_7_0_1_1__2__Impl rule__ReferenceCS__Group_7_0_1_1__3 )
+            // InternalOCLinEcore.g:13408:2: rule__ReferenceCS__Group_7_0_1_1__2__Impl rule__ReferenceCS__Group_7_0_1_1__3
             {
             pushFollow(FollowSets000.FOLLOW_73);
             rule__ReferenceCS__Group_7_0_1_1__2__Impl();
@@ -41659,22 +41727,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1__2__Impl"
-    // InternalOCLinEcore.g:13403:1: rule__ReferenceCS__Group_7_0_1_1__2__Impl : ( ( rule__ReferenceCS__Group_7_0_1_1_2__0 )* ) ;
+    // InternalOCLinEcore.g:13415:1: rule__ReferenceCS__Group_7_0_1_1__2__Impl : ( ( rule__ReferenceCS__Group_7_0_1_1_2__0 )* ) ;
     public final void rule__ReferenceCS__Group_7_0_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13407:1: ( ( ( rule__ReferenceCS__Group_7_0_1_1_2__0 )* ) )
-            // InternalOCLinEcore.g:13408:1: ( ( rule__ReferenceCS__Group_7_0_1_1_2__0 )* )
+            // InternalOCLinEcore.g:13419:1: ( ( ( rule__ReferenceCS__Group_7_0_1_1_2__0 )* ) )
+            // InternalOCLinEcore.g:13420:1: ( ( rule__ReferenceCS__Group_7_0_1_1_2__0 )* )
             {
-            // InternalOCLinEcore.g:13408:1: ( ( rule__ReferenceCS__Group_7_0_1_1_2__0 )* )
-            // InternalOCLinEcore.g:13409:1: ( rule__ReferenceCS__Group_7_0_1_1_2__0 )*
+            // InternalOCLinEcore.g:13420:1: ( ( rule__ReferenceCS__Group_7_0_1_1_2__0 )* )
+            // InternalOCLinEcore.g:13421:1: ( rule__ReferenceCS__Group_7_0_1_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getGroup_7_0_1_1_2()); 
             }
-            // InternalOCLinEcore.g:13410:1: ( rule__ReferenceCS__Group_7_0_1_1_2__0 )*
+            // InternalOCLinEcore.g:13422:1: ( rule__ReferenceCS__Group_7_0_1_1_2__0 )*
             loop159:
             do {
                 int alt159=2;
@@ -41687,7 +41755,7 @@
 
                 switch (alt159) {
             	case 1 :
-            	    // InternalOCLinEcore.g:13410:2: rule__ReferenceCS__Group_7_0_1_1_2__0
+            	    // InternalOCLinEcore.g:13422:2: rule__ReferenceCS__Group_7_0_1_1_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__ReferenceCS__Group_7_0_1_1_2__0();
@@ -41728,14 +41796,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1__3"
-    // InternalOCLinEcore.g:13420:1: rule__ReferenceCS__Group_7_0_1_1__3 : rule__ReferenceCS__Group_7_0_1_1__3__Impl ;
+    // InternalOCLinEcore.g:13432:1: rule__ReferenceCS__Group_7_0_1_1__3 : rule__ReferenceCS__Group_7_0_1_1__3__Impl ;
     public final void rule__ReferenceCS__Group_7_0_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13424:1: ( rule__ReferenceCS__Group_7_0_1_1__3__Impl )
-            // InternalOCLinEcore.g:13425:2: rule__ReferenceCS__Group_7_0_1_1__3__Impl
+            // InternalOCLinEcore.g:13436:1: ( rule__ReferenceCS__Group_7_0_1_1__3__Impl )
+            // InternalOCLinEcore.g:13437:2: rule__ReferenceCS__Group_7_0_1_1__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_7_0_1_1__3__Impl();
@@ -41761,17 +41829,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1__3__Impl"
-    // InternalOCLinEcore.g:13431:1: rule__ReferenceCS__Group_7_0_1_1__3__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:13443:1: rule__ReferenceCS__Group_7_0_1_1__3__Impl : ( ';' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13435:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:13436:1: ( ';' )
+            // InternalOCLinEcore.g:13447:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:13448:1: ( ';' )
             {
-            // InternalOCLinEcore.g:13436:1: ( ';' )
-            // InternalOCLinEcore.g:13437:1: ';'
+            // InternalOCLinEcore.g:13448:1: ( ';' )
+            // InternalOCLinEcore.g:13449:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getSemicolonKeyword_7_0_1_1_3()); 
@@ -41802,14 +41870,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1_2__0"
-    // InternalOCLinEcore.g:13458:1: rule__ReferenceCS__Group_7_0_1_1_2__0 : rule__ReferenceCS__Group_7_0_1_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_1_2__1 ;
+    // InternalOCLinEcore.g:13470:1: rule__ReferenceCS__Group_7_0_1_1_2__0 : rule__ReferenceCS__Group_7_0_1_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_1_2__1 ;
     public final void rule__ReferenceCS__Group_7_0_1_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13462:1: ( rule__ReferenceCS__Group_7_0_1_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_1_2__1 )
-            // InternalOCLinEcore.g:13463:2: rule__ReferenceCS__Group_7_0_1_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_1_2__1
+            // InternalOCLinEcore.g:13474:1: ( rule__ReferenceCS__Group_7_0_1_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_1_2__1 )
+            // InternalOCLinEcore.g:13475:2: rule__ReferenceCS__Group_7_0_1_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_1_2__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__ReferenceCS__Group_7_0_1_1_2__0__Impl();
@@ -41840,17 +41908,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1_2__0__Impl"
-    // InternalOCLinEcore.g:13470:1: rule__ReferenceCS__Group_7_0_1_1_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:13482:1: rule__ReferenceCS__Group_7_0_1_1_2__0__Impl : ( ',' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13474:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:13475:1: ( ',' )
+            // InternalOCLinEcore.g:13486:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:13487:1: ( ',' )
             {
-            // InternalOCLinEcore.g:13475:1: ( ',' )
-            // InternalOCLinEcore.g:13476:1: ','
+            // InternalOCLinEcore.g:13487:1: ( ',' )
+            // InternalOCLinEcore.g:13488:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getCommaKeyword_7_0_1_1_2_0()); 
@@ -41881,14 +41949,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1_2__1"
-    // InternalOCLinEcore.g:13489:1: rule__ReferenceCS__Group_7_0_1_1_2__1 : rule__ReferenceCS__Group_7_0_1_1_2__1__Impl ;
+    // InternalOCLinEcore.g:13501:1: rule__ReferenceCS__Group_7_0_1_1_2__1 : rule__ReferenceCS__Group_7_0_1_1_2__1__Impl ;
     public final void rule__ReferenceCS__Group_7_0_1_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13493:1: ( rule__ReferenceCS__Group_7_0_1_1_2__1__Impl )
-            // InternalOCLinEcore.g:13494:2: rule__ReferenceCS__Group_7_0_1_1_2__1__Impl
+            // InternalOCLinEcore.g:13505:1: ( rule__ReferenceCS__Group_7_0_1_1_2__1__Impl )
+            // InternalOCLinEcore.g:13506:2: rule__ReferenceCS__Group_7_0_1_1_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_7_0_1_1_2__1__Impl();
@@ -41914,23 +41982,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_1_2__1__Impl"
-    // InternalOCLinEcore.g:13500:1: rule__ReferenceCS__Group_7_0_1_1_2__1__Impl : ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 ) ) ;
+    // InternalOCLinEcore.g:13512:1: rule__ReferenceCS__Group_7_0_1_1_2__1__Impl : ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 ) ) ;
     public final void rule__ReferenceCS__Group_7_0_1_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13504:1: ( ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 ) ) )
-            // InternalOCLinEcore.g:13505:1: ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 ) )
+            // InternalOCLinEcore.g:13516:1: ( ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 ) ) )
+            // InternalOCLinEcore.g:13517:1: ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 ) )
             {
-            // InternalOCLinEcore.g:13505:1: ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 ) )
-            // InternalOCLinEcore.g:13506:1: ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 )
+            // InternalOCLinEcore.g:13517:1: ( ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 ) )
+            // InternalOCLinEcore.g:13518:1: ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredKeysAssignment_7_0_1_1_2_1()); 
             }
-            // InternalOCLinEcore.g:13507:1: ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 )
-            // InternalOCLinEcore.g:13507:2: rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1
+            // InternalOCLinEcore.g:13519:1: ( rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 )
+            // InternalOCLinEcore.g:13519:2: rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1();
@@ -41965,14 +42033,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__0"
-    // InternalOCLinEcore.g:13521:1: rule__ReferenceCS__Group_7_0_1_2__0 : rule__ReferenceCS__Group_7_0_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_2__1 ;
+    // InternalOCLinEcore.g:13533:1: rule__ReferenceCS__Group_7_0_1_2__0 : rule__ReferenceCS__Group_7_0_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_2__1 ;
     public final void rule__ReferenceCS__Group_7_0_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13525:1: ( rule__ReferenceCS__Group_7_0_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_2__1 )
-            // InternalOCLinEcore.g:13526:2: rule__ReferenceCS__Group_7_0_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_2__1
+            // InternalOCLinEcore.g:13537:1: ( rule__ReferenceCS__Group_7_0_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_2__1 )
+            // InternalOCLinEcore.g:13538:2: rule__ReferenceCS__Group_7_0_1_2__0__Impl rule__ReferenceCS__Group_7_0_1_2__1
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__ReferenceCS__Group_7_0_1_2__0__Impl();
@@ -42003,17 +42071,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__0__Impl"
-    // InternalOCLinEcore.g:13533:1: rule__ReferenceCS__Group_7_0_1_2__0__Impl : ( 'initial' ) ;
+    // InternalOCLinEcore.g:13545:1: rule__ReferenceCS__Group_7_0_1_2__0__Impl : ( 'initial' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13537:1: ( ( 'initial' ) )
-            // InternalOCLinEcore.g:13538:1: ( 'initial' )
+            // InternalOCLinEcore.g:13549:1: ( ( 'initial' ) )
+            // InternalOCLinEcore.g:13550:1: ( 'initial' )
             {
-            // InternalOCLinEcore.g:13538:1: ( 'initial' )
-            // InternalOCLinEcore.g:13539:1: 'initial'
+            // InternalOCLinEcore.g:13550:1: ( 'initial' )
+            // InternalOCLinEcore.g:13551:1: 'initial'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getInitialKeyword_7_0_1_2_0()); 
@@ -42044,14 +42112,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__1"
-    // InternalOCLinEcore.g:13552:1: rule__ReferenceCS__Group_7_0_1_2__1 : rule__ReferenceCS__Group_7_0_1_2__1__Impl rule__ReferenceCS__Group_7_0_1_2__2 ;
+    // InternalOCLinEcore.g:13564:1: rule__ReferenceCS__Group_7_0_1_2__1 : rule__ReferenceCS__Group_7_0_1_2__1__Impl rule__ReferenceCS__Group_7_0_1_2__2 ;
     public final void rule__ReferenceCS__Group_7_0_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13556:1: ( rule__ReferenceCS__Group_7_0_1_2__1__Impl rule__ReferenceCS__Group_7_0_1_2__2 )
-            // InternalOCLinEcore.g:13557:2: rule__ReferenceCS__Group_7_0_1_2__1__Impl rule__ReferenceCS__Group_7_0_1_2__2
+            // InternalOCLinEcore.g:13568:1: ( rule__ReferenceCS__Group_7_0_1_2__1__Impl rule__ReferenceCS__Group_7_0_1_2__2 )
+            // InternalOCLinEcore.g:13569:2: rule__ReferenceCS__Group_7_0_1_2__1__Impl rule__ReferenceCS__Group_7_0_1_2__2
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__ReferenceCS__Group_7_0_1_2__1__Impl();
@@ -42082,22 +42150,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__1__Impl"
-    // InternalOCLinEcore.g:13564:1: rule__ReferenceCS__Group_7_0_1_2__1__Impl : ( ( ruleUnrestrictedName )? ) ;
+    // InternalOCLinEcore.g:13576:1: rule__ReferenceCS__Group_7_0_1_2__1__Impl : ( ( ruleUnrestrictedName )? ) ;
     public final void rule__ReferenceCS__Group_7_0_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13568:1: ( ( ( ruleUnrestrictedName )? ) )
-            // InternalOCLinEcore.g:13569:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:13580:1: ( ( ( ruleUnrestrictedName )? ) )
+            // InternalOCLinEcore.g:13581:1: ( ( ruleUnrestrictedName )? )
             {
-            // InternalOCLinEcore.g:13569:1: ( ( ruleUnrestrictedName )? )
-            // InternalOCLinEcore.g:13570:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:13581:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:13582:1: ( ruleUnrestrictedName )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getUnrestrictedNameParserRuleCall_7_0_1_2_1()); 
             }
-            // InternalOCLinEcore.g:13571:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:13583:1: ( ruleUnrestrictedName )?
             int alt160=2;
             int LA160_0 = input.LA(1);
 
@@ -42106,7 +42174,7 @@
             }
             switch (alt160) {
                 case 1 :
-                    // InternalOCLinEcore.g:13571:3: ruleUnrestrictedName
+                    // InternalOCLinEcore.g:13583:3: ruleUnrestrictedName
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     ruleUnrestrictedName();
@@ -42144,14 +42212,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__2"
-    // InternalOCLinEcore.g:13581:1: rule__ReferenceCS__Group_7_0_1_2__2 : rule__ReferenceCS__Group_7_0_1_2__2__Impl rule__ReferenceCS__Group_7_0_1_2__3 ;
+    // InternalOCLinEcore.g:13593:1: rule__ReferenceCS__Group_7_0_1_2__2 : rule__ReferenceCS__Group_7_0_1_2__2__Impl rule__ReferenceCS__Group_7_0_1_2__3 ;
     public final void rule__ReferenceCS__Group_7_0_1_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13585:1: ( rule__ReferenceCS__Group_7_0_1_2__2__Impl rule__ReferenceCS__Group_7_0_1_2__3 )
-            // InternalOCLinEcore.g:13586:2: rule__ReferenceCS__Group_7_0_1_2__2__Impl rule__ReferenceCS__Group_7_0_1_2__3
+            // InternalOCLinEcore.g:13597:1: ( rule__ReferenceCS__Group_7_0_1_2__2__Impl rule__ReferenceCS__Group_7_0_1_2__3 )
+            // InternalOCLinEcore.g:13598:2: rule__ReferenceCS__Group_7_0_1_2__2__Impl rule__ReferenceCS__Group_7_0_1_2__3
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__ReferenceCS__Group_7_0_1_2__2__Impl();
@@ -42182,17 +42250,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__2__Impl"
-    // InternalOCLinEcore.g:13593:1: rule__ReferenceCS__Group_7_0_1_2__2__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:13605:1: rule__ReferenceCS__Group_7_0_1_2__2__Impl : ( ':' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13597:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:13598:1: ( ':' )
+            // InternalOCLinEcore.g:13609:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:13610:1: ( ':' )
             {
-            // InternalOCLinEcore.g:13598:1: ( ':' )
-            // InternalOCLinEcore.g:13599:1: ':'
+            // InternalOCLinEcore.g:13610:1: ( ':' )
+            // InternalOCLinEcore.g:13611:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getColonKeyword_7_0_1_2_2()); 
@@ -42223,14 +42291,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__3"
-    // InternalOCLinEcore.g:13612:1: rule__ReferenceCS__Group_7_0_1_2__3 : rule__ReferenceCS__Group_7_0_1_2__3__Impl rule__ReferenceCS__Group_7_0_1_2__4 ;
+    // InternalOCLinEcore.g:13624:1: rule__ReferenceCS__Group_7_0_1_2__3 : rule__ReferenceCS__Group_7_0_1_2__3__Impl rule__ReferenceCS__Group_7_0_1_2__4 ;
     public final void rule__ReferenceCS__Group_7_0_1_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13616:1: ( rule__ReferenceCS__Group_7_0_1_2__3__Impl rule__ReferenceCS__Group_7_0_1_2__4 )
-            // InternalOCLinEcore.g:13617:2: rule__ReferenceCS__Group_7_0_1_2__3__Impl rule__ReferenceCS__Group_7_0_1_2__4
+            // InternalOCLinEcore.g:13628:1: ( rule__ReferenceCS__Group_7_0_1_2__3__Impl rule__ReferenceCS__Group_7_0_1_2__4 )
+            // InternalOCLinEcore.g:13629:2: rule__ReferenceCS__Group_7_0_1_2__3__Impl rule__ReferenceCS__Group_7_0_1_2__4
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__ReferenceCS__Group_7_0_1_2__3__Impl();
@@ -42261,22 +42329,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__3__Impl"
-    // InternalOCLinEcore.g:13624:1: rule__ReferenceCS__Group_7_0_1_2__3__Impl : ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )? ) ;
+    // InternalOCLinEcore.g:13636:1: rule__ReferenceCS__Group_7_0_1_2__3__Impl : ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )? ) ;
     public final void rule__ReferenceCS__Group_7_0_1_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13628:1: ( ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )? ) )
-            // InternalOCLinEcore.g:13629:1: ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )? )
+            // InternalOCLinEcore.g:13640:1: ( ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )? ) )
+            // InternalOCLinEcore.g:13641:1: ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )? )
             {
-            // InternalOCLinEcore.g:13629:1: ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )? )
-            // InternalOCLinEcore.g:13630:1: ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )?
+            // InternalOCLinEcore.g:13641:1: ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )? )
+            // InternalOCLinEcore.g:13642:1: ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getOwnedDefaultExpressionsAssignment_7_0_1_2_3()); 
             }
-            // InternalOCLinEcore.g:13631:1: ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )?
+            // InternalOCLinEcore.g:13643:1: ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 )?
             int alt161=2;
             int LA161_0 = input.LA(1);
 
@@ -42285,7 +42353,7 @@
             }
             switch (alt161) {
                 case 1 :
-                    // InternalOCLinEcore.g:13631:2: rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3
+                    // InternalOCLinEcore.g:13643:2: rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3();
@@ -42323,14 +42391,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__4"
-    // InternalOCLinEcore.g:13641:1: rule__ReferenceCS__Group_7_0_1_2__4 : rule__ReferenceCS__Group_7_0_1_2__4__Impl ;
+    // InternalOCLinEcore.g:13653:1: rule__ReferenceCS__Group_7_0_1_2__4 : rule__ReferenceCS__Group_7_0_1_2__4__Impl ;
     public final void rule__ReferenceCS__Group_7_0_1_2__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13645:1: ( rule__ReferenceCS__Group_7_0_1_2__4__Impl )
-            // InternalOCLinEcore.g:13646:2: rule__ReferenceCS__Group_7_0_1_2__4__Impl
+            // InternalOCLinEcore.g:13657:1: ( rule__ReferenceCS__Group_7_0_1_2__4__Impl )
+            // InternalOCLinEcore.g:13658:2: rule__ReferenceCS__Group_7_0_1_2__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_7_0_1_2__4__Impl();
@@ -42356,17 +42424,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_2__4__Impl"
-    // InternalOCLinEcore.g:13652:1: rule__ReferenceCS__Group_7_0_1_2__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:13664:1: rule__ReferenceCS__Group_7_0_1_2__4__Impl : ( ';' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_2__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13656:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:13657:1: ( ';' )
+            // InternalOCLinEcore.g:13668:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:13669:1: ( ';' )
             {
-            // InternalOCLinEcore.g:13657:1: ( ';' )
-            // InternalOCLinEcore.g:13658:1: ';'
+            // InternalOCLinEcore.g:13669:1: ( ';' )
+            // InternalOCLinEcore.g:13670:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getSemicolonKeyword_7_0_1_2_4()); 
@@ -42397,14 +42465,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__0"
-    // InternalOCLinEcore.g:13681:1: rule__ReferenceCS__Group_7_0_1_3__0 : rule__ReferenceCS__Group_7_0_1_3__0__Impl rule__ReferenceCS__Group_7_0_1_3__1 ;
+    // InternalOCLinEcore.g:13693:1: rule__ReferenceCS__Group_7_0_1_3__0 : rule__ReferenceCS__Group_7_0_1_3__0__Impl rule__ReferenceCS__Group_7_0_1_3__1 ;
     public final void rule__ReferenceCS__Group_7_0_1_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13685:1: ( rule__ReferenceCS__Group_7_0_1_3__0__Impl rule__ReferenceCS__Group_7_0_1_3__1 )
-            // InternalOCLinEcore.g:13686:2: rule__ReferenceCS__Group_7_0_1_3__0__Impl rule__ReferenceCS__Group_7_0_1_3__1
+            // InternalOCLinEcore.g:13697:1: ( rule__ReferenceCS__Group_7_0_1_3__0__Impl rule__ReferenceCS__Group_7_0_1_3__1 )
+            // InternalOCLinEcore.g:13698:2: rule__ReferenceCS__Group_7_0_1_3__0__Impl rule__ReferenceCS__Group_7_0_1_3__1
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__ReferenceCS__Group_7_0_1_3__0__Impl();
@@ -42435,17 +42503,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__0__Impl"
-    // InternalOCLinEcore.g:13693:1: rule__ReferenceCS__Group_7_0_1_3__0__Impl : ( 'derivation' ) ;
+    // InternalOCLinEcore.g:13705:1: rule__ReferenceCS__Group_7_0_1_3__0__Impl : ( 'derivation' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13697:1: ( ( 'derivation' ) )
-            // InternalOCLinEcore.g:13698:1: ( 'derivation' )
+            // InternalOCLinEcore.g:13709:1: ( ( 'derivation' ) )
+            // InternalOCLinEcore.g:13710:1: ( 'derivation' )
             {
-            // InternalOCLinEcore.g:13698:1: ( 'derivation' )
-            // InternalOCLinEcore.g:13699:1: 'derivation'
+            // InternalOCLinEcore.g:13710:1: ( 'derivation' )
+            // InternalOCLinEcore.g:13711:1: 'derivation'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getDerivationKeyword_7_0_1_3_0()); 
@@ -42476,14 +42544,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__1"
-    // InternalOCLinEcore.g:13712:1: rule__ReferenceCS__Group_7_0_1_3__1 : rule__ReferenceCS__Group_7_0_1_3__1__Impl rule__ReferenceCS__Group_7_0_1_3__2 ;
+    // InternalOCLinEcore.g:13724:1: rule__ReferenceCS__Group_7_0_1_3__1 : rule__ReferenceCS__Group_7_0_1_3__1__Impl rule__ReferenceCS__Group_7_0_1_3__2 ;
     public final void rule__ReferenceCS__Group_7_0_1_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13716:1: ( rule__ReferenceCS__Group_7_0_1_3__1__Impl rule__ReferenceCS__Group_7_0_1_3__2 )
-            // InternalOCLinEcore.g:13717:2: rule__ReferenceCS__Group_7_0_1_3__1__Impl rule__ReferenceCS__Group_7_0_1_3__2
+            // InternalOCLinEcore.g:13728:1: ( rule__ReferenceCS__Group_7_0_1_3__1__Impl rule__ReferenceCS__Group_7_0_1_3__2 )
+            // InternalOCLinEcore.g:13729:2: rule__ReferenceCS__Group_7_0_1_3__1__Impl rule__ReferenceCS__Group_7_0_1_3__2
             {
             pushFollow(FollowSets000.FOLLOW_15);
             rule__ReferenceCS__Group_7_0_1_3__1__Impl();
@@ -42514,22 +42582,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__1__Impl"
-    // InternalOCLinEcore.g:13724:1: rule__ReferenceCS__Group_7_0_1_3__1__Impl : ( ( ruleUnrestrictedName )? ) ;
+    // InternalOCLinEcore.g:13736:1: rule__ReferenceCS__Group_7_0_1_3__1__Impl : ( ( ruleUnrestrictedName )? ) ;
     public final void rule__ReferenceCS__Group_7_0_1_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13728:1: ( ( ( ruleUnrestrictedName )? ) )
-            // InternalOCLinEcore.g:13729:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:13740:1: ( ( ( ruleUnrestrictedName )? ) )
+            // InternalOCLinEcore.g:13741:1: ( ( ruleUnrestrictedName )? )
             {
-            // InternalOCLinEcore.g:13729:1: ( ( ruleUnrestrictedName )? )
-            // InternalOCLinEcore.g:13730:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:13741:1: ( ( ruleUnrestrictedName )? )
+            // InternalOCLinEcore.g:13742:1: ( ruleUnrestrictedName )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getUnrestrictedNameParserRuleCall_7_0_1_3_1()); 
             }
-            // InternalOCLinEcore.g:13731:1: ( ruleUnrestrictedName )?
+            // InternalOCLinEcore.g:13743:1: ( ruleUnrestrictedName )?
             int alt162=2;
             int LA162_0 = input.LA(1);
 
@@ -42538,7 +42606,7 @@
             }
             switch (alt162) {
                 case 1 :
-                    // InternalOCLinEcore.g:13731:3: ruleUnrestrictedName
+                    // InternalOCLinEcore.g:13743:3: ruleUnrestrictedName
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     ruleUnrestrictedName();
@@ -42576,14 +42644,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__2"
-    // InternalOCLinEcore.g:13741:1: rule__ReferenceCS__Group_7_0_1_3__2 : rule__ReferenceCS__Group_7_0_1_3__2__Impl rule__ReferenceCS__Group_7_0_1_3__3 ;
+    // InternalOCLinEcore.g:13753:1: rule__ReferenceCS__Group_7_0_1_3__2 : rule__ReferenceCS__Group_7_0_1_3__2__Impl rule__ReferenceCS__Group_7_0_1_3__3 ;
     public final void rule__ReferenceCS__Group_7_0_1_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13745:1: ( rule__ReferenceCS__Group_7_0_1_3__2__Impl rule__ReferenceCS__Group_7_0_1_3__3 )
-            // InternalOCLinEcore.g:13746:2: rule__ReferenceCS__Group_7_0_1_3__2__Impl rule__ReferenceCS__Group_7_0_1_3__3
+            // InternalOCLinEcore.g:13757:1: ( rule__ReferenceCS__Group_7_0_1_3__2__Impl rule__ReferenceCS__Group_7_0_1_3__3 )
+            // InternalOCLinEcore.g:13758:2: rule__ReferenceCS__Group_7_0_1_3__2__Impl rule__ReferenceCS__Group_7_0_1_3__3
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__ReferenceCS__Group_7_0_1_3__2__Impl();
@@ -42614,17 +42682,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__2__Impl"
-    // InternalOCLinEcore.g:13753:1: rule__ReferenceCS__Group_7_0_1_3__2__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:13765:1: rule__ReferenceCS__Group_7_0_1_3__2__Impl : ( ':' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13757:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:13758:1: ( ':' )
+            // InternalOCLinEcore.g:13769:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:13770:1: ( ':' )
             {
-            // InternalOCLinEcore.g:13758:1: ( ':' )
-            // InternalOCLinEcore.g:13759:1: ':'
+            // InternalOCLinEcore.g:13770:1: ( ':' )
+            // InternalOCLinEcore.g:13771:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getColonKeyword_7_0_1_3_2()); 
@@ -42655,14 +42723,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__3"
-    // InternalOCLinEcore.g:13772:1: rule__ReferenceCS__Group_7_0_1_3__3 : rule__ReferenceCS__Group_7_0_1_3__3__Impl rule__ReferenceCS__Group_7_0_1_3__4 ;
+    // InternalOCLinEcore.g:13784:1: rule__ReferenceCS__Group_7_0_1_3__3 : rule__ReferenceCS__Group_7_0_1_3__3__Impl rule__ReferenceCS__Group_7_0_1_3__4 ;
     public final void rule__ReferenceCS__Group_7_0_1_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13776:1: ( rule__ReferenceCS__Group_7_0_1_3__3__Impl rule__ReferenceCS__Group_7_0_1_3__4 )
-            // InternalOCLinEcore.g:13777:2: rule__ReferenceCS__Group_7_0_1_3__3__Impl rule__ReferenceCS__Group_7_0_1_3__4
+            // InternalOCLinEcore.g:13788:1: ( rule__ReferenceCS__Group_7_0_1_3__3__Impl rule__ReferenceCS__Group_7_0_1_3__4 )
+            // InternalOCLinEcore.g:13789:2: rule__ReferenceCS__Group_7_0_1_3__3__Impl rule__ReferenceCS__Group_7_0_1_3__4
             {
             pushFollow(FollowSets000.FOLLOW_14);
             rule__ReferenceCS__Group_7_0_1_3__3__Impl();
@@ -42693,22 +42761,22 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__3__Impl"
-    // InternalOCLinEcore.g:13784:1: rule__ReferenceCS__Group_7_0_1_3__3__Impl : ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )? ) ;
+    // InternalOCLinEcore.g:13796:1: rule__ReferenceCS__Group_7_0_1_3__3__Impl : ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )? ) ;
     public final void rule__ReferenceCS__Group_7_0_1_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13788:1: ( ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )? ) )
-            // InternalOCLinEcore.g:13789:1: ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )? )
+            // InternalOCLinEcore.g:13800:1: ( ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )? ) )
+            // InternalOCLinEcore.g:13801:1: ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )? )
             {
-            // InternalOCLinEcore.g:13789:1: ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )? )
-            // InternalOCLinEcore.g:13790:1: ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )?
+            // InternalOCLinEcore.g:13801:1: ( ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )? )
+            // InternalOCLinEcore.g:13802:1: ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getOwnedDefaultExpressionsAssignment_7_0_1_3_3()); 
             }
-            // InternalOCLinEcore.g:13791:1: ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )?
+            // InternalOCLinEcore.g:13803:1: ( rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 )?
             int alt163=2;
             int LA163_0 = input.LA(1);
 
@@ -42717,7 +42785,7 @@
             }
             switch (alt163) {
                 case 1 :
-                    // InternalOCLinEcore.g:13791:2: rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3
+                    // InternalOCLinEcore.g:13803:2: rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3();
@@ -42755,14 +42823,14 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__4"
-    // InternalOCLinEcore.g:13801:1: rule__ReferenceCS__Group_7_0_1_3__4 : rule__ReferenceCS__Group_7_0_1_3__4__Impl ;
+    // InternalOCLinEcore.g:13813:1: rule__ReferenceCS__Group_7_0_1_3__4 : rule__ReferenceCS__Group_7_0_1_3__4__Impl ;
     public final void rule__ReferenceCS__Group_7_0_1_3__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13805:1: ( rule__ReferenceCS__Group_7_0_1_3__4__Impl )
-            // InternalOCLinEcore.g:13806:2: rule__ReferenceCS__Group_7_0_1_3__4__Impl
+            // InternalOCLinEcore.g:13817:1: ( rule__ReferenceCS__Group_7_0_1_3__4__Impl )
+            // InternalOCLinEcore.g:13818:2: rule__ReferenceCS__Group_7_0_1_3__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ReferenceCS__Group_7_0_1_3__4__Impl();
@@ -42788,17 +42856,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__Group_7_0_1_3__4__Impl"
-    // InternalOCLinEcore.g:13812:1: rule__ReferenceCS__Group_7_0_1_3__4__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:13824:1: rule__ReferenceCS__Group_7_0_1_3__4__Impl : ( ';' ) ;
     public final void rule__ReferenceCS__Group_7_0_1_3__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13816:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:13817:1: ( ';' )
+            // InternalOCLinEcore.g:13828:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:13829:1: ( ';' )
             {
-            // InternalOCLinEcore.g:13817:1: ( ';' )
-            // InternalOCLinEcore.g:13818:1: ';'
+            // InternalOCLinEcore.g:13829:1: ( ';' )
+            // InternalOCLinEcore.g:13830:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getSemicolonKeyword_7_0_1_3_4()); 
@@ -42829,14 +42897,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__0"
-    // InternalOCLinEcore.g:13841:1: rule__StructuredClassCS__Group__0 : rule__StructuredClassCS__Group__0__Impl rule__StructuredClassCS__Group__1 ;
+    // InternalOCLinEcore.g:13853:1: rule__StructuredClassCS__Group__0 : rule__StructuredClassCS__Group__0__Impl rule__StructuredClassCS__Group__1 ;
     public final void rule__StructuredClassCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13845:1: ( rule__StructuredClassCS__Group__0__Impl rule__StructuredClassCS__Group__1 )
-            // InternalOCLinEcore.g:13846:2: rule__StructuredClassCS__Group__0__Impl rule__StructuredClassCS__Group__1
+            // InternalOCLinEcore.g:13857:1: ( rule__StructuredClassCS__Group__0__Impl rule__StructuredClassCS__Group__1 )
+            // InternalOCLinEcore.g:13858:2: rule__StructuredClassCS__Group__0__Impl rule__StructuredClassCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_74);
             rule__StructuredClassCS__Group__0__Impl();
@@ -42867,22 +42935,22 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__0__Impl"
-    // InternalOCLinEcore.g:13853:1: rule__StructuredClassCS__Group__0__Impl : ( ( rule__StructuredClassCS__IsAbstractAssignment_0 )? ) ;
+    // InternalOCLinEcore.g:13865:1: rule__StructuredClassCS__Group__0__Impl : ( ( rule__StructuredClassCS__IsAbstractAssignment_0 )? ) ;
     public final void rule__StructuredClassCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13857:1: ( ( ( rule__StructuredClassCS__IsAbstractAssignment_0 )? ) )
-            // InternalOCLinEcore.g:13858:1: ( ( rule__StructuredClassCS__IsAbstractAssignment_0 )? )
+            // InternalOCLinEcore.g:13869:1: ( ( ( rule__StructuredClassCS__IsAbstractAssignment_0 )? ) )
+            // InternalOCLinEcore.g:13870:1: ( ( rule__StructuredClassCS__IsAbstractAssignment_0 )? )
             {
-            // InternalOCLinEcore.g:13858:1: ( ( rule__StructuredClassCS__IsAbstractAssignment_0 )? )
-            // InternalOCLinEcore.g:13859:1: ( rule__StructuredClassCS__IsAbstractAssignment_0 )?
+            // InternalOCLinEcore.g:13870:1: ( ( rule__StructuredClassCS__IsAbstractAssignment_0 )? )
+            // InternalOCLinEcore.g:13871:1: ( rule__StructuredClassCS__IsAbstractAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getIsAbstractAssignment_0()); 
             }
-            // InternalOCLinEcore.g:13860:1: ( rule__StructuredClassCS__IsAbstractAssignment_0 )?
+            // InternalOCLinEcore.g:13872:1: ( rule__StructuredClassCS__IsAbstractAssignment_0 )?
             int alt164=2;
             int LA164_0 = input.LA(1);
 
@@ -42891,7 +42959,7 @@
             }
             switch (alt164) {
                 case 1 :
-                    // InternalOCLinEcore.g:13860:2: rule__StructuredClassCS__IsAbstractAssignment_0
+                    // InternalOCLinEcore.g:13872:2: rule__StructuredClassCS__IsAbstractAssignment_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__IsAbstractAssignment_0();
@@ -42929,14 +42997,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__1"
-    // InternalOCLinEcore.g:13870:1: rule__StructuredClassCS__Group__1 : rule__StructuredClassCS__Group__1__Impl rule__StructuredClassCS__Group__2 ;
+    // InternalOCLinEcore.g:13882:1: rule__StructuredClassCS__Group__1 : rule__StructuredClassCS__Group__1__Impl rule__StructuredClassCS__Group__2 ;
     public final void rule__StructuredClassCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13874:1: ( rule__StructuredClassCS__Group__1__Impl rule__StructuredClassCS__Group__2 )
-            // InternalOCLinEcore.g:13875:2: rule__StructuredClassCS__Group__1__Impl rule__StructuredClassCS__Group__2
+            // InternalOCLinEcore.g:13886:1: ( rule__StructuredClassCS__Group__1__Impl rule__StructuredClassCS__Group__2 )
+            // InternalOCLinEcore.g:13887:2: rule__StructuredClassCS__Group__1__Impl rule__StructuredClassCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__StructuredClassCS__Group__1__Impl();
@@ -42967,17 +43035,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__1__Impl"
-    // InternalOCLinEcore.g:13882:1: rule__StructuredClassCS__Group__1__Impl : ( 'class' ) ;
+    // InternalOCLinEcore.g:13894:1: rule__StructuredClassCS__Group__1__Impl : ( 'class' ) ;
     public final void rule__StructuredClassCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13886:1: ( ( 'class' ) )
-            // InternalOCLinEcore.g:13887:1: ( 'class' )
+            // InternalOCLinEcore.g:13898:1: ( ( 'class' ) )
+            // InternalOCLinEcore.g:13899:1: ( 'class' )
             {
-            // InternalOCLinEcore.g:13887:1: ( 'class' )
-            // InternalOCLinEcore.g:13888:1: 'class'
+            // InternalOCLinEcore.g:13899:1: ( 'class' )
+            // InternalOCLinEcore.g:13900:1: 'class'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getClassKeyword_1()); 
@@ -43008,14 +43076,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__2"
-    // InternalOCLinEcore.g:13901:1: rule__StructuredClassCS__Group__2 : rule__StructuredClassCS__Group__2__Impl rule__StructuredClassCS__Group__3 ;
+    // InternalOCLinEcore.g:13913:1: rule__StructuredClassCS__Group__2 : rule__StructuredClassCS__Group__2__Impl rule__StructuredClassCS__Group__3 ;
     public final void rule__StructuredClassCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13905:1: ( rule__StructuredClassCS__Group__2__Impl rule__StructuredClassCS__Group__3 )
-            // InternalOCLinEcore.g:13906:2: rule__StructuredClassCS__Group__2__Impl rule__StructuredClassCS__Group__3
+            // InternalOCLinEcore.g:13917:1: ( rule__StructuredClassCS__Group__2__Impl rule__StructuredClassCS__Group__3 )
+            // InternalOCLinEcore.g:13918:2: rule__StructuredClassCS__Group__2__Impl rule__StructuredClassCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_75);
             rule__StructuredClassCS__Group__2__Impl();
@@ -43046,23 +43114,23 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__2__Impl"
-    // InternalOCLinEcore.g:13913:1: rule__StructuredClassCS__Group__2__Impl : ( ( rule__StructuredClassCS__NameAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:13925:1: rule__StructuredClassCS__Group__2__Impl : ( ( rule__StructuredClassCS__NameAssignment_2 ) ) ;
     public final void rule__StructuredClassCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13917:1: ( ( ( rule__StructuredClassCS__NameAssignment_2 ) ) )
-            // InternalOCLinEcore.g:13918:1: ( ( rule__StructuredClassCS__NameAssignment_2 ) )
+            // InternalOCLinEcore.g:13929:1: ( ( ( rule__StructuredClassCS__NameAssignment_2 ) ) )
+            // InternalOCLinEcore.g:13930:1: ( ( rule__StructuredClassCS__NameAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:13918:1: ( ( rule__StructuredClassCS__NameAssignment_2 ) )
-            // InternalOCLinEcore.g:13919:1: ( rule__StructuredClassCS__NameAssignment_2 )
+            // InternalOCLinEcore.g:13930:1: ( ( rule__StructuredClassCS__NameAssignment_2 ) )
+            // InternalOCLinEcore.g:13931:1: ( rule__StructuredClassCS__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getNameAssignment_2()); 
             }
-            // InternalOCLinEcore.g:13920:1: ( rule__StructuredClassCS__NameAssignment_2 )
-            // InternalOCLinEcore.g:13920:2: rule__StructuredClassCS__NameAssignment_2
+            // InternalOCLinEcore.g:13932:1: ( rule__StructuredClassCS__NameAssignment_2 )
+            // InternalOCLinEcore.g:13932:2: rule__StructuredClassCS__NameAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__NameAssignment_2();
@@ -43097,14 +43165,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__3"
-    // InternalOCLinEcore.g:13930:1: rule__StructuredClassCS__Group__3 : rule__StructuredClassCS__Group__3__Impl rule__StructuredClassCS__Group__4 ;
+    // InternalOCLinEcore.g:13942:1: rule__StructuredClassCS__Group__3 : rule__StructuredClassCS__Group__3__Impl rule__StructuredClassCS__Group__4 ;
     public final void rule__StructuredClassCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13934:1: ( rule__StructuredClassCS__Group__3__Impl rule__StructuredClassCS__Group__4 )
-            // InternalOCLinEcore.g:13935:2: rule__StructuredClassCS__Group__3__Impl rule__StructuredClassCS__Group__4
+            // InternalOCLinEcore.g:13946:1: ( rule__StructuredClassCS__Group__3__Impl rule__StructuredClassCS__Group__4 )
+            // InternalOCLinEcore.g:13947:2: rule__StructuredClassCS__Group__3__Impl rule__StructuredClassCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_75);
             rule__StructuredClassCS__Group__3__Impl();
@@ -43135,22 +43203,22 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__3__Impl"
-    // InternalOCLinEcore.g:13942:1: rule__StructuredClassCS__Group__3__Impl : ( ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )? ) ;
+    // InternalOCLinEcore.g:13954:1: rule__StructuredClassCS__Group__3__Impl : ( ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )? ) ;
     public final void rule__StructuredClassCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13946:1: ( ( ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )? ) )
-            // InternalOCLinEcore.g:13947:1: ( ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )? )
+            // InternalOCLinEcore.g:13958:1: ( ( ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )? ) )
+            // InternalOCLinEcore.g:13959:1: ( ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )? )
             {
-            // InternalOCLinEcore.g:13947:1: ( ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )? )
-            // InternalOCLinEcore.g:13948:1: ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )?
+            // InternalOCLinEcore.g:13959:1: ( ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )? )
+            // InternalOCLinEcore.g:13960:1: ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedSignatureAssignment_3()); 
             }
-            // InternalOCLinEcore.g:13949:1: ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )?
+            // InternalOCLinEcore.g:13961:1: ( rule__StructuredClassCS__OwnedSignatureAssignment_3 )?
             int alt165=2;
             int LA165_0 = input.LA(1);
 
@@ -43159,7 +43227,7 @@
             }
             switch (alt165) {
                 case 1 :
-                    // InternalOCLinEcore.g:13949:2: rule__StructuredClassCS__OwnedSignatureAssignment_3
+                    // InternalOCLinEcore.g:13961:2: rule__StructuredClassCS__OwnedSignatureAssignment_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__OwnedSignatureAssignment_3();
@@ -43197,14 +43265,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__4"
-    // InternalOCLinEcore.g:13959:1: rule__StructuredClassCS__Group__4 : rule__StructuredClassCS__Group__4__Impl rule__StructuredClassCS__Group__5 ;
+    // InternalOCLinEcore.g:13971:1: rule__StructuredClassCS__Group__4 : rule__StructuredClassCS__Group__4__Impl rule__StructuredClassCS__Group__5 ;
     public final void rule__StructuredClassCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13963:1: ( rule__StructuredClassCS__Group__4__Impl rule__StructuredClassCS__Group__5 )
-            // InternalOCLinEcore.g:13964:2: rule__StructuredClassCS__Group__4__Impl rule__StructuredClassCS__Group__5
+            // InternalOCLinEcore.g:13975:1: ( rule__StructuredClassCS__Group__4__Impl rule__StructuredClassCS__Group__5 )
+            // InternalOCLinEcore.g:13976:2: rule__StructuredClassCS__Group__4__Impl rule__StructuredClassCS__Group__5
             {
             pushFollow(FollowSets000.FOLLOW_75);
             rule__StructuredClassCS__Group__4__Impl();
@@ -43235,22 +43303,22 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__4__Impl"
-    // InternalOCLinEcore.g:13971:1: rule__StructuredClassCS__Group__4__Impl : ( ( rule__StructuredClassCS__Group_4__0 )? ) ;
+    // InternalOCLinEcore.g:13983:1: rule__StructuredClassCS__Group__4__Impl : ( ( rule__StructuredClassCS__Group_4__0 )? ) ;
     public final void rule__StructuredClassCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13975:1: ( ( ( rule__StructuredClassCS__Group_4__0 )? ) )
-            // InternalOCLinEcore.g:13976:1: ( ( rule__StructuredClassCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:13987:1: ( ( ( rule__StructuredClassCS__Group_4__0 )? ) )
+            // InternalOCLinEcore.g:13988:1: ( ( rule__StructuredClassCS__Group_4__0 )? )
             {
-            // InternalOCLinEcore.g:13976:1: ( ( rule__StructuredClassCS__Group_4__0 )? )
-            // InternalOCLinEcore.g:13977:1: ( rule__StructuredClassCS__Group_4__0 )?
+            // InternalOCLinEcore.g:13988:1: ( ( rule__StructuredClassCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:13989:1: ( rule__StructuredClassCS__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getGroup_4()); 
             }
-            // InternalOCLinEcore.g:13978:1: ( rule__StructuredClassCS__Group_4__0 )?
+            // InternalOCLinEcore.g:13990:1: ( rule__StructuredClassCS__Group_4__0 )?
             int alt166=2;
             int LA166_0 = input.LA(1);
 
@@ -43259,7 +43327,7 @@
             }
             switch (alt166) {
                 case 1 :
-                    // InternalOCLinEcore.g:13978:2: rule__StructuredClassCS__Group_4__0
+                    // InternalOCLinEcore.g:13990:2: rule__StructuredClassCS__Group_4__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__Group_4__0();
@@ -43297,14 +43365,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__5"
-    // InternalOCLinEcore.g:13988:1: rule__StructuredClassCS__Group__5 : rule__StructuredClassCS__Group__5__Impl rule__StructuredClassCS__Group__6 ;
+    // InternalOCLinEcore.g:14000:1: rule__StructuredClassCS__Group__5 : rule__StructuredClassCS__Group__5__Impl rule__StructuredClassCS__Group__6 ;
     public final void rule__StructuredClassCS__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:13992:1: ( rule__StructuredClassCS__Group__5__Impl rule__StructuredClassCS__Group__6 )
-            // InternalOCLinEcore.g:13993:2: rule__StructuredClassCS__Group__5__Impl rule__StructuredClassCS__Group__6
+            // InternalOCLinEcore.g:14004:1: ( rule__StructuredClassCS__Group__5__Impl rule__StructuredClassCS__Group__6 )
+            // InternalOCLinEcore.g:14005:2: rule__StructuredClassCS__Group__5__Impl rule__StructuredClassCS__Group__6
             {
             pushFollow(FollowSets000.FOLLOW_75);
             rule__StructuredClassCS__Group__5__Impl();
@@ -43335,22 +43403,22 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__5__Impl"
-    // InternalOCLinEcore.g:14000:1: rule__StructuredClassCS__Group__5__Impl : ( ( rule__StructuredClassCS__Group_5__0 )? ) ;
+    // InternalOCLinEcore.g:14012:1: rule__StructuredClassCS__Group__5__Impl : ( ( rule__StructuredClassCS__Group_5__0 )? ) ;
     public final void rule__StructuredClassCS__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14004:1: ( ( ( rule__StructuredClassCS__Group_5__0 )? ) )
-            // InternalOCLinEcore.g:14005:1: ( ( rule__StructuredClassCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:14016:1: ( ( ( rule__StructuredClassCS__Group_5__0 )? ) )
+            // InternalOCLinEcore.g:14017:1: ( ( rule__StructuredClassCS__Group_5__0 )? )
             {
-            // InternalOCLinEcore.g:14005:1: ( ( rule__StructuredClassCS__Group_5__0 )? )
-            // InternalOCLinEcore.g:14006:1: ( rule__StructuredClassCS__Group_5__0 )?
+            // InternalOCLinEcore.g:14017:1: ( ( rule__StructuredClassCS__Group_5__0 )? )
+            // InternalOCLinEcore.g:14018:1: ( rule__StructuredClassCS__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getGroup_5()); 
             }
-            // InternalOCLinEcore.g:14007:1: ( rule__StructuredClassCS__Group_5__0 )?
+            // InternalOCLinEcore.g:14019:1: ( rule__StructuredClassCS__Group_5__0 )?
             int alt167=2;
             int LA167_0 = input.LA(1);
 
@@ -43359,7 +43427,7 @@
             }
             switch (alt167) {
                 case 1 :
-                    // InternalOCLinEcore.g:14007:2: rule__StructuredClassCS__Group_5__0
+                    // InternalOCLinEcore.g:14019:2: rule__StructuredClassCS__Group_5__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__Group_5__0();
@@ -43397,14 +43465,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__6"
-    // InternalOCLinEcore.g:14017:1: rule__StructuredClassCS__Group__6 : rule__StructuredClassCS__Group__6__Impl rule__StructuredClassCS__Group__7 ;
+    // InternalOCLinEcore.g:14029:1: rule__StructuredClassCS__Group__6 : rule__StructuredClassCS__Group__6__Impl rule__StructuredClassCS__Group__7 ;
     public final void rule__StructuredClassCS__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14021:1: ( rule__StructuredClassCS__Group__6__Impl rule__StructuredClassCS__Group__7 )
-            // InternalOCLinEcore.g:14022:2: rule__StructuredClassCS__Group__6__Impl rule__StructuredClassCS__Group__7
+            // InternalOCLinEcore.g:14033:1: ( rule__StructuredClassCS__Group__6__Impl rule__StructuredClassCS__Group__7 )
+            // InternalOCLinEcore.g:14034:2: rule__StructuredClassCS__Group__6__Impl rule__StructuredClassCS__Group__7
             {
             pushFollow(FollowSets000.FOLLOW_75);
             rule__StructuredClassCS__Group__6__Impl();
@@ -43435,22 +43503,22 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__6__Impl"
-    // InternalOCLinEcore.g:14029:1: rule__StructuredClassCS__Group__6__Impl : ( ( rule__StructuredClassCS__Group_6__0 )? ) ;
+    // InternalOCLinEcore.g:14041:1: rule__StructuredClassCS__Group__6__Impl : ( ( rule__StructuredClassCS__Group_6__0 )? ) ;
     public final void rule__StructuredClassCS__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14033:1: ( ( ( rule__StructuredClassCS__Group_6__0 )? ) )
-            // InternalOCLinEcore.g:14034:1: ( ( rule__StructuredClassCS__Group_6__0 )? )
+            // InternalOCLinEcore.g:14045:1: ( ( ( rule__StructuredClassCS__Group_6__0 )? ) )
+            // InternalOCLinEcore.g:14046:1: ( ( rule__StructuredClassCS__Group_6__0 )? )
             {
-            // InternalOCLinEcore.g:14034:1: ( ( rule__StructuredClassCS__Group_6__0 )? )
-            // InternalOCLinEcore.g:14035:1: ( rule__StructuredClassCS__Group_6__0 )?
+            // InternalOCLinEcore.g:14046:1: ( ( rule__StructuredClassCS__Group_6__0 )? )
+            // InternalOCLinEcore.g:14047:1: ( rule__StructuredClassCS__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getGroup_6()); 
             }
-            // InternalOCLinEcore.g:14036:1: ( rule__StructuredClassCS__Group_6__0 )?
+            // InternalOCLinEcore.g:14048:1: ( rule__StructuredClassCS__Group_6__0 )?
             int alt168=2;
             int LA168_0 = input.LA(1);
 
@@ -43470,7 +43538,7 @@
             }
             switch (alt168) {
                 case 1 :
-                    // InternalOCLinEcore.g:14036:2: rule__StructuredClassCS__Group_6__0
+                    // InternalOCLinEcore.g:14048:2: rule__StructuredClassCS__Group_6__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__Group_6__0();
@@ -43508,14 +43576,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__7"
-    // InternalOCLinEcore.g:14046:1: rule__StructuredClassCS__Group__7 : rule__StructuredClassCS__Group__7__Impl ;
+    // InternalOCLinEcore.g:14058:1: rule__StructuredClassCS__Group__7 : rule__StructuredClassCS__Group__7__Impl ;
     public final void rule__StructuredClassCS__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14050:1: ( rule__StructuredClassCS__Group__7__Impl )
-            // InternalOCLinEcore.g:14051:2: rule__StructuredClassCS__Group__7__Impl
+            // InternalOCLinEcore.g:14062:1: ( rule__StructuredClassCS__Group__7__Impl )
+            // InternalOCLinEcore.g:14063:2: rule__StructuredClassCS__Group__7__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__Group__7__Impl();
@@ -43541,23 +43609,23 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group__7__Impl"
-    // InternalOCLinEcore.g:14057:1: rule__StructuredClassCS__Group__7__Impl : ( ( rule__StructuredClassCS__Alternatives_7 ) ) ;
+    // InternalOCLinEcore.g:14069:1: rule__StructuredClassCS__Group__7__Impl : ( ( rule__StructuredClassCS__Alternatives_7 ) ) ;
     public final void rule__StructuredClassCS__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14061:1: ( ( ( rule__StructuredClassCS__Alternatives_7 ) ) )
-            // InternalOCLinEcore.g:14062:1: ( ( rule__StructuredClassCS__Alternatives_7 ) )
+            // InternalOCLinEcore.g:14073:1: ( ( ( rule__StructuredClassCS__Alternatives_7 ) ) )
+            // InternalOCLinEcore.g:14074:1: ( ( rule__StructuredClassCS__Alternatives_7 ) )
             {
-            // InternalOCLinEcore.g:14062:1: ( ( rule__StructuredClassCS__Alternatives_7 ) )
-            // InternalOCLinEcore.g:14063:1: ( rule__StructuredClassCS__Alternatives_7 )
+            // InternalOCLinEcore.g:14074:1: ( ( rule__StructuredClassCS__Alternatives_7 ) )
+            // InternalOCLinEcore.g:14075:1: ( rule__StructuredClassCS__Alternatives_7 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getAlternatives_7()); 
             }
-            // InternalOCLinEcore.g:14064:1: ( rule__StructuredClassCS__Alternatives_7 )
-            // InternalOCLinEcore.g:14064:2: rule__StructuredClassCS__Alternatives_7
+            // InternalOCLinEcore.g:14076:1: ( rule__StructuredClassCS__Alternatives_7 )
+            // InternalOCLinEcore.g:14076:2: rule__StructuredClassCS__Alternatives_7
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__Alternatives_7();
@@ -43592,14 +43660,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4__0"
-    // InternalOCLinEcore.g:14090:1: rule__StructuredClassCS__Group_4__0 : rule__StructuredClassCS__Group_4__0__Impl rule__StructuredClassCS__Group_4__1 ;
+    // InternalOCLinEcore.g:14102:1: rule__StructuredClassCS__Group_4__0 : rule__StructuredClassCS__Group_4__0__Impl rule__StructuredClassCS__Group_4__1 ;
     public final void rule__StructuredClassCS__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14094:1: ( rule__StructuredClassCS__Group_4__0__Impl rule__StructuredClassCS__Group_4__1 )
-            // InternalOCLinEcore.g:14095:2: rule__StructuredClassCS__Group_4__0__Impl rule__StructuredClassCS__Group_4__1
+            // InternalOCLinEcore.g:14106:1: ( rule__StructuredClassCS__Group_4__0__Impl rule__StructuredClassCS__Group_4__1 )
+            // InternalOCLinEcore.g:14107:2: rule__StructuredClassCS__Group_4__0__Impl rule__StructuredClassCS__Group_4__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__StructuredClassCS__Group_4__0__Impl();
@@ -43630,17 +43698,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4__0__Impl"
-    // InternalOCLinEcore.g:14102:1: rule__StructuredClassCS__Group_4__0__Impl : ( 'extends' ) ;
+    // InternalOCLinEcore.g:14114:1: rule__StructuredClassCS__Group_4__0__Impl : ( 'extends' ) ;
     public final void rule__StructuredClassCS__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14106:1: ( ( 'extends' ) )
-            // InternalOCLinEcore.g:14107:1: ( 'extends' )
+            // InternalOCLinEcore.g:14118:1: ( ( 'extends' ) )
+            // InternalOCLinEcore.g:14119:1: ( 'extends' )
             {
-            // InternalOCLinEcore.g:14107:1: ( 'extends' )
-            // InternalOCLinEcore.g:14108:1: 'extends'
+            // InternalOCLinEcore.g:14119:1: ( 'extends' )
+            // InternalOCLinEcore.g:14120:1: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getExtendsKeyword_4_0()); 
@@ -43671,14 +43739,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4__1"
-    // InternalOCLinEcore.g:14121:1: rule__StructuredClassCS__Group_4__1 : rule__StructuredClassCS__Group_4__1__Impl rule__StructuredClassCS__Group_4__2 ;
+    // InternalOCLinEcore.g:14133:1: rule__StructuredClassCS__Group_4__1 : rule__StructuredClassCS__Group_4__1__Impl rule__StructuredClassCS__Group_4__2 ;
     public final void rule__StructuredClassCS__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14125:1: ( rule__StructuredClassCS__Group_4__1__Impl rule__StructuredClassCS__Group_4__2 )
-            // InternalOCLinEcore.g:14126:2: rule__StructuredClassCS__Group_4__1__Impl rule__StructuredClassCS__Group_4__2
+            // InternalOCLinEcore.g:14137:1: ( rule__StructuredClassCS__Group_4__1__Impl rule__StructuredClassCS__Group_4__2 )
+            // InternalOCLinEcore.g:14138:2: rule__StructuredClassCS__Group_4__1__Impl rule__StructuredClassCS__Group_4__2
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__StructuredClassCS__Group_4__1__Impl();
@@ -43709,23 +43777,23 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4__1__Impl"
-    // InternalOCLinEcore.g:14133:1: rule__StructuredClassCS__Group_4__1__Impl : ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 ) ) ;
+    // InternalOCLinEcore.g:14145:1: rule__StructuredClassCS__Group_4__1__Impl : ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 ) ) ;
     public final void rule__StructuredClassCS__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14137:1: ( ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 ) ) )
-            // InternalOCLinEcore.g:14138:1: ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 ) )
+            // InternalOCLinEcore.g:14149:1: ( ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 ) ) )
+            // InternalOCLinEcore.g:14150:1: ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 ) )
             {
-            // InternalOCLinEcore.g:14138:1: ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 ) )
-            // InternalOCLinEcore.g:14139:1: ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 )
+            // InternalOCLinEcore.g:14150:1: ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 ) )
+            // InternalOCLinEcore.g:14151:1: ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedSuperTypesAssignment_4_1()); 
             }
-            // InternalOCLinEcore.g:14140:1: ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 )
-            // InternalOCLinEcore.g:14140:2: rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1
+            // InternalOCLinEcore.g:14152:1: ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 )
+            // InternalOCLinEcore.g:14152:2: rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1();
@@ -43760,14 +43828,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4__2"
-    // InternalOCLinEcore.g:14150:1: rule__StructuredClassCS__Group_4__2 : rule__StructuredClassCS__Group_4__2__Impl ;
+    // InternalOCLinEcore.g:14162:1: rule__StructuredClassCS__Group_4__2 : rule__StructuredClassCS__Group_4__2__Impl ;
     public final void rule__StructuredClassCS__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14154:1: ( rule__StructuredClassCS__Group_4__2__Impl )
-            // InternalOCLinEcore.g:14155:2: rule__StructuredClassCS__Group_4__2__Impl
+            // InternalOCLinEcore.g:14166:1: ( rule__StructuredClassCS__Group_4__2__Impl )
+            // InternalOCLinEcore.g:14167:2: rule__StructuredClassCS__Group_4__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__Group_4__2__Impl();
@@ -43793,22 +43861,22 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4__2__Impl"
-    // InternalOCLinEcore.g:14161:1: rule__StructuredClassCS__Group_4__2__Impl : ( ( rule__StructuredClassCS__Group_4_2__0 )* ) ;
+    // InternalOCLinEcore.g:14173:1: rule__StructuredClassCS__Group_4__2__Impl : ( ( rule__StructuredClassCS__Group_4_2__0 )* ) ;
     public final void rule__StructuredClassCS__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14165:1: ( ( ( rule__StructuredClassCS__Group_4_2__0 )* ) )
-            // InternalOCLinEcore.g:14166:1: ( ( rule__StructuredClassCS__Group_4_2__0 )* )
+            // InternalOCLinEcore.g:14177:1: ( ( ( rule__StructuredClassCS__Group_4_2__0 )* ) )
+            // InternalOCLinEcore.g:14178:1: ( ( rule__StructuredClassCS__Group_4_2__0 )* )
             {
-            // InternalOCLinEcore.g:14166:1: ( ( rule__StructuredClassCS__Group_4_2__0 )* )
-            // InternalOCLinEcore.g:14167:1: ( rule__StructuredClassCS__Group_4_2__0 )*
+            // InternalOCLinEcore.g:14178:1: ( ( rule__StructuredClassCS__Group_4_2__0 )* )
+            // InternalOCLinEcore.g:14179:1: ( rule__StructuredClassCS__Group_4_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getGroup_4_2()); 
             }
-            // InternalOCLinEcore.g:14168:1: ( rule__StructuredClassCS__Group_4_2__0 )*
+            // InternalOCLinEcore.g:14180:1: ( rule__StructuredClassCS__Group_4_2__0 )*
             loop169:
             do {
                 int alt169=2;
@@ -43821,7 +43889,7 @@
 
                 switch (alt169) {
             	case 1 :
-            	    // InternalOCLinEcore.g:14168:2: rule__StructuredClassCS__Group_4_2__0
+            	    // InternalOCLinEcore.g:14180:2: rule__StructuredClassCS__Group_4_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__StructuredClassCS__Group_4_2__0();
@@ -43862,14 +43930,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4_2__0"
-    // InternalOCLinEcore.g:14184:1: rule__StructuredClassCS__Group_4_2__0 : rule__StructuredClassCS__Group_4_2__0__Impl rule__StructuredClassCS__Group_4_2__1 ;
+    // InternalOCLinEcore.g:14196:1: rule__StructuredClassCS__Group_4_2__0 : rule__StructuredClassCS__Group_4_2__0__Impl rule__StructuredClassCS__Group_4_2__1 ;
     public final void rule__StructuredClassCS__Group_4_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14188:1: ( rule__StructuredClassCS__Group_4_2__0__Impl rule__StructuredClassCS__Group_4_2__1 )
-            // InternalOCLinEcore.g:14189:2: rule__StructuredClassCS__Group_4_2__0__Impl rule__StructuredClassCS__Group_4_2__1
+            // InternalOCLinEcore.g:14200:1: ( rule__StructuredClassCS__Group_4_2__0__Impl rule__StructuredClassCS__Group_4_2__1 )
+            // InternalOCLinEcore.g:14201:2: rule__StructuredClassCS__Group_4_2__0__Impl rule__StructuredClassCS__Group_4_2__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__StructuredClassCS__Group_4_2__0__Impl();
@@ -43900,17 +43968,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4_2__0__Impl"
-    // InternalOCLinEcore.g:14196:1: rule__StructuredClassCS__Group_4_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:14208:1: rule__StructuredClassCS__Group_4_2__0__Impl : ( ',' ) ;
     public final void rule__StructuredClassCS__Group_4_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14200:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:14201:1: ( ',' )
+            // InternalOCLinEcore.g:14212:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:14213:1: ( ',' )
             {
-            // InternalOCLinEcore.g:14201:1: ( ',' )
-            // InternalOCLinEcore.g:14202:1: ','
+            // InternalOCLinEcore.g:14213:1: ( ',' )
+            // InternalOCLinEcore.g:14214:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getCommaKeyword_4_2_0()); 
@@ -43941,14 +44009,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4_2__1"
-    // InternalOCLinEcore.g:14215:1: rule__StructuredClassCS__Group_4_2__1 : rule__StructuredClassCS__Group_4_2__1__Impl ;
+    // InternalOCLinEcore.g:14227:1: rule__StructuredClassCS__Group_4_2__1 : rule__StructuredClassCS__Group_4_2__1__Impl ;
     public final void rule__StructuredClassCS__Group_4_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14219:1: ( rule__StructuredClassCS__Group_4_2__1__Impl )
-            // InternalOCLinEcore.g:14220:2: rule__StructuredClassCS__Group_4_2__1__Impl
+            // InternalOCLinEcore.g:14231:1: ( rule__StructuredClassCS__Group_4_2__1__Impl )
+            // InternalOCLinEcore.g:14232:2: rule__StructuredClassCS__Group_4_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__Group_4_2__1__Impl();
@@ -43974,23 +44042,23 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_4_2__1__Impl"
-    // InternalOCLinEcore.g:14226:1: rule__StructuredClassCS__Group_4_2__1__Impl : ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 ) ) ;
+    // InternalOCLinEcore.g:14238:1: rule__StructuredClassCS__Group_4_2__1__Impl : ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 ) ) ;
     public final void rule__StructuredClassCS__Group_4_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14230:1: ( ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 ) ) )
-            // InternalOCLinEcore.g:14231:1: ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 ) )
+            // InternalOCLinEcore.g:14242:1: ( ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 ) ) )
+            // InternalOCLinEcore.g:14243:1: ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 ) )
             {
-            // InternalOCLinEcore.g:14231:1: ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 ) )
-            // InternalOCLinEcore.g:14232:1: ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 )
+            // InternalOCLinEcore.g:14243:1: ( ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 ) )
+            // InternalOCLinEcore.g:14244:1: ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedSuperTypesAssignment_4_2_1()); 
             }
-            // InternalOCLinEcore.g:14233:1: ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 )
-            // InternalOCLinEcore.g:14233:2: rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1
+            // InternalOCLinEcore.g:14245:1: ( rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 )
+            // InternalOCLinEcore.g:14245:2: rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1();
@@ -44025,14 +44093,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_5__0"
-    // InternalOCLinEcore.g:14247:1: rule__StructuredClassCS__Group_5__0 : rule__StructuredClassCS__Group_5__0__Impl rule__StructuredClassCS__Group_5__1 ;
+    // InternalOCLinEcore.g:14259:1: rule__StructuredClassCS__Group_5__0 : rule__StructuredClassCS__Group_5__0__Impl rule__StructuredClassCS__Group_5__1 ;
     public final void rule__StructuredClassCS__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14251:1: ( rule__StructuredClassCS__Group_5__0__Impl rule__StructuredClassCS__Group_5__1 )
-            // InternalOCLinEcore.g:14252:2: rule__StructuredClassCS__Group_5__0__Impl rule__StructuredClassCS__Group_5__1
+            // InternalOCLinEcore.g:14263:1: ( rule__StructuredClassCS__Group_5__0__Impl rule__StructuredClassCS__Group_5__1 )
+            // InternalOCLinEcore.g:14264:2: rule__StructuredClassCS__Group_5__0__Impl rule__StructuredClassCS__Group_5__1
             {
             pushFollow(FollowSets000.FOLLOW_29);
             rule__StructuredClassCS__Group_5__0__Impl();
@@ -44063,17 +44131,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_5__0__Impl"
-    // InternalOCLinEcore.g:14259:1: rule__StructuredClassCS__Group_5__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:14271:1: rule__StructuredClassCS__Group_5__0__Impl : ( ':' ) ;
     public final void rule__StructuredClassCS__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14263:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:14264:1: ( ':' )
+            // InternalOCLinEcore.g:14275:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:14276:1: ( ':' )
             {
-            // InternalOCLinEcore.g:14264:1: ( ':' )
-            // InternalOCLinEcore.g:14265:1: ':'
+            // InternalOCLinEcore.g:14276:1: ( ':' )
+            // InternalOCLinEcore.g:14277:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getColonKeyword_5_0()); 
@@ -44104,14 +44172,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_5__1"
-    // InternalOCLinEcore.g:14278:1: rule__StructuredClassCS__Group_5__1 : rule__StructuredClassCS__Group_5__1__Impl ;
+    // InternalOCLinEcore.g:14290:1: rule__StructuredClassCS__Group_5__1 : rule__StructuredClassCS__Group_5__1__Impl ;
     public final void rule__StructuredClassCS__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14282:1: ( rule__StructuredClassCS__Group_5__1__Impl )
-            // InternalOCLinEcore.g:14283:2: rule__StructuredClassCS__Group_5__1__Impl
+            // InternalOCLinEcore.g:14294:1: ( rule__StructuredClassCS__Group_5__1__Impl )
+            // InternalOCLinEcore.g:14295:2: rule__StructuredClassCS__Group_5__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__Group_5__1__Impl();
@@ -44137,23 +44205,23 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_5__1__Impl"
-    // InternalOCLinEcore.g:14289:1: rule__StructuredClassCS__Group_5__1__Impl : ( ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 ) ) ;
+    // InternalOCLinEcore.g:14301:1: rule__StructuredClassCS__Group_5__1__Impl : ( ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 ) ) ;
     public final void rule__StructuredClassCS__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14293:1: ( ( ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 ) ) )
-            // InternalOCLinEcore.g:14294:1: ( ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 ) )
+            // InternalOCLinEcore.g:14305:1: ( ( ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 ) ) )
+            // InternalOCLinEcore.g:14306:1: ( ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 ) )
             {
-            // InternalOCLinEcore.g:14294:1: ( ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 ) )
-            // InternalOCLinEcore.g:14295:1: ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 )
+            // InternalOCLinEcore.g:14306:1: ( ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 ) )
+            // InternalOCLinEcore.g:14307:1: ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getInstanceClassNameAssignment_5_1()); 
             }
-            // InternalOCLinEcore.g:14296:1: ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 )
-            // InternalOCLinEcore.g:14296:2: rule__StructuredClassCS__InstanceClassNameAssignment_5_1
+            // InternalOCLinEcore.g:14308:1: ( rule__StructuredClassCS__InstanceClassNameAssignment_5_1 )
+            // InternalOCLinEcore.g:14308:2: rule__StructuredClassCS__InstanceClassNameAssignment_5_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__InstanceClassNameAssignment_5_1();
@@ -44188,14 +44256,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_6__0"
-    // InternalOCLinEcore.g:14310:1: rule__StructuredClassCS__Group_6__0 : rule__StructuredClassCS__Group_6__0__Impl rule__StructuredClassCS__Group_6__1 ;
+    // InternalOCLinEcore.g:14322:1: rule__StructuredClassCS__Group_6__0 : rule__StructuredClassCS__Group_6__0__Impl rule__StructuredClassCS__Group_6__1 ;
     public final void rule__StructuredClassCS__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14314:1: ( rule__StructuredClassCS__Group_6__0__Impl rule__StructuredClassCS__Group_6__1 )
-            // InternalOCLinEcore.g:14315:2: rule__StructuredClassCS__Group_6__0__Impl rule__StructuredClassCS__Group_6__1
+            // InternalOCLinEcore.g:14326:1: ( rule__StructuredClassCS__Group_6__0__Impl rule__StructuredClassCS__Group_6__1 )
+            // InternalOCLinEcore.g:14327:2: rule__StructuredClassCS__Group_6__0__Impl rule__StructuredClassCS__Group_6__1
             {
             pushFollow(FollowSets000.FOLLOW_76);
             rule__StructuredClassCS__Group_6__0__Impl();
@@ -44226,17 +44294,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_6__0__Impl"
-    // InternalOCLinEcore.g:14322:1: rule__StructuredClassCS__Group_6__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:14334:1: rule__StructuredClassCS__Group_6__0__Impl : ( '{' ) ;
     public final void rule__StructuredClassCS__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14326:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:14327:1: ( '{' )
+            // InternalOCLinEcore.g:14338:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:14339:1: ( '{' )
             {
-            // InternalOCLinEcore.g:14327:1: ( '{' )
-            // InternalOCLinEcore.g:14328:1: '{'
+            // InternalOCLinEcore.g:14339:1: ( '{' )
+            // InternalOCLinEcore.g:14340:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getLeftCurlyBracketKeyword_6_0()); 
@@ -44267,14 +44335,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_6__1"
-    // InternalOCLinEcore.g:14341:1: rule__StructuredClassCS__Group_6__1 : rule__StructuredClassCS__Group_6__1__Impl rule__StructuredClassCS__Group_6__2 ;
+    // InternalOCLinEcore.g:14353:1: rule__StructuredClassCS__Group_6__1 : rule__StructuredClassCS__Group_6__1__Impl rule__StructuredClassCS__Group_6__2 ;
     public final void rule__StructuredClassCS__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14345:1: ( rule__StructuredClassCS__Group_6__1__Impl rule__StructuredClassCS__Group_6__2 )
-            // InternalOCLinEcore.g:14346:2: rule__StructuredClassCS__Group_6__1__Impl rule__StructuredClassCS__Group_6__2
+            // InternalOCLinEcore.g:14357:1: ( rule__StructuredClassCS__Group_6__1__Impl rule__StructuredClassCS__Group_6__2 )
+            // InternalOCLinEcore.g:14358:2: rule__StructuredClassCS__Group_6__1__Impl rule__StructuredClassCS__Group_6__2
             {
             pushFollow(FollowSets000.FOLLOW_76);
             rule__StructuredClassCS__Group_6__1__Impl();
@@ -44305,22 +44373,22 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_6__1__Impl"
-    // InternalOCLinEcore.g:14353:1: rule__StructuredClassCS__Group_6__1__Impl : ( ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )? ) ;
+    // InternalOCLinEcore.g:14365:1: rule__StructuredClassCS__Group_6__1__Impl : ( ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )? ) ;
     public final void rule__StructuredClassCS__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14357:1: ( ( ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )? ) )
-            // InternalOCLinEcore.g:14358:1: ( ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )? )
+            // InternalOCLinEcore.g:14369:1: ( ( ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )? ) )
+            // InternalOCLinEcore.g:14370:1: ( ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )? )
             {
-            // InternalOCLinEcore.g:14358:1: ( ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )? )
-            // InternalOCLinEcore.g:14359:1: ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )?
+            // InternalOCLinEcore.g:14370:1: ( ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )? )
+            // InternalOCLinEcore.g:14371:1: ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getIsInterfaceAssignment_6_1()); 
             }
-            // InternalOCLinEcore.g:14360:1: ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )?
+            // InternalOCLinEcore.g:14372:1: ( rule__StructuredClassCS__IsInterfaceAssignment_6_1 )?
             int alt170=2;
             int LA170_0 = input.LA(1);
 
@@ -44329,7 +44397,7 @@
             }
             switch (alt170) {
                 case 1 :
-                    // InternalOCLinEcore.g:14360:2: rule__StructuredClassCS__IsInterfaceAssignment_6_1
+                    // InternalOCLinEcore.g:14372:2: rule__StructuredClassCS__IsInterfaceAssignment_6_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__StructuredClassCS__IsInterfaceAssignment_6_1();
@@ -44367,14 +44435,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_6__2"
-    // InternalOCLinEcore.g:14370:1: rule__StructuredClassCS__Group_6__2 : rule__StructuredClassCS__Group_6__2__Impl ;
+    // InternalOCLinEcore.g:14382:1: rule__StructuredClassCS__Group_6__2 : rule__StructuredClassCS__Group_6__2__Impl ;
     public final void rule__StructuredClassCS__Group_6__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14374:1: ( rule__StructuredClassCS__Group_6__2__Impl )
-            // InternalOCLinEcore.g:14375:2: rule__StructuredClassCS__Group_6__2__Impl
+            // InternalOCLinEcore.g:14386:1: ( rule__StructuredClassCS__Group_6__2__Impl )
+            // InternalOCLinEcore.g:14387:2: rule__StructuredClassCS__Group_6__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__Group_6__2__Impl();
@@ -44400,17 +44468,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_6__2__Impl"
-    // InternalOCLinEcore.g:14381:1: rule__StructuredClassCS__Group_6__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:14393:1: rule__StructuredClassCS__Group_6__2__Impl : ( '}' ) ;
     public final void rule__StructuredClassCS__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14385:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:14386:1: ( '}' )
+            // InternalOCLinEcore.g:14397:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:14398:1: ( '}' )
             {
-            // InternalOCLinEcore.g:14386:1: ( '}' )
-            // InternalOCLinEcore.g:14387:1: '}'
+            // InternalOCLinEcore.g:14398:1: ( '}' )
+            // InternalOCLinEcore.g:14399:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getRightCurlyBracketKeyword_6_2()); 
@@ -44441,14 +44509,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_7_0__0"
-    // InternalOCLinEcore.g:14406:1: rule__StructuredClassCS__Group_7_0__0 : rule__StructuredClassCS__Group_7_0__0__Impl rule__StructuredClassCS__Group_7_0__1 ;
+    // InternalOCLinEcore.g:14418:1: rule__StructuredClassCS__Group_7_0__0 : rule__StructuredClassCS__Group_7_0__0__Impl rule__StructuredClassCS__Group_7_0__1 ;
     public final void rule__StructuredClassCS__Group_7_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14410:1: ( rule__StructuredClassCS__Group_7_0__0__Impl rule__StructuredClassCS__Group_7_0__1 )
-            // InternalOCLinEcore.g:14411:2: rule__StructuredClassCS__Group_7_0__0__Impl rule__StructuredClassCS__Group_7_0__1
+            // InternalOCLinEcore.g:14422:1: ( rule__StructuredClassCS__Group_7_0__0__Impl rule__StructuredClassCS__Group_7_0__1 )
+            // InternalOCLinEcore.g:14423:2: rule__StructuredClassCS__Group_7_0__0__Impl rule__StructuredClassCS__Group_7_0__1
             {
             pushFollow(FollowSets000.FOLLOW_45);
             rule__StructuredClassCS__Group_7_0__0__Impl();
@@ -44479,17 +44547,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_7_0__0__Impl"
-    // InternalOCLinEcore.g:14418:1: rule__StructuredClassCS__Group_7_0__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:14430:1: rule__StructuredClassCS__Group_7_0__0__Impl : ( '{' ) ;
     public final void rule__StructuredClassCS__Group_7_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14422:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:14423:1: ( '{' )
+            // InternalOCLinEcore.g:14434:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:14435:1: ( '{' )
             {
-            // InternalOCLinEcore.g:14423:1: ( '{' )
-            // InternalOCLinEcore.g:14424:1: '{'
+            // InternalOCLinEcore.g:14435:1: ( '{' )
+            // InternalOCLinEcore.g:14436:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getLeftCurlyBracketKeyword_7_0_0()); 
@@ -44520,14 +44588,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_7_0__1"
-    // InternalOCLinEcore.g:14437:1: rule__StructuredClassCS__Group_7_0__1 : rule__StructuredClassCS__Group_7_0__1__Impl rule__StructuredClassCS__Group_7_0__2 ;
+    // InternalOCLinEcore.g:14449:1: rule__StructuredClassCS__Group_7_0__1 : rule__StructuredClassCS__Group_7_0__1__Impl rule__StructuredClassCS__Group_7_0__2 ;
     public final void rule__StructuredClassCS__Group_7_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14441:1: ( rule__StructuredClassCS__Group_7_0__1__Impl rule__StructuredClassCS__Group_7_0__2 )
-            // InternalOCLinEcore.g:14442:2: rule__StructuredClassCS__Group_7_0__1__Impl rule__StructuredClassCS__Group_7_0__2
+            // InternalOCLinEcore.g:14453:1: ( rule__StructuredClassCS__Group_7_0__1__Impl rule__StructuredClassCS__Group_7_0__2 )
+            // InternalOCLinEcore.g:14454:2: rule__StructuredClassCS__Group_7_0__1__Impl rule__StructuredClassCS__Group_7_0__2
             {
             pushFollow(FollowSets000.FOLLOW_45);
             rule__StructuredClassCS__Group_7_0__1__Impl();
@@ -44558,22 +44626,22 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_7_0__1__Impl"
-    // InternalOCLinEcore.g:14449:1: rule__StructuredClassCS__Group_7_0__1__Impl : ( ( rule__StructuredClassCS__Alternatives_7_0_1 )* ) ;
+    // InternalOCLinEcore.g:14461:1: rule__StructuredClassCS__Group_7_0__1__Impl : ( ( rule__StructuredClassCS__Alternatives_7_0_1 )* ) ;
     public final void rule__StructuredClassCS__Group_7_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14453:1: ( ( ( rule__StructuredClassCS__Alternatives_7_0_1 )* ) )
-            // InternalOCLinEcore.g:14454:1: ( ( rule__StructuredClassCS__Alternatives_7_0_1 )* )
+            // InternalOCLinEcore.g:14465:1: ( ( ( rule__StructuredClassCS__Alternatives_7_0_1 )* ) )
+            // InternalOCLinEcore.g:14466:1: ( ( rule__StructuredClassCS__Alternatives_7_0_1 )* )
             {
-            // InternalOCLinEcore.g:14454:1: ( ( rule__StructuredClassCS__Alternatives_7_0_1 )* )
-            // InternalOCLinEcore.g:14455:1: ( rule__StructuredClassCS__Alternatives_7_0_1 )*
+            // InternalOCLinEcore.g:14466:1: ( ( rule__StructuredClassCS__Alternatives_7_0_1 )* )
+            // InternalOCLinEcore.g:14467:1: ( rule__StructuredClassCS__Alternatives_7_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getAlternatives_7_0_1()); 
             }
-            // InternalOCLinEcore.g:14456:1: ( rule__StructuredClassCS__Alternatives_7_0_1 )*
+            // InternalOCLinEcore.g:14468:1: ( rule__StructuredClassCS__Alternatives_7_0_1 )*
             loop171:
             do {
                 int alt171=2;
@@ -44586,7 +44654,7 @@
 
                 switch (alt171) {
             	case 1 :
-            	    // InternalOCLinEcore.g:14456:2: rule__StructuredClassCS__Alternatives_7_0_1
+            	    // InternalOCLinEcore.g:14468:2: rule__StructuredClassCS__Alternatives_7_0_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_46);
             	    rule__StructuredClassCS__Alternatives_7_0_1();
@@ -44627,14 +44695,14 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_7_0__2"
-    // InternalOCLinEcore.g:14466:1: rule__StructuredClassCS__Group_7_0__2 : rule__StructuredClassCS__Group_7_0__2__Impl ;
+    // InternalOCLinEcore.g:14478:1: rule__StructuredClassCS__Group_7_0__2 : rule__StructuredClassCS__Group_7_0__2__Impl ;
     public final void rule__StructuredClassCS__Group_7_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14470:1: ( rule__StructuredClassCS__Group_7_0__2__Impl )
-            // InternalOCLinEcore.g:14471:2: rule__StructuredClassCS__Group_7_0__2__Impl
+            // InternalOCLinEcore.g:14482:1: ( rule__StructuredClassCS__Group_7_0__2__Impl )
+            // InternalOCLinEcore.g:14483:2: rule__StructuredClassCS__Group_7_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__StructuredClassCS__Group_7_0__2__Impl();
@@ -44660,17 +44728,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__Group_7_0__2__Impl"
-    // InternalOCLinEcore.g:14477:1: rule__StructuredClassCS__Group_7_0__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:14489:1: rule__StructuredClassCS__Group_7_0__2__Impl : ( '}' ) ;
     public final void rule__StructuredClassCS__Group_7_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14481:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:14482:1: ( '}' )
+            // InternalOCLinEcore.g:14493:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:14494:1: ( '}' )
             {
-            // InternalOCLinEcore.g:14482:1: ( '}' )
-            // InternalOCLinEcore.g:14483:1: '}'
+            // InternalOCLinEcore.g:14494:1: ( '}' )
+            // InternalOCLinEcore.g:14495:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getRightCurlyBracketKeyword_7_0_2()); 
@@ -44701,14 +44769,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group__0"
-    // InternalOCLinEcore.g:14502:1: rule__SysMLCS__Group__0 : rule__SysMLCS__Group__0__Impl rule__SysMLCS__Group__1 ;
+    // InternalOCLinEcore.g:14514:1: rule__SysMLCS__Group__0 : rule__SysMLCS__Group__0__Impl rule__SysMLCS__Group__1 ;
     public final void rule__SysMLCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14506:1: ( rule__SysMLCS__Group__0__Impl rule__SysMLCS__Group__1 )
-            // InternalOCLinEcore.g:14507:2: rule__SysMLCS__Group__0__Impl rule__SysMLCS__Group__1
+            // InternalOCLinEcore.g:14518:1: ( rule__SysMLCS__Group__0__Impl rule__SysMLCS__Group__1 )
+            // InternalOCLinEcore.g:14519:2: rule__SysMLCS__Group__0__Impl rule__SysMLCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_77);
             rule__SysMLCS__Group__0__Impl();
@@ -44739,23 +44807,23 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group__0__Impl"
-    // InternalOCLinEcore.g:14514:1: rule__SysMLCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:14526:1: rule__SysMLCS__Group__0__Impl : ( () ) ;
     public final void rule__SysMLCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14518:1: ( ( () ) )
-            // InternalOCLinEcore.g:14519:1: ( () )
+            // InternalOCLinEcore.g:14530:1: ( ( () ) )
+            // InternalOCLinEcore.g:14531:1: ( () )
             {
-            // InternalOCLinEcore.g:14519:1: ( () )
-            // InternalOCLinEcore.g:14520:1: ()
+            // InternalOCLinEcore.g:14531:1: ( () )
+            // InternalOCLinEcore.g:14532:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getSysMLCSAction_0()); 
             }
-            // InternalOCLinEcore.g:14521:1: ()
-            // InternalOCLinEcore.g:14523:1: 
+            // InternalOCLinEcore.g:14533:1: ()
+            // InternalOCLinEcore.g:14535:1: 
             {
             }
 
@@ -44780,14 +44848,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group__1"
-    // InternalOCLinEcore.g:14533:1: rule__SysMLCS__Group__1 : rule__SysMLCS__Group__1__Impl rule__SysMLCS__Group__2 ;
+    // InternalOCLinEcore.g:14545:1: rule__SysMLCS__Group__1 : rule__SysMLCS__Group__1__Impl rule__SysMLCS__Group__2 ;
     public final void rule__SysMLCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14537:1: ( rule__SysMLCS__Group__1__Impl rule__SysMLCS__Group__2 )
-            // InternalOCLinEcore.g:14538:2: rule__SysMLCS__Group__1__Impl rule__SysMLCS__Group__2
+            // InternalOCLinEcore.g:14549:1: ( rule__SysMLCS__Group__1__Impl rule__SysMLCS__Group__2 )
+            // InternalOCLinEcore.g:14550:2: rule__SysMLCS__Group__1__Impl rule__SysMLCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_78);
             rule__SysMLCS__Group__1__Impl();
@@ -44818,17 +44886,17 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group__1__Impl"
-    // InternalOCLinEcore.g:14545:1: rule__SysMLCS__Group__1__Impl : ( 'sysml' ) ;
+    // InternalOCLinEcore.g:14557:1: rule__SysMLCS__Group__1__Impl : ( 'sysml' ) ;
     public final void rule__SysMLCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14549:1: ( ( 'sysml' ) )
-            // InternalOCLinEcore.g:14550:1: ( 'sysml' )
+            // InternalOCLinEcore.g:14561:1: ( ( 'sysml' ) )
+            // InternalOCLinEcore.g:14562:1: ( 'sysml' )
             {
-            // InternalOCLinEcore.g:14550:1: ( 'sysml' )
-            // InternalOCLinEcore.g:14551:1: 'sysml'
+            // InternalOCLinEcore.g:14562:1: ( 'sysml' )
+            // InternalOCLinEcore.g:14563:1: 'sysml'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getSysmlKeyword_1()); 
@@ -44859,14 +44927,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group__2"
-    // InternalOCLinEcore.g:14564:1: rule__SysMLCS__Group__2 : rule__SysMLCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:14576:1: rule__SysMLCS__Group__2 : rule__SysMLCS__Group__2__Impl ;
     public final void rule__SysMLCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14568:1: ( rule__SysMLCS__Group__2__Impl )
-            // InternalOCLinEcore.g:14569:2: rule__SysMLCS__Group__2__Impl
+            // InternalOCLinEcore.g:14580:1: ( rule__SysMLCS__Group__2__Impl )
+            // InternalOCLinEcore.g:14581:2: rule__SysMLCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SysMLCS__Group__2__Impl();
@@ -44892,23 +44960,23 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group__2__Impl"
-    // InternalOCLinEcore.g:14575:1: rule__SysMLCS__Group__2__Impl : ( ( rule__SysMLCS__Alternatives_2 ) ) ;
+    // InternalOCLinEcore.g:14587:1: rule__SysMLCS__Group__2__Impl : ( ( rule__SysMLCS__Alternatives_2 ) ) ;
     public final void rule__SysMLCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14579:1: ( ( ( rule__SysMLCS__Alternatives_2 ) ) )
-            // InternalOCLinEcore.g:14580:1: ( ( rule__SysMLCS__Alternatives_2 ) )
+            // InternalOCLinEcore.g:14591:1: ( ( ( rule__SysMLCS__Alternatives_2 ) ) )
+            // InternalOCLinEcore.g:14592:1: ( ( rule__SysMLCS__Alternatives_2 ) )
             {
-            // InternalOCLinEcore.g:14580:1: ( ( rule__SysMLCS__Alternatives_2 ) )
-            // InternalOCLinEcore.g:14581:1: ( rule__SysMLCS__Alternatives_2 )
+            // InternalOCLinEcore.g:14592:1: ( ( rule__SysMLCS__Alternatives_2 ) )
+            // InternalOCLinEcore.g:14593:1: ( rule__SysMLCS__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getAlternatives_2()); 
             }
-            // InternalOCLinEcore.g:14582:1: ( rule__SysMLCS__Alternatives_2 )
-            // InternalOCLinEcore.g:14582:2: rule__SysMLCS__Alternatives_2
+            // InternalOCLinEcore.g:14594:1: ( rule__SysMLCS__Alternatives_2 )
+            // InternalOCLinEcore.g:14594:2: rule__SysMLCS__Alternatives_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SysMLCS__Alternatives_2();
@@ -44943,14 +45011,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_0__0"
-    // InternalOCLinEcore.g:14598:1: rule__SysMLCS__Group_2_0__0 : rule__SysMLCS__Group_2_0__0__Impl rule__SysMLCS__Group_2_0__1 ;
+    // InternalOCLinEcore.g:14610:1: rule__SysMLCS__Group_2_0__0 : rule__SysMLCS__Group_2_0__0__Impl rule__SysMLCS__Group_2_0__1 ;
     public final void rule__SysMLCS__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14602:1: ( rule__SysMLCS__Group_2_0__0__Impl rule__SysMLCS__Group_2_0__1 )
-            // InternalOCLinEcore.g:14603:2: rule__SysMLCS__Group_2_0__0__Impl rule__SysMLCS__Group_2_0__1
+            // InternalOCLinEcore.g:14614:1: ( rule__SysMLCS__Group_2_0__0__Impl rule__SysMLCS__Group_2_0__1 )
+            // InternalOCLinEcore.g:14615:2: rule__SysMLCS__Group_2_0__0__Impl rule__SysMLCS__Group_2_0__1
             {
             pushFollow(FollowSets000.FOLLOW_53);
             rule__SysMLCS__Group_2_0__0__Impl();
@@ -44981,23 +45049,23 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_0__0__Impl"
-    // InternalOCLinEcore.g:14610:1: rule__SysMLCS__Group_2_0__0__Impl : ( ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 ) ) ;
+    // InternalOCLinEcore.g:14622:1: rule__SysMLCS__Group_2_0__0__Impl : ( ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 ) ) ;
     public final void rule__SysMLCS__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14614:1: ( ( ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 ) ) )
-            // InternalOCLinEcore.g:14615:1: ( ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 ) )
+            // InternalOCLinEcore.g:14626:1: ( ( ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 ) ) )
+            // InternalOCLinEcore.g:14627:1: ( ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 ) )
             {
-            // InternalOCLinEcore.g:14615:1: ( ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 ) )
-            // InternalOCLinEcore.g:14616:1: ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 )
+            // InternalOCLinEcore.g:14627:1: ( ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 ) )
+            // InternalOCLinEcore.g:14628:1: ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getOwnedDetailsAssignment_2_0_0()); 
             }
-            // InternalOCLinEcore.g:14617:1: ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 )
-            // InternalOCLinEcore.g:14617:2: rule__SysMLCS__OwnedDetailsAssignment_2_0_0
+            // InternalOCLinEcore.g:14629:1: ( rule__SysMLCS__OwnedDetailsAssignment_2_0_0 )
+            // InternalOCLinEcore.g:14629:2: rule__SysMLCS__OwnedDetailsAssignment_2_0_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SysMLCS__OwnedDetailsAssignment_2_0_0();
@@ -45032,14 +45100,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_0__1"
-    // InternalOCLinEcore.g:14627:1: rule__SysMLCS__Group_2_0__1 : rule__SysMLCS__Group_2_0__1__Impl ;
+    // InternalOCLinEcore.g:14639:1: rule__SysMLCS__Group_2_0__1 : rule__SysMLCS__Group_2_0__1__Impl ;
     public final void rule__SysMLCS__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14631:1: ( rule__SysMLCS__Group_2_0__1__Impl )
-            // InternalOCLinEcore.g:14632:2: rule__SysMLCS__Group_2_0__1__Impl
+            // InternalOCLinEcore.g:14643:1: ( rule__SysMLCS__Group_2_0__1__Impl )
+            // InternalOCLinEcore.g:14644:2: rule__SysMLCS__Group_2_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SysMLCS__Group_2_0__1__Impl();
@@ -45065,17 +45133,17 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_0__1__Impl"
-    // InternalOCLinEcore.g:14638:1: rule__SysMLCS__Group_2_0__1__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:14650:1: rule__SysMLCS__Group_2_0__1__Impl : ( ';' ) ;
     public final void rule__SysMLCS__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14642:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:14643:1: ( ';' )
+            // InternalOCLinEcore.g:14654:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:14655:1: ( ';' )
             {
-            // InternalOCLinEcore.g:14643:1: ( ';' )
-            // InternalOCLinEcore.g:14644:1: ';'
+            // InternalOCLinEcore.g:14655:1: ( ';' )
+            // InternalOCLinEcore.g:14656:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getSemicolonKeyword_2_0_1()); 
@@ -45106,14 +45174,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1__0"
-    // InternalOCLinEcore.g:14661:1: rule__SysMLCS__Group_2_1__0 : rule__SysMLCS__Group_2_1__0__Impl rule__SysMLCS__Group_2_1__1 ;
+    // InternalOCLinEcore.g:14673:1: rule__SysMLCS__Group_2_1__0 : rule__SysMLCS__Group_2_1__0__Impl rule__SysMLCS__Group_2_1__1 ;
     public final void rule__SysMLCS__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14665:1: ( rule__SysMLCS__Group_2_1__0__Impl rule__SysMLCS__Group_2_1__1 )
-            // InternalOCLinEcore.g:14666:2: rule__SysMLCS__Group_2_1__0__Impl rule__SysMLCS__Group_2_1__1
+            // InternalOCLinEcore.g:14677:1: ( rule__SysMLCS__Group_2_1__0__Impl rule__SysMLCS__Group_2_1__1 )
+            // InternalOCLinEcore.g:14678:2: rule__SysMLCS__Group_2_1__0__Impl rule__SysMLCS__Group_2_1__1
             {
             pushFollow(FollowSets000.FOLLOW_79);
             rule__SysMLCS__Group_2_1__0__Impl();
@@ -45144,17 +45212,17 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1__0__Impl"
-    // InternalOCLinEcore.g:14673:1: rule__SysMLCS__Group_2_1__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:14685:1: rule__SysMLCS__Group_2_1__0__Impl : ( '{' ) ;
     public final void rule__SysMLCS__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14677:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:14678:1: ( '{' )
+            // InternalOCLinEcore.g:14689:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:14690:1: ( '{' )
             {
-            // InternalOCLinEcore.g:14678:1: ( '{' )
-            // InternalOCLinEcore.g:14679:1: '{'
+            // InternalOCLinEcore.g:14690:1: ( '{' )
+            // InternalOCLinEcore.g:14691:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getLeftCurlyBracketKeyword_2_1_0()); 
@@ -45185,14 +45253,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1__1"
-    // InternalOCLinEcore.g:14692:1: rule__SysMLCS__Group_2_1__1 : rule__SysMLCS__Group_2_1__1__Impl rule__SysMLCS__Group_2_1__2 ;
+    // InternalOCLinEcore.g:14704:1: rule__SysMLCS__Group_2_1__1 : rule__SysMLCS__Group_2_1__1__Impl rule__SysMLCS__Group_2_1__2 ;
     public final void rule__SysMLCS__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14696:1: ( rule__SysMLCS__Group_2_1__1__Impl rule__SysMLCS__Group_2_1__2 )
-            // InternalOCLinEcore.g:14697:2: rule__SysMLCS__Group_2_1__1__Impl rule__SysMLCS__Group_2_1__2
+            // InternalOCLinEcore.g:14708:1: ( rule__SysMLCS__Group_2_1__1__Impl rule__SysMLCS__Group_2_1__2 )
+            // InternalOCLinEcore.g:14709:2: rule__SysMLCS__Group_2_1__1__Impl rule__SysMLCS__Group_2_1__2
             {
             pushFollow(FollowSets000.FOLLOW_79);
             rule__SysMLCS__Group_2_1__1__Impl();
@@ -45223,22 +45291,22 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1__1__Impl"
-    // InternalOCLinEcore.g:14704:1: rule__SysMLCS__Group_2_1__1__Impl : ( ( rule__SysMLCS__Group_2_1_1__0 )* ) ;
+    // InternalOCLinEcore.g:14716:1: rule__SysMLCS__Group_2_1__1__Impl : ( ( rule__SysMLCS__Group_2_1_1__0 )* ) ;
     public final void rule__SysMLCS__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14708:1: ( ( ( rule__SysMLCS__Group_2_1_1__0 )* ) )
-            // InternalOCLinEcore.g:14709:1: ( ( rule__SysMLCS__Group_2_1_1__0 )* )
+            // InternalOCLinEcore.g:14720:1: ( ( ( rule__SysMLCS__Group_2_1_1__0 )* ) )
+            // InternalOCLinEcore.g:14721:1: ( ( rule__SysMLCS__Group_2_1_1__0 )* )
             {
-            // InternalOCLinEcore.g:14709:1: ( ( rule__SysMLCS__Group_2_1_1__0 )* )
-            // InternalOCLinEcore.g:14710:1: ( rule__SysMLCS__Group_2_1_1__0 )*
+            // InternalOCLinEcore.g:14721:1: ( ( rule__SysMLCS__Group_2_1_1__0 )* )
+            // InternalOCLinEcore.g:14722:1: ( rule__SysMLCS__Group_2_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getGroup_2_1_1()); 
             }
-            // InternalOCLinEcore.g:14711:1: ( rule__SysMLCS__Group_2_1_1__0 )*
+            // InternalOCLinEcore.g:14723:1: ( rule__SysMLCS__Group_2_1_1__0 )*
             loop172:
             do {
                 int alt172=2;
@@ -45251,7 +45319,7 @@
 
                 switch (alt172) {
             	case 1 :
-            	    // InternalOCLinEcore.g:14711:2: rule__SysMLCS__Group_2_1_1__0
+            	    // InternalOCLinEcore.g:14723:2: rule__SysMLCS__Group_2_1_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_80);
             	    rule__SysMLCS__Group_2_1_1__0();
@@ -45292,14 +45360,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1__2"
-    // InternalOCLinEcore.g:14721:1: rule__SysMLCS__Group_2_1__2 : rule__SysMLCS__Group_2_1__2__Impl ;
+    // InternalOCLinEcore.g:14733:1: rule__SysMLCS__Group_2_1__2 : rule__SysMLCS__Group_2_1__2__Impl ;
     public final void rule__SysMLCS__Group_2_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14725:1: ( rule__SysMLCS__Group_2_1__2__Impl )
-            // InternalOCLinEcore.g:14726:2: rule__SysMLCS__Group_2_1__2__Impl
+            // InternalOCLinEcore.g:14737:1: ( rule__SysMLCS__Group_2_1__2__Impl )
+            // InternalOCLinEcore.g:14738:2: rule__SysMLCS__Group_2_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SysMLCS__Group_2_1__2__Impl();
@@ -45325,17 +45393,17 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1__2__Impl"
-    // InternalOCLinEcore.g:14732:1: rule__SysMLCS__Group_2_1__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:14744:1: rule__SysMLCS__Group_2_1__2__Impl : ( '}' ) ;
     public final void rule__SysMLCS__Group_2_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14736:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:14737:1: ( '}' )
+            // InternalOCLinEcore.g:14748:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:14749:1: ( '}' )
             {
-            // InternalOCLinEcore.g:14737:1: ( '}' )
-            // InternalOCLinEcore.g:14738:1: '}'
+            // InternalOCLinEcore.g:14749:1: ( '}' )
+            // InternalOCLinEcore.g:14750:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getRightCurlyBracketKeyword_2_1_2()); 
@@ -45366,14 +45434,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1_1__0"
-    // InternalOCLinEcore.g:14757:1: rule__SysMLCS__Group_2_1_1__0 : rule__SysMLCS__Group_2_1_1__0__Impl rule__SysMLCS__Group_2_1_1__1 ;
+    // InternalOCLinEcore.g:14769:1: rule__SysMLCS__Group_2_1_1__0 : rule__SysMLCS__Group_2_1_1__0__Impl rule__SysMLCS__Group_2_1_1__1 ;
     public final void rule__SysMLCS__Group_2_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14761:1: ( rule__SysMLCS__Group_2_1_1__0__Impl rule__SysMLCS__Group_2_1_1__1 )
-            // InternalOCLinEcore.g:14762:2: rule__SysMLCS__Group_2_1_1__0__Impl rule__SysMLCS__Group_2_1_1__1
+            // InternalOCLinEcore.g:14773:1: ( rule__SysMLCS__Group_2_1_1__0__Impl rule__SysMLCS__Group_2_1_1__1 )
+            // InternalOCLinEcore.g:14774:2: rule__SysMLCS__Group_2_1_1__0__Impl rule__SysMLCS__Group_2_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_53);
             rule__SysMLCS__Group_2_1_1__0__Impl();
@@ -45404,23 +45472,23 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1_1__0__Impl"
-    // InternalOCLinEcore.g:14769:1: rule__SysMLCS__Group_2_1_1__0__Impl : ( ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 ) ) ;
+    // InternalOCLinEcore.g:14781:1: rule__SysMLCS__Group_2_1_1__0__Impl : ( ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 ) ) ;
     public final void rule__SysMLCS__Group_2_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14773:1: ( ( ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 ) ) )
-            // InternalOCLinEcore.g:14774:1: ( ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 ) )
+            // InternalOCLinEcore.g:14785:1: ( ( ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 ) ) )
+            // InternalOCLinEcore.g:14786:1: ( ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 ) )
             {
-            // InternalOCLinEcore.g:14774:1: ( ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 ) )
-            // InternalOCLinEcore.g:14775:1: ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 )
+            // InternalOCLinEcore.g:14786:1: ( ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 ) )
+            // InternalOCLinEcore.g:14787:1: ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getOwnedDetailsAssignment_2_1_1_0()); 
             }
-            // InternalOCLinEcore.g:14776:1: ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 )
-            // InternalOCLinEcore.g:14776:2: rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0
+            // InternalOCLinEcore.g:14788:1: ( rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 )
+            // InternalOCLinEcore.g:14788:2: rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0();
@@ -45455,14 +45523,14 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1_1__1"
-    // InternalOCLinEcore.g:14786:1: rule__SysMLCS__Group_2_1_1__1 : rule__SysMLCS__Group_2_1_1__1__Impl ;
+    // InternalOCLinEcore.g:14798:1: rule__SysMLCS__Group_2_1_1__1 : rule__SysMLCS__Group_2_1_1__1__Impl ;
     public final void rule__SysMLCS__Group_2_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14790:1: ( rule__SysMLCS__Group_2_1_1__1__Impl )
-            // InternalOCLinEcore.g:14791:2: rule__SysMLCS__Group_2_1_1__1__Impl
+            // InternalOCLinEcore.g:14802:1: ( rule__SysMLCS__Group_2_1_1__1__Impl )
+            // InternalOCLinEcore.g:14803:2: rule__SysMLCS__Group_2_1_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SysMLCS__Group_2_1_1__1__Impl();
@@ -45488,17 +45556,17 @@
 
 
     // $ANTLR start "rule__SysMLCS__Group_2_1_1__1__Impl"
-    // InternalOCLinEcore.g:14797:1: rule__SysMLCS__Group_2_1_1__1__Impl : ( ';' ) ;
+    // InternalOCLinEcore.g:14809:1: rule__SysMLCS__Group_2_1_1__1__Impl : ( ';' ) ;
     public final void rule__SysMLCS__Group_2_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14801:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:14802:1: ( ';' )
+            // InternalOCLinEcore.g:14813:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:14814:1: ( ';' )
             {
-            // InternalOCLinEcore.g:14802:1: ( ';' )
-            // InternalOCLinEcore.g:14803:1: ';'
+            // InternalOCLinEcore.g:14814:1: ( ';' )
+            // InternalOCLinEcore.g:14815:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getSemicolonKeyword_2_1_1_1()); 
@@ -45529,14 +45597,14 @@
 
 
     // $ANTLR start "rule__TypedMultiplicityRefCS__Group__0"
-    // InternalOCLinEcore.g:14820:1: rule__TypedMultiplicityRefCS__Group__0 : rule__TypedMultiplicityRefCS__Group__0__Impl rule__TypedMultiplicityRefCS__Group__1 ;
+    // InternalOCLinEcore.g:14832:1: rule__TypedMultiplicityRefCS__Group__0 : rule__TypedMultiplicityRefCS__Group__0__Impl rule__TypedMultiplicityRefCS__Group__1 ;
     public final void rule__TypedMultiplicityRefCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14824:1: ( rule__TypedMultiplicityRefCS__Group__0__Impl rule__TypedMultiplicityRefCS__Group__1 )
-            // InternalOCLinEcore.g:14825:2: rule__TypedMultiplicityRefCS__Group__0__Impl rule__TypedMultiplicityRefCS__Group__1
+            // InternalOCLinEcore.g:14836:1: ( rule__TypedMultiplicityRefCS__Group__0__Impl rule__TypedMultiplicityRefCS__Group__1 )
+            // InternalOCLinEcore.g:14837:2: rule__TypedMultiplicityRefCS__Group__0__Impl rule__TypedMultiplicityRefCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_81);
             rule__TypedMultiplicityRefCS__Group__0__Impl();
@@ -45567,17 +45635,17 @@
 
 
     // $ANTLR start "rule__TypedMultiplicityRefCS__Group__0__Impl"
-    // InternalOCLinEcore.g:14832:1: rule__TypedMultiplicityRefCS__Group__0__Impl : ( ruleTypedRefCS ) ;
+    // InternalOCLinEcore.g:14844:1: rule__TypedMultiplicityRefCS__Group__0__Impl : ( ruleTypedRefCS ) ;
     public final void rule__TypedMultiplicityRefCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14836:1: ( ( ruleTypedRefCS ) )
-            // InternalOCLinEcore.g:14837:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:14848:1: ( ( ruleTypedRefCS ) )
+            // InternalOCLinEcore.g:14849:1: ( ruleTypedRefCS )
             {
-            // InternalOCLinEcore.g:14837:1: ( ruleTypedRefCS )
-            // InternalOCLinEcore.g:14838:1: ruleTypedRefCS
+            // InternalOCLinEcore.g:14849:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:14850:1: ruleTypedRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedMultiplicityRefCSAccess().getTypedRefCSParserRuleCall_0()); 
@@ -45612,14 +45680,14 @@
 
 
     // $ANTLR start "rule__TypedMultiplicityRefCS__Group__1"
-    // InternalOCLinEcore.g:14849:1: rule__TypedMultiplicityRefCS__Group__1 : rule__TypedMultiplicityRefCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:14861:1: rule__TypedMultiplicityRefCS__Group__1 : rule__TypedMultiplicityRefCS__Group__1__Impl ;
     public final void rule__TypedMultiplicityRefCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14853:1: ( rule__TypedMultiplicityRefCS__Group__1__Impl )
-            // InternalOCLinEcore.g:14854:2: rule__TypedMultiplicityRefCS__Group__1__Impl
+            // InternalOCLinEcore.g:14865:1: ( rule__TypedMultiplicityRefCS__Group__1__Impl )
+            // InternalOCLinEcore.g:14866:2: rule__TypedMultiplicityRefCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypedMultiplicityRefCS__Group__1__Impl();
@@ -45645,22 +45713,22 @@
 
 
     // $ANTLR start "rule__TypedMultiplicityRefCS__Group__1__Impl"
-    // InternalOCLinEcore.g:14860:1: rule__TypedMultiplicityRefCS__Group__1__Impl : ( ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )? ) ;
+    // InternalOCLinEcore.g:14872:1: rule__TypedMultiplicityRefCS__Group__1__Impl : ( ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )? ) ;
     public final void rule__TypedMultiplicityRefCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14864:1: ( ( ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )? ) )
-            // InternalOCLinEcore.g:14865:1: ( ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )? )
+            // InternalOCLinEcore.g:14876:1: ( ( ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )? ) )
+            // InternalOCLinEcore.g:14877:1: ( ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )? )
             {
-            // InternalOCLinEcore.g:14865:1: ( ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )? )
-            // InternalOCLinEcore.g:14866:1: ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )?
+            // InternalOCLinEcore.g:14877:1: ( ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )? )
+            // InternalOCLinEcore.g:14878:1: ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedMultiplicityRefCSAccess().getOwnedMultiplicityAssignment_1()); 
             }
-            // InternalOCLinEcore.g:14867:1: ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )?
+            // InternalOCLinEcore.g:14879:1: ( rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 )?
             int alt173=2;
             int LA173_0 = input.LA(1);
 
@@ -45669,7 +45737,7 @@
             }
             switch (alt173) {
                 case 1 :
-                    // InternalOCLinEcore.g:14867:2: rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1
+                    // InternalOCLinEcore.g:14879:2: rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1();
@@ -45707,14 +45775,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0__0"
-    // InternalOCLinEcore.g:14881:1: rule__TemplateSignatureCS__Group_0__0 : rule__TemplateSignatureCS__Group_0__0__Impl rule__TemplateSignatureCS__Group_0__1 ;
+    // InternalOCLinEcore.g:14893:1: rule__TemplateSignatureCS__Group_0__0 : rule__TemplateSignatureCS__Group_0__0__Impl rule__TemplateSignatureCS__Group_0__1 ;
     public final void rule__TemplateSignatureCS__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14885:1: ( rule__TemplateSignatureCS__Group_0__0__Impl rule__TemplateSignatureCS__Group_0__1 )
-            // InternalOCLinEcore.g:14886:2: rule__TemplateSignatureCS__Group_0__0__Impl rule__TemplateSignatureCS__Group_0__1
+            // InternalOCLinEcore.g:14897:1: ( rule__TemplateSignatureCS__Group_0__0__Impl rule__TemplateSignatureCS__Group_0__1 )
+            // InternalOCLinEcore.g:14898:2: rule__TemplateSignatureCS__Group_0__0__Impl rule__TemplateSignatureCS__Group_0__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__TemplateSignatureCS__Group_0__0__Impl();
@@ -45745,17 +45813,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0__0__Impl"
-    // InternalOCLinEcore.g:14893:1: rule__TemplateSignatureCS__Group_0__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:14905:1: rule__TemplateSignatureCS__Group_0__0__Impl : ( '(' ) ;
     public final void rule__TemplateSignatureCS__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14897:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:14898:1: ( '(' )
+            // InternalOCLinEcore.g:14909:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:14910:1: ( '(' )
             {
-            // InternalOCLinEcore.g:14898:1: ( '(' )
-            // InternalOCLinEcore.g:14899:1: '('
+            // InternalOCLinEcore.g:14910:1: ( '(' )
+            // InternalOCLinEcore.g:14911:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getLeftParenthesisKeyword_0_0()); 
@@ -45786,14 +45854,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0__1"
-    // InternalOCLinEcore.g:14912:1: rule__TemplateSignatureCS__Group_0__1 : rule__TemplateSignatureCS__Group_0__1__Impl rule__TemplateSignatureCS__Group_0__2 ;
+    // InternalOCLinEcore.g:14924:1: rule__TemplateSignatureCS__Group_0__1 : rule__TemplateSignatureCS__Group_0__1__Impl rule__TemplateSignatureCS__Group_0__2 ;
     public final void rule__TemplateSignatureCS__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14916:1: ( rule__TemplateSignatureCS__Group_0__1__Impl rule__TemplateSignatureCS__Group_0__2 )
-            // InternalOCLinEcore.g:14917:2: rule__TemplateSignatureCS__Group_0__1__Impl rule__TemplateSignatureCS__Group_0__2
+            // InternalOCLinEcore.g:14928:1: ( rule__TemplateSignatureCS__Group_0__1__Impl rule__TemplateSignatureCS__Group_0__2 )
+            // InternalOCLinEcore.g:14929:2: rule__TemplateSignatureCS__Group_0__1__Impl rule__TemplateSignatureCS__Group_0__2
             {
             pushFollow(FollowSets000.FOLLOW_19);
             rule__TemplateSignatureCS__Group_0__1__Impl();
@@ -45824,23 +45892,23 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0__1__Impl"
-    // InternalOCLinEcore.g:14924:1: rule__TemplateSignatureCS__Group_0__1__Impl : ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 ) ) ;
+    // InternalOCLinEcore.g:14936:1: rule__TemplateSignatureCS__Group_0__1__Impl : ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 ) ) ;
     public final void rule__TemplateSignatureCS__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14928:1: ( ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 ) ) )
-            // InternalOCLinEcore.g:14929:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 ) )
+            // InternalOCLinEcore.g:14940:1: ( ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 ) ) )
+            // InternalOCLinEcore.g:14941:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 ) )
             {
-            // InternalOCLinEcore.g:14929:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 ) )
-            // InternalOCLinEcore.g:14930:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 )
+            // InternalOCLinEcore.g:14941:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 ) )
+            // InternalOCLinEcore.g:14942:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getOwnedParametersAssignment_0_1()); 
             }
-            // InternalOCLinEcore.g:14931:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 )
-            // InternalOCLinEcore.g:14931:2: rule__TemplateSignatureCS__OwnedParametersAssignment_0_1
+            // InternalOCLinEcore.g:14943:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 )
+            // InternalOCLinEcore.g:14943:2: rule__TemplateSignatureCS__OwnedParametersAssignment_0_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateSignatureCS__OwnedParametersAssignment_0_1();
@@ -45875,14 +45943,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0__2"
-    // InternalOCLinEcore.g:14941:1: rule__TemplateSignatureCS__Group_0__2 : rule__TemplateSignatureCS__Group_0__2__Impl rule__TemplateSignatureCS__Group_0__3 ;
+    // InternalOCLinEcore.g:14953:1: rule__TemplateSignatureCS__Group_0__2 : rule__TemplateSignatureCS__Group_0__2__Impl rule__TemplateSignatureCS__Group_0__3 ;
     public final void rule__TemplateSignatureCS__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14945:1: ( rule__TemplateSignatureCS__Group_0__2__Impl rule__TemplateSignatureCS__Group_0__3 )
-            // InternalOCLinEcore.g:14946:2: rule__TemplateSignatureCS__Group_0__2__Impl rule__TemplateSignatureCS__Group_0__3
+            // InternalOCLinEcore.g:14957:1: ( rule__TemplateSignatureCS__Group_0__2__Impl rule__TemplateSignatureCS__Group_0__3 )
+            // InternalOCLinEcore.g:14958:2: rule__TemplateSignatureCS__Group_0__2__Impl rule__TemplateSignatureCS__Group_0__3
             {
             pushFollow(FollowSets000.FOLLOW_19);
             rule__TemplateSignatureCS__Group_0__2__Impl();
@@ -45913,22 +45981,22 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0__2__Impl"
-    // InternalOCLinEcore.g:14953:1: rule__TemplateSignatureCS__Group_0__2__Impl : ( ( rule__TemplateSignatureCS__Group_0_2__0 )* ) ;
+    // InternalOCLinEcore.g:14965:1: rule__TemplateSignatureCS__Group_0__2__Impl : ( ( rule__TemplateSignatureCS__Group_0_2__0 )* ) ;
     public final void rule__TemplateSignatureCS__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14957:1: ( ( ( rule__TemplateSignatureCS__Group_0_2__0 )* ) )
-            // InternalOCLinEcore.g:14958:1: ( ( rule__TemplateSignatureCS__Group_0_2__0 )* )
+            // InternalOCLinEcore.g:14969:1: ( ( ( rule__TemplateSignatureCS__Group_0_2__0 )* ) )
+            // InternalOCLinEcore.g:14970:1: ( ( rule__TemplateSignatureCS__Group_0_2__0 )* )
             {
-            // InternalOCLinEcore.g:14958:1: ( ( rule__TemplateSignatureCS__Group_0_2__0 )* )
-            // InternalOCLinEcore.g:14959:1: ( rule__TemplateSignatureCS__Group_0_2__0 )*
+            // InternalOCLinEcore.g:14970:1: ( ( rule__TemplateSignatureCS__Group_0_2__0 )* )
+            // InternalOCLinEcore.g:14971:1: ( rule__TemplateSignatureCS__Group_0_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getGroup_0_2()); 
             }
-            // InternalOCLinEcore.g:14960:1: ( rule__TemplateSignatureCS__Group_0_2__0 )*
+            // InternalOCLinEcore.g:14972:1: ( rule__TemplateSignatureCS__Group_0_2__0 )*
             loop174:
             do {
                 int alt174=2;
@@ -45941,7 +46009,7 @@
 
                 switch (alt174) {
             	case 1 :
-            	    // InternalOCLinEcore.g:14960:2: rule__TemplateSignatureCS__Group_0_2__0
+            	    // InternalOCLinEcore.g:14972:2: rule__TemplateSignatureCS__Group_0_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__TemplateSignatureCS__Group_0_2__0();
@@ -45982,14 +46050,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0__3"
-    // InternalOCLinEcore.g:14970:1: rule__TemplateSignatureCS__Group_0__3 : rule__TemplateSignatureCS__Group_0__3__Impl ;
+    // InternalOCLinEcore.g:14982:1: rule__TemplateSignatureCS__Group_0__3 : rule__TemplateSignatureCS__Group_0__3__Impl ;
     public final void rule__TemplateSignatureCS__Group_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14974:1: ( rule__TemplateSignatureCS__Group_0__3__Impl )
-            // InternalOCLinEcore.g:14975:2: rule__TemplateSignatureCS__Group_0__3__Impl
+            // InternalOCLinEcore.g:14986:1: ( rule__TemplateSignatureCS__Group_0__3__Impl )
+            // InternalOCLinEcore.g:14987:2: rule__TemplateSignatureCS__Group_0__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateSignatureCS__Group_0__3__Impl();
@@ -46015,17 +46083,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0__3__Impl"
-    // InternalOCLinEcore.g:14981:1: rule__TemplateSignatureCS__Group_0__3__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:14993:1: rule__TemplateSignatureCS__Group_0__3__Impl : ( ')' ) ;
     public final void rule__TemplateSignatureCS__Group_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:14985:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:14986:1: ( ')' )
+            // InternalOCLinEcore.g:14997:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:14998:1: ( ')' )
             {
-            // InternalOCLinEcore.g:14986:1: ( ')' )
-            // InternalOCLinEcore.g:14987:1: ')'
+            // InternalOCLinEcore.g:14998:1: ( ')' )
+            // InternalOCLinEcore.g:14999:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getRightParenthesisKeyword_0_3()); 
@@ -46056,14 +46124,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0_2__0"
-    // InternalOCLinEcore.g:15008:1: rule__TemplateSignatureCS__Group_0_2__0 : rule__TemplateSignatureCS__Group_0_2__0__Impl rule__TemplateSignatureCS__Group_0_2__1 ;
+    // InternalOCLinEcore.g:15020:1: rule__TemplateSignatureCS__Group_0_2__0 : rule__TemplateSignatureCS__Group_0_2__0__Impl rule__TemplateSignatureCS__Group_0_2__1 ;
     public final void rule__TemplateSignatureCS__Group_0_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15012:1: ( rule__TemplateSignatureCS__Group_0_2__0__Impl rule__TemplateSignatureCS__Group_0_2__1 )
-            // InternalOCLinEcore.g:15013:2: rule__TemplateSignatureCS__Group_0_2__0__Impl rule__TemplateSignatureCS__Group_0_2__1
+            // InternalOCLinEcore.g:15024:1: ( rule__TemplateSignatureCS__Group_0_2__0__Impl rule__TemplateSignatureCS__Group_0_2__1 )
+            // InternalOCLinEcore.g:15025:2: rule__TemplateSignatureCS__Group_0_2__0__Impl rule__TemplateSignatureCS__Group_0_2__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__TemplateSignatureCS__Group_0_2__0__Impl();
@@ -46094,17 +46162,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0_2__0__Impl"
-    // InternalOCLinEcore.g:15020:1: rule__TemplateSignatureCS__Group_0_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:15032:1: rule__TemplateSignatureCS__Group_0_2__0__Impl : ( ',' ) ;
     public final void rule__TemplateSignatureCS__Group_0_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15024:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:15025:1: ( ',' )
+            // InternalOCLinEcore.g:15036:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:15037:1: ( ',' )
             {
-            // InternalOCLinEcore.g:15025:1: ( ',' )
-            // InternalOCLinEcore.g:15026:1: ','
+            // InternalOCLinEcore.g:15037:1: ( ',' )
+            // InternalOCLinEcore.g:15038:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getCommaKeyword_0_2_0()); 
@@ -46135,14 +46203,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0_2__1"
-    // InternalOCLinEcore.g:15039:1: rule__TemplateSignatureCS__Group_0_2__1 : rule__TemplateSignatureCS__Group_0_2__1__Impl ;
+    // InternalOCLinEcore.g:15051:1: rule__TemplateSignatureCS__Group_0_2__1 : rule__TemplateSignatureCS__Group_0_2__1__Impl ;
     public final void rule__TemplateSignatureCS__Group_0_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15043:1: ( rule__TemplateSignatureCS__Group_0_2__1__Impl )
-            // InternalOCLinEcore.g:15044:2: rule__TemplateSignatureCS__Group_0_2__1__Impl
+            // InternalOCLinEcore.g:15055:1: ( rule__TemplateSignatureCS__Group_0_2__1__Impl )
+            // InternalOCLinEcore.g:15056:2: rule__TemplateSignatureCS__Group_0_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateSignatureCS__Group_0_2__1__Impl();
@@ -46168,23 +46236,23 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_0_2__1__Impl"
-    // InternalOCLinEcore.g:15050:1: rule__TemplateSignatureCS__Group_0_2__1__Impl : ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 ) ) ;
+    // InternalOCLinEcore.g:15062:1: rule__TemplateSignatureCS__Group_0_2__1__Impl : ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 ) ) ;
     public final void rule__TemplateSignatureCS__Group_0_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15054:1: ( ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 ) ) )
-            // InternalOCLinEcore.g:15055:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 ) )
+            // InternalOCLinEcore.g:15066:1: ( ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 ) ) )
+            // InternalOCLinEcore.g:15067:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 ) )
             {
-            // InternalOCLinEcore.g:15055:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 ) )
-            // InternalOCLinEcore.g:15056:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 )
+            // InternalOCLinEcore.g:15067:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 ) )
+            // InternalOCLinEcore.g:15068:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getOwnedParametersAssignment_0_2_1()); 
             }
-            // InternalOCLinEcore.g:15057:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 )
-            // InternalOCLinEcore.g:15057:2: rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1
+            // InternalOCLinEcore.g:15069:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 )
+            // InternalOCLinEcore.g:15069:2: rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1();
@@ -46219,14 +46287,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1__0"
-    // InternalOCLinEcore.g:15071:1: rule__TemplateSignatureCS__Group_1__0 : rule__TemplateSignatureCS__Group_1__0__Impl rule__TemplateSignatureCS__Group_1__1 ;
+    // InternalOCLinEcore.g:15083:1: rule__TemplateSignatureCS__Group_1__0 : rule__TemplateSignatureCS__Group_1__0__Impl rule__TemplateSignatureCS__Group_1__1 ;
     public final void rule__TemplateSignatureCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15075:1: ( rule__TemplateSignatureCS__Group_1__0__Impl rule__TemplateSignatureCS__Group_1__1 )
-            // InternalOCLinEcore.g:15076:2: rule__TemplateSignatureCS__Group_1__0__Impl rule__TemplateSignatureCS__Group_1__1
+            // InternalOCLinEcore.g:15087:1: ( rule__TemplateSignatureCS__Group_1__0__Impl rule__TemplateSignatureCS__Group_1__1 )
+            // InternalOCLinEcore.g:15088:2: rule__TemplateSignatureCS__Group_1__0__Impl rule__TemplateSignatureCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__TemplateSignatureCS__Group_1__0__Impl();
@@ -46257,17 +46325,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:15083:1: rule__TemplateSignatureCS__Group_1__0__Impl : ( '<' ) ;
+    // InternalOCLinEcore.g:15095:1: rule__TemplateSignatureCS__Group_1__0__Impl : ( '<' ) ;
     public final void rule__TemplateSignatureCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15087:1: ( ( '<' ) )
-            // InternalOCLinEcore.g:15088:1: ( '<' )
+            // InternalOCLinEcore.g:15099:1: ( ( '<' ) )
+            // InternalOCLinEcore.g:15100:1: ( '<' )
             {
-            // InternalOCLinEcore.g:15088:1: ( '<' )
-            // InternalOCLinEcore.g:15089:1: '<'
+            // InternalOCLinEcore.g:15100:1: ( '<' )
+            // InternalOCLinEcore.g:15101:1: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getLessThanSignKeyword_1_0()); 
@@ -46298,14 +46366,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1__1"
-    // InternalOCLinEcore.g:15102:1: rule__TemplateSignatureCS__Group_1__1 : rule__TemplateSignatureCS__Group_1__1__Impl rule__TemplateSignatureCS__Group_1__2 ;
+    // InternalOCLinEcore.g:15114:1: rule__TemplateSignatureCS__Group_1__1 : rule__TemplateSignatureCS__Group_1__1__Impl rule__TemplateSignatureCS__Group_1__2 ;
     public final void rule__TemplateSignatureCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15106:1: ( rule__TemplateSignatureCS__Group_1__1__Impl rule__TemplateSignatureCS__Group_1__2 )
-            // InternalOCLinEcore.g:15107:2: rule__TemplateSignatureCS__Group_1__1__Impl rule__TemplateSignatureCS__Group_1__2
+            // InternalOCLinEcore.g:15118:1: ( rule__TemplateSignatureCS__Group_1__1__Impl rule__TemplateSignatureCS__Group_1__2 )
+            // InternalOCLinEcore.g:15119:2: rule__TemplateSignatureCS__Group_1__1__Impl rule__TemplateSignatureCS__Group_1__2
             {
             pushFollow(FollowSets000.FOLLOW_82);
             rule__TemplateSignatureCS__Group_1__1__Impl();
@@ -46336,23 +46404,23 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:15114:1: rule__TemplateSignatureCS__Group_1__1__Impl : ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:15126:1: rule__TemplateSignatureCS__Group_1__1__Impl : ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 ) ) ;
     public final void rule__TemplateSignatureCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15118:1: ( ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:15119:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15130:1: ( ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:15131:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:15119:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 ) )
-            // InternalOCLinEcore.g:15120:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 )
+            // InternalOCLinEcore.g:15131:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15132:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getOwnedParametersAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:15121:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 )
-            // InternalOCLinEcore.g:15121:2: rule__TemplateSignatureCS__OwnedParametersAssignment_1_1
+            // InternalOCLinEcore.g:15133:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 )
+            // InternalOCLinEcore.g:15133:2: rule__TemplateSignatureCS__OwnedParametersAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateSignatureCS__OwnedParametersAssignment_1_1();
@@ -46387,14 +46455,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1__2"
-    // InternalOCLinEcore.g:15131:1: rule__TemplateSignatureCS__Group_1__2 : rule__TemplateSignatureCS__Group_1__2__Impl rule__TemplateSignatureCS__Group_1__3 ;
+    // InternalOCLinEcore.g:15143:1: rule__TemplateSignatureCS__Group_1__2 : rule__TemplateSignatureCS__Group_1__2__Impl rule__TemplateSignatureCS__Group_1__3 ;
     public final void rule__TemplateSignatureCS__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15135:1: ( rule__TemplateSignatureCS__Group_1__2__Impl rule__TemplateSignatureCS__Group_1__3 )
-            // InternalOCLinEcore.g:15136:2: rule__TemplateSignatureCS__Group_1__2__Impl rule__TemplateSignatureCS__Group_1__3
+            // InternalOCLinEcore.g:15147:1: ( rule__TemplateSignatureCS__Group_1__2__Impl rule__TemplateSignatureCS__Group_1__3 )
+            // InternalOCLinEcore.g:15148:2: rule__TemplateSignatureCS__Group_1__2__Impl rule__TemplateSignatureCS__Group_1__3
             {
             pushFollow(FollowSets000.FOLLOW_82);
             rule__TemplateSignatureCS__Group_1__2__Impl();
@@ -46425,22 +46493,22 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1__2__Impl"
-    // InternalOCLinEcore.g:15143:1: rule__TemplateSignatureCS__Group_1__2__Impl : ( ( rule__TemplateSignatureCS__Group_1_2__0 )* ) ;
+    // InternalOCLinEcore.g:15155:1: rule__TemplateSignatureCS__Group_1__2__Impl : ( ( rule__TemplateSignatureCS__Group_1_2__0 )* ) ;
     public final void rule__TemplateSignatureCS__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15147:1: ( ( ( rule__TemplateSignatureCS__Group_1_2__0 )* ) )
-            // InternalOCLinEcore.g:15148:1: ( ( rule__TemplateSignatureCS__Group_1_2__0 )* )
+            // InternalOCLinEcore.g:15159:1: ( ( ( rule__TemplateSignatureCS__Group_1_2__0 )* ) )
+            // InternalOCLinEcore.g:15160:1: ( ( rule__TemplateSignatureCS__Group_1_2__0 )* )
             {
-            // InternalOCLinEcore.g:15148:1: ( ( rule__TemplateSignatureCS__Group_1_2__0 )* )
-            // InternalOCLinEcore.g:15149:1: ( rule__TemplateSignatureCS__Group_1_2__0 )*
+            // InternalOCLinEcore.g:15160:1: ( ( rule__TemplateSignatureCS__Group_1_2__0 )* )
+            // InternalOCLinEcore.g:15161:1: ( rule__TemplateSignatureCS__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getGroup_1_2()); 
             }
-            // InternalOCLinEcore.g:15150:1: ( rule__TemplateSignatureCS__Group_1_2__0 )*
+            // InternalOCLinEcore.g:15162:1: ( rule__TemplateSignatureCS__Group_1_2__0 )*
             loop175:
             do {
                 int alt175=2;
@@ -46453,7 +46521,7 @@
 
                 switch (alt175) {
             	case 1 :
-            	    // InternalOCLinEcore.g:15150:2: rule__TemplateSignatureCS__Group_1_2__0
+            	    // InternalOCLinEcore.g:15162:2: rule__TemplateSignatureCS__Group_1_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__TemplateSignatureCS__Group_1_2__0();
@@ -46494,14 +46562,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1__3"
-    // InternalOCLinEcore.g:15160:1: rule__TemplateSignatureCS__Group_1__3 : rule__TemplateSignatureCS__Group_1__3__Impl ;
+    // InternalOCLinEcore.g:15172:1: rule__TemplateSignatureCS__Group_1__3 : rule__TemplateSignatureCS__Group_1__3__Impl ;
     public final void rule__TemplateSignatureCS__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15164:1: ( rule__TemplateSignatureCS__Group_1__3__Impl )
-            // InternalOCLinEcore.g:15165:2: rule__TemplateSignatureCS__Group_1__3__Impl
+            // InternalOCLinEcore.g:15176:1: ( rule__TemplateSignatureCS__Group_1__3__Impl )
+            // InternalOCLinEcore.g:15177:2: rule__TemplateSignatureCS__Group_1__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateSignatureCS__Group_1__3__Impl();
@@ -46527,17 +46595,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1__3__Impl"
-    // InternalOCLinEcore.g:15171:1: rule__TemplateSignatureCS__Group_1__3__Impl : ( '>' ) ;
+    // InternalOCLinEcore.g:15183:1: rule__TemplateSignatureCS__Group_1__3__Impl : ( '>' ) ;
     public final void rule__TemplateSignatureCS__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15175:1: ( ( '>' ) )
-            // InternalOCLinEcore.g:15176:1: ( '>' )
+            // InternalOCLinEcore.g:15187:1: ( ( '>' ) )
+            // InternalOCLinEcore.g:15188:1: ( '>' )
             {
-            // InternalOCLinEcore.g:15176:1: ( '>' )
-            // InternalOCLinEcore.g:15177:1: '>'
+            // InternalOCLinEcore.g:15188:1: ( '>' )
+            // InternalOCLinEcore.g:15189:1: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getGreaterThanSignKeyword_1_3()); 
@@ -46568,14 +46636,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1_2__0"
-    // InternalOCLinEcore.g:15198:1: rule__TemplateSignatureCS__Group_1_2__0 : rule__TemplateSignatureCS__Group_1_2__0__Impl rule__TemplateSignatureCS__Group_1_2__1 ;
+    // InternalOCLinEcore.g:15210:1: rule__TemplateSignatureCS__Group_1_2__0 : rule__TemplateSignatureCS__Group_1_2__0__Impl rule__TemplateSignatureCS__Group_1_2__1 ;
     public final void rule__TemplateSignatureCS__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15202:1: ( rule__TemplateSignatureCS__Group_1_2__0__Impl rule__TemplateSignatureCS__Group_1_2__1 )
-            // InternalOCLinEcore.g:15203:2: rule__TemplateSignatureCS__Group_1_2__0__Impl rule__TemplateSignatureCS__Group_1_2__1
+            // InternalOCLinEcore.g:15214:1: ( rule__TemplateSignatureCS__Group_1_2__0__Impl rule__TemplateSignatureCS__Group_1_2__1 )
+            // InternalOCLinEcore.g:15215:2: rule__TemplateSignatureCS__Group_1_2__0__Impl rule__TemplateSignatureCS__Group_1_2__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__TemplateSignatureCS__Group_1_2__0__Impl();
@@ -46606,17 +46674,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1_2__0__Impl"
-    // InternalOCLinEcore.g:15210:1: rule__TemplateSignatureCS__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:15222:1: rule__TemplateSignatureCS__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__TemplateSignatureCS__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15214:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:15215:1: ( ',' )
+            // InternalOCLinEcore.g:15226:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:15227:1: ( ',' )
             {
-            // InternalOCLinEcore.g:15215:1: ( ',' )
-            // InternalOCLinEcore.g:15216:1: ','
+            // InternalOCLinEcore.g:15227:1: ( ',' )
+            // InternalOCLinEcore.g:15228:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getCommaKeyword_1_2_0()); 
@@ -46647,14 +46715,14 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1_2__1"
-    // InternalOCLinEcore.g:15229:1: rule__TemplateSignatureCS__Group_1_2__1 : rule__TemplateSignatureCS__Group_1_2__1__Impl ;
+    // InternalOCLinEcore.g:15241:1: rule__TemplateSignatureCS__Group_1_2__1 : rule__TemplateSignatureCS__Group_1_2__1__Impl ;
     public final void rule__TemplateSignatureCS__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15233:1: ( rule__TemplateSignatureCS__Group_1_2__1__Impl )
-            // InternalOCLinEcore.g:15234:2: rule__TemplateSignatureCS__Group_1_2__1__Impl
+            // InternalOCLinEcore.g:15245:1: ( rule__TemplateSignatureCS__Group_1_2__1__Impl )
+            // InternalOCLinEcore.g:15246:2: rule__TemplateSignatureCS__Group_1_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateSignatureCS__Group_1_2__1__Impl();
@@ -46680,23 +46748,23 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__Group_1_2__1__Impl"
-    // InternalOCLinEcore.g:15240:1: rule__TemplateSignatureCS__Group_1_2__1__Impl : ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 ) ) ;
+    // InternalOCLinEcore.g:15252:1: rule__TemplateSignatureCS__Group_1_2__1__Impl : ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 ) ) ;
     public final void rule__TemplateSignatureCS__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15244:1: ( ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 ) ) )
-            // InternalOCLinEcore.g:15245:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 ) )
+            // InternalOCLinEcore.g:15256:1: ( ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 ) ) )
+            // InternalOCLinEcore.g:15257:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 ) )
             {
-            // InternalOCLinEcore.g:15245:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 ) )
-            // InternalOCLinEcore.g:15246:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 )
+            // InternalOCLinEcore.g:15257:1: ( ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 ) )
+            // InternalOCLinEcore.g:15258:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getOwnedParametersAssignment_1_2_1()); 
             }
-            // InternalOCLinEcore.g:15247:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 )
-            // InternalOCLinEcore.g:15247:2: rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1
+            // InternalOCLinEcore.g:15259:1: ( rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 )
+            // InternalOCLinEcore.g:15259:2: rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1();
@@ -46731,14 +46799,14 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group__0"
-    // InternalOCLinEcore.g:15261:1: rule__TypedTypeRefCS__Group__0 : rule__TypedTypeRefCS__Group__0__Impl rule__TypedTypeRefCS__Group__1 ;
+    // InternalOCLinEcore.g:15273:1: rule__TypedTypeRefCS__Group__0 : rule__TypedTypeRefCS__Group__0__Impl rule__TypedTypeRefCS__Group__1 ;
     public final void rule__TypedTypeRefCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15265:1: ( rule__TypedTypeRefCS__Group__0__Impl rule__TypedTypeRefCS__Group__1 )
-            // InternalOCLinEcore.g:15266:2: rule__TypedTypeRefCS__Group__0__Impl rule__TypedTypeRefCS__Group__1
+            // InternalOCLinEcore.g:15277:1: ( rule__TypedTypeRefCS__Group__0__Impl rule__TypedTypeRefCS__Group__1 )
+            // InternalOCLinEcore.g:15278:2: rule__TypedTypeRefCS__Group__0__Impl rule__TypedTypeRefCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_83);
             rule__TypedTypeRefCS__Group__0__Impl();
@@ -46769,23 +46837,23 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group__0__Impl"
-    // InternalOCLinEcore.g:15273:1: rule__TypedTypeRefCS__Group__0__Impl : ( ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:15285:1: rule__TypedTypeRefCS__Group__0__Impl : ( ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 ) ) ;
     public final void rule__TypedTypeRefCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15277:1: ( ( ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:15278:1: ( ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 ) )
+            // InternalOCLinEcore.g:15289:1: ( ( ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:15290:1: ( ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:15278:1: ( ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 ) )
-            // InternalOCLinEcore.g:15279:1: ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 )
+            // InternalOCLinEcore.g:15290:1: ( ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 ) )
+            // InternalOCLinEcore.g:15291:1: ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getOwnedPathNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:15280:1: ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 )
-            // InternalOCLinEcore.g:15280:2: rule__TypedTypeRefCS__OwnedPathNameAssignment_0
+            // InternalOCLinEcore.g:15292:1: ( rule__TypedTypeRefCS__OwnedPathNameAssignment_0 )
+            // InternalOCLinEcore.g:15292:2: rule__TypedTypeRefCS__OwnedPathNameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypedTypeRefCS__OwnedPathNameAssignment_0();
@@ -46820,14 +46888,14 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group__1"
-    // InternalOCLinEcore.g:15290:1: rule__TypedTypeRefCS__Group__1 : rule__TypedTypeRefCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:15302:1: rule__TypedTypeRefCS__Group__1 : rule__TypedTypeRefCS__Group__1__Impl ;
     public final void rule__TypedTypeRefCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15294:1: ( rule__TypedTypeRefCS__Group__1__Impl )
-            // InternalOCLinEcore.g:15295:2: rule__TypedTypeRefCS__Group__1__Impl
+            // InternalOCLinEcore.g:15306:1: ( rule__TypedTypeRefCS__Group__1__Impl )
+            // InternalOCLinEcore.g:15307:2: rule__TypedTypeRefCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypedTypeRefCS__Group__1__Impl();
@@ -46853,22 +46921,22 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group__1__Impl"
-    // InternalOCLinEcore.g:15301:1: rule__TypedTypeRefCS__Group__1__Impl : ( ( rule__TypedTypeRefCS__Alternatives_1 )? ) ;
+    // InternalOCLinEcore.g:15313:1: rule__TypedTypeRefCS__Group__1__Impl : ( ( rule__TypedTypeRefCS__Alternatives_1 )? ) ;
     public final void rule__TypedTypeRefCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15305:1: ( ( ( rule__TypedTypeRefCS__Alternatives_1 )? ) )
-            // InternalOCLinEcore.g:15306:1: ( ( rule__TypedTypeRefCS__Alternatives_1 )? )
+            // InternalOCLinEcore.g:15317:1: ( ( ( rule__TypedTypeRefCS__Alternatives_1 )? ) )
+            // InternalOCLinEcore.g:15318:1: ( ( rule__TypedTypeRefCS__Alternatives_1 )? )
             {
-            // InternalOCLinEcore.g:15306:1: ( ( rule__TypedTypeRefCS__Alternatives_1 )? )
-            // InternalOCLinEcore.g:15307:1: ( rule__TypedTypeRefCS__Alternatives_1 )?
+            // InternalOCLinEcore.g:15318:1: ( ( rule__TypedTypeRefCS__Alternatives_1 )? )
+            // InternalOCLinEcore.g:15319:1: ( rule__TypedTypeRefCS__Alternatives_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getAlternatives_1()); 
             }
-            // InternalOCLinEcore.g:15308:1: ( rule__TypedTypeRefCS__Alternatives_1 )?
+            // InternalOCLinEcore.g:15320:1: ( rule__TypedTypeRefCS__Alternatives_1 )?
             int alt176=2;
             int LA176_0 = input.LA(1);
 
@@ -46877,7 +46945,7 @@
             }
             switch (alt176) {
                 case 1 :
-                    // InternalOCLinEcore.g:15308:2: rule__TypedTypeRefCS__Alternatives_1
+                    // InternalOCLinEcore.g:15320:2: rule__TypedTypeRefCS__Alternatives_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypedTypeRefCS__Alternatives_1();
@@ -46915,14 +46983,14 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_0__0"
-    // InternalOCLinEcore.g:15322:1: rule__TypedTypeRefCS__Group_1_0__0 : rule__TypedTypeRefCS__Group_1_0__0__Impl rule__TypedTypeRefCS__Group_1_0__1 ;
+    // InternalOCLinEcore.g:15334:1: rule__TypedTypeRefCS__Group_1_0__0 : rule__TypedTypeRefCS__Group_1_0__0__Impl rule__TypedTypeRefCS__Group_1_0__1 ;
     public final void rule__TypedTypeRefCS__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15326:1: ( rule__TypedTypeRefCS__Group_1_0__0__Impl rule__TypedTypeRefCS__Group_1_0__1 )
-            // InternalOCLinEcore.g:15327:2: rule__TypedTypeRefCS__Group_1_0__0__Impl rule__TypedTypeRefCS__Group_1_0__1
+            // InternalOCLinEcore.g:15338:1: ( rule__TypedTypeRefCS__Group_1_0__0__Impl rule__TypedTypeRefCS__Group_1_0__1 )
+            // InternalOCLinEcore.g:15339:2: rule__TypedTypeRefCS__Group_1_0__0__Impl rule__TypedTypeRefCS__Group_1_0__1
             {
             pushFollow(FollowSets000.FOLLOW_84);
             rule__TypedTypeRefCS__Group_1_0__0__Impl();
@@ -46953,17 +47021,17 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_0__0__Impl"
-    // InternalOCLinEcore.g:15334:1: rule__TypedTypeRefCS__Group_1_0__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:15346:1: rule__TypedTypeRefCS__Group_1_0__0__Impl : ( '(' ) ;
     public final void rule__TypedTypeRefCS__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15338:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:15339:1: ( '(' )
+            // InternalOCLinEcore.g:15350:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:15351:1: ( '(' )
             {
-            // InternalOCLinEcore.g:15339:1: ( '(' )
-            // InternalOCLinEcore.g:15340:1: '('
+            // InternalOCLinEcore.g:15351:1: ( '(' )
+            // InternalOCLinEcore.g:15352:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getLeftParenthesisKeyword_1_0_0()); 
@@ -46994,14 +47062,14 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_0__1"
-    // InternalOCLinEcore.g:15353:1: rule__TypedTypeRefCS__Group_1_0__1 : rule__TypedTypeRefCS__Group_1_0__1__Impl rule__TypedTypeRefCS__Group_1_0__2 ;
+    // InternalOCLinEcore.g:15365:1: rule__TypedTypeRefCS__Group_1_0__1 : rule__TypedTypeRefCS__Group_1_0__1__Impl rule__TypedTypeRefCS__Group_1_0__2 ;
     public final void rule__TypedTypeRefCS__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15357:1: ( rule__TypedTypeRefCS__Group_1_0__1__Impl rule__TypedTypeRefCS__Group_1_0__2 )
-            // InternalOCLinEcore.g:15358:2: rule__TypedTypeRefCS__Group_1_0__1__Impl rule__TypedTypeRefCS__Group_1_0__2
+            // InternalOCLinEcore.g:15369:1: ( rule__TypedTypeRefCS__Group_1_0__1__Impl rule__TypedTypeRefCS__Group_1_0__2 )
+            // InternalOCLinEcore.g:15370:2: rule__TypedTypeRefCS__Group_1_0__1__Impl rule__TypedTypeRefCS__Group_1_0__2
             {
             pushFollow(FollowSets000.FOLLOW_13);
             rule__TypedTypeRefCS__Group_1_0__1__Impl();
@@ -47032,23 +47100,23 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_0__1__Impl"
-    // InternalOCLinEcore.g:15365:1: rule__TypedTypeRefCS__Group_1_0__1__Impl : ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 ) ) ;
+    // InternalOCLinEcore.g:15377:1: rule__TypedTypeRefCS__Group_1_0__1__Impl : ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 ) ) ;
     public final void rule__TypedTypeRefCS__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15369:1: ( ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 ) ) )
-            // InternalOCLinEcore.g:15370:1: ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 ) )
+            // InternalOCLinEcore.g:15381:1: ( ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 ) ) )
+            // InternalOCLinEcore.g:15382:1: ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 ) )
             {
-            // InternalOCLinEcore.g:15370:1: ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 ) )
-            // InternalOCLinEcore.g:15371:1: ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 )
+            // InternalOCLinEcore.g:15382:1: ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 ) )
+            // InternalOCLinEcore.g:15383:1: ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getOwnedBindingAssignment_1_0_1()); 
             }
-            // InternalOCLinEcore.g:15372:1: ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 )
-            // InternalOCLinEcore.g:15372:2: rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1
+            // InternalOCLinEcore.g:15384:1: ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 )
+            // InternalOCLinEcore.g:15384:2: rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1();
@@ -47083,14 +47151,14 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_0__2"
-    // InternalOCLinEcore.g:15382:1: rule__TypedTypeRefCS__Group_1_0__2 : rule__TypedTypeRefCS__Group_1_0__2__Impl ;
+    // InternalOCLinEcore.g:15394:1: rule__TypedTypeRefCS__Group_1_0__2 : rule__TypedTypeRefCS__Group_1_0__2__Impl ;
     public final void rule__TypedTypeRefCS__Group_1_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15386:1: ( rule__TypedTypeRefCS__Group_1_0__2__Impl )
-            // InternalOCLinEcore.g:15387:2: rule__TypedTypeRefCS__Group_1_0__2__Impl
+            // InternalOCLinEcore.g:15398:1: ( rule__TypedTypeRefCS__Group_1_0__2__Impl )
+            // InternalOCLinEcore.g:15399:2: rule__TypedTypeRefCS__Group_1_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypedTypeRefCS__Group_1_0__2__Impl();
@@ -47116,17 +47184,17 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_0__2__Impl"
-    // InternalOCLinEcore.g:15393:1: rule__TypedTypeRefCS__Group_1_0__2__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:15405:1: rule__TypedTypeRefCS__Group_1_0__2__Impl : ( ')' ) ;
     public final void rule__TypedTypeRefCS__Group_1_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15397:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:15398:1: ( ')' )
+            // InternalOCLinEcore.g:15409:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:15410:1: ( ')' )
             {
-            // InternalOCLinEcore.g:15398:1: ( ')' )
-            // InternalOCLinEcore.g:15399:1: ')'
+            // InternalOCLinEcore.g:15410:1: ( ')' )
+            // InternalOCLinEcore.g:15411:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getRightParenthesisKeyword_1_0_2()); 
@@ -47157,14 +47225,14 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_1__0"
-    // InternalOCLinEcore.g:15418:1: rule__TypedTypeRefCS__Group_1_1__0 : rule__TypedTypeRefCS__Group_1_1__0__Impl rule__TypedTypeRefCS__Group_1_1__1 ;
+    // InternalOCLinEcore.g:15430:1: rule__TypedTypeRefCS__Group_1_1__0 : rule__TypedTypeRefCS__Group_1_1__0__Impl rule__TypedTypeRefCS__Group_1_1__1 ;
     public final void rule__TypedTypeRefCS__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15422:1: ( rule__TypedTypeRefCS__Group_1_1__0__Impl rule__TypedTypeRefCS__Group_1_1__1 )
-            // InternalOCLinEcore.g:15423:2: rule__TypedTypeRefCS__Group_1_1__0__Impl rule__TypedTypeRefCS__Group_1_1__1
+            // InternalOCLinEcore.g:15434:1: ( rule__TypedTypeRefCS__Group_1_1__0__Impl rule__TypedTypeRefCS__Group_1_1__1 )
+            // InternalOCLinEcore.g:15435:2: rule__TypedTypeRefCS__Group_1_1__0__Impl rule__TypedTypeRefCS__Group_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_84);
             rule__TypedTypeRefCS__Group_1_1__0__Impl();
@@ -47195,17 +47263,17 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_1__0__Impl"
-    // InternalOCLinEcore.g:15430:1: rule__TypedTypeRefCS__Group_1_1__0__Impl : ( '<' ) ;
+    // InternalOCLinEcore.g:15442:1: rule__TypedTypeRefCS__Group_1_1__0__Impl : ( '<' ) ;
     public final void rule__TypedTypeRefCS__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15434:1: ( ( '<' ) )
-            // InternalOCLinEcore.g:15435:1: ( '<' )
+            // InternalOCLinEcore.g:15446:1: ( ( '<' ) )
+            // InternalOCLinEcore.g:15447:1: ( '<' )
             {
-            // InternalOCLinEcore.g:15435:1: ( '<' )
-            // InternalOCLinEcore.g:15436:1: '<'
+            // InternalOCLinEcore.g:15447:1: ( '<' )
+            // InternalOCLinEcore.g:15448:1: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getLessThanSignKeyword_1_1_0()); 
@@ -47236,14 +47304,14 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_1__1"
-    // InternalOCLinEcore.g:15449:1: rule__TypedTypeRefCS__Group_1_1__1 : rule__TypedTypeRefCS__Group_1_1__1__Impl rule__TypedTypeRefCS__Group_1_1__2 ;
+    // InternalOCLinEcore.g:15461:1: rule__TypedTypeRefCS__Group_1_1__1 : rule__TypedTypeRefCS__Group_1_1__1__Impl rule__TypedTypeRefCS__Group_1_1__2 ;
     public final void rule__TypedTypeRefCS__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15453:1: ( rule__TypedTypeRefCS__Group_1_1__1__Impl rule__TypedTypeRefCS__Group_1_1__2 )
-            // InternalOCLinEcore.g:15454:2: rule__TypedTypeRefCS__Group_1_1__1__Impl rule__TypedTypeRefCS__Group_1_1__2
+            // InternalOCLinEcore.g:15465:1: ( rule__TypedTypeRefCS__Group_1_1__1__Impl rule__TypedTypeRefCS__Group_1_1__2 )
+            // InternalOCLinEcore.g:15466:2: rule__TypedTypeRefCS__Group_1_1__1__Impl rule__TypedTypeRefCS__Group_1_1__2
             {
             pushFollow(FollowSets000.FOLLOW_85);
             rule__TypedTypeRefCS__Group_1_1__1__Impl();
@@ -47274,23 +47342,23 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_1__1__Impl"
-    // InternalOCLinEcore.g:15461:1: rule__TypedTypeRefCS__Group_1_1__1__Impl : ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 ) ) ;
+    // InternalOCLinEcore.g:15473:1: rule__TypedTypeRefCS__Group_1_1__1__Impl : ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 ) ) ;
     public final void rule__TypedTypeRefCS__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15465:1: ( ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 ) ) )
-            // InternalOCLinEcore.g:15466:1: ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 ) )
+            // InternalOCLinEcore.g:15477:1: ( ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 ) ) )
+            // InternalOCLinEcore.g:15478:1: ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 ) )
             {
-            // InternalOCLinEcore.g:15466:1: ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 ) )
-            // InternalOCLinEcore.g:15467:1: ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 )
+            // InternalOCLinEcore.g:15478:1: ( ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 ) )
+            // InternalOCLinEcore.g:15479:1: ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getOwnedBindingAssignment_1_1_1()); 
             }
-            // InternalOCLinEcore.g:15468:1: ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 )
-            // InternalOCLinEcore.g:15468:2: rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1
+            // InternalOCLinEcore.g:15480:1: ( rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 )
+            // InternalOCLinEcore.g:15480:2: rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1();
@@ -47325,14 +47393,14 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_1__2"
-    // InternalOCLinEcore.g:15478:1: rule__TypedTypeRefCS__Group_1_1__2 : rule__TypedTypeRefCS__Group_1_1__2__Impl ;
+    // InternalOCLinEcore.g:15490:1: rule__TypedTypeRefCS__Group_1_1__2 : rule__TypedTypeRefCS__Group_1_1__2__Impl ;
     public final void rule__TypedTypeRefCS__Group_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15482:1: ( rule__TypedTypeRefCS__Group_1_1__2__Impl )
-            // InternalOCLinEcore.g:15483:2: rule__TypedTypeRefCS__Group_1_1__2__Impl
+            // InternalOCLinEcore.g:15494:1: ( rule__TypedTypeRefCS__Group_1_1__2__Impl )
+            // InternalOCLinEcore.g:15495:2: rule__TypedTypeRefCS__Group_1_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypedTypeRefCS__Group_1_1__2__Impl();
@@ -47358,17 +47426,17 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__Group_1_1__2__Impl"
-    // InternalOCLinEcore.g:15489:1: rule__TypedTypeRefCS__Group_1_1__2__Impl : ( '>' ) ;
+    // InternalOCLinEcore.g:15501:1: rule__TypedTypeRefCS__Group_1_1__2__Impl : ( '>' ) ;
     public final void rule__TypedTypeRefCS__Group_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15493:1: ( ( '>' ) )
-            // InternalOCLinEcore.g:15494:1: ( '>' )
+            // InternalOCLinEcore.g:15505:1: ( ( '>' ) )
+            // InternalOCLinEcore.g:15506:1: ( '>' )
             {
-            // InternalOCLinEcore.g:15494:1: ( '>' )
-            // InternalOCLinEcore.g:15495:1: '>'
+            // InternalOCLinEcore.g:15506:1: ( '>' )
+            // InternalOCLinEcore.g:15507:1: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getGreaterThanSignKeyword_1_1_2()); 
@@ -47399,14 +47467,14 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__Group__0"
-    // InternalOCLinEcore.g:15514:1: rule__URIPathNameCS__Group__0 : rule__URIPathNameCS__Group__0__Impl rule__URIPathNameCS__Group__1 ;
+    // InternalOCLinEcore.g:15526:1: rule__URIPathNameCS__Group__0 : rule__URIPathNameCS__Group__0__Impl rule__URIPathNameCS__Group__1 ;
     public final void rule__URIPathNameCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15518:1: ( rule__URIPathNameCS__Group__0__Impl rule__URIPathNameCS__Group__1 )
-            // InternalOCLinEcore.g:15519:2: rule__URIPathNameCS__Group__0__Impl rule__URIPathNameCS__Group__1
+            // InternalOCLinEcore.g:15530:1: ( rule__URIPathNameCS__Group__0__Impl rule__URIPathNameCS__Group__1 )
+            // InternalOCLinEcore.g:15531:2: rule__URIPathNameCS__Group__0__Impl rule__URIPathNameCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_86);
             rule__URIPathNameCS__Group__0__Impl();
@@ -47437,23 +47505,23 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__Group__0__Impl"
-    // InternalOCLinEcore.g:15526:1: rule__URIPathNameCS__Group__0__Impl : ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:15538:1: rule__URIPathNameCS__Group__0__Impl : ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 ) ) ;
     public final void rule__URIPathNameCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15530:1: ( ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 ) ) )
-            // InternalOCLinEcore.g:15531:1: ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 ) )
+            // InternalOCLinEcore.g:15542:1: ( ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 ) ) )
+            // InternalOCLinEcore.g:15543:1: ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:15531:1: ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 ) )
-            // InternalOCLinEcore.g:15532:1: ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 )
+            // InternalOCLinEcore.g:15543:1: ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 ) )
+            // InternalOCLinEcore.g:15544:1: ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIPathNameCSAccess().getOwnedPathElementsAssignment_0()); 
             }
-            // InternalOCLinEcore.g:15533:1: ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 )
-            // InternalOCLinEcore.g:15533:2: rule__URIPathNameCS__OwnedPathElementsAssignment_0
+            // InternalOCLinEcore.g:15545:1: ( rule__URIPathNameCS__OwnedPathElementsAssignment_0 )
+            // InternalOCLinEcore.g:15545:2: rule__URIPathNameCS__OwnedPathElementsAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__URIPathNameCS__OwnedPathElementsAssignment_0();
@@ -47488,14 +47556,14 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__Group__1"
-    // InternalOCLinEcore.g:15543:1: rule__URIPathNameCS__Group__1 : rule__URIPathNameCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:15555:1: rule__URIPathNameCS__Group__1 : rule__URIPathNameCS__Group__1__Impl ;
     public final void rule__URIPathNameCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15547:1: ( rule__URIPathNameCS__Group__1__Impl )
-            // InternalOCLinEcore.g:15548:2: rule__URIPathNameCS__Group__1__Impl
+            // InternalOCLinEcore.g:15559:1: ( rule__URIPathNameCS__Group__1__Impl )
+            // InternalOCLinEcore.g:15560:2: rule__URIPathNameCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__URIPathNameCS__Group__1__Impl();
@@ -47521,22 +47589,22 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__Group__1__Impl"
-    // InternalOCLinEcore.g:15554:1: rule__URIPathNameCS__Group__1__Impl : ( ( rule__URIPathNameCS__Group_1__0 )* ) ;
+    // InternalOCLinEcore.g:15566:1: rule__URIPathNameCS__Group__1__Impl : ( ( rule__URIPathNameCS__Group_1__0 )* ) ;
     public final void rule__URIPathNameCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15558:1: ( ( ( rule__URIPathNameCS__Group_1__0 )* ) )
-            // InternalOCLinEcore.g:15559:1: ( ( rule__URIPathNameCS__Group_1__0 )* )
+            // InternalOCLinEcore.g:15570:1: ( ( ( rule__URIPathNameCS__Group_1__0 )* ) )
+            // InternalOCLinEcore.g:15571:1: ( ( rule__URIPathNameCS__Group_1__0 )* )
             {
-            // InternalOCLinEcore.g:15559:1: ( ( rule__URIPathNameCS__Group_1__0 )* )
-            // InternalOCLinEcore.g:15560:1: ( rule__URIPathNameCS__Group_1__0 )*
+            // InternalOCLinEcore.g:15571:1: ( ( rule__URIPathNameCS__Group_1__0 )* )
+            // InternalOCLinEcore.g:15572:1: ( rule__URIPathNameCS__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIPathNameCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:15561:1: ( rule__URIPathNameCS__Group_1__0 )*
+            // InternalOCLinEcore.g:15573:1: ( rule__URIPathNameCS__Group_1__0 )*
             loop177:
             do {
                 int alt177=2;
@@ -47549,7 +47617,7 @@
 
                 switch (alt177) {
             	case 1 :
-            	    // InternalOCLinEcore.g:15561:2: rule__URIPathNameCS__Group_1__0
+            	    // InternalOCLinEcore.g:15573:2: rule__URIPathNameCS__Group_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_87);
             	    rule__URIPathNameCS__Group_1__0();
@@ -47590,14 +47658,14 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__Group_1__0"
-    // InternalOCLinEcore.g:15575:1: rule__URIPathNameCS__Group_1__0 : rule__URIPathNameCS__Group_1__0__Impl rule__URIPathNameCS__Group_1__1 ;
+    // InternalOCLinEcore.g:15587:1: rule__URIPathNameCS__Group_1__0 : rule__URIPathNameCS__Group_1__0__Impl rule__URIPathNameCS__Group_1__1 ;
     public final void rule__URIPathNameCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15579:1: ( rule__URIPathNameCS__Group_1__0__Impl rule__URIPathNameCS__Group_1__1 )
-            // InternalOCLinEcore.g:15580:2: rule__URIPathNameCS__Group_1__0__Impl rule__URIPathNameCS__Group_1__1
+            // InternalOCLinEcore.g:15591:1: ( rule__URIPathNameCS__Group_1__0__Impl rule__URIPathNameCS__Group_1__1 )
+            // InternalOCLinEcore.g:15592:2: rule__URIPathNameCS__Group_1__0__Impl rule__URIPathNameCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_88);
             rule__URIPathNameCS__Group_1__0__Impl();
@@ -47628,17 +47696,17 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:15587:1: rule__URIPathNameCS__Group_1__0__Impl : ( '::' ) ;
+    // InternalOCLinEcore.g:15599:1: rule__URIPathNameCS__Group_1__0__Impl : ( '::' ) ;
     public final void rule__URIPathNameCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15591:1: ( ( '::' ) )
-            // InternalOCLinEcore.g:15592:1: ( '::' )
+            // InternalOCLinEcore.g:15603:1: ( ( '::' ) )
+            // InternalOCLinEcore.g:15604:1: ( '::' )
             {
-            // InternalOCLinEcore.g:15592:1: ( '::' )
-            // InternalOCLinEcore.g:15593:1: '::'
+            // InternalOCLinEcore.g:15604:1: ( '::' )
+            // InternalOCLinEcore.g:15605:1: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIPathNameCSAccess().getColonColonKeyword_1_0()); 
@@ -47669,14 +47737,14 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__Group_1__1"
-    // InternalOCLinEcore.g:15606:1: rule__URIPathNameCS__Group_1__1 : rule__URIPathNameCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:15618:1: rule__URIPathNameCS__Group_1__1 : rule__URIPathNameCS__Group_1__1__Impl ;
     public final void rule__URIPathNameCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15610:1: ( rule__URIPathNameCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:15611:2: rule__URIPathNameCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:15622:1: ( rule__URIPathNameCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:15623:2: rule__URIPathNameCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__URIPathNameCS__Group_1__1__Impl();
@@ -47702,23 +47770,23 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:15617:1: rule__URIPathNameCS__Group_1__1__Impl : ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:15629:1: rule__URIPathNameCS__Group_1__1__Impl : ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 ) ) ;
     public final void rule__URIPathNameCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15621:1: ( ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:15622:1: ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15633:1: ( ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:15634:1: ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:15622:1: ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 ) )
-            // InternalOCLinEcore.g:15623:1: ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 )
+            // InternalOCLinEcore.g:15634:1: ( ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15635:1: ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIPathNameCSAccess().getOwnedPathElementsAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:15624:1: ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 )
-            // InternalOCLinEcore.g:15624:2: rule__URIPathNameCS__OwnedPathElementsAssignment_1_1
+            // InternalOCLinEcore.g:15636:1: ( rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 )
+            // InternalOCLinEcore.g:15636:2: rule__URIPathNameCS__OwnedPathElementsAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__URIPathNameCS__OwnedPathElementsAssignment_1_1();
@@ -47753,14 +47821,14 @@
 
 
     // $ANTLR start "rule__URIFirstPathElementCS__Group_1__0"
-    // InternalOCLinEcore.g:15638:1: rule__URIFirstPathElementCS__Group_1__0 : rule__URIFirstPathElementCS__Group_1__0__Impl rule__URIFirstPathElementCS__Group_1__1 ;
+    // InternalOCLinEcore.g:15650:1: rule__URIFirstPathElementCS__Group_1__0 : rule__URIFirstPathElementCS__Group_1__0__Impl rule__URIFirstPathElementCS__Group_1__1 ;
     public final void rule__URIFirstPathElementCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15642:1: ( rule__URIFirstPathElementCS__Group_1__0__Impl rule__URIFirstPathElementCS__Group_1__1 )
-            // InternalOCLinEcore.g:15643:2: rule__URIFirstPathElementCS__Group_1__0__Impl rule__URIFirstPathElementCS__Group_1__1
+            // InternalOCLinEcore.g:15654:1: ( rule__URIFirstPathElementCS__Group_1__0__Impl rule__URIFirstPathElementCS__Group_1__1 )
+            // InternalOCLinEcore.g:15655:2: rule__URIFirstPathElementCS__Group_1__0__Impl rule__URIFirstPathElementCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__URIFirstPathElementCS__Group_1__0__Impl();
@@ -47791,23 +47859,23 @@
 
 
     // $ANTLR start "rule__URIFirstPathElementCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:15650:1: rule__URIFirstPathElementCS__Group_1__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:15662:1: rule__URIFirstPathElementCS__Group_1__0__Impl : ( () ) ;
     public final void rule__URIFirstPathElementCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15654:1: ( ( () ) )
-            // InternalOCLinEcore.g:15655:1: ( () )
+            // InternalOCLinEcore.g:15666:1: ( ( () ) )
+            // InternalOCLinEcore.g:15667:1: ( () )
             {
-            // InternalOCLinEcore.g:15655:1: ( () )
-            // InternalOCLinEcore.g:15656:1: ()
+            // InternalOCLinEcore.g:15667:1: ( () )
+            // InternalOCLinEcore.g:15668:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIFirstPathElementCSAccess().getPathElementWithURICSAction_1_0()); 
             }
-            // InternalOCLinEcore.g:15657:1: ()
-            // InternalOCLinEcore.g:15659:1: 
+            // InternalOCLinEcore.g:15669:1: ()
+            // InternalOCLinEcore.g:15671:1: 
             {
             }
 
@@ -47832,14 +47900,14 @@
 
 
     // $ANTLR start "rule__URIFirstPathElementCS__Group_1__1"
-    // InternalOCLinEcore.g:15669:1: rule__URIFirstPathElementCS__Group_1__1 : rule__URIFirstPathElementCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:15681:1: rule__URIFirstPathElementCS__Group_1__1 : rule__URIFirstPathElementCS__Group_1__1__Impl ;
     public final void rule__URIFirstPathElementCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15673:1: ( rule__URIFirstPathElementCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:15674:2: rule__URIFirstPathElementCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:15685:1: ( rule__URIFirstPathElementCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:15686:2: rule__URIFirstPathElementCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__URIFirstPathElementCS__Group_1__1__Impl();
@@ -47865,23 +47933,23 @@
 
 
     // $ANTLR start "rule__URIFirstPathElementCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:15680:1: rule__URIFirstPathElementCS__Group_1__1__Impl : ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:15692:1: rule__URIFirstPathElementCS__Group_1__1__Impl : ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 ) ) ;
     public final void rule__URIFirstPathElementCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15684:1: ( ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:15685:1: ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15696:1: ( ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:15697:1: ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:15685:1: ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 ) )
-            // InternalOCLinEcore.g:15686:1: ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 )
+            // InternalOCLinEcore.g:15697:1: ( ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15698:1: ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIFirstPathElementCSAccess().getReferredElementAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:15687:1: ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 )
-            // InternalOCLinEcore.g:15687:2: rule__URIFirstPathElementCS__ReferredElementAssignment_1_1
+            // InternalOCLinEcore.g:15699:1: ( rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 )
+            // InternalOCLinEcore.g:15699:2: rule__URIFirstPathElementCS__ReferredElementAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__URIFirstPathElementCS__ReferredElementAssignment_1_1();
@@ -47916,14 +47984,14 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group__0"
-    // InternalOCLinEcore.g:15701:1: rule__CollectionTypeCS__Group__0 : rule__CollectionTypeCS__Group__0__Impl rule__CollectionTypeCS__Group__1 ;
+    // InternalOCLinEcore.g:15713:1: rule__CollectionTypeCS__Group__0 : rule__CollectionTypeCS__Group__0__Impl rule__CollectionTypeCS__Group__1 ;
     public final void rule__CollectionTypeCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15705:1: ( rule__CollectionTypeCS__Group__0__Impl rule__CollectionTypeCS__Group__1 )
-            // InternalOCLinEcore.g:15706:2: rule__CollectionTypeCS__Group__0__Impl rule__CollectionTypeCS__Group__1
+            // InternalOCLinEcore.g:15717:1: ( rule__CollectionTypeCS__Group__0__Impl rule__CollectionTypeCS__Group__1 )
+            // InternalOCLinEcore.g:15718:2: rule__CollectionTypeCS__Group__0__Impl rule__CollectionTypeCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_11);
             rule__CollectionTypeCS__Group__0__Impl();
@@ -47954,23 +48022,23 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group__0__Impl"
-    // InternalOCLinEcore.g:15713:1: rule__CollectionTypeCS__Group__0__Impl : ( ( rule__CollectionTypeCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:15725:1: rule__CollectionTypeCS__Group__0__Impl : ( ( rule__CollectionTypeCS__NameAssignment_0 ) ) ;
     public final void rule__CollectionTypeCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15717:1: ( ( ( rule__CollectionTypeCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:15718:1: ( ( rule__CollectionTypeCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:15729:1: ( ( ( rule__CollectionTypeCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:15730:1: ( ( rule__CollectionTypeCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:15718:1: ( ( rule__CollectionTypeCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:15719:1: ( rule__CollectionTypeCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:15730:1: ( ( rule__CollectionTypeCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:15731:1: ( rule__CollectionTypeCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionTypeCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:15720:1: ( rule__CollectionTypeCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:15720:2: rule__CollectionTypeCS__NameAssignment_0
+            // InternalOCLinEcore.g:15732:1: ( rule__CollectionTypeCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:15732:2: rule__CollectionTypeCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionTypeCS__NameAssignment_0();
@@ -48005,14 +48073,14 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group__1"
-    // InternalOCLinEcore.g:15730:1: rule__CollectionTypeCS__Group__1 : rule__CollectionTypeCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:15742:1: rule__CollectionTypeCS__Group__1 : rule__CollectionTypeCS__Group__1__Impl ;
     public final void rule__CollectionTypeCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15734:1: ( rule__CollectionTypeCS__Group__1__Impl )
-            // InternalOCLinEcore.g:15735:2: rule__CollectionTypeCS__Group__1__Impl
+            // InternalOCLinEcore.g:15746:1: ( rule__CollectionTypeCS__Group__1__Impl )
+            // InternalOCLinEcore.g:15747:2: rule__CollectionTypeCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionTypeCS__Group__1__Impl();
@@ -48038,22 +48106,22 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group__1__Impl"
-    // InternalOCLinEcore.g:15741:1: rule__CollectionTypeCS__Group__1__Impl : ( ( rule__CollectionTypeCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:15753:1: rule__CollectionTypeCS__Group__1__Impl : ( ( rule__CollectionTypeCS__Group_1__0 )? ) ;
     public final void rule__CollectionTypeCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15745:1: ( ( ( rule__CollectionTypeCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:15746:1: ( ( rule__CollectionTypeCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:15757:1: ( ( ( rule__CollectionTypeCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:15758:1: ( ( rule__CollectionTypeCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:15746:1: ( ( rule__CollectionTypeCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:15747:1: ( rule__CollectionTypeCS__Group_1__0 )?
+            // InternalOCLinEcore.g:15758:1: ( ( rule__CollectionTypeCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:15759:1: ( rule__CollectionTypeCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionTypeCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:15748:1: ( rule__CollectionTypeCS__Group_1__0 )?
+            // InternalOCLinEcore.g:15760:1: ( rule__CollectionTypeCS__Group_1__0 )?
             int alt178=2;
             int LA178_0 = input.LA(1);
 
@@ -48062,7 +48130,7 @@
             }
             switch (alt178) {
                 case 1 :
-                    // InternalOCLinEcore.g:15748:2: rule__CollectionTypeCS__Group_1__0
+                    // InternalOCLinEcore.g:15760:2: rule__CollectionTypeCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__CollectionTypeCS__Group_1__0();
@@ -48100,14 +48168,14 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group_1__0"
-    // InternalOCLinEcore.g:15762:1: rule__CollectionTypeCS__Group_1__0 : rule__CollectionTypeCS__Group_1__0__Impl rule__CollectionTypeCS__Group_1__1 ;
+    // InternalOCLinEcore.g:15774:1: rule__CollectionTypeCS__Group_1__0 : rule__CollectionTypeCS__Group_1__0__Impl rule__CollectionTypeCS__Group_1__1 ;
     public final void rule__CollectionTypeCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15766:1: ( rule__CollectionTypeCS__Group_1__0__Impl rule__CollectionTypeCS__Group_1__1 )
-            // InternalOCLinEcore.g:15767:2: rule__CollectionTypeCS__Group_1__0__Impl rule__CollectionTypeCS__Group_1__1
+            // InternalOCLinEcore.g:15778:1: ( rule__CollectionTypeCS__Group_1__0__Impl rule__CollectionTypeCS__Group_1__1 )
+            // InternalOCLinEcore.g:15779:2: rule__CollectionTypeCS__Group_1__0__Impl rule__CollectionTypeCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__CollectionTypeCS__Group_1__0__Impl();
@@ -48138,17 +48206,17 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:15774:1: rule__CollectionTypeCS__Group_1__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:15786:1: rule__CollectionTypeCS__Group_1__0__Impl : ( '(' ) ;
     public final void rule__CollectionTypeCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15778:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:15779:1: ( '(' )
+            // InternalOCLinEcore.g:15790:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:15791:1: ( '(' )
             {
-            // InternalOCLinEcore.g:15779:1: ( '(' )
-            // InternalOCLinEcore.g:15780:1: '('
+            // InternalOCLinEcore.g:15791:1: ( '(' )
+            // InternalOCLinEcore.g:15792:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionTypeCSAccess().getLeftParenthesisKeyword_1_0()); 
@@ -48179,14 +48247,14 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group_1__1"
-    // InternalOCLinEcore.g:15793:1: rule__CollectionTypeCS__Group_1__1 : rule__CollectionTypeCS__Group_1__1__Impl rule__CollectionTypeCS__Group_1__2 ;
+    // InternalOCLinEcore.g:15805:1: rule__CollectionTypeCS__Group_1__1 : rule__CollectionTypeCS__Group_1__1__Impl rule__CollectionTypeCS__Group_1__2 ;
     public final void rule__CollectionTypeCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15797:1: ( rule__CollectionTypeCS__Group_1__1__Impl rule__CollectionTypeCS__Group_1__2 )
-            // InternalOCLinEcore.g:15798:2: rule__CollectionTypeCS__Group_1__1__Impl rule__CollectionTypeCS__Group_1__2
+            // InternalOCLinEcore.g:15809:1: ( rule__CollectionTypeCS__Group_1__1__Impl rule__CollectionTypeCS__Group_1__2 )
+            // InternalOCLinEcore.g:15810:2: rule__CollectionTypeCS__Group_1__1__Impl rule__CollectionTypeCS__Group_1__2
             {
             pushFollow(FollowSets000.FOLLOW_13);
             rule__CollectionTypeCS__Group_1__1__Impl();
@@ -48217,23 +48285,23 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:15805:1: rule__CollectionTypeCS__Group_1__1__Impl : ( ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:15817:1: rule__CollectionTypeCS__Group_1__1__Impl : ( ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 ) ) ;
     public final void rule__CollectionTypeCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15809:1: ( ( ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:15810:1: ( ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15821:1: ( ( ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:15822:1: ( ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:15810:1: ( ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 ) )
-            // InternalOCLinEcore.g:15811:1: ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:15822:1: ( ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15823:1: ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionTypeCSAccess().getOwnedTypeAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:15812:1: ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 )
-            // InternalOCLinEcore.g:15812:2: rule__CollectionTypeCS__OwnedTypeAssignment_1_1
+            // InternalOCLinEcore.g:15824:1: ( rule__CollectionTypeCS__OwnedTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:15824:2: rule__CollectionTypeCS__OwnedTypeAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionTypeCS__OwnedTypeAssignment_1_1();
@@ -48268,14 +48336,14 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group_1__2"
-    // InternalOCLinEcore.g:15822:1: rule__CollectionTypeCS__Group_1__2 : rule__CollectionTypeCS__Group_1__2__Impl ;
+    // InternalOCLinEcore.g:15834:1: rule__CollectionTypeCS__Group_1__2 : rule__CollectionTypeCS__Group_1__2__Impl ;
     public final void rule__CollectionTypeCS__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15826:1: ( rule__CollectionTypeCS__Group_1__2__Impl )
-            // InternalOCLinEcore.g:15827:2: rule__CollectionTypeCS__Group_1__2__Impl
+            // InternalOCLinEcore.g:15838:1: ( rule__CollectionTypeCS__Group_1__2__Impl )
+            // InternalOCLinEcore.g:15839:2: rule__CollectionTypeCS__Group_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionTypeCS__Group_1__2__Impl();
@@ -48301,17 +48369,17 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__Group_1__2__Impl"
-    // InternalOCLinEcore.g:15833:1: rule__CollectionTypeCS__Group_1__2__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:15845:1: rule__CollectionTypeCS__Group_1__2__Impl : ( ')' ) ;
     public final void rule__CollectionTypeCS__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15837:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:15838:1: ( ')' )
+            // InternalOCLinEcore.g:15849:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:15850:1: ( ')' )
             {
-            // InternalOCLinEcore.g:15838:1: ( ')' )
-            // InternalOCLinEcore.g:15839:1: ')'
+            // InternalOCLinEcore.g:15850:1: ( ')' )
+            // InternalOCLinEcore.g:15851:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionTypeCSAccess().getRightParenthesisKeyword_1_2()); 
@@ -48342,14 +48410,14 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group__0"
-    // InternalOCLinEcore.g:15858:1: rule__MapTypeCS__Group__0 : rule__MapTypeCS__Group__0__Impl rule__MapTypeCS__Group__1 ;
+    // InternalOCLinEcore.g:15870:1: rule__MapTypeCS__Group__0 : rule__MapTypeCS__Group__0__Impl rule__MapTypeCS__Group__1 ;
     public final void rule__MapTypeCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15862:1: ( rule__MapTypeCS__Group__0__Impl rule__MapTypeCS__Group__1 )
-            // InternalOCLinEcore.g:15863:2: rule__MapTypeCS__Group__0__Impl rule__MapTypeCS__Group__1
+            // InternalOCLinEcore.g:15874:1: ( rule__MapTypeCS__Group__0__Impl rule__MapTypeCS__Group__1 )
+            // InternalOCLinEcore.g:15875:2: rule__MapTypeCS__Group__0__Impl rule__MapTypeCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_11);
             rule__MapTypeCS__Group__0__Impl();
@@ -48380,23 +48448,23 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group__0__Impl"
-    // InternalOCLinEcore.g:15870:1: rule__MapTypeCS__Group__0__Impl : ( ( rule__MapTypeCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:15882:1: rule__MapTypeCS__Group__0__Impl : ( ( rule__MapTypeCS__NameAssignment_0 ) ) ;
     public final void rule__MapTypeCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15874:1: ( ( ( rule__MapTypeCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:15875:1: ( ( rule__MapTypeCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:15886:1: ( ( ( rule__MapTypeCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:15887:1: ( ( rule__MapTypeCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:15875:1: ( ( rule__MapTypeCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:15876:1: ( rule__MapTypeCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:15887:1: ( ( rule__MapTypeCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:15888:1: ( rule__MapTypeCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:15877:1: ( rule__MapTypeCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:15877:2: rule__MapTypeCS__NameAssignment_0
+            // InternalOCLinEcore.g:15889:1: ( rule__MapTypeCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:15889:2: rule__MapTypeCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapTypeCS__NameAssignment_0();
@@ -48431,14 +48499,14 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group__1"
-    // InternalOCLinEcore.g:15887:1: rule__MapTypeCS__Group__1 : rule__MapTypeCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:15899:1: rule__MapTypeCS__Group__1 : rule__MapTypeCS__Group__1__Impl ;
     public final void rule__MapTypeCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15891:1: ( rule__MapTypeCS__Group__1__Impl )
-            // InternalOCLinEcore.g:15892:2: rule__MapTypeCS__Group__1__Impl
+            // InternalOCLinEcore.g:15903:1: ( rule__MapTypeCS__Group__1__Impl )
+            // InternalOCLinEcore.g:15904:2: rule__MapTypeCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapTypeCS__Group__1__Impl();
@@ -48464,22 +48532,22 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group__1__Impl"
-    // InternalOCLinEcore.g:15898:1: rule__MapTypeCS__Group__1__Impl : ( ( rule__MapTypeCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:15910:1: rule__MapTypeCS__Group__1__Impl : ( ( rule__MapTypeCS__Group_1__0 )? ) ;
     public final void rule__MapTypeCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15902:1: ( ( ( rule__MapTypeCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:15903:1: ( ( rule__MapTypeCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:15914:1: ( ( ( rule__MapTypeCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:15915:1: ( ( rule__MapTypeCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:15903:1: ( ( rule__MapTypeCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:15904:1: ( rule__MapTypeCS__Group_1__0 )?
+            // InternalOCLinEcore.g:15915:1: ( ( rule__MapTypeCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:15916:1: ( rule__MapTypeCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:15905:1: ( rule__MapTypeCS__Group_1__0 )?
+            // InternalOCLinEcore.g:15917:1: ( rule__MapTypeCS__Group_1__0 )?
             int alt179=2;
             int LA179_0 = input.LA(1);
 
@@ -48488,7 +48556,7 @@
             }
             switch (alt179) {
                 case 1 :
-                    // InternalOCLinEcore.g:15905:2: rule__MapTypeCS__Group_1__0
+                    // InternalOCLinEcore.g:15917:2: rule__MapTypeCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__MapTypeCS__Group_1__0();
@@ -48526,14 +48594,14 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__0"
-    // InternalOCLinEcore.g:15919:1: rule__MapTypeCS__Group_1__0 : rule__MapTypeCS__Group_1__0__Impl rule__MapTypeCS__Group_1__1 ;
+    // InternalOCLinEcore.g:15931:1: rule__MapTypeCS__Group_1__0 : rule__MapTypeCS__Group_1__0__Impl rule__MapTypeCS__Group_1__1 ;
     public final void rule__MapTypeCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15923:1: ( rule__MapTypeCS__Group_1__0__Impl rule__MapTypeCS__Group_1__1 )
-            // InternalOCLinEcore.g:15924:2: rule__MapTypeCS__Group_1__0__Impl rule__MapTypeCS__Group_1__1
+            // InternalOCLinEcore.g:15935:1: ( rule__MapTypeCS__Group_1__0__Impl rule__MapTypeCS__Group_1__1 )
+            // InternalOCLinEcore.g:15936:2: rule__MapTypeCS__Group_1__0__Impl rule__MapTypeCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__MapTypeCS__Group_1__0__Impl();
@@ -48564,17 +48632,17 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:15931:1: rule__MapTypeCS__Group_1__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:15943:1: rule__MapTypeCS__Group_1__0__Impl : ( '(' ) ;
     public final void rule__MapTypeCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15935:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:15936:1: ( '(' )
+            // InternalOCLinEcore.g:15947:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:15948:1: ( '(' )
             {
-            // InternalOCLinEcore.g:15936:1: ( '(' )
-            // InternalOCLinEcore.g:15937:1: '('
+            // InternalOCLinEcore.g:15948:1: ( '(' )
+            // InternalOCLinEcore.g:15949:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getLeftParenthesisKeyword_1_0()); 
@@ -48605,14 +48673,14 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__1"
-    // InternalOCLinEcore.g:15950:1: rule__MapTypeCS__Group_1__1 : rule__MapTypeCS__Group_1__1__Impl rule__MapTypeCS__Group_1__2 ;
+    // InternalOCLinEcore.g:15962:1: rule__MapTypeCS__Group_1__1 : rule__MapTypeCS__Group_1__1__Impl rule__MapTypeCS__Group_1__2 ;
     public final void rule__MapTypeCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15954:1: ( rule__MapTypeCS__Group_1__1__Impl rule__MapTypeCS__Group_1__2 )
-            // InternalOCLinEcore.g:15955:2: rule__MapTypeCS__Group_1__1__Impl rule__MapTypeCS__Group_1__2
+            // InternalOCLinEcore.g:15966:1: ( rule__MapTypeCS__Group_1__1__Impl rule__MapTypeCS__Group_1__2 )
+            // InternalOCLinEcore.g:15967:2: rule__MapTypeCS__Group_1__1__Impl rule__MapTypeCS__Group_1__2
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__MapTypeCS__Group_1__1__Impl();
@@ -48643,23 +48711,23 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:15962:1: rule__MapTypeCS__Group_1__1__Impl : ( ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:15974:1: rule__MapTypeCS__Group_1__1__Impl : ( ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 ) ) ;
     public final void rule__MapTypeCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15966:1: ( ( ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:15967:1: ( ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15978:1: ( ( ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:15979:1: ( ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:15967:1: ( ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 ) )
-            // InternalOCLinEcore.g:15968:1: ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:15979:1: ( ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:15980:1: ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getOwnedKeyTypeAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:15969:1: ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 )
-            // InternalOCLinEcore.g:15969:2: rule__MapTypeCS__OwnedKeyTypeAssignment_1_1
+            // InternalOCLinEcore.g:15981:1: ( rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:15981:2: rule__MapTypeCS__OwnedKeyTypeAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapTypeCS__OwnedKeyTypeAssignment_1_1();
@@ -48694,14 +48762,14 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__2"
-    // InternalOCLinEcore.g:15979:1: rule__MapTypeCS__Group_1__2 : rule__MapTypeCS__Group_1__2__Impl rule__MapTypeCS__Group_1__3 ;
+    // InternalOCLinEcore.g:15991:1: rule__MapTypeCS__Group_1__2 : rule__MapTypeCS__Group_1__2__Impl rule__MapTypeCS__Group_1__3 ;
     public final void rule__MapTypeCS__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15983:1: ( rule__MapTypeCS__Group_1__2__Impl rule__MapTypeCS__Group_1__3 )
-            // InternalOCLinEcore.g:15984:2: rule__MapTypeCS__Group_1__2__Impl rule__MapTypeCS__Group_1__3
+            // InternalOCLinEcore.g:15995:1: ( rule__MapTypeCS__Group_1__2__Impl rule__MapTypeCS__Group_1__3 )
+            // InternalOCLinEcore.g:15996:2: rule__MapTypeCS__Group_1__2__Impl rule__MapTypeCS__Group_1__3
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__MapTypeCS__Group_1__2__Impl();
@@ -48732,17 +48800,17 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__2__Impl"
-    // InternalOCLinEcore.g:15991:1: rule__MapTypeCS__Group_1__2__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:16003:1: rule__MapTypeCS__Group_1__2__Impl : ( ',' ) ;
     public final void rule__MapTypeCS__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:15995:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:15996:1: ( ',' )
+            // InternalOCLinEcore.g:16007:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:16008:1: ( ',' )
             {
-            // InternalOCLinEcore.g:15996:1: ( ',' )
-            // InternalOCLinEcore.g:15997:1: ','
+            // InternalOCLinEcore.g:16008:1: ( ',' )
+            // InternalOCLinEcore.g:16009:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getCommaKeyword_1_2()); 
@@ -48773,14 +48841,14 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__3"
-    // InternalOCLinEcore.g:16010:1: rule__MapTypeCS__Group_1__3 : rule__MapTypeCS__Group_1__3__Impl rule__MapTypeCS__Group_1__4 ;
+    // InternalOCLinEcore.g:16022:1: rule__MapTypeCS__Group_1__3 : rule__MapTypeCS__Group_1__3__Impl rule__MapTypeCS__Group_1__4 ;
     public final void rule__MapTypeCS__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16014:1: ( rule__MapTypeCS__Group_1__3__Impl rule__MapTypeCS__Group_1__4 )
-            // InternalOCLinEcore.g:16015:2: rule__MapTypeCS__Group_1__3__Impl rule__MapTypeCS__Group_1__4
+            // InternalOCLinEcore.g:16026:1: ( rule__MapTypeCS__Group_1__3__Impl rule__MapTypeCS__Group_1__4 )
+            // InternalOCLinEcore.g:16027:2: rule__MapTypeCS__Group_1__3__Impl rule__MapTypeCS__Group_1__4
             {
             pushFollow(FollowSets000.FOLLOW_13);
             rule__MapTypeCS__Group_1__3__Impl();
@@ -48811,23 +48879,23 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__3__Impl"
-    // InternalOCLinEcore.g:16022:1: rule__MapTypeCS__Group_1__3__Impl : ( ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 ) ) ;
+    // InternalOCLinEcore.g:16034:1: rule__MapTypeCS__Group_1__3__Impl : ( ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 ) ) ;
     public final void rule__MapTypeCS__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16026:1: ( ( ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 ) ) )
-            // InternalOCLinEcore.g:16027:1: ( ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 ) )
+            // InternalOCLinEcore.g:16038:1: ( ( ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 ) ) )
+            // InternalOCLinEcore.g:16039:1: ( ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 ) )
             {
-            // InternalOCLinEcore.g:16027:1: ( ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 ) )
-            // InternalOCLinEcore.g:16028:1: ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 )
+            // InternalOCLinEcore.g:16039:1: ( ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 ) )
+            // InternalOCLinEcore.g:16040:1: ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getOwnedValueTypeAssignment_1_3()); 
             }
-            // InternalOCLinEcore.g:16029:1: ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 )
-            // InternalOCLinEcore.g:16029:2: rule__MapTypeCS__OwnedValueTypeAssignment_1_3
+            // InternalOCLinEcore.g:16041:1: ( rule__MapTypeCS__OwnedValueTypeAssignment_1_3 )
+            // InternalOCLinEcore.g:16041:2: rule__MapTypeCS__OwnedValueTypeAssignment_1_3
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapTypeCS__OwnedValueTypeAssignment_1_3();
@@ -48862,14 +48930,14 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__4"
-    // InternalOCLinEcore.g:16039:1: rule__MapTypeCS__Group_1__4 : rule__MapTypeCS__Group_1__4__Impl ;
+    // InternalOCLinEcore.g:16051:1: rule__MapTypeCS__Group_1__4 : rule__MapTypeCS__Group_1__4__Impl ;
     public final void rule__MapTypeCS__Group_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16043:1: ( rule__MapTypeCS__Group_1__4__Impl )
-            // InternalOCLinEcore.g:16044:2: rule__MapTypeCS__Group_1__4__Impl
+            // InternalOCLinEcore.g:16055:1: ( rule__MapTypeCS__Group_1__4__Impl )
+            // InternalOCLinEcore.g:16056:2: rule__MapTypeCS__Group_1__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapTypeCS__Group_1__4__Impl();
@@ -48895,17 +48963,17 @@
 
 
     // $ANTLR start "rule__MapTypeCS__Group_1__4__Impl"
-    // InternalOCLinEcore.g:16050:1: rule__MapTypeCS__Group_1__4__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:16062:1: rule__MapTypeCS__Group_1__4__Impl : ( ')' ) ;
     public final void rule__MapTypeCS__Group_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16054:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:16055:1: ( ')' )
+            // InternalOCLinEcore.g:16066:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:16067:1: ( ')' )
             {
-            // InternalOCLinEcore.g:16055:1: ( ')' )
-            // InternalOCLinEcore.g:16056:1: ')'
+            // InternalOCLinEcore.g:16067:1: ( ')' )
+            // InternalOCLinEcore.g:16068:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getRightParenthesisKeyword_1_4()); 
@@ -48936,14 +49004,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group__0"
-    // InternalOCLinEcore.g:16079:1: rule__TupleTypeCS__Group__0 : rule__TupleTypeCS__Group__0__Impl rule__TupleTypeCS__Group__1 ;
+    // InternalOCLinEcore.g:16091:1: rule__TupleTypeCS__Group__0 : rule__TupleTypeCS__Group__0__Impl rule__TupleTypeCS__Group__1 ;
     public final void rule__TupleTypeCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16083:1: ( rule__TupleTypeCS__Group__0__Impl rule__TupleTypeCS__Group__1 )
-            // InternalOCLinEcore.g:16084:2: rule__TupleTypeCS__Group__0__Impl rule__TupleTypeCS__Group__1
+            // InternalOCLinEcore.g:16095:1: ( rule__TupleTypeCS__Group__0__Impl rule__TupleTypeCS__Group__1 )
+            // InternalOCLinEcore.g:16096:2: rule__TupleTypeCS__Group__0__Impl rule__TupleTypeCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_11);
             rule__TupleTypeCS__Group__0__Impl();
@@ -48974,23 +49042,23 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group__0__Impl"
-    // InternalOCLinEcore.g:16091:1: rule__TupleTypeCS__Group__0__Impl : ( ( rule__TupleTypeCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:16103:1: rule__TupleTypeCS__Group__0__Impl : ( ( rule__TupleTypeCS__NameAssignment_0 ) ) ;
     public final void rule__TupleTypeCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16095:1: ( ( ( rule__TupleTypeCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:16096:1: ( ( rule__TupleTypeCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:16107:1: ( ( ( rule__TupleTypeCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:16108:1: ( ( rule__TupleTypeCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:16096:1: ( ( rule__TupleTypeCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:16097:1: ( rule__TupleTypeCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:16108:1: ( ( rule__TupleTypeCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:16109:1: ( rule__TupleTypeCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:16098:1: ( rule__TupleTypeCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:16098:2: rule__TupleTypeCS__NameAssignment_0
+            // InternalOCLinEcore.g:16110:1: ( rule__TupleTypeCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:16110:2: rule__TupleTypeCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleTypeCS__NameAssignment_0();
@@ -49025,14 +49093,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group__1"
-    // InternalOCLinEcore.g:16108:1: rule__TupleTypeCS__Group__1 : rule__TupleTypeCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:16120:1: rule__TupleTypeCS__Group__1 : rule__TupleTypeCS__Group__1__Impl ;
     public final void rule__TupleTypeCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16112:1: ( rule__TupleTypeCS__Group__1__Impl )
-            // InternalOCLinEcore.g:16113:2: rule__TupleTypeCS__Group__1__Impl
+            // InternalOCLinEcore.g:16124:1: ( rule__TupleTypeCS__Group__1__Impl )
+            // InternalOCLinEcore.g:16125:2: rule__TupleTypeCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleTypeCS__Group__1__Impl();
@@ -49058,22 +49126,22 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group__1__Impl"
-    // InternalOCLinEcore.g:16119:1: rule__TupleTypeCS__Group__1__Impl : ( ( rule__TupleTypeCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:16131:1: rule__TupleTypeCS__Group__1__Impl : ( ( rule__TupleTypeCS__Group_1__0 )? ) ;
     public final void rule__TupleTypeCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16123:1: ( ( ( rule__TupleTypeCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:16124:1: ( ( rule__TupleTypeCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:16135:1: ( ( ( rule__TupleTypeCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:16136:1: ( ( rule__TupleTypeCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:16124:1: ( ( rule__TupleTypeCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:16125:1: ( rule__TupleTypeCS__Group_1__0 )?
+            // InternalOCLinEcore.g:16136:1: ( ( rule__TupleTypeCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:16137:1: ( rule__TupleTypeCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:16126:1: ( rule__TupleTypeCS__Group_1__0 )?
+            // InternalOCLinEcore.g:16138:1: ( rule__TupleTypeCS__Group_1__0 )?
             int alt180=2;
             int LA180_0 = input.LA(1);
 
@@ -49082,7 +49150,7 @@
             }
             switch (alt180) {
                 case 1 :
-                    // InternalOCLinEcore.g:16126:2: rule__TupleTypeCS__Group_1__0
+                    // InternalOCLinEcore.g:16138:2: rule__TupleTypeCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TupleTypeCS__Group_1__0();
@@ -49120,14 +49188,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1__0"
-    // InternalOCLinEcore.g:16140:1: rule__TupleTypeCS__Group_1__0 : rule__TupleTypeCS__Group_1__0__Impl rule__TupleTypeCS__Group_1__1 ;
+    // InternalOCLinEcore.g:16152:1: rule__TupleTypeCS__Group_1__0 : rule__TupleTypeCS__Group_1__0__Impl rule__TupleTypeCS__Group_1__1 ;
     public final void rule__TupleTypeCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16144:1: ( rule__TupleTypeCS__Group_1__0__Impl rule__TupleTypeCS__Group_1__1 )
-            // InternalOCLinEcore.g:16145:2: rule__TupleTypeCS__Group_1__0__Impl rule__TupleTypeCS__Group_1__1
+            // InternalOCLinEcore.g:16156:1: ( rule__TupleTypeCS__Group_1__0__Impl rule__TupleTypeCS__Group_1__1 )
+            // InternalOCLinEcore.g:16157:2: rule__TupleTypeCS__Group_1__0__Impl rule__TupleTypeCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_56);
             rule__TupleTypeCS__Group_1__0__Impl();
@@ -49158,17 +49226,17 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:16152:1: rule__TupleTypeCS__Group_1__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:16164:1: rule__TupleTypeCS__Group_1__0__Impl : ( '(' ) ;
     public final void rule__TupleTypeCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16156:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:16157:1: ( '(' )
+            // InternalOCLinEcore.g:16168:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:16169:1: ( '(' )
             {
-            // InternalOCLinEcore.g:16157:1: ( '(' )
-            // InternalOCLinEcore.g:16158:1: '('
+            // InternalOCLinEcore.g:16169:1: ( '(' )
+            // InternalOCLinEcore.g:16170:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getLeftParenthesisKeyword_1_0()); 
@@ -49199,14 +49267,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1__1"
-    // InternalOCLinEcore.g:16171:1: rule__TupleTypeCS__Group_1__1 : rule__TupleTypeCS__Group_1__1__Impl rule__TupleTypeCS__Group_1__2 ;
+    // InternalOCLinEcore.g:16183:1: rule__TupleTypeCS__Group_1__1 : rule__TupleTypeCS__Group_1__1__Impl rule__TupleTypeCS__Group_1__2 ;
     public final void rule__TupleTypeCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16175:1: ( rule__TupleTypeCS__Group_1__1__Impl rule__TupleTypeCS__Group_1__2 )
-            // InternalOCLinEcore.g:16176:2: rule__TupleTypeCS__Group_1__1__Impl rule__TupleTypeCS__Group_1__2
+            // InternalOCLinEcore.g:16187:1: ( rule__TupleTypeCS__Group_1__1__Impl rule__TupleTypeCS__Group_1__2 )
+            // InternalOCLinEcore.g:16188:2: rule__TupleTypeCS__Group_1__1__Impl rule__TupleTypeCS__Group_1__2
             {
             pushFollow(FollowSets000.FOLLOW_56);
             rule__TupleTypeCS__Group_1__1__Impl();
@@ -49237,22 +49305,22 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:16183:1: rule__TupleTypeCS__Group_1__1__Impl : ( ( rule__TupleTypeCS__Group_1_1__0 )? ) ;
+    // InternalOCLinEcore.g:16195:1: rule__TupleTypeCS__Group_1__1__Impl : ( ( rule__TupleTypeCS__Group_1_1__0 )? ) ;
     public final void rule__TupleTypeCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16187:1: ( ( ( rule__TupleTypeCS__Group_1_1__0 )? ) )
-            // InternalOCLinEcore.g:16188:1: ( ( rule__TupleTypeCS__Group_1_1__0 )? )
+            // InternalOCLinEcore.g:16199:1: ( ( ( rule__TupleTypeCS__Group_1_1__0 )? ) )
+            // InternalOCLinEcore.g:16200:1: ( ( rule__TupleTypeCS__Group_1_1__0 )? )
             {
-            // InternalOCLinEcore.g:16188:1: ( ( rule__TupleTypeCS__Group_1_1__0 )? )
-            // InternalOCLinEcore.g:16189:1: ( rule__TupleTypeCS__Group_1_1__0 )?
+            // InternalOCLinEcore.g:16200:1: ( ( rule__TupleTypeCS__Group_1_1__0 )? )
+            // InternalOCLinEcore.g:16201:1: ( rule__TupleTypeCS__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getGroup_1_1()); 
             }
-            // InternalOCLinEcore.g:16190:1: ( rule__TupleTypeCS__Group_1_1__0 )?
+            // InternalOCLinEcore.g:16202:1: ( rule__TupleTypeCS__Group_1_1__0 )?
             int alt181=2;
             int LA181_0 = input.LA(1);
 
@@ -49261,7 +49329,7 @@
             }
             switch (alt181) {
                 case 1 :
-                    // InternalOCLinEcore.g:16190:2: rule__TupleTypeCS__Group_1_1__0
+                    // InternalOCLinEcore.g:16202:2: rule__TupleTypeCS__Group_1_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TupleTypeCS__Group_1_1__0();
@@ -49299,14 +49367,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1__2"
-    // InternalOCLinEcore.g:16200:1: rule__TupleTypeCS__Group_1__2 : rule__TupleTypeCS__Group_1__2__Impl ;
+    // InternalOCLinEcore.g:16212:1: rule__TupleTypeCS__Group_1__2 : rule__TupleTypeCS__Group_1__2__Impl ;
     public final void rule__TupleTypeCS__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16204:1: ( rule__TupleTypeCS__Group_1__2__Impl )
-            // InternalOCLinEcore.g:16205:2: rule__TupleTypeCS__Group_1__2__Impl
+            // InternalOCLinEcore.g:16216:1: ( rule__TupleTypeCS__Group_1__2__Impl )
+            // InternalOCLinEcore.g:16217:2: rule__TupleTypeCS__Group_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleTypeCS__Group_1__2__Impl();
@@ -49332,17 +49400,17 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1__2__Impl"
-    // InternalOCLinEcore.g:16211:1: rule__TupleTypeCS__Group_1__2__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:16223:1: rule__TupleTypeCS__Group_1__2__Impl : ( ')' ) ;
     public final void rule__TupleTypeCS__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16215:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:16216:1: ( ')' )
+            // InternalOCLinEcore.g:16227:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:16228:1: ( ')' )
             {
-            // InternalOCLinEcore.g:16216:1: ( ')' )
-            // InternalOCLinEcore.g:16217:1: ')'
+            // InternalOCLinEcore.g:16228:1: ( ')' )
+            // InternalOCLinEcore.g:16229:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getRightParenthesisKeyword_1_2()); 
@@ -49373,14 +49441,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1_1__0"
-    // InternalOCLinEcore.g:16236:1: rule__TupleTypeCS__Group_1_1__0 : rule__TupleTypeCS__Group_1_1__0__Impl rule__TupleTypeCS__Group_1_1__1 ;
+    // InternalOCLinEcore.g:16248:1: rule__TupleTypeCS__Group_1_1__0 : rule__TupleTypeCS__Group_1_1__0__Impl rule__TupleTypeCS__Group_1_1__1 ;
     public final void rule__TupleTypeCS__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16240:1: ( rule__TupleTypeCS__Group_1_1__0__Impl rule__TupleTypeCS__Group_1_1__1 )
-            // InternalOCLinEcore.g:16241:2: rule__TupleTypeCS__Group_1_1__0__Impl rule__TupleTypeCS__Group_1_1__1
+            // InternalOCLinEcore.g:16252:1: ( rule__TupleTypeCS__Group_1_1__0__Impl rule__TupleTypeCS__Group_1_1__1 )
+            // InternalOCLinEcore.g:16253:2: rule__TupleTypeCS__Group_1_1__0__Impl rule__TupleTypeCS__Group_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__TupleTypeCS__Group_1_1__0__Impl();
@@ -49411,23 +49479,23 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1_1__0__Impl"
-    // InternalOCLinEcore.g:16248:1: rule__TupleTypeCS__Group_1_1__0__Impl : ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 ) ) ;
+    // InternalOCLinEcore.g:16260:1: rule__TupleTypeCS__Group_1_1__0__Impl : ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 ) ) ;
     public final void rule__TupleTypeCS__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16252:1: ( ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 ) ) )
-            // InternalOCLinEcore.g:16253:1: ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 ) )
+            // InternalOCLinEcore.g:16264:1: ( ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 ) ) )
+            // InternalOCLinEcore.g:16265:1: ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 ) )
             {
-            // InternalOCLinEcore.g:16253:1: ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 ) )
-            // InternalOCLinEcore.g:16254:1: ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 )
+            // InternalOCLinEcore.g:16265:1: ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 ) )
+            // InternalOCLinEcore.g:16266:1: ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getOwnedPartsAssignment_1_1_0()); 
             }
-            // InternalOCLinEcore.g:16255:1: ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 )
-            // InternalOCLinEcore.g:16255:2: rule__TupleTypeCS__OwnedPartsAssignment_1_1_0
+            // InternalOCLinEcore.g:16267:1: ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 )
+            // InternalOCLinEcore.g:16267:2: rule__TupleTypeCS__OwnedPartsAssignment_1_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleTypeCS__OwnedPartsAssignment_1_1_0();
@@ -49462,14 +49530,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1_1__1"
-    // InternalOCLinEcore.g:16265:1: rule__TupleTypeCS__Group_1_1__1 : rule__TupleTypeCS__Group_1_1__1__Impl ;
+    // InternalOCLinEcore.g:16277:1: rule__TupleTypeCS__Group_1_1__1 : rule__TupleTypeCS__Group_1_1__1__Impl ;
     public final void rule__TupleTypeCS__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16269:1: ( rule__TupleTypeCS__Group_1_1__1__Impl )
-            // InternalOCLinEcore.g:16270:2: rule__TupleTypeCS__Group_1_1__1__Impl
+            // InternalOCLinEcore.g:16281:1: ( rule__TupleTypeCS__Group_1_1__1__Impl )
+            // InternalOCLinEcore.g:16282:2: rule__TupleTypeCS__Group_1_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleTypeCS__Group_1_1__1__Impl();
@@ -49495,22 +49563,22 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1_1__1__Impl"
-    // InternalOCLinEcore.g:16276:1: rule__TupleTypeCS__Group_1_1__1__Impl : ( ( rule__TupleTypeCS__Group_1_1_1__0 )* ) ;
+    // InternalOCLinEcore.g:16288:1: rule__TupleTypeCS__Group_1_1__1__Impl : ( ( rule__TupleTypeCS__Group_1_1_1__0 )* ) ;
     public final void rule__TupleTypeCS__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16280:1: ( ( ( rule__TupleTypeCS__Group_1_1_1__0 )* ) )
-            // InternalOCLinEcore.g:16281:1: ( ( rule__TupleTypeCS__Group_1_1_1__0 )* )
+            // InternalOCLinEcore.g:16292:1: ( ( ( rule__TupleTypeCS__Group_1_1_1__0 )* ) )
+            // InternalOCLinEcore.g:16293:1: ( ( rule__TupleTypeCS__Group_1_1_1__0 )* )
             {
-            // InternalOCLinEcore.g:16281:1: ( ( rule__TupleTypeCS__Group_1_1_1__0 )* )
-            // InternalOCLinEcore.g:16282:1: ( rule__TupleTypeCS__Group_1_1_1__0 )*
+            // InternalOCLinEcore.g:16293:1: ( ( rule__TupleTypeCS__Group_1_1_1__0 )* )
+            // InternalOCLinEcore.g:16294:1: ( rule__TupleTypeCS__Group_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getGroup_1_1_1()); 
             }
-            // InternalOCLinEcore.g:16283:1: ( rule__TupleTypeCS__Group_1_1_1__0 )*
+            // InternalOCLinEcore.g:16295:1: ( rule__TupleTypeCS__Group_1_1_1__0 )*
             loop182:
             do {
                 int alt182=2;
@@ -49523,7 +49591,7 @@
 
                 switch (alt182) {
             	case 1 :
-            	    // InternalOCLinEcore.g:16283:2: rule__TupleTypeCS__Group_1_1_1__0
+            	    // InternalOCLinEcore.g:16295:2: rule__TupleTypeCS__Group_1_1_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__TupleTypeCS__Group_1_1_1__0();
@@ -49564,14 +49632,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1_1_1__0"
-    // InternalOCLinEcore.g:16297:1: rule__TupleTypeCS__Group_1_1_1__0 : rule__TupleTypeCS__Group_1_1_1__0__Impl rule__TupleTypeCS__Group_1_1_1__1 ;
+    // InternalOCLinEcore.g:16309:1: rule__TupleTypeCS__Group_1_1_1__0 : rule__TupleTypeCS__Group_1_1_1__0__Impl rule__TupleTypeCS__Group_1_1_1__1 ;
     public final void rule__TupleTypeCS__Group_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16301:1: ( rule__TupleTypeCS__Group_1_1_1__0__Impl rule__TupleTypeCS__Group_1_1_1__1 )
-            // InternalOCLinEcore.g:16302:2: rule__TupleTypeCS__Group_1_1_1__0__Impl rule__TupleTypeCS__Group_1_1_1__1
+            // InternalOCLinEcore.g:16313:1: ( rule__TupleTypeCS__Group_1_1_1__0__Impl rule__TupleTypeCS__Group_1_1_1__1 )
+            // InternalOCLinEcore.g:16314:2: rule__TupleTypeCS__Group_1_1_1__0__Impl rule__TupleTypeCS__Group_1_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__TupleTypeCS__Group_1_1_1__0__Impl();
@@ -49602,17 +49670,17 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1_1_1__0__Impl"
-    // InternalOCLinEcore.g:16309:1: rule__TupleTypeCS__Group_1_1_1__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:16321:1: rule__TupleTypeCS__Group_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__TupleTypeCS__Group_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16313:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:16314:1: ( ',' )
+            // InternalOCLinEcore.g:16325:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:16326:1: ( ',' )
             {
-            // InternalOCLinEcore.g:16314:1: ( ',' )
-            // InternalOCLinEcore.g:16315:1: ','
+            // InternalOCLinEcore.g:16326:1: ( ',' )
+            // InternalOCLinEcore.g:16327:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getCommaKeyword_1_1_1_0()); 
@@ -49643,14 +49711,14 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1_1_1__1"
-    // InternalOCLinEcore.g:16328:1: rule__TupleTypeCS__Group_1_1_1__1 : rule__TupleTypeCS__Group_1_1_1__1__Impl ;
+    // InternalOCLinEcore.g:16340:1: rule__TupleTypeCS__Group_1_1_1__1 : rule__TupleTypeCS__Group_1_1_1__1__Impl ;
     public final void rule__TupleTypeCS__Group_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16332:1: ( rule__TupleTypeCS__Group_1_1_1__1__Impl )
-            // InternalOCLinEcore.g:16333:2: rule__TupleTypeCS__Group_1_1_1__1__Impl
+            // InternalOCLinEcore.g:16344:1: ( rule__TupleTypeCS__Group_1_1_1__1__Impl )
+            // InternalOCLinEcore.g:16345:2: rule__TupleTypeCS__Group_1_1_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleTypeCS__Group_1_1_1__1__Impl();
@@ -49676,23 +49744,23 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__Group_1_1_1__1__Impl"
-    // InternalOCLinEcore.g:16339:1: rule__TupleTypeCS__Group_1_1_1__1__Impl : ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 ) ) ;
+    // InternalOCLinEcore.g:16351:1: rule__TupleTypeCS__Group_1_1_1__1__Impl : ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 ) ) ;
     public final void rule__TupleTypeCS__Group_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16343:1: ( ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 ) ) )
-            // InternalOCLinEcore.g:16344:1: ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 ) )
+            // InternalOCLinEcore.g:16355:1: ( ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 ) ) )
+            // InternalOCLinEcore.g:16356:1: ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 ) )
             {
-            // InternalOCLinEcore.g:16344:1: ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 ) )
-            // InternalOCLinEcore.g:16345:1: ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 )
+            // InternalOCLinEcore.g:16356:1: ( ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 ) )
+            // InternalOCLinEcore.g:16357:1: ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getOwnedPartsAssignment_1_1_1_1()); 
             }
-            // InternalOCLinEcore.g:16346:1: ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 )
-            // InternalOCLinEcore.g:16346:2: rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1
+            // InternalOCLinEcore.g:16358:1: ( rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 )
+            // InternalOCLinEcore.g:16358:2: rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1();
@@ -49727,14 +49795,14 @@
 
 
     // $ANTLR start "rule__TuplePartCS__Group__0"
-    // InternalOCLinEcore.g:16360:1: rule__TuplePartCS__Group__0 : rule__TuplePartCS__Group__0__Impl rule__TuplePartCS__Group__1 ;
+    // InternalOCLinEcore.g:16372:1: rule__TuplePartCS__Group__0 : rule__TuplePartCS__Group__0__Impl rule__TuplePartCS__Group__1 ;
     public final void rule__TuplePartCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16364:1: ( rule__TuplePartCS__Group__0__Impl rule__TuplePartCS__Group__1 )
-            // InternalOCLinEcore.g:16365:2: rule__TuplePartCS__Group__0__Impl rule__TuplePartCS__Group__1
+            // InternalOCLinEcore.g:16376:1: ( rule__TuplePartCS__Group__0__Impl rule__TuplePartCS__Group__1 )
+            // InternalOCLinEcore.g:16377:2: rule__TuplePartCS__Group__0__Impl rule__TuplePartCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_52);
             rule__TuplePartCS__Group__0__Impl();
@@ -49765,23 +49833,23 @@
 
 
     // $ANTLR start "rule__TuplePartCS__Group__0__Impl"
-    // InternalOCLinEcore.g:16372:1: rule__TuplePartCS__Group__0__Impl : ( ( rule__TuplePartCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:16384:1: rule__TuplePartCS__Group__0__Impl : ( ( rule__TuplePartCS__NameAssignment_0 ) ) ;
     public final void rule__TuplePartCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16376:1: ( ( ( rule__TuplePartCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:16377:1: ( ( rule__TuplePartCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:16388:1: ( ( ( rule__TuplePartCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:16389:1: ( ( rule__TuplePartCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:16377:1: ( ( rule__TuplePartCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:16378:1: ( rule__TuplePartCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:16389:1: ( ( rule__TuplePartCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:16390:1: ( rule__TuplePartCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTuplePartCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:16379:1: ( rule__TuplePartCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:16379:2: rule__TuplePartCS__NameAssignment_0
+            // InternalOCLinEcore.g:16391:1: ( rule__TuplePartCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:16391:2: rule__TuplePartCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TuplePartCS__NameAssignment_0();
@@ -49816,14 +49884,14 @@
 
 
     // $ANTLR start "rule__TuplePartCS__Group__1"
-    // InternalOCLinEcore.g:16389:1: rule__TuplePartCS__Group__1 : rule__TuplePartCS__Group__1__Impl rule__TuplePartCS__Group__2 ;
+    // InternalOCLinEcore.g:16401:1: rule__TuplePartCS__Group__1 : rule__TuplePartCS__Group__1__Impl rule__TuplePartCS__Group__2 ;
     public final void rule__TuplePartCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16393:1: ( rule__TuplePartCS__Group__1__Impl rule__TuplePartCS__Group__2 )
-            // InternalOCLinEcore.g:16394:2: rule__TuplePartCS__Group__1__Impl rule__TuplePartCS__Group__2
+            // InternalOCLinEcore.g:16405:1: ( rule__TuplePartCS__Group__1__Impl rule__TuplePartCS__Group__2 )
+            // InternalOCLinEcore.g:16406:2: rule__TuplePartCS__Group__1__Impl rule__TuplePartCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__TuplePartCS__Group__1__Impl();
@@ -49854,17 +49922,17 @@
 
 
     // $ANTLR start "rule__TuplePartCS__Group__1__Impl"
-    // InternalOCLinEcore.g:16401:1: rule__TuplePartCS__Group__1__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:16413:1: rule__TuplePartCS__Group__1__Impl : ( ':' ) ;
     public final void rule__TuplePartCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16405:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:16406:1: ( ':' )
+            // InternalOCLinEcore.g:16417:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:16418:1: ( ':' )
             {
-            // InternalOCLinEcore.g:16406:1: ( ':' )
-            // InternalOCLinEcore.g:16407:1: ':'
+            // InternalOCLinEcore.g:16418:1: ( ':' )
+            // InternalOCLinEcore.g:16419:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTuplePartCSAccess().getColonKeyword_1()); 
@@ -49895,14 +49963,14 @@
 
 
     // $ANTLR start "rule__TuplePartCS__Group__2"
-    // InternalOCLinEcore.g:16420:1: rule__TuplePartCS__Group__2 : rule__TuplePartCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:16432:1: rule__TuplePartCS__Group__2 : rule__TuplePartCS__Group__2__Impl ;
     public final void rule__TuplePartCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16424:1: ( rule__TuplePartCS__Group__2__Impl )
-            // InternalOCLinEcore.g:16425:2: rule__TuplePartCS__Group__2__Impl
+            // InternalOCLinEcore.g:16436:1: ( rule__TuplePartCS__Group__2__Impl )
+            // InternalOCLinEcore.g:16437:2: rule__TuplePartCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TuplePartCS__Group__2__Impl();
@@ -49928,23 +49996,23 @@
 
 
     // $ANTLR start "rule__TuplePartCS__Group__2__Impl"
-    // InternalOCLinEcore.g:16431:1: rule__TuplePartCS__Group__2__Impl : ( ( rule__TuplePartCS__OwnedTypeAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:16443:1: rule__TuplePartCS__Group__2__Impl : ( ( rule__TuplePartCS__OwnedTypeAssignment_2 ) ) ;
     public final void rule__TuplePartCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16435:1: ( ( ( rule__TuplePartCS__OwnedTypeAssignment_2 ) ) )
-            // InternalOCLinEcore.g:16436:1: ( ( rule__TuplePartCS__OwnedTypeAssignment_2 ) )
+            // InternalOCLinEcore.g:16447:1: ( ( ( rule__TuplePartCS__OwnedTypeAssignment_2 ) ) )
+            // InternalOCLinEcore.g:16448:1: ( ( rule__TuplePartCS__OwnedTypeAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:16436:1: ( ( rule__TuplePartCS__OwnedTypeAssignment_2 ) )
-            // InternalOCLinEcore.g:16437:1: ( rule__TuplePartCS__OwnedTypeAssignment_2 )
+            // InternalOCLinEcore.g:16448:1: ( ( rule__TuplePartCS__OwnedTypeAssignment_2 ) )
+            // InternalOCLinEcore.g:16449:1: ( rule__TuplePartCS__OwnedTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTuplePartCSAccess().getOwnedTypeAssignment_2()); 
             }
-            // InternalOCLinEcore.g:16438:1: ( rule__TuplePartCS__OwnedTypeAssignment_2 )
-            // InternalOCLinEcore.g:16438:2: rule__TuplePartCS__OwnedTypeAssignment_2
+            // InternalOCLinEcore.g:16450:1: ( rule__TuplePartCS__OwnedTypeAssignment_2 )
+            // InternalOCLinEcore.g:16450:2: rule__TuplePartCS__OwnedTypeAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TuplePartCS__OwnedTypeAssignment_2();
@@ -49979,14 +50047,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group__0"
-    // InternalOCLinEcore.g:16454:1: rule__CollectionLiteralExpCS__Group__0 : rule__CollectionLiteralExpCS__Group__0__Impl rule__CollectionLiteralExpCS__Group__1 ;
+    // InternalOCLinEcore.g:16466:1: rule__CollectionLiteralExpCS__Group__0 : rule__CollectionLiteralExpCS__Group__0__Impl rule__CollectionLiteralExpCS__Group__1 ;
     public final void rule__CollectionLiteralExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16458:1: ( rule__CollectionLiteralExpCS__Group__0__Impl rule__CollectionLiteralExpCS__Group__1 )
-            // InternalOCLinEcore.g:16459:2: rule__CollectionLiteralExpCS__Group__0__Impl rule__CollectionLiteralExpCS__Group__1
+            // InternalOCLinEcore.g:16470:1: ( rule__CollectionLiteralExpCS__Group__0__Impl rule__CollectionLiteralExpCS__Group__1 )
+            // InternalOCLinEcore.g:16471:2: rule__CollectionLiteralExpCS__Group__0__Impl rule__CollectionLiteralExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_89);
             rule__CollectionLiteralExpCS__Group__0__Impl();
@@ -50017,23 +50085,23 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:16466:1: rule__CollectionLiteralExpCS__Group__0__Impl : ( ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:16478:1: rule__CollectionLiteralExpCS__Group__0__Impl : ( ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 ) ) ;
     public final void rule__CollectionLiteralExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16470:1: ( ( ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 ) ) )
-            // InternalOCLinEcore.g:16471:1: ( ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 ) )
+            // InternalOCLinEcore.g:16482:1: ( ( ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 ) ) )
+            // InternalOCLinEcore.g:16483:1: ( ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:16471:1: ( ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 ) )
-            // InternalOCLinEcore.g:16472:1: ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 )
+            // InternalOCLinEcore.g:16483:1: ( ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 ) )
+            // InternalOCLinEcore.g:16484:1: ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getOwnedTypeAssignment_0()); 
             }
-            // InternalOCLinEcore.g:16473:1: ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 )
-            // InternalOCLinEcore.g:16473:2: rule__CollectionLiteralExpCS__OwnedTypeAssignment_0
+            // InternalOCLinEcore.g:16485:1: ( rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 )
+            // InternalOCLinEcore.g:16485:2: rule__CollectionLiteralExpCS__OwnedTypeAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralExpCS__OwnedTypeAssignment_0();
@@ -50068,14 +50136,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group__1"
-    // InternalOCLinEcore.g:16483:1: rule__CollectionLiteralExpCS__Group__1 : rule__CollectionLiteralExpCS__Group__1__Impl rule__CollectionLiteralExpCS__Group__2 ;
+    // InternalOCLinEcore.g:16495:1: rule__CollectionLiteralExpCS__Group__1 : rule__CollectionLiteralExpCS__Group__1__Impl rule__CollectionLiteralExpCS__Group__2 ;
     public final void rule__CollectionLiteralExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16487:1: ( rule__CollectionLiteralExpCS__Group__1__Impl rule__CollectionLiteralExpCS__Group__2 )
-            // InternalOCLinEcore.g:16488:2: rule__CollectionLiteralExpCS__Group__1__Impl rule__CollectionLiteralExpCS__Group__2
+            // InternalOCLinEcore.g:16499:1: ( rule__CollectionLiteralExpCS__Group__1__Impl rule__CollectionLiteralExpCS__Group__2 )
+            // InternalOCLinEcore.g:16500:2: rule__CollectionLiteralExpCS__Group__1__Impl rule__CollectionLiteralExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_90);
             rule__CollectionLiteralExpCS__Group__1__Impl();
@@ -50106,17 +50174,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:16495:1: rule__CollectionLiteralExpCS__Group__1__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:16507:1: rule__CollectionLiteralExpCS__Group__1__Impl : ( '{' ) ;
     public final void rule__CollectionLiteralExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16499:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:16500:1: ( '{' )
+            // InternalOCLinEcore.g:16511:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:16512:1: ( '{' )
             {
-            // InternalOCLinEcore.g:16500:1: ( '{' )
-            // InternalOCLinEcore.g:16501:1: '{'
+            // InternalOCLinEcore.g:16512:1: ( '{' )
+            // InternalOCLinEcore.g:16513:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getLeftCurlyBracketKeyword_1()); 
@@ -50147,14 +50215,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group__2"
-    // InternalOCLinEcore.g:16514:1: rule__CollectionLiteralExpCS__Group__2 : rule__CollectionLiteralExpCS__Group__2__Impl rule__CollectionLiteralExpCS__Group__3 ;
+    // InternalOCLinEcore.g:16526:1: rule__CollectionLiteralExpCS__Group__2 : rule__CollectionLiteralExpCS__Group__2__Impl rule__CollectionLiteralExpCS__Group__3 ;
     public final void rule__CollectionLiteralExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16518:1: ( rule__CollectionLiteralExpCS__Group__2__Impl rule__CollectionLiteralExpCS__Group__3 )
-            // InternalOCLinEcore.g:16519:2: rule__CollectionLiteralExpCS__Group__2__Impl rule__CollectionLiteralExpCS__Group__3
+            // InternalOCLinEcore.g:16530:1: ( rule__CollectionLiteralExpCS__Group__2__Impl rule__CollectionLiteralExpCS__Group__3 )
+            // InternalOCLinEcore.g:16531:2: rule__CollectionLiteralExpCS__Group__2__Impl rule__CollectionLiteralExpCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_90);
             rule__CollectionLiteralExpCS__Group__2__Impl();
@@ -50185,22 +50253,22 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:16526:1: rule__CollectionLiteralExpCS__Group__2__Impl : ( ( rule__CollectionLiteralExpCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:16538:1: rule__CollectionLiteralExpCS__Group__2__Impl : ( ( rule__CollectionLiteralExpCS__Group_2__0 )? ) ;
     public final void rule__CollectionLiteralExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16530:1: ( ( ( rule__CollectionLiteralExpCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:16531:1: ( ( rule__CollectionLiteralExpCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:16542:1: ( ( ( rule__CollectionLiteralExpCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:16543:1: ( ( rule__CollectionLiteralExpCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:16531:1: ( ( rule__CollectionLiteralExpCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:16532:1: ( rule__CollectionLiteralExpCS__Group_2__0 )?
+            // InternalOCLinEcore.g:16543:1: ( ( rule__CollectionLiteralExpCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:16544:1: ( rule__CollectionLiteralExpCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:16533:1: ( rule__CollectionLiteralExpCS__Group_2__0 )?
+            // InternalOCLinEcore.g:16545:1: ( rule__CollectionLiteralExpCS__Group_2__0 )?
             int alt183=2;
             int LA183_0 = input.LA(1);
 
@@ -50209,7 +50277,7 @@
             }
             switch (alt183) {
                 case 1 :
-                    // InternalOCLinEcore.g:16533:2: rule__CollectionLiteralExpCS__Group_2__0
+                    // InternalOCLinEcore.g:16545:2: rule__CollectionLiteralExpCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__CollectionLiteralExpCS__Group_2__0();
@@ -50247,14 +50315,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group__3"
-    // InternalOCLinEcore.g:16543:1: rule__CollectionLiteralExpCS__Group__3 : rule__CollectionLiteralExpCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:16555:1: rule__CollectionLiteralExpCS__Group__3 : rule__CollectionLiteralExpCS__Group__3__Impl ;
     public final void rule__CollectionLiteralExpCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16547:1: ( rule__CollectionLiteralExpCS__Group__3__Impl )
-            // InternalOCLinEcore.g:16548:2: rule__CollectionLiteralExpCS__Group__3__Impl
+            // InternalOCLinEcore.g:16559:1: ( rule__CollectionLiteralExpCS__Group__3__Impl )
+            // InternalOCLinEcore.g:16560:2: rule__CollectionLiteralExpCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralExpCS__Group__3__Impl();
@@ -50280,17 +50348,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group__3__Impl"
-    // InternalOCLinEcore.g:16554:1: rule__CollectionLiteralExpCS__Group__3__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:16566:1: rule__CollectionLiteralExpCS__Group__3__Impl : ( '}' ) ;
     public final void rule__CollectionLiteralExpCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16558:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:16559:1: ( '}' )
+            // InternalOCLinEcore.g:16570:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:16571:1: ( '}' )
             {
-            // InternalOCLinEcore.g:16559:1: ( '}' )
-            // InternalOCLinEcore.g:16560:1: '}'
+            // InternalOCLinEcore.g:16571:1: ( '}' )
+            // InternalOCLinEcore.g:16572:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getRightCurlyBracketKeyword_3()); 
@@ -50321,14 +50389,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group_2__0"
-    // InternalOCLinEcore.g:16581:1: rule__CollectionLiteralExpCS__Group_2__0 : rule__CollectionLiteralExpCS__Group_2__0__Impl rule__CollectionLiteralExpCS__Group_2__1 ;
+    // InternalOCLinEcore.g:16593:1: rule__CollectionLiteralExpCS__Group_2__0 : rule__CollectionLiteralExpCS__Group_2__0__Impl rule__CollectionLiteralExpCS__Group_2__1 ;
     public final void rule__CollectionLiteralExpCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16585:1: ( rule__CollectionLiteralExpCS__Group_2__0__Impl rule__CollectionLiteralExpCS__Group_2__1 )
-            // InternalOCLinEcore.g:16586:2: rule__CollectionLiteralExpCS__Group_2__0__Impl rule__CollectionLiteralExpCS__Group_2__1
+            // InternalOCLinEcore.g:16597:1: ( rule__CollectionLiteralExpCS__Group_2__0__Impl rule__CollectionLiteralExpCS__Group_2__1 )
+            // InternalOCLinEcore.g:16598:2: rule__CollectionLiteralExpCS__Group_2__0__Impl rule__CollectionLiteralExpCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__CollectionLiteralExpCS__Group_2__0__Impl();
@@ -50359,23 +50427,23 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:16593:1: rule__CollectionLiteralExpCS__Group_2__0__Impl : ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 ) ) ;
+    // InternalOCLinEcore.g:16605:1: rule__CollectionLiteralExpCS__Group_2__0__Impl : ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 ) ) ;
     public final void rule__CollectionLiteralExpCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16597:1: ( ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 ) ) )
-            // InternalOCLinEcore.g:16598:1: ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 ) )
+            // InternalOCLinEcore.g:16609:1: ( ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 ) ) )
+            // InternalOCLinEcore.g:16610:1: ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 ) )
             {
-            // InternalOCLinEcore.g:16598:1: ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 ) )
-            // InternalOCLinEcore.g:16599:1: ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 )
+            // InternalOCLinEcore.g:16610:1: ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 ) )
+            // InternalOCLinEcore.g:16611:1: ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getOwnedPartsAssignment_2_0()); 
             }
-            // InternalOCLinEcore.g:16600:1: ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 )
-            // InternalOCLinEcore.g:16600:2: rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0
+            // InternalOCLinEcore.g:16612:1: ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 )
+            // InternalOCLinEcore.g:16612:2: rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0();
@@ -50410,14 +50478,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group_2__1"
-    // InternalOCLinEcore.g:16610:1: rule__CollectionLiteralExpCS__Group_2__1 : rule__CollectionLiteralExpCS__Group_2__1__Impl ;
+    // InternalOCLinEcore.g:16622:1: rule__CollectionLiteralExpCS__Group_2__1 : rule__CollectionLiteralExpCS__Group_2__1__Impl ;
     public final void rule__CollectionLiteralExpCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16614:1: ( rule__CollectionLiteralExpCS__Group_2__1__Impl )
-            // InternalOCLinEcore.g:16615:2: rule__CollectionLiteralExpCS__Group_2__1__Impl
+            // InternalOCLinEcore.g:16626:1: ( rule__CollectionLiteralExpCS__Group_2__1__Impl )
+            // InternalOCLinEcore.g:16627:2: rule__CollectionLiteralExpCS__Group_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralExpCS__Group_2__1__Impl();
@@ -50443,22 +50511,22 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:16621:1: rule__CollectionLiteralExpCS__Group_2__1__Impl : ( ( rule__CollectionLiteralExpCS__Group_2_1__0 )* ) ;
+    // InternalOCLinEcore.g:16633:1: rule__CollectionLiteralExpCS__Group_2__1__Impl : ( ( rule__CollectionLiteralExpCS__Group_2_1__0 )* ) ;
     public final void rule__CollectionLiteralExpCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16625:1: ( ( ( rule__CollectionLiteralExpCS__Group_2_1__0 )* ) )
-            // InternalOCLinEcore.g:16626:1: ( ( rule__CollectionLiteralExpCS__Group_2_1__0 )* )
+            // InternalOCLinEcore.g:16637:1: ( ( ( rule__CollectionLiteralExpCS__Group_2_1__0 )* ) )
+            // InternalOCLinEcore.g:16638:1: ( ( rule__CollectionLiteralExpCS__Group_2_1__0 )* )
             {
-            // InternalOCLinEcore.g:16626:1: ( ( rule__CollectionLiteralExpCS__Group_2_1__0 )* )
-            // InternalOCLinEcore.g:16627:1: ( rule__CollectionLiteralExpCS__Group_2_1__0 )*
+            // InternalOCLinEcore.g:16638:1: ( ( rule__CollectionLiteralExpCS__Group_2_1__0 )* )
+            // InternalOCLinEcore.g:16639:1: ( rule__CollectionLiteralExpCS__Group_2_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getGroup_2_1()); 
             }
-            // InternalOCLinEcore.g:16628:1: ( rule__CollectionLiteralExpCS__Group_2_1__0 )*
+            // InternalOCLinEcore.g:16640:1: ( rule__CollectionLiteralExpCS__Group_2_1__0 )*
             loop184:
             do {
                 int alt184=2;
@@ -50471,7 +50539,7 @@
 
                 switch (alt184) {
             	case 1 :
-            	    // InternalOCLinEcore.g:16628:2: rule__CollectionLiteralExpCS__Group_2_1__0
+            	    // InternalOCLinEcore.g:16640:2: rule__CollectionLiteralExpCS__Group_2_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__CollectionLiteralExpCS__Group_2_1__0();
@@ -50512,14 +50580,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group_2_1__0"
-    // InternalOCLinEcore.g:16642:1: rule__CollectionLiteralExpCS__Group_2_1__0 : rule__CollectionLiteralExpCS__Group_2_1__0__Impl rule__CollectionLiteralExpCS__Group_2_1__1 ;
+    // InternalOCLinEcore.g:16654:1: rule__CollectionLiteralExpCS__Group_2_1__0 : rule__CollectionLiteralExpCS__Group_2_1__0__Impl rule__CollectionLiteralExpCS__Group_2_1__1 ;
     public final void rule__CollectionLiteralExpCS__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16646:1: ( rule__CollectionLiteralExpCS__Group_2_1__0__Impl rule__CollectionLiteralExpCS__Group_2_1__1 )
-            // InternalOCLinEcore.g:16647:2: rule__CollectionLiteralExpCS__Group_2_1__0__Impl rule__CollectionLiteralExpCS__Group_2_1__1
+            // InternalOCLinEcore.g:16658:1: ( rule__CollectionLiteralExpCS__Group_2_1__0__Impl rule__CollectionLiteralExpCS__Group_2_1__1 )
+            // InternalOCLinEcore.g:16659:2: rule__CollectionLiteralExpCS__Group_2_1__0__Impl rule__CollectionLiteralExpCS__Group_2_1__1
             {
             pushFollow(FollowSets000.FOLLOW_91);
             rule__CollectionLiteralExpCS__Group_2_1__0__Impl();
@@ -50550,17 +50618,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group_2_1__0__Impl"
-    // InternalOCLinEcore.g:16654:1: rule__CollectionLiteralExpCS__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:16666:1: rule__CollectionLiteralExpCS__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__CollectionLiteralExpCS__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16658:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:16659:1: ( ',' )
+            // InternalOCLinEcore.g:16670:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:16671:1: ( ',' )
             {
-            // InternalOCLinEcore.g:16659:1: ( ',' )
-            // InternalOCLinEcore.g:16660:1: ','
+            // InternalOCLinEcore.g:16671:1: ( ',' )
+            // InternalOCLinEcore.g:16672:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getCommaKeyword_2_1_0()); 
@@ -50591,14 +50659,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group_2_1__1"
-    // InternalOCLinEcore.g:16673:1: rule__CollectionLiteralExpCS__Group_2_1__1 : rule__CollectionLiteralExpCS__Group_2_1__1__Impl ;
+    // InternalOCLinEcore.g:16685:1: rule__CollectionLiteralExpCS__Group_2_1__1 : rule__CollectionLiteralExpCS__Group_2_1__1__Impl ;
     public final void rule__CollectionLiteralExpCS__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16677:1: ( rule__CollectionLiteralExpCS__Group_2_1__1__Impl )
-            // InternalOCLinEcore.g:16678:2: rule__CollectionLiteralExpCS__Group_2_1__1__Impl
+            // InternalOCLinEcore.g:16689:1: ( rule__CollectionLiteralExpCS__Group_2_1__1__Impl )
+            // InternalOCLinEcore.g:16690:2: rule__CollectionLiteralExpCS__Group_2_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralExpCS__Group_2_1__1__Impl();
@@ -50624,23 +50692,23 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__Group_2_1__1__Impl"
-    // InternalOCLinEcore.g:16684:1: rule__CollectionLiteralExpCS__Group_2_1__1__Impl : ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 ) ) ;
+    // InternalOCLinEcore.g:16696:1: rule__CollectionLiteralExpCS__Group_2_1__1__Impl : ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 ) ) ;
     public final void rule__CollectionLiteralExpCS__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16688:1: ( ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 ) ) )
-            // InternalOCLinEcore.g:16689:1: ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:16700:1: ( ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 ) ) )
+            // InternalOCLinEcore.g:16701:1: ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 ) )
             {
-            // InternalOCLinEcore.g:16689:1: ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 ) )
-            // InternalOCLinEcore.g:16690:1: ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 )
+            // InternalOCLinEcore.g:16701:1: ( ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:16702:1: ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getOwnedPartsAssignment_2_1_1()); 
             }
-            // InternalOCLinEcore.g:16691:1: ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 )
-            // InternalOCLinEcore.g:16691:2: rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1
+            // InternalOCLinEcore.g:16703:1: ( rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 )
+            // InternalOCLinEcore.g:16703:2: rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1();
@@ -50675,14 +50743,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Group_0__0"
-    // InternalOCLinEcore.g:16705:1: rule__CollectionLiteralPartCS__Group_0__0 : rule__CollectionLiteralPartCS__Group_0__0__Impl rule__CollectionLiteralPartCS__Group_0__1 ;
+    // InternalOCLinEcore.g:16717:1: rule__CollectionLiteralPartCS__Group_0__0 : rule__CollectionLiteralPartCS__Group_0__0__Impl rule__CollectionLiteralPartCS__Group_0__1 ;
     public final void rule__CollectionLiteralPartCS__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16709:1: ( rule__CollectionLiteralPartCS__Group_0__0__Impl rule__CollectionLiteralPartCS__Group_0__1 )
-            // InternalOCLinEcore.g:16710:2: rule__CollectionLiteralPartCS__Group_0__0__Impl rule__CollectionLiteralPartCS__Group_0__1
+            // InternalOCLinEcore.g:16721:1: ( rule__CollectionLiteralPartCS__Group_0__0__Impl rule__CollectionLiteralPartCS__Group_0__1 )
+            // InternalOCLinEcore.g:16722:2: rule__CollectionLiteralPartCS__Group_0__0__Impl rule__CollectionLiteralPartCS__Group_0__1
             {
             pushFollow(FollowSets000.FOLLOW_92);
             rule__CollectionLiteralPartCS__Group_0__0__Impl();
@@ -50713,23 +50781,23 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Group_0__0__Impl"
-    // InternalOCLinEcore.g:16717:1: rule__CollectionLiteralPartCS__Group_0__0__Impl : ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 ) ) ;
+    // InternalOCLinEcore.g:16729:1: rule__CollectionLiteralPartCS__Group_0__0__Impl : ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 ) ) ;
     public final void rule__CollectionLiteralPartCS__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16721:1: ( ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 ) ) )
-            // InternalOCLinEcore.g:16722:1: ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 ) )
+            // InternalOCLinEcore.g:16733:1: ( ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 ) ) )
+            // InternalOCLinEcore.g:16734:1: ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 ) )
             {
-            // InternalOCLinEcore.g:16722:1: ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 ) )
-            // InternalOCLinEcore.g:16723:1: ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 )
+            // InternalOCLinEcore.g:16734:1: ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 ) )
+            // InternalOCLinEcore.g:16735:1: ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralPartCSAccess().getOwnedExpressionAssignment_0_0()); 
             }
-            // InternalOCLinEcore.g:16724:1: ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 )
-            // InternalOCLinEcore.g:16724:2: rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0
+            // InternalOCLinEcore.g:16736:1: ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 )
+            // InternalOCLinEcore.g:16736:2: rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0();
@@ -50764,14 +50832,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Group_0__1"
-    // InternalOCLinEcore.g:16734:1: rule__CollectionLiteralPartCS__Group_0__1 : rule__CollectionLiteralPartCS__Group_0__1__Impl ;
+    // InternalOCLinEcore.g:16746:1: rule__CollectionLiteralPartCS__Group_0__1 : rule__CollectionLiteralPartCS__Group_0__1__Impl ;
     public final void rule__CollectionLiteralPartCS__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16738:1: ( rule__CollectionLiteralPartCS__Group_0__1__Impl )
-            // InternalOCLinEcore.g:16739:2: rule__CollectionLiteralPartCS__Group_0__1__Impl
+            // InternalOCLinEcore.g:16750:1: ( rule__CollectionLiteralPartCS__Group_0__1__Impl )
+            // InternalOCLinEcore.g:16751:2: rule__CollectionLiteralPartCS__Group_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralPartCS__Group_0__1__Impl();
@@ -50797,22 +50865,22 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Group_0__1__Impl"
-    // InternalOCLinEcore.g:16745:1: rule__CollectionLiteralPartCS__Group_0__1__Impl : ( ( rule__CollectionLiteralPartCS__Group_0_1__0 )? ) ;
+    // InternalOCLinEcore.g:16757:1: rule__CollectionLiteralPartCS__Group_0__1__Impl : ( ( rule__CollectionLiteralPartCS__Group_0_1__0 )? ) ;
     public final void rule__CollectionLiteralPartCS__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16749:1: ( ( ( rule__CollectionLiteralPartCS__Group_0_1__0 )? ) )
-            // InternalOCLinEcore.g:16750:1: ( ( rule__CollectionLiteralPartCS__Group_0_1__0 )? )
+            // InternalOCLinEcore.g:16761:1: ( ( ( rule__CollectionLiteralPartCS__Group_0_1__0 )? ) )
+            // InternalOCLinEcore.g:16762:1: ( ( rule__CollectionLiteralPartCS__Group_0_1__0 )? )
             {
-            // InternalOCLinEcore.g:16750:1: ( ( rule__CollectionLiteralPartCS__Group_0_1__0 )? )
-            // InternalOCLinEcore.g:16751:1: ( rule__CollectionLiteralPartCS__Group_0_1__0 )?
+            // InternalOCLinEcore.g:16762:1: ( ( rule__CollectionLiteralPartCS__Group_0_1__0 )? )
+            // InternalOCLinEcore.g:16763:1: ( rule__CollectionLiteralPartCS__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralPartCSAccess().getGroup_0_1()); 
             }
-            // InternalOCLinEcore.g:16752:1: ( rule__CollectionLiteralPartCS__Group_0_1__0 )?
+            // InternalOCLinEcore.g:16764:1: ( rule__CollectionLiteralPartCS__Group_0_1__0 )?
             int alt185=2;
             int LA185_0 = input.LA(1);
 
@@ -50821,7 +50889,7 @@
             }
             switch (alt185) {
                 case 1 :
-                    // InternalOCLinEcore.g:16752:2: rule__CollectionLiteralPartCS__Group_0_1__0
+                    // InternalOCLinEcore.g:16764:2: rule__CollectionLiteralPartCS__Group_0_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__CollectionLiteralPartCS__Group_0_1__0();
@@ -50859,14 +50927,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Group_0_1__0"
-    // InternalOCLinEcore.g:16766:1: rule__CollectionLiteralPartCS__Group_0_1__0 : rule__CollectionLiteralPartCS__Group_0_1__0__Impl rule__CollectionLiteralPartCS__Group_0_1__1 ;
+    // InternalOCLinEcore.g:16778:1: rule__CollectionLiteralPartCS__Group_0_1__0 : rule__CollectionLiteralPartCS__Group_0_1__0__Impl rule__CollectionLiteralPartCS__Group_0_1__1 ;
     public final void rule__CollectionLiteralPartCS__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16770:1: ( rule__CollectionLiteralPartCS__Group_0_1__0__Impl rule__CollectionLiteralPartCS__Group_0_1__1 )
-            // InternalOCLinEcore.g:16771:2: rule__CollectionLiteralPartCS__Group_0_1__0__Impl rule__CollectionLiteralPartCS__Group_0_1__1
+            // InternalOCLinEcore.g:16782:1: ( rule__CollectionLiteralPartCS__Group_0_1__0__Impl rule__CollectionLiteralPartCS__Group_0_1__1 )
+            // InternalOCLinEcore.g:16783:2: rule__CollectionLiteralPartCS__Group_0_1__0__Impl rule__CollectionLiteralPartCS__Group_0_1__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__CollectionLiteralPartCS__Group_0_1__0__Impl();
@@ -50897,17 +50965,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Group_0_1__0__Impl"
-    // InternalOCLinEcore.g:16778:1: rule__CollectionLiteralPartCS__Group_0_1__0__Impl : ( '..' ) ;
+    // InternalOCLinEcore.g:16790:1: rule__CollectionLiteralPartCS__Group_0_1__0__Impl : ( '..' ) ;
     public final void rule__CollectionLiteralPartCS__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16782:1: ( ( '..' ) )
-            // InternalOCLinEcore.g:16783:1: ( '..' )
+            // InternalOCLinEcore.g:16794:1: ( ( '..' ) )
+            // InternalOCLinEcore.g:16795:1: ( '..' )
             {
-            // InternalOCLinEcore.g:16783:1: ( '..' )
-            // InternalOCLinEcore.g:16784:1: '..'
+            // InternalOCLinEcore.g:16795:1: ( '..' )
+            // InternalOCLinEcore.g:16796:1: '..'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralPartCSAccess().getFullStopFullStopKeyword_0_1_0()); 
@@ -50938,14 +51006,14 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Group_0_1__1"
-    // InternalOCLinEcore.g:16797:1: rule__CollectionLiteralPartCS__Group_0_1__1 : rule__CollectionLiteralPartCS__Group_0_1__1__Impl ;
+    // InternalOCLinEcore.g:16809:1: rule__CollectionLiteralPartCS__Group_0_1__1 : rule__CollectionLiteralPartCS__Group_0_1__1__Impl ;
     public final void rule__CollectionLiteralPartCS__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16801:1: ( rule__CollectionLiteralPartCS__Group_0_1__1__Impl )
-            // InternalOCLinEcore.g:16802:2: rule__CollectionLiteralPartCS__Group_0_1__1__Impl
+            // InternalOCLinEcore.g:16813:1: ( rule__CollectionLiteralPartCS__Group_0_1__1__Impl )
+            // InternalOCLinEcore.g:16814:2: rule__CollectionLiteralPartCS__Group_0_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralPartCS__Group_0_1__1__Impl();
@@ -50971,23 +51039,23 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__Group_0_1__1__Impl"
-    // InternalOCLinEcore.g:16808:1: rule__CollectionLiteralPartCS__Group_0_1__1__Impl : ( ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 ) ) ;
+    // InternalOCLinEcore.g:16820:1: rule__CollectionLiteralPartCS__Group_0_1__1__Impl : ( ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 ) ) ;
     public final void rule__CollectionLiteralPartCS__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16812:1: ( ( ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 ) ) )
-            // InternalOCLinEcore.g:16813:1: ( ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 ) )
+            // InternalOCLinEcore.g:16824:1: ( ( ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 ) ) )
+            // InternalOCLinEcore.g:16825:1: ( ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 ) )
             {
-            // InternalOCLinEcore.g:16813:1: ( ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 ) )
-            // InternalOCLinEcore.g:16814:1: ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 )
+            // InternalOCLinEcore.g:16825:1: ( ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 ) )
+            // InternalOCLinEcore.g:16826:1: ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralPartCSAccess().getOwnedLastExpressionAssignment_0_1_1()); 
             }
-            // InternalOCLinEcore.g:16815:1: ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 )
-            // InternalOCLinEcore.g:16815:2: rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1
+            // InternalOCLinEcore.g:16827:1: ( rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 )
+            // InternalOCLinEcore.g:16827:2: rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1();
@@ -51022,14 +51090,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group__0"
-    // InternalOCLinEcore.g:16829:1: rule__CollectionPatternCS__Group__0 : rule__CollectionPatternCS__Group__0__Impl rule__CollectionPatternCS__Group__1 ;
+    // InternalOCLinEcore.g:16841:1: rule__CollectionPatternCS__Group__0 : rule__CollectionPatternCS__Group__0__Impl rule__CollectionPatternCS__Group__1 ;
     public final void rule__CollectionPatternCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16833:1: ( rule__CollectionPatternCS__Group__0__Impl rule__CollectionPatternCS__Group__1 )
-            // InternalOCLinEcore.g:16834:2: rule__CollectionPatternCS__Group__0__Impl rule__CollectionPatternCS__Group__1
+            // InternalOCLinEcore.g:16845:1: ( rule__CollectionPatternCS__Group__0__Impl rule__CollectionPatternCS__Group__1 )
+            // InternalOCLinEcore.g:16846:2: rule__CollectionPatternCS__Group__0__Impl rule__CollectionPatternCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_89);
             rule__CollectionPatternCS__Group__0__Impl();
@@ -51060,23 +51128,23 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group__0__Impl"
-    // InternalOCLinEcore.g:16841:1: rule__CollectionPatternCS__Group__0__Impl : ( ( rule__CollectionPatternCS__OwnedTypeAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:16853:1: rule__CollectionPatternCS__Group__0__Impl : ( ( rule__CollectionPatternCS__OwnedTypeAssignment_0 ) ) ;
     public final void rule__CollectionPatternCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16845:1: ( ( ( rule__CollectionPatternCS__OwnedTypeAssignment_0 ) ) )
-            // InternalOCLinEcore.g:16846:1: ( ( rule__CollectionPatternCS__OwnedTypeAssignment_0 ) )
+            // InternalOCLinEcore.g:16857:1: ( ( ( rule__CollectionPatternCS__OwnedTypeAssignment_0 ) ) )
+            // InternalOCLinEcore.g:16858:1: ( ( rule__CollectionPatternCS__OwnedTypeAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:16846:1: ( ( rule__CollectionPatternCS__OwnedTypeAssignment_0 ) )
-            // InternalOCLinEcore.g:16847:1: ( rule__CollectionPatternCS__OwnedTypeAssignment_0 )
+            // InternalOCLinEcore.g:16858:1: ( ( rule__CollectionPatternCS__OwnedTypeAssignment_0 ) )
+            // InternalOCLinEcore.g:16859:1: ( rule__CollectionPatternCS__OwnedTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getOwnedTypeAssignment_0()); 
             }
-            // InternalOCLinEcore.g:16848:1: ( rule__CollectionPatternCS__OwnedTypeAssignment_0 )
-            // InternalOCLinEcore.g:16848:2: rule__CollectionPatternCS__OwnedTypeAssignment_0
+            // InternalOCLinEcore.g:16860:1: ( rule__CollectionPatternCS__OwnedTypeAssignment_0 )
+            // InternalOCLinEcore.g:16860:2: rule__CollectionPatternCS__OwnedTypeAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__OwnedTypeAssignment_0();
@@ -51111,14 +51179,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group__1"
-    // InternalOCLinEcore.g:16858:1: rule__CollectionPatternCS__Group__1 : rule__CollectionPatternCS__Group__1__Impl rule__CollectionPatternCS__Group__2 ;
+    // InternalOCLinEcore.g:16870:1: rule__CollectionPatternCS__Group__1 : rule__CollectionPatternCS__Group__1__Impl rule__CollectionPatternCS__Group__2 ;
     public final void rule__CollectionPatternCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16862:1: ( rule__CollectionPatternCS__Group__1__Impl rule__CollectionPatternCS__Group__2 )
-            // InternalOCLinEcore.g:16863:2: rule__CollectionPatternCS__Group__1__Impl rule__CollectionPatternCS__Group__2
+            // InternalOCLinEcore.g:16874:1: ( rule__CollectionPatternCS__Group__1__Impl rule__CollectionPatternCS__Group__2 )
+            // InternalOCLinEcore.g:16875:2: rule__CollectionPatternCS__Group__1__Impl rule__CollectionPatternCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_90);
             rule__CollectionPatternCS__Group__1__Impl();
@@ -51149,17 +51217,17 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group__1__Impl"
-    // InternalOCLinEcore.g:16870:1: rule__CollectionPatternCS__Group__1__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:16882:1: rule__CollectionPatternCS__Group__1__Impl : ( '{' ) ;
     public final void rule__CollectionPatternCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16874:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:16875:1: ( '{' )
+            // InternalOCLinEcore.g:16886:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:16887:1: ( '{' )
             {
-            // InternalOCLinEcore.g:16875:1: ( '{' )
-            // InternalOCLinEcore.g:16876:1: '{'
+            // InternalOCLinEcore.g:16887:1: ( '{' )
+            // InternalOCLinEcore.g:16888:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getLeftCurlyBracketKeyword_1()); 
@@ -51190,14 +51258,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group__2"
-    // InternalOCLinEcore.g:16889:1: rule__CollectionPatternCS__Group__2 : rule__CollectionPatternCS__Group__2__Impl rule__CollectionPatternCS__Group__3 ;
+    // InternalOCLinEcore.g:16901:1: rule__CollectionPatternCS__Group__2 : rule__CollectionPatternCS__Group__2__Impl rule__CollectionPatternCS__Group__3 ;
     public final void rule__CollectionPatternCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16893:1: ( rule__CollectionPatternCS__Group__2__Impl rule__CollectionPatternCS__Group__3 )
-            // InternalOCLinEcore.g:16894:2: rule__CollectionPatternCS__Group__2__Impl rule__CollectionPatternCS__Group__3
+            // InternalOCLinEcore.g:16905:1: ( rule__CollectionPatternCS__Group__2__Impl rule__CollectionPatternCS__Group__3 )
+            // InternalOCLinEcore.g:16906:2: rule__CollectionPatternCS__Group__2__Impl rule__CollectionPatternCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_90);
             rule__CollectionPatternCS__Group__2__Impl();
@@ -51228,22 +51296,22 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group__2__Impl"
-    // InternalOCLinEcore.g:16901:1: rule__CollectionPatternCS__Group__2__Impl : ( ( rule__CollectionPatternCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:16913:1: rule__CollectionPatternCS__Group__2__Impl : ( ( rule__CollectionPatternCS__Group_2__0 )? ) ;
     public final void rule__CollectionPatternCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16905:1: ( ( ( rule__CollectionPatternCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:16906:1: ( ( rule__CollectionPatternCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:16917:1: ( ( ( rule__CollectionPatternCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:16918:1: ( ( rule__CollectionPatternCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:16906:1: ( ( rule__CollectionPatternCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:16907:1: ( rule__CollectionPatternCS__Group_2__0 )?
+            // InternalOCLinEcore.g:16918:1: ( ( rule__CollectionPatternCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:16919:1: ( rule__CollectionPatternCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:16908:1: ( rule__CollectionPatternCS__Group_2__0 )?
+            // InternalOCLinEcore.g:16920:1: ( rule__CollectionPatternCS__Group_2__0 )?
             int alt186=2;
             int LA186_0 = input.LA(1);
 
@@ -51252,7 +51320,7 @@
             }
             switch (alt186) {
                 case 1 :
-                    // InternalOCLinEcore.g:16908:2: rule__CollectionPatternCS__Group_2__0
+                    // InternalOCLinEcore.g:16920:2: rule__CollectionPatternCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__CollectionPatternCS__Group_2__0();
@@ -51290,14 +51358,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group__3"
-    // InternalOCLinEcore.g:16918:1: rule__CollectionPatternCS__Group__3 : rule__CollectionPatternCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:16930:1: rule__CollectionPatternCS__Group__3 : rule__CollectionPatternCS__Group__3__Impl ;
     public final void rule__CollectionPatternCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16922:1: ( rule__CollectionPatternCS__Group__3__Impl )
-            // InternalOCLinEcore.g:16923:2: rule__CollectionPatternCS__Group__3__Impl
+            // InternalOCLinEcore.g:16934:1: ( rule__CollectionPatternCS__Group__3__Impl )
+            // InternalOCLinEcore.g:16935:2: rule__CollectionPatternCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__Group__3__Impl();
@@ -51323,17 +51391,17 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group__3__Impl"
-    // InternalOCLinEcore.g:16929:1: rule__CollectionPatternCS__Group__3__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:16941:1: rule__CollectionPatternCS__Group__3__Impl : ( '}' ) ;
     public final void rule__CollectionPatternCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16933:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:16934:1: ( '}' )
+            // InternalOCLinEcore.g:16945:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:16946:1: ( '}' )
             {
-            // InternalOCLinEcore.g:16934:1: ( '}' )
-            // InternalOCLinEcore.g:16935:1: '}'
+            // InternalOCLinEcore.g:16946:1: ( '}' )
+            // InternalOCLinEcore.g:16947:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getRightCurlyBracketKeyword_3()); 
@@ -51364,14 +51432,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2__0"
-    // InternalOCLinEcore.g:16956:1: rule__CollectionPatternCS__Group_2__0 : rule__CollectionPatternCS__Group_2__0__Impl rule__CollectionPatternCS__Group_2__1 ;
+    // InternalOCLinEcore.g:16968:1: rule__CollectionPatternCS__Group_2__0 : rule__CollectionPatternCS__Group_2__0__Impl rule__CollectionPatternCS__Group_2__1 ;
     public final void rule__CollectionPatternCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16960:1: ( rule__CollectionPatternCS__Group_2__0__Impl rule__CollectionPatternCS__Group_2__1 )
-            // InternalOCLinEcore.g:16961:2: rule__CollectionPatternCS__Group_2__0__Impl rule__CollectionPatternCS__Group_2__1
+            // InternalOCLinEcore.g:16972:1: ( rule__CollectionPatternCS__Group_2__0__Impl rule__CollectionPatternCS__Group_2__1 )
+            // InternalOCLinEcore.g:16973:2: rule__CollectionPatternCS__Group_2__0__Impl rule__CollectionPatternCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_94);
             rule__CollectionPatternCS__Group_2__0__Impl();
@@ -51402,23 +51470,23 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:16968:1: rule__CollectionPatternCS__Group_2__0__Impl : ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 ) ) ;
+    // InternalOCLinEcore.g:16980:1: rule__CollectionPatternCS__Group_2__0__Impl : ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 ) ) ;
     public final void rule__CollectionPatternCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16972:1: ( ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 ) ) )
-            // InternalOCLinEcore.g:16973:1: ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 ) )
+            // InternalOCLinEcore.g:16984:1: ( ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 ) ) )
+            // InternalOCLinEcore.g:16985:1: ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 ) )
             {
-            // InternalOCLinEcore.g:16973:1: ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 ) )
-            // InternalOCLinEcore.g:16974:1: ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 )
+            // InternalOCLinEcore.g:16985:1: ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 ) )
+            // InternalOCLinEcore.g:16986:1: ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getOwnedPartsAssignment_2_0()); 
             }
-            // InternalOCLinEcore.g:16975:1: ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 )
-            // InternalOCLinEcore.g:16975:2: rule__CollectionPatternCS__OwnedPartsAssignment_2_0
+            // InternalOCLinEcore.g:16987:1: ( rule__CollectionPatternCS__OwnedPartsAssignment_2_0 )
+            // InternalOCLinEcore.g:16987:2: rule__CollectionPatternCS__OwnedPartsAssignment_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__OwnedPartsAssignment_2_0();
@@ -51453,14 +51521,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2__1"
-    // InternalOCLinEcore.g:16985:1: rule__CollectionPatternCS__Group_2__1 : rule__CollectionPatternCS__Group_2__1__Impl rule__CollectionPatternCS__Group_2__2 ;
+    // InternalOCLinEcore.g:16997:1: rule__CollectionPatternCS__Group_2__1 : rule__CollectionPatternCS__Group_2__1__Impl rule__CollectionPatternCS__Group_2__2 ;
     public final void rule__CollectionPatternCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:16989:1: ( rule__CollectionPatternCS__Group_2__1__Impl rule__CollectionPatternCS__Group_2__2 )
-            // InternalOCLinEcore.g:16990:2: rule__CollectionPatternCS__Group_2__1__Impl rule__CollectionPatternCS__Group_2__2
+            // InternalOCLinEcore.g:17001:1: ( rule__CollectionPatternCS__Group_2__1__Impl rule__CollectionPatternCS__Group_2__2 )
+            // InternalOCLinEcore.g:17002:2: rule__CollectionPatternCS__Group_2__1__Impl rule__CollectionPatternCS__Group_2__2
             {
             pushFollow(FollowSets000.FOLLOW_94);
             rule__CollectionPatternCS__Group_2__1__Impl();
@@ -51491,22 +51559,22 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:16997:1: rule__CollectionPatternCS__Group_2__1__Impl : ( ( rule__CollectionPatternCS__Group_2_1__0 )* ) ;
+    // InternalOCLinEcore.g:17009:1: rule__CollectionPatternCS__Group_2__1__Impl : ( ( rule__CollectionPatternCS__Group_2_1__0 )* ) ;
     public final void rule__CollectionPatternCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17001:1: ( ( ( rule__CollectionPatternCS__Group_2_1__0 )* ) )
-            // InternalOCLinEcore.g:17002:1: ( ( rule__CollectionPatternCS__Group_2_1__0 )* )
+            // InternalOCLinEcore.g:17013:1: ( ( ( rule__CollectionPatternCS__Group_2_1__0 )* ) )
+            // InternalOCLinEcore.g:17014:1: ( ( rule__CollectionPatternCS__Group_2_1__0 )* )
             {
-            // InternalOCLinEcore.g:17002:1: ( ( rule__CollectionPatternCS__Group_2_1__0 )* )
-            // InternalOCLinEcore.g:17003:1: ( rule__CollectionPatternCS__Group_2_1__0 )*
+            // InternalOCLinEcore.g:17014:1: ( ( rule__CollectionPatternCS__Group_2_1__0 )* )
+            // InternalOCLinEcore.g:17015:1: ( rule__CollectionPatternCS__Group_2_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getGroup_2_1()); 
             }
-            // InternalOCLinEcore.g:17004:1: ( rule__CollectionPatternCS__Group_2_1__0 )*
+            // InternalOCLinEcore.g:17016:1: ( rule__CollectionPatternCS__Group_2_1__0 )*
             loop187:
             do {
                 int alt187=2;
@@ -51519,7 +51587,7 @@
 
                 switch (alt187) {
             	case 1 :
-            	    // InternalOCLinEcore.g:17004:2: rule__CollectionPatternCS__Group_2_1__0
+            	    // InternalOCLinEcore.g:17016:2: rule__CollectionPatternCS__Group_2_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__CollectionPatternCS__Group_2_1__0();
@@ -51560,14 +51628,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2__2"
-    // InternalOCLinEcore.g:17014:1: rule__CollectionPatternCS__Group_2__2 : rule__CollectionPatternCS__Group_2__2__Impl ;
+    // InternalOCLinEcore.g:17026:1: rule__CollectionPatternCS__Group_2__2 : rule__CollectionPatternCS__Group_2__2__Impl ;
     public final void rule__CollectionPatternCS__Group_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17018:1: ( rule__CollectionPatternCS__Group_2__2__Impl )
-            // InternalOCLinEcore.g:17019:2: rule__CollectionPatternCS__Group_2__2__Impl
+            // InternalOCLinEcore.g:17030:1: ( rule__CollectionPatternCS__Group_2__2__Impl )
+            // InternalOCLinEcore.g:17031:2: rule__CollectionPatternCS__Group_2__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__Group_2__2__Impl();
@@ -51593,23 +51661,23 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2__2__Impl"
-    // InternalOCLinEcore.g:17025:1: rule__CollectionPatternCS__Group_2__2__Impl : ( ( rule__CollectionPatternCS__Group_2_2__0 ) ) ;
+    // InternalOCLinEcore.g:17037:1: rule__CollectionPatternCS__Group_2__2__Impl : ( ( rule__CollectionPatternCS__Group_2_2__0 ) ) ;
     public final void rule__CollectionPatternCS__Group_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17029:1: ( ( ( rule__CollectionPatternCS__Group_2_2__0 ) ) )
-            // InternalOCLinEcore.g:17030:1: ( ( rule__CollectionPatternCS__Group_2_2__0 ) )
+            // InternalOCLinEcore.g:17041:1: ( ( ( rule__CollectionPatternCS__Group_2_2__0 ) ) )
+            // InternalOCLinEcore.g:17042:1: ( ( rule__CollectionPatternCS__Group_2_2__0 ) )
             {
-            // InternalOCLinEcore.g:17030:1: ( ( rule__CollectionPatternCS__Group_2_2__0 ) )
-            // InternalOCLinEcore.g:17031:1: ( rule__CollectionPatternCS__Group_2_2__0 )
+            // InternalOCLinEcore.g:17042:1: ( ( rule__CollectionPatternCS__Group_2_2__0 ) )
+            // InternalOCLinEcore.g:17043:1: ( rule__CollectionPatternCS__Group_2_2__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getGroup_2_2()); 
             }
-            // InternalOCLinEcore.g:17032:1: ( rule__CollectionPatternCS__Group_2_2__0 )
-            // InternalOCLinEcore.g:17032:2: rule__CollectionPatternCS__Group_2_2__0
+            // InternalOCLinEcore.g:17044:1: ( rule__CollectionPatternCS__Group_2_2__0 )
+            // InternalOCLinEcore.g:17044:2: rule__CollectionPatternCS__Group_2_2__0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__Group_2_2__0();
@@ -51644,14 +51712,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2_1__0"
-    // InternalOCLinEcore.g:17048:1: rule__CollectionPatternCS__Group_2_1__0 : rule__CollectionPatternCS__Group_2_1__0__Impl rule__CollectionPatternCS__Group_2_1__1 ;
+    // InternalOCLinEcore.g:17060:1: rule__CollectionPatternCS__Group_2_1__0 : rule__CollectionPatternCS__Group_2_1__0__Impl rule__CollectionPatternCS__Group_2_1__1 ;
     public final void rule__CollectionPatternCS__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17052:1: ( rule__CollectionPatternCS__Group_2_1__0__Impl rule__CollectionPatternCS__Group_2_1__1 )
-            // InternalOCLinEcore.g:17053:2: rule__CollectionPatternCS__Group_2_1__0__Impl rule__CollectionPatternCS__Group_2_1__1
+            // InternalOCLinEcore.g:17064:1: ( rule__CollectionPatternCS__Group_2_1__0__Impl rule__CollectionPatternCS__Group_2_1__1 )
+            // InternalOCLinEcore.g:17065:2: rule__CollectionPatternCS__Group_2_1__0__Impl rule__CollectionPatternCS__Group_2_1__1
             {
             pushFollow(FollowSets000.FOLLOW_91);
             rule__CollectionPatternCS__Group_2_1__0__Impl();
@@ -51682,17 +51750,17 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2_1__0__Impl"
-    // InternalOCLinEcore.g:17060:1: rule__CollectionPatternCS__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:17072:1: rule__CollectionPatternCS__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__CollectionPatternCS__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17064:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:17065:1: ( ',' )
+            // InternalOCLinEcore.g:17076:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:17077:1: ( ',' )
             {
-            // InternalOCLinEcore.g:17065:1: ( ',' )
-            // InternalOCLinEcore.g:17066:1: ','
+            // InternalOCLinEcore.g:17077:1: ( ',' )
+            // InternalOCLinEcore.g:17078:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getCommaKeyword_2_1_0()); 
@@ -51723,14 +51791,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2_1__1"
-    // InternalOCLinEcore.g:17079:1: rule__CollectionPatternCS__Group_2_1__1 : rule__CollectionPatternCS__Group_2_1__1__Impl ;
+    // InternalOCLinEcore.g:17091:1: rule__CollectionPatternCS__Group_2_1__1 : rule__CollectionPatternCS__Group_2_1__1__Impl ;
     public final void rule__CollectionPatternCS__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17083:1: ( rule__CollectionPatternCS__Group_2_1__1__Impl )
-            // InternalOCLinEcore.g:17084:2: rule__CollectionPatternCS__Group_2_1__1__Impl
+            // InternalOCLinEcore.g:17095:1: ( rule__CollectionPatternCS__Group_2_1__1__Impl )
+            // InternalOCLinEcore.g:17096:2: rule__CollectionPatternCS__Group_2_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__Group_2_1__1__Impl();
@@ -51756,23 +51824,23 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2_1__1__Impl"
-    // InternalOCLinEcore.g:17090:1: rule__CollectionPatternCS__Group_2_1__1__Impl : ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 ) ) ;
+    // InternalOCLinEcore.g:17102:1: rule__CollectionPatternCS__Group_2_1__1__Impl : ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 ) ) ;
     public final void rule__CollectionPatternCS__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17094:1: ( ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 ) ) )
-            // InternalOCLinEcore.g:17095:1: ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:17106:1: ( ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 ) ) )
+            // InternalOCLinEcore.g:17107:1: ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 ) )
             {
-            // InternalOCLinEcore.g:17095:1: ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 ) )
-            // InternalOCLinEcore.g:17096:1: ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 )
+            // InternalOCLinEcore.g:17107:1: ( ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:17108:1: ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getOwnedPartsAssignment_2_1_1()); 
             }
-            // InternalOCLinEcore.g:17097:1: ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 )
-            // InternalOCLinEcore.g:17097:2: rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1
+            // InternalOCLinEcore.g:17109:1: ( rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 )
+            // InternalOCLinEcore.g:17109:2: rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1();
@@ -51807,14 +51875,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2_2__0"
-    // InternalOCLinEcore.g:17111:1: rule__CollectionPatternCS__Group_2_2__0 : rule__CollectionPatternCS__Group_2_2__0__Impl rule__CollectionPatternCS__Group_2_2__1 ;
+    // InternalOCLinEcore.g:17123:1: rule__CollectionPatternCS__Group_2_2__0 : rule__CollectionPatternCS__Group_2_2__0__Impl rule__CollectionPatternCS__Group_2_2__1 ;
     public final void rule__CollectionPatternCS__Group_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17115:1: ( rule__CollectionPatternCS__Group_2_2__0__Impl rule__CollectionPatternCS__Group_2_2__1 )
-            // InternalOCLinEcore.g:17116:2: rule__CollectionPatternCS__Group_2_2__0__Impl rule__CollectionPatternCS__Group_2_2__1
+            // InternalOCLinEcore.g:17127:1: ( rule__CollectionPatternCS__Group_2_2__0__Impl rule__CollectionPatternCS__Group_2_2__1 )
+            // InternalOCLinEcore.g:17128:2: rule__CollectionPatternCS__Group_2_2__0__Impl rule__CollectionPatternCS__Group_2_2__1
             {
             pushFollow(FollowSets000.FOLLOW_95);
             rule__CollectionPatternCS__Group_2_2__0__Impl();
@@ -51845,17 +51913,17 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2_2__0__Impl"
-    // InternalOCLinEcore.g:17123:1: rule__CollectionPatternCS__Group_2_2__0__Impl : ( '++' ) ;
+    // InternalOCLinEcore.g:17135:1: rule__CollectionPatternCS__Group_2_2__0__Impl : ( '++' ) ;
     public final void rule__CollectionPatternCS__Group_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17127:1: ( ( '++' ) )
-            // InternalOCLinEcore.g:17128:1: ( '++' )
+            // InternalOCLinEcore.g:17139:1: ( ( '++' ) )
+            // InternalOCLinEcore.g:17140:1: ( '++' )
             {
-            // InternalOCLinEcore.g:17128:1: ( '++' )
-            // InternalOCLinEcore.g:17129:1: '++'
+            // InternalOCLinEcore.g:17140:1: ( '++' )
+            // InternalOCLinEcore.g:17141:1: '++'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getPlusSignPlusSignKeyword_2_2_0()); 
@@ -51886,14 +51954,14 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2_2__1"
-    // InternalOCLinEcore.g:17142:1: rule__CollectionPatternCS__Group_2_2__1 : rule__CollectionPatternCS__Group_2_2__1__Impl ;
+    // InternalOCLinEcore.g:17154:1: rule__CollectionPatternCS__Group_2_2__1 : rule__CollectionPatternCS__Group_2_2__1__Impl ;
     public final void rule__CollectionPatternCS__Group_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17146:1: ( rule__CollectionPatternCS__Group_2_2__1__Impl )
-            // InternalOCLinEcore.g:17147:2: rule__CollectionPatternCS__Group_2_2__1__Impl
+            // InternalOCLinEcore.g:17158:1: ( rule__CollectionPatternCS__Group_2_2__1__Impl )
+            // InternalOCLinEcore.g:17159:2: rule__CollectionPatternCS__Group_2_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__Group_2_2__1__Impl();
@@ -51919,23 +51987,23 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__Group_2_2__1__Impl"
-    // InternalOCLinEcore.g:17153:1: rule__CollectionPatternCS__Group_2_2__1__Impl : ( ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 ) ) ;
+    // InternalOCLinEcore.g:17165:1: rule__CollectionPatternCS__Group_2_2__1__Impl : ( ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 ) ) ;
     public final void rule__CollectionPatternCS__Group_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17157:1: ( ( ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 ) ) )
-            // InternalOCLinEcore.g:17158:1: ( ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 ) )
+            // InternalOCLinEcore.g:17169:1: ( ( ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 ) ) )
+            // InternalOCLinEcore.g:17170:1: ( ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 ) )
             {
-            // InternalOCLinEcore.g:17158:1: ( ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 ) )
-            // InternalOCLinEcore.g:17159:1: ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 )
+            // InternalOCLinEcore.g:17170:1: ( ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 ) )
+            // InternalOCLinEcore.g:17171:1: ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getRestVariableNameAssignment_2_2_1()); 
             }
-            // InternalOCLinEcore.g:17160:1: ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 )
-            // InternalOCLinEcore.g:17160:2: rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1
+            // InternalOCLinEcore.g:17172:1: ( rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 )
+            // InternalOCLinEcore.g:17172:2: rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1();
@@ -51970,14 +52038,14 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__Group__0"
-    // InternalOCLinEcore.g:17174:1: rule__ShadowPartCS__Group__0 : rule__ShadowPartCS__Group__0__Impl rule__ShadowPartCS__Group__1 ;
+    // InternalOCLinEcore.g:17186:1: rule__ShadowPartCS__Group__0 : rule__ShadowPartCS__Group__0__Impl rule__ShadowPartCS__Group__1 ;
     public final void rule__ShadowPartCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17178:1: ( rule__ShadowPartCS__Group__0__Impl rule__ShadowPartCS__Group__1 )
-            // InternalOCLinEcore.g:17179:2: rule__ShadowPartCS__Group__0__Impl rule__ShadowPartCS__Group__1
+            // InternalOCLinEcore.g:17190:1: ( rule__ShadowPartCS__Group__0__Impl rule__ShadowPartCS__Group__1 )
+            // InternalOCLinEcore.g:17191:2: rule__ShadowPartCS__Group__0__Impl rule__ShadowPartCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_40);
             rule__ShadowPartCS__Group__0__Impl();
@@ -52008,23 +52076,23 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__Group__0__Impl"
-    // InternalOCLinEcore.g:17186:1: rule__ShadowPartCS__Group__0__Impl : ( ( rule__ShadowPartCS__ReferredPropertyAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:17198:1: rule__ShadowPartCS__Group__0__Impl : ( ( rule__ShadowPartCS__ReferredPropertyAssignment_0 ) ) ;
     public final void rule__ShadowPartCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17190:1: ( ( ( rule__ShadowPartCS__ReferredPropertyAssignment_0 ) ) )
-            // InternalOCLinEcore.g:17191:1: ( ( rule__ShadowPartCS__ReferredPropertyAssignment_0 ) )
+            // InternalOCLinEcore.g:17202:1: ( ( ( rule__ShadowPartCS__ReferredPropertyAssignment_0 ) ) )
+            // InternalOCLinEcore.g:17203:1: ( ( rule__ShadowPartCS__ReferredPropertyAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:17191:1: ( ( rule__ShadowPartCS__ReferredPropertyAssignment_0 ) )
-            // InternalOCLinEcore.g:17192:1: ( rule__ShadowPartCS__ReferredPropertyAssignment_0 )
+            // InternalOCLinEcore.g:17203:1: ( ( rule__ShadowPartCS__ReferredPropertyAssignment_0 ) )
+            // InternalOCLinEcore.g:17204:1: ( rule__ShadowPartCS__ReferredPropertyAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getShadowPartCSAccess().getReferredPropertyAssignment_0()); 
             }
-            // InternalOCLinEcore.g:17193:1: ( rule__ShadowPartCS__ReferredPropertyAssignment_0 )
-            // InternalOCLinEcore.g:17193:2: rule__ShadowPartCS__ReferredPropertyAssignment_0
+            // InternalOCLinEcore.g:17205:1: ( rule__ShadowPartCS__ReferredPropertyAssignment_0 )
+            // InternalOCLinEcore.g:17205:2: rule__ShadowPartCS__ReferredPropertyAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ShadowPartCS__ReferredPropertyAssignment_0();
@@ -52059,14 +52127,14 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__Group__1"
-    // InternalOCLinEcore.g:17203:1: rule__ShadowPartCS__Group__1 : rule__ShadowPartCS__Group__1__Impl rule__ShadowPartCS__Group__2 ;
+    // InternalOCLinEcore.g:17215:1: rule__ShadowPartCS__Group__1 : rule__ShadowPartCS__Group__1__Impl rule__ShadowPartCS__Group__2 ;
     public final void rule__ShadowPartCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17207:1: ( rule__ShadowPartCS__Group__1__Impl rule__ShadowPartCS__Group__2 )
-            // InternalOCLinEcore.g:17208:2: rule__ShadowPartCS__Group__1__Impl rule__ShadowPartCS__Group__2
+            // InternalOCLinEcore.g:17219:1: ( rule__ShadowPartCS__Group__1__Impl rule__ShadowPartCS__Group__2 )
+            // InternalOCLinEcore.g:17220:2: rule__ShadowPartCS__Group__1__Impl rule__ShadowPartCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_91);
             rule__ShadowPartCS__Group__1__Impl();
@@ -52097,17 +52165,17 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__Group__1__Impl"
-    // InternalOCLinEcore.g:17215:1: rule__ShadowPartCS__Group__1__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:17227:1: rule__ShadowPartCS__Group__1__Impl : ( '=' ) ;
     public final void rule__ShadowPartCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17219:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:17220:1: ( '=' )
+            // InternalOCLinEcore.g:17231:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:17232:1: ( '=' )
             {
-            // InternalOCLinEcore.g:17220:1: ( '=' )
-            // InternalOCLinEcore.g:17221:1: '='
+            // InternalOCLinEcore.g:17232:1: ( '=' )
+            // InternalOCLinEcore.g:17233:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getShadowPartCSAccess().getEqualsSignKeyword_1()); 
@@ -52138,14 +52206,14 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__Group__2"
-    // InternalOCLinEcore.g:17234:1: rule__ShadowPartCS__Group__2 : rule__ShadowPartCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:17246:1: rule__ShadowPartCS__Group__2 : rule__ShadowPartCS__Group__2__Impl ;
     public final void rule__ShadowPartCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17238:1: ( rule__ShadowPartCS__Group__2__Impl )
-            // InternalOCLinEcore.g:17239:2: rule__ShadowPartCS__Group__2__Impl
+            // InternalOCLinEcore.g:17250:1: ( rule__ShadowPartCS__Group__2__Impl )
+            // InternalOCLinEcore.g:17251:2: rule__ShadowPartCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ShadowPartCS__Group__2__Impl();
@@ -52171,23 +52239,23 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__Group__2__Impl"
-    // InternalOCLinEcore.g:17245:1: rule__ShadowPartCS__Group__2__Impl : ( ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:17257:1: rule__ShadowPartCS__Group__2__Impl : ( ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 ) ) ;
     public final void rule__ShadowPartCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17249:1: ( ( ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 ) ) )
-            // InternalOCLinEcore.g:17250:1: ( ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 ) )
+            // InternalOCLinEcore.g:17261:1: ( ( ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 ) ) )
+            // InternalOCLinEcore.g:17262:1: ( ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:17250:1: ( ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 ) )
-            // InternalOCLinEcore.g:17251:1: ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 )
+            // InternalOCLinEcore.g:17262:1: ( ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 ) )
+            // InternalOCLinEcore.g:17263:1: ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getShadowPartCSAccess().getOwnedInitExpressionAssignment_2()); 
             }
-            // InternalOCLinEcore.g:17252:1: ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 )
-            // InternalOCLinEcore.g:17252:2: rule__ShadowPartCS__OwnedInitExpressionAssignment_2
+            // InternalOCLinEcore.g:17264:1: ( rule__ShadowPartCS__OwnedInitExpressionAssignment_2 )
+            // InternalOCLinEcore.g:17264:2: rule__ShadowPartCS__OwnedInitExpressionAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ShadowPartCS__OwnedInitExpressionAssignment_2();
@@ -52222,14 +52290,14 @@
 
 
     // $ANTLR start "rule__PatternExpCS__Group__0"
-    // InternalOCLinEcore.g:17268:1: rule__PatternExpCS__Group__0 : rule__PatternExpCS__Group__0__Impl rule__PatternExpCS__Group__1 ;
+    // InternalOCLinEcore.g:17280:1: rule__PatternExpCS__Group__0 : rule__PatternExpCS__Group__0__Impl rule__PatternExpCS__Group__1 ;
     public final void rule__PatternExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17272:1: ( rule__PatternExpCS__Group__0__Impl rule__PatternExpCS__Group__1 )
-            // InternalOCLinEcore.g:17273:2: rule__PatternExpCS__Group__0__Impl rule__PatternExpCS__Group__1
+            // InternalOCLinEcore.g:17284:1: ( rule__PatternExpCS__Group__0__Impl rule__PatternExpCS__Group__1 )
+            // InternalOCLinEcore.g:17285:2: rule__PatternExpCS__Group__0__Impl rule__PatternExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_91);
             rule__PatternExpCS__Group__0__Impl();
@@ -52260,22 +52328,22 @@
 
 
     // $ANTLR start "rule__PatternExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:17280:1: rule__PatternExpCS__Group__0__Impl : ( ( rule__PatternExpCS__PatternVariableNameAssignment_0 )? ) ;
+    // InternalOCLinEcore.g:17292:1: rule__PatternExpCS__Group__0__Impl : ( ( rule__PatternExpCS__PatternVariableNameAssignment_0 )? ) ;
     public final void rule__PatternExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17284:1: ( ( ( rule__PatternExpCS__PatternVariableNameAssignment_0 )? ) )
-            // InternalOCLinEcore.g:17285:1: ( ( rule__PatternExpCS__PatternVariableNameAssignment_0 )? )
+            // InternalOCLinEcore.g:17296:1: ( ( ( rule__PatternExpCS__PatternVariableNameAssignment_0 )? ) )
+            // InternalOCLinEcore.g:17297:1: ( ( rule__PatternExpCS__PatternVariableNameAssignment_0 )? )
             {
-            // InternalOCLinEcore.g:17285:1: ( ( rule__PatternExpCS__PatternVariableNameAssignment_0 )? )
-            // InternalOCLinEcore.g:17286:1: ( rule__PatternExpCS__PatternVariableNameAssignment_0 )?
+            // InternalOCLinEcore.g:17297:1: ( ( rule__PatternExpCS__PatternVariableNameAssignment_0 )? )
+            // InternalOCLinEcore.g:17298:1: ( rule__PatternExpCS__PatternVariableNameAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPatternExpCSAccess().getPatternVariableNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:17287:1: ( rule__PatternExpCS__PatternVariableNameAssignment_0 )?
+            // InternalOCLinEcore.g:17299:1: ( rule__PatternExpCS__PatternVariableNameAssignment_0 )?
             int alt188=2;
             int LA188_0 = input.LA(1);
 
@@ -52284,7 +52352,7 @@
             }
             switch (alt188) {
                 case 1 :
-                    // InternalOCLinEcore.g:17287:2: rule__PatternExpCS__PatternVariableNameAssignment_0
+                    // InternalOCLinEcore.g:17299:2: rule__PatternExpCS__PatternVariableNameAssignment_0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__PatternExpCS__PatternVariableNameAssignment_0();
@@ -52322,14 +52390,14 @@
 
 
     // $ANTLR start "rule__PatternExpCS__Group__1"
-    // InternalOCLinEcore.g:17297:1: rule__PatternExpCS__Group__1 : rule__PatternExpCS__Group__1__Impl rule__PatternExpCS__Group__2 ;
+    // InternalOCLinEcore.g:17309:1: rule__PatternExpCS__Group__1 : rule__PatternExpCS__Group__1__Impl rule__PatternExpCS__Group__2 ;
     public final void rule__PatternExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17301:1: ( rule__PatternExpCS__Group__1__Impl rule__PatternExpCS__Group__2 )
-            // InternalOCLinEcore.g:17302:2: rule__PatternExpCS__Group__1__Impl rule__PatternExpCS__Group__2
+            // InternalOCLinEcore.g:17313:1: ( rule__PatternExpCS__Group__1__Impl rule__PatternExpCS__Group__2 )
+            // InternalOCLinEcore.g:17314:2: rule__PatternExpCS__Group__1__Impl rule__PatternExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__PatternExpCS__Group__1__Impl();
@@ -52360,17 +52428,17 @@
 
 
     // $ANTLR start "rule__PatternExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:17309:1: rule__PatternExpCS__Group__1__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:17321:1: rule__PatternExpCS__Group__1__Impl : ( ':' ) ;
     public final void rule__PatternExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17313:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:17314:1: ( ':' )
+            // InternalOCLinEcore.g:17325:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:17326:1: ( ':' )
             {
-            // InternalOCLinEcore.g:17314:1: ( ':' )
-            // InternalOCLinEcore.g:17315:1: ':'
+            // InternalOCLinEcore.g:17326:1: ( ':' )
+            // InternalOCLinEcore.g:17327:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPatternExpCSAccess().getColonKeyword_1()); 
@@ -52401,14 +52469,14 @@
 
 
     // $ANTLR start "rule__PatternExpCS__Group__2"
-    // InternalOCLinEcore.g:17328:1: rule__PatternExpCS__Group__2 : rule__PatternExpCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:17340:1: rule__PatternExpCS__Group__2 : rule__PatternExpCS__Group__2__Impl ;
     public final void rule__PatternExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17332:1: ( rule__PatternExpCS__Group__2__Impl )
-            // InternalOCLinEcore.g:17333:2: rule__PatternExpCS__Group__2__Impl
+            // InternalOCLinEcore.g:17344:1: ( rule__PatternExpCS__Group__2__Impl )
+            // InternalOCLinEcore.g:17345:2: rule__PatternExpCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PatternExpCS__Group__2__Impl();
@@ -52434,23 +52502,23 @@
 
 
     // $ANTLR start "rule__PatternExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:17339:1: rule__PatternExpCS__Group__2__Impl : ( ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:17351:1: rule__PatternExpCS__Group__2__Impl : ( ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 ) ) ;
     public final void rule__PatternExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17343:1: ( ( ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 ) ) )
-            // InternalOCLinEcore.g:17344:1: ( ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 ) )
+            // InternalOCLinEcore.g:17355:1: ( ( ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 ) ) )
+            // InternalOCLinEcore.g:17356:1: ( ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:17344:1: ( ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 ) )
-            // InternalOCLinEcore.g:17345:1: ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 )
+            // InternalOCLinEcore.g:17356:1: ( ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 ) )
+            // InternalOCLinEcore.g:17357:1: ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPatternExpCSAccess().getOwnedPatternTypeAssignment_2()); 
             }
-            // InternalOCLinEcore.g:17346:1: ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 )
-            // InternalOCLinEcore.g:17346:2: rule__PatternExpCS__OwnedPatternTypeAssignment_2
+            // InternalOCLinEcore.g:17358:1: ( rule__PatternExpCS__OwnedPatternTypeAssignment_2 )
+            // InternalOCLinEcore.g:17358:2: rule__PatternExpCS__OwnedPatternTypeAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PatternExpCS__OwnedPatternTypeAssignment_2();
@@ -52485,14 +52553,14 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__Group__0"
-    // InternalOCLinEcore.g:17362:1: rule__LambdaLiteralExpCS__Group__0 : rule__LambdaLiteralExpCS__Group__0__Impl rule__LambdaLiteralExpCS__Group__1 ;
+    // InternalOCLinEcore.g:17374:1: rule__LambdaLiteralExpCS__Group__0 : rule__LambdaLiteralExpCS__Group__0__Impl rule__LambdaLiteralExpCS__Group__1 ;
     public final void rule__LambdaLiteralExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17366:1: ( rule__LambdaLiteralExpCS__Group__0__Impl rule__LambdaLiteralExpCS__Group__1 )
-            // InternalOCLinEcore.g:17367:2: rule__LambdaLiteralExpCS__Group__0__Impl rule__LambdaLiteralExpCS__Group__1
+            // InternalOCLinEcore.g:17378:1: ( rule__LambdaLiteralExpCS__Group__0__Impl rule__LambdaLiteralExpCS__Group__1 )
+            // InternalOCLinEcore.g:17379:2: rule__LambdaLiteralExpCS__Group__0__Impl rule__LambdaLiteralExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_89);
             rule__LambdaLiteralExpCS__Group__0__Impl();
@@ -52523,17 +52591,17 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:17374:1: rule__LambdaLiteralExpCS__Group__0__Impl : ( 'Lambda' ) ;
+    // InternalOCLinEcore.g:17386:1: rule__LambdaLiteralExpCS__Group__0__Impl : ( 'Lambda' ) ;
     public final void rule__LambdaLiteralExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17378:1: ( ( 'Lambda' ) )
-            // InternalOCLinEcore.g:17379:1: ( 'Lambda' )
+            // InternalOCLinEcore.g:17390:1: ( ( 'Lambda' ) )
+            // InternalOCLinEcore.g:17391:1: ( 'Lambda' )
             {
-            // InternalOCLinEcore.g:17379:1: ( 'Lambda' )
-            // InternalOCLinEcore.g:17380:1: 'Lambda'
+            // InternalOCLinEcore.g:17391:1: ( 'Lambda' )
+            // InternalOCLinEcore.g:17392:1: 'Lambda'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLambdaLiteralExpCSAccess().getLambdaKeyword_0()); 
@@ -52564,14 +52632,14 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__Group__1"
-    // InternalOCLinEcore.g:17393:1: rule__LambdaLiteralExpCS__Group__1 : rule__LambdaLiteralExpCS__Group__1__Impl rule__LambdaLiteralExpCS__Group__2 ;
+    // InternalOCLinEcore.g:17405:1: rule__LambdaLiteralExpCS__Group__1 : rule__LambdaLiteralExpCS__Group__1__Impl rule__LambdaLiteralExpCS__Group__2 ;
     public final void rule__LambdaLiteralExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17397:1: ( rule__LambdaLiteralExpCS__Group__1__Impl rule__LambdaLiteralExpCS__Group__2 )
-            // InternalOCLinEcore.g:17398:2: rule__LambdaLiteralExpCS__Group__1__Impl rule__LambdaLiteralExpCS__Group__2
+            // InternalOCLinEcore.g:17409:1: ( rule__LambdaLiteralExpCS__Group__1__Impl rule__LambdaLiteralExpCS__Group__2 )
+            // InternalOCLinEcore.g:17410:2: rule__LambdaLiteralExpCS__Group__1__Impl rule__LambdaLiteralExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__LambdaLiteralExpCS__Group__1__Impl();
@@ -52602,17 +52670,17 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:17405:1: rule__LambdaLiteralExpCS__Group__1__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:17417:1: rule__LambdaLiteralExpCS__Group__1__Impl : ( '{' ) ;
     public final void rule__LambdaLiteralExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17409:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:17410:1: ( '{' )
+            // InternalOCLinEcore.g:17421:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:17422:1: ( '{' )
             {
-            // InternalOCLinEcore.g:17410:1: ( '{' )
-            // InternalOCLinEcore.g:17411:1: '{'
+            // InternalOCLinEcore.g:17422:1: ( '{' )
+            // InternalOCLinEcore.g:17423:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLambdaLiteralExpCSAccess().getLeftCurlyBracketKeyword_1()); 
@@ -52643,14 +52711,14 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__Group__2"
-    // InternalOCLinEcore.g:17424:1: rule__LambdaLiteralExpCS__Group__2 : rule__LambdaLiteralExpCS__Group__2__Impl rule__LambdaLiteralExpCS__Group__3 ;
+    // InternalOCLinEcore.g:17436:1: rule__LambdaLiteralExpCS__Group__2 : rule__LambdaLiteralExpCS__Group__2__Impl rule__LambdaLiteralExpCS__Group__3 ;
     public final void rule__LambdaLiteralExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17428:1: ( rule__LambdaLiteralExpCS__Group__2__Impl rule__LambdaLiteralExpCS__Group__3 )
-            // InternalOCLinEcore.g:17429:2: rule__LambdaLiteralExpCS__Group__2__Impl rule__LambdaLiteralExpCS__Group__3
+            // InternalOCLinEcore.g:17440:1: ( rule__LambdaLiteralExpCS__Group__2__Impl rule__LambdaLiteralExpCS__Group__3 )
+            // InternalOCLinEcore.g:17441:2: rule__LambdaLiteralExpCS__Group__2__Impl rule__LambdaLiteralExpCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_22);
             rule__LambdaLiteralExpCS__Group__2__Impl();
@@ -52681,23 +52749,23 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:17436:1: rule__LambdaLiteralExpCS__Group__2__Impl : ( ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:17448:1: rule__LambdaLiteralExpCS__Group__2__Impl : ( ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 ) ) ;
     public final void rule__LambdaLiteralExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17440:1: ( ( ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 ) ) )
-            // InternalOCLinEcore.g:17441:1: ( ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 ) )
+            // InternalOCLinEcore.g:17452:1: ( ( ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 ) ) )
+            // InternalOCLinEcore.g:17453:1: ( ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:17441:1: ( ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 ) )
-            // InternalOCLinEcore.g:17442:1: ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 )
+            // InternalOCLinEcore.g:17453:1: ( ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 ) )
+            // InternalOCLinEcore.g:17454:1: ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLambdaLiteralExpCSAccess().getOwnedExpressionCSAssignment_2()); 
             }
-            // InternalOCLinEcore.g:17443:1: ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 )
-            // InternalOCLinEcore.g:17443:2: rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2
+            // InternalOCLinEcore.g:17455:1: ( rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 )
+            // InternalOCLinEcore.g:17455:2: rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2();
@@ -52732,14 +52800,14 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__Group__3"
-    // InternalOCLinEcore.g:17453:1: rule__LambdaLiteralExpCS__Group__3 : rule__LambdaLiteralExpCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:17465:1: rule__LambdaLiteralExpCS__Group__3 : rule__LambdaLiteralExpCS__Group__3__Impl ;
     public final void rule__LambdaLiteralExpCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17457:1: ( rule__LambdaLiteralExpCS__Group__3__Impl )
-            // InternalOCLinEcore.g:17458:2: rule__LambdaLiteralExpCS__Group__3__Impl
+            // InternalOCLinEcore.g:17469:1: ( rule__LambdaLiteralExpCS__Group__3__Impl )
+            // InternalOCLinEcore.g:17470:2: rule__LambdaLiteralExpCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LambdaLiteralExpCS__Group__3__Impl();
@@ -52765,17 +52833,17 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__Group__3__Impl"
-    // InternalOCLinEcore.g:17464:1: rule__LambdaLiteralExpCS__Group__3__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:17476:1: rule__LambdaLiteralExpCS__Group__3__Impl : ( '}' ) ;
     public final void rule__LambdaLiteralExpCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17468:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:17469:1: ( '}' )
+            // InternalOCLinEcore.g:17480:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:17481:1: ( '}' )
             {
-            // InternalOCLinEcore.g:17469:1: ( '}' )
-            // InternalOCLinEcore.g:17470:1: '}'
+            // InternalOCLinEcore.g:17481:1: ( '}' )
+            // InternalOCLinEcore.g:17482:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLambdaLiteralExpCSAccess().getRightCurlyBracketKeyword_3()); 
@@ -52806,14 +52874,14 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group__0"
-    // InternalOCLinEcore.g:17491:1: rule__MapLiteralExpCS__Group__0 : rule__MapLiteralExpCS__Group__0__Impl rule__MapLiteralExpCS__Group__1 ;
+    // InternalOCLinEcore.g:17503:1: rule__MapLiteralExpCS__Group__0 : rule__MapLiteralExpCS__Group__0__Impl rule__MapLiteralExpCS__Group__1 ;
     public final void rule__MapLiteralExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17495:1: ( rule__MapLiteralExpCS__Group__0__Impl rule__MapLiteralExpCS__Group__1 )
-            // InternalOCLinEcore.g:17496:2: rule__MapLiteralExpCS__Group__0__Impl rule__MapLiteralExpCS__Group__1
+            // InternalOCLinEcore.g:17507:1: ( rule__MapLiteralExpCS__Group__0__Impl rule__MapLiteralExpCS__Group__1 )
+            // InternalOCLinEcore.g:17508:2: rule__MapLiteralExpCS__Group__0__Impl rule__MapLiteralExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_89);
             rule__MapLiteralExpCS__Group__0__Impl();
@@ -52844,23 +52912,23 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:17503:1: rule__MapLiteralExpCS__Group__0__Impl : ( ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:17515:1: rule__MapLiteralExpCS__Group__0__Impl : ( ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 ) ) ;
     public final void rule__MapLiteralExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17507:1: ( ( ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 ) ) )
-            // InternalOCLinEcore.g:17508:1: ( ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 ) )
+            // InternalOCLinEcore.g:17519:1: ( ( ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 ) ) )
+            // InternalOCLinEcore.g:17520:1: ( ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:17508:1: ( ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 ) )
-            // InternalOCLinEcore.g:17509:1: ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 )
+            // InternalOCLinEcore.g:17520:1: ( ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 ) )
+            // InternalOCLinEcore.g:17521:1: ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getOwnedTypeAssignment_0()); 
             }
-            // InternalOCLinEcore.g:17510:1: ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 )
-            // InternalOCLinEcore.g:17510:2: rule__MapLiteralExpCS__OwnedTypeAssignment_0
+            // InternalOCLinEcore.g:17522:1: ( rule__MapLiteralExpCS__OwnedTypeAssignment_0 )
+            // InternalOCLinEcore.g:17522:2: rule__MapLiteralExpCS__OwnedTypeAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralExpCS__OwnedTypeAssignment_0();
@@ -52895,14 +52963,14 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group__1"
-    // InternalOCLinEcore.g:17520:1: rule__MapLiteralExpCS__Group__1 : rule__MapLiteralExpCS__Group__1__Impl rule__MapLiteralExpCS__Group__2 ;
+    // InternalOCLinEcore.g:17532:1: rule__MapLiteralExpCS__Group__1 : rule__MapLiteralExpCS__Group__1__Impl rule__MapLiteralExpCS__Group__2 ;
     public final void rule__MapLiteralExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17524:1: ( rule__MapLiteralExpCS__Group__1__Impl rule__MapLiteralExpCS__Group__2 )
-            // InternalOCLinEcore.g:17525:2: rule__MapLiteralExpCS__Group__1__Impl rule__MapLiteralExpCS__Group__2
+            // InternalOCLinEcore.g:17536:1: ( rule__MapLiteralExpCS__Group__1__Impl rule__MapLiteralExpCS__Group__2 )
+            // InternalOCLinEcore.g:17537:2: rule__MapLiteralExpCS__Group__1__Impl rule__MapLiteralExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_96);
             rule__MapLiteralExpCS__Group__1__Impl();
@@ -52933,17 +53001,17 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:17532:1: rule__MapLiteralExpCS__Group__1__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:17544:1: rule__MapLiteralExpCS__Group__1__Impl : ( '{' ) ;
     public final void rule__MapLiteralExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17536:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:17537:1: ( '{' )
+            // InternalOCLinEcore.g:17548:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:17549:1: ( '{' )
             {
-            // InternalOCLinEcore.g:17537:1: ( '{' )
-            // InternalOCLinEcore.g:17538:1: '{'
+            // InternalOCLinEcore.g:17549:1: ( '{' )
+            // InternalOCLinEcore.g:17550:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getLeftCurlyBracketKeyword_1()); 
@@ -52974,14 +53042,14 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group__2"
-    // InternalOCLinEcore.g:17551:1: rule__MapLiteralExpCS__Group__2 : rule__MapLiteralExpCS__Group__2__Impl rule__MapLiteralExpCS__Group__3 ;
+    // InternalOCLinEcore.g:17563:1: rule__MapLiteralExpCS__Group__2 : rule__MapLiteralExpCS__Group__2__Impl rule__MapLiteralExpCS__Group__3 ;
     public final void rule__MapLiteralExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17555:1: ( rule__MapLiteralExpCS__Group__2__Impl rule__MapLiteralExpCS__Group__3 )
-            // InternalOCLinEcore.g:17556:2: rule__MapLiteralExpCS__Group__2__Impl rule__MapLiteralExpCS__Group__3
+            // InternalOCLinEcore.g:17567:1: ( rule__MapLiteralExpCS__Group__2__Impl rule__MapLiteralExpCS__Group__3 )
+            // InternalOCLinEcore.g:17568:2: rule__MapLiteralExpCS__Group__2__Impl rule__MapLiteralExpCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_96);
             rule__MapLiteralExpCS__Group__2__Impl();
@@ -53012,22 +53080,22 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:17563:1: rule__MapLiteralExpCS__Group__2__Impl : ( ( rule__MapLiteralExpCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:17575:1: rule__MapLiteralExpCS__Group__2__Impl : ( ( rule__MapLiteralExpCS__Group_2__0 )? ) ;
     public final void rule__MapLiteralExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17567:1: ( ( ( rule__MapLiteralExpCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:17568:1: ( ( rule__MapLiteralExpCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:17579:1: ( ( ( rule__MapLiteralExpCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:17580:1: ( ( rule__MapLiteralExpCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:17568:1: ( ( rule__MapLiteralExpCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:17569:1: ( rule__MapLiteralExpCS__Group_2__0 )?
+            // InternalOCLinEcore.g:17580:1: ( ( rule__MapLiteralExpCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:17581:1: ( rule__MapLiteralExpCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:17570:1: ( rule__MapLiteralExpCS__Group_2__0 )?
+            // InternalOCLinEcore.g:17582:1: ( rule__MapLiteralExpCS__Group_2__0 )?
             int alt189=2;
             int LA189_0 = input.LA(1);
 
@@ -53036,7 +53104,7 @@
             }
             switch (alt189) {
                 case 1 :
-                    // InternalOCLinEcore.g:17570:2: rule__MapLiteralExpCS__Group_2__0
+                    // InternalOCLinEcore.g:17582:2: rule__MapLiteralExpCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__MapLiteralExpCS__Group_2__0();
@@ -53074,14 +53142,14 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group__3"
-    // InternalOCLinEcore.g:17580:1: rule__MapLiteralExpCS__Group__3 : rule__MapLiteralExpCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:17592:1: rule__MapLiteralExpCS__Group__3 : rule__MapLiteralExpCS__Group__3__Impl ;
     public final void rule__MapLiteralExpCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17584:1: ( rule__MapLiteralExpCS__Group__3__Impl )
-            // InternalOCLinEcore.g:17585:2: rule__MapLiteralExpCS__Group__3__Impl
+            // InternalOCLinEcore.g:17596:1: ( rule__MapLiteralExpCS__Group__3__Impl )
+            // InternalOCLinEcore.g:17597:2: rule__MapLiteralExpCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralExpCS__Group__3__Impl();
@@ -53107,17 +53175,17 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group__3__Impl"
-    // InternalOCLinEcore.g:17591:1: rule__MapLiteralExpCS__Group__3__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:17603:1: rule__MapLiteralExpCS__Group__3__Impl : ( '}' ) ;
     public final void rule__MapLiteralExpCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17595:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:17596:1: ( '}' )
+            // InternalOCLinEcore.g:17607:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:17608:1: ( '}' )
             {
-            // InternalOCLinEcore.g:17596:1: ( '}' )
-            // InternalOCLinEcore.g:17597:1: '}'
+            // InternalOCLinEcore.g:17608:1: ( '}' )
+            // InternalOCLinEcore.g:17609:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getRightCurlyBracketKeyword_3()); 
@@ -53148,14 +53216,14 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group_2__0"
-    // InternalOCLinEcore.g:17618:1: rule__MapLiteralExpCS__Group_2__0 : rule__MapLiteralExpCS__Group_2__0__Impl rule__MapLiteralExpCS__Group_2__1 ;
+    // InternalOCLinEcore.g:17630:1: rule__MapLiteralExpCS__Group_2__0 : rule__MapLiteralExpCS__Group_2__0__Impl rule__MapLiteralExpCS__Group_2__1 ;
     public final void rule__MapLiteralExpCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17622:1: ( rule__MapLiteralExpCS__Group_2__0__Impl rule__MapLiteralExpCS__Group_2__1 )
-            // InternalOCLinEcore.g:17623:2: rule__MapLiteralExpCS__Group_2__0__Impl rule__MapLiteralExpCS__Group_2__1
+            // InternalOCLinEcore.g:17634:1: ( rule__MapLiteralExpCS__Group_2__0__Impl rule__MapLiteralExpCS__Group_2__1 )
+            // InternalOCLinEcore.g:17635:2: rule__MapLiteralExpCS__Group_2__0__Impl rule__MapLiteralExpCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__MapLiteralExpCS__Group_2__0__Impl();
@@ -53186,23 +53254,23 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:17630:1: rule__MapLiteralExpCS__Group_2__0__Impl : ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 ) ) ;
+    // InternalOCLinEcore.g:17642:1: rule__MapLiteralExpCS__Group_2__0__Impl : ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 ) ) ;
     public final void rule__MapLiteralExpCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17634:1: ( ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 ) ) )
-            // InternalOCLinEcore.g:17635:1: ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 ) )
+            // InternalOCLinEcore.g:17646:1: ( ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 ) ) )
+            // InternalOCLinEcore.g:17647:1: ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 ) )
             {
-            // InternalOCLinEcore.g:17635:1: ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 ) )
-            // InternalOCLinEcore.g:17636:1: ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 )
+            // InternalOCLinEcore.g:17647:1: ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 ) )
+            // InternalOCLinEcore.g:17648:1: ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getOwnedPartsAssignment_2_0()); 
             }
-            // InternalOCLinEcore.g:17637:1: ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 )
-            // InternalOCLinEcore.g:17637:2: rule__MapLiteralExpCS__OwnedPartsAssignment_2_0
+            // InternalOCLinEcore.g:17649:1: ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 )
+            // InternalOCLinEcore.g:17649:2: rule__MapLiteralExpCS__OwnedPartsAssignment_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralExpCS__OwnedPartsAssignment_2_0();
@@ -53237,14 +53305,14 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group_2__1"
-    // InternalOCLinEcore.g:17647:1: rule__MapLiteralExpCS__Group_2__1 : rule__MapLiteralExpCS__Group_2__1__Impl ;
+    // InternalOCLinEcore.g:17659:1: rule__MapLiteralExpCS__Group_2__1 : rule__MapLiteralExpCS__Group_2__1__Impl ;
     public final void rule__MapLiteralExpCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17651:1: ( rule__MapLiteralExpCS__Group_2__1__Impl )
-            // InternalOCLinEcore.g:17652:2: rule__MapLiteralExpCS__Group_2__1__Impl
+            // InternalOCLinEcore.g:17663:1: ( rule__MapLiteralExpCS__Group_2__1__Impl )
+            // InternalOCLinEcore.g:17664:2: rule__MapLiteralExpCS__Group_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralExpCS__Group_2__1__Impl();
@@ -53270,22 +53338,22 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:17658:1: rule__MapLiteralExpCS__Group_2__1__Impl : ( ( rule__MapLiteralExpCS__Group_2_1__0 )* ) ;
+    // InternalOCLinEcore.g:17670:1: rule__MapLiteralExpCS__Group_2__1__Impl : ( ( rule__MapLiteralExpCS__Group_2_1__0 )* ) ;
     public final void rule__MapLiteralExpCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17662:1: ( ( ( rule__MapLiteralExpCS__Group_2_1__0 )* ) )
-            // InternalOCLinEcore.g:17663:1: ( ( rule__MapLiteralExpCS__Group_2_1__0 )* )
+            // InternalOCLinEcore.g:17674:1: ( ( ( rule__MapLiteralExpCS__Group_2_1__0 )* ) )
+            // InternalOCLinEcore.g:17675:1: ( ( rule__MapLiteralExpCS__Group_2_1__0 )* )
             {
-            // InternalOCLinEcore.g:17663:1: ( ( rule__MapLiteralExpCS__Group_2_1__0 )* )
-            // InternalOCLinEcore.g:17664:1: ( rule__MapLiteralExpCS__Group_2_1__0 )*
+            // InternalOCLinEcore.g:17675:1: ( ( rule__MapLiteralExpCS__Group_2_1__0 )* )
+            // InternalOCLinEcore.g:17676:1: ( rule__MapLiteralExpCS__Group_2_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getGroup_2_1()); 
             }
-            // InternalOCLinEcore.g:17665:1: ( rule__MapLiteralExpCS__Group_2_1__0 )*
+            // InternalOCLinEcore.g:17677:1: ( rule__MapLiteralExpCS__Group_2_1__0 )*
             loop190:
             do {
                 int alt190=2;
@@ -53298,7 +53366,7 @@
 
                 switch (alt190) {
             	case 1 :
-            	    // InternalOCLinEcore.g:17665:2: rule__MapLiteralExpCS__Group_2_1__0
+            	    // InternalOCLinEcore.g:17677:2: rule__MapLiteralExpCS__Group_2_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__MapLiteralExpCS__Group_2_1__0();
@@ -53339,14 +53407,14 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group_2_1__0"
-    // InternalOCLinEcore.g:17679:1: rule__MapLiteralExpCS__Group_2_1__0 : rule__MapLiteralExpCS__Group_2_1__0__Impl rule__MapLiteralExpCS__Group_2_1__1 ;
+    // InternalOCLinEcore.g:17691:1: rule__MapLiteralExpCS__Group_2_1__0 : rule__MapLiteralExpCS__Group_2_1__0__Impl rule__MapLiteralExpCS__Group_2_1__1 ;
     public final void rule__MapLiteralExpCS__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17683:1: ( rule__MapLiteralExpCS__Group_2_1__0__Impl rule__MapLiteralExpCS__Group_2_1__1 )
-            // InternalOCLinEcore.g:17684:2: rule__MapLiteralExpCS__Group_2_1__0__Impl rule__MapLiteralExpCS__Group_2_1__1
+            // InternalOCLinEcore.g:17695:1: ( rule__MapLiteralExpCS__Group_2_1__0__Impl rule__MapLiteralExpCS__Group_2_1__1 )
+            // InternalOCLinEcore.g:17696:2: rule__MapLiteralExpCS__Group_2_1__0__Impl rule__MapLiteralExpCS__Group_2_1__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__MapLiteralExpCS__Group_2_1__0__Impl();
@@ -53377,17 +53445,17 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group_2_1__0__Impl"
-    // InternalOCLinEcore.g:17691:1: rule__MapLiteralExpCS__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:17703:1: rule__MapLiteralExpCS__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__MapLiteralExpCS__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17695:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:17696:1: ( ',' )
+            // InternalOCLinEcore.g:17707:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:17708:1: ( ',' )
             {
-            // InternalOCLinEcore.g:17696:1: ( ',' )
-            // InternalOCLinEcore.g:17697:1: ','
+            // InternalOCLinEcore.g:17708:1: ( ',' )
+            // InternalOCLinEcore.g:17709:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getCommaKeyword_2_1_0()); 
@@ -53418,14 +53486,14 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group_2_1__1"
-    // InternalOCLinEcore.g:17710:1: rule__MapLiteralExpCS__Group_2_1__1 : rule__MapLiteralExpCS__Group_2_1__1__Impl ;
+    // InternalOCLinEcore.g:17722:1: rule__MapLiteralExpCS__Group_2_1__1 : rule__MapLiteralExpCS__Group_2_1__1__Impl ;
     public final void rule__MapLiteralExpCS__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17714:1: ( rule__MapLiteralExpCS__Group_2_1__1__Impl )
-            // InternalOCLinEcore.g:17715:2: rule__MapLiteralExpCS__Group_2_1__1__Impl
+            // InternalOCLinEcore.g:17726:1: ( rule__MapLiteralExpCS__Group_2_1__1__Impl )
+            // InternalOCLinEcore.g:17727:2: rule__MapLiteralExpCS__Group_2_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralExpCS__Group_2_1__1__Impl();
@@ -53451,23 +53519,23 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__Group_2_1__1__Impl"
-    // InternalOCLinEcore.g:17721:1: rule__MapLiteralExpCS__Group_2_1__1__Impl : ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 ) ) ;
+    // InternalOCLinEcore.g:17733:1: rule__MapLiteralExpCS__Group_2_1__1__Impl : ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 ) ) ;
     public final void rule__MapLiteralExpCS__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17725:1: ( ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 ) ) )
-            // InternalOCLinEcore.g:17726:1: ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:17737:1: ( ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 ) ) )
+            // InternalOCLinEcore.g:17738:1: ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 ) )
             {
-            // InternalOCLinEcore.g:17726:1: ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 ) )
-            // InternalOCLinEcore.g:17727:1: ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 )
+            // InternalOCLinEcore.g:17738:1: ( ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:17739:1: ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getOwnedPartsAssignment_2_1_1()); 
             }
-            // InternalOCLinEcore.g:17728:1: ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 )
-            // InternalOCLinEcore.g:17728:2: rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1
+            // InternalOCLinEcore.g:17740:1: ( rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 )
+            // InternalOCLinEcore.g:17740:2: rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1();
@@ -53502,14 +53570,14 @@
 
 
     // $ANTLR start "rule__MapLiteralPartCS__Group__0"
-    // InternalOCLinEcore.g:17742:1: rule__MapLiteralPartCS__Group__0 : rule__MapLiteralPartCS__Group__0__Impl rule__MapLiteralPartCS__Group__1 ;
+    // InternalOCLinEcore.g:17754:1: rule__MapLiteralPartCS__Group__0 : rule__MapLiteralPartCS__Group__0__Impl rule__MapLiteralPartCS__Group__1 ;
     public final void rule__MapLiteralPartCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17746:1: ( rule__MapLiteralPartCS__Group__0__Impl rule__MapLiteralPartCS__Group__1 )
-            // InternalOCLinEcore.g:17747:2: rule__MapLiteralPartCS__Group__0__Impl rule__MapLiteralPartCS__Group__1
+            // InternalOCLinEcore.g:17758:1: ( rule__MapLiteralPartCS__Group__0__Impl rule__MapLiteralPartCS__Group__1 )
+            // InternalOCLinEcore.g:17759:2: rule__MapLiteralPartCS__Group__0__Impl rule__MapLiteralPartCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_97);
             rule__MapLiteralPartCS__Group__0__Impl();
@@ -53540,23 +53608,23 @@
 
 
     // $ANTLR start "rule__MapLiteralPartCS__Group__0__Impl"
-    // InternalOCLinEcore.g:17754:1: rule__MapLiteralPartCS__Group__0__Impl : ( ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:17766:1: rule__MapLiteralPartCS__Group__0__Impl : ( ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 ) ) ;
     public final void rule__MapLiteralPartCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17758:1: ( ( ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 ) ) )
-            // InternalOCLinEcore.g:17759:1: ( ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 ) )
+            // InternalOCLinEcore.g:17770:1: ( ( ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 ) ) )
+            // InternalOCLinEcore.g:17771:1: ( ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:17759:1: ( ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 ) )
-            // InternalOCLinEcore.g:17760:1: ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 )
+            // InternalOCLinEcore.g:17771:1: ( ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 ) )
+            // InternalOCLinEcore.g:17772:1: ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralPartCSAccess().getOwnedKeyAssignment_0()); 
             }
-            // InternalOCLinEcore.g:17761:1: ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 )
-            // InternalOCLinEcore.g:17761:2: rule__MapLiteralPartCS__OwnedKeyAssignment_0
+            // InternalOCLinEcore.g:17773:1: ( rule__MapLiteralPartCS__OwnedKeyAssignment_0 )
+            // InternalOCLinEcore.g:17773:2: rule__MapLiteralPartCS__OwnedKeyAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralPartCS__OwnedKeyAssignment_0();
@@ -53591,14 +53659,14 @@
 
 
     // $ANTLR start "rule__MapLiteralPartCS__Group__1"
-    // InternalOCLinEcore.g:17771:1: rule__MapLiteralPartCS__Group__1 : rule__MapLiteralPartCS__Group__1__Impl rule__MapLiteralPartCS__Group__2 ;
+    // InternalOCLinEcore.g:17783:1: rule__MapLiteralPartCS__Group__1 : rule__MapLiteralPartCS__Group__1__Impl rule__MapLiteralPartCS__Group__2 ;
     public final void rule__MapLiteralPartCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17775:1: ( rule__MapLiteralPartCS__Group__1__Impl rule__MapLiteralPartCS__Group__2 )
-            // InternalOCLinEcore.g:17776:2: rule__MapLiteralPartCS__Group__1__Impl rule__MapLiteralPartCS__Group__2
+            // InternalOCLinEcore.g:17787:1: ( rule__MapLiteralPartCS__Group__1__Impl rule__MapLiteralPartCS__Group__2 )
+            // InternalOCLinEcore.g:17788:2: rule__MapLiteralPartCS__Group__1__Impl rule__MapLiteralPartCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__MapLiteralPartCS__Group__1__Impl();
@@ -53629,17 +53697,17 @@
 
 
     // $ANTLR start "rule__MapLiteralPartCS__Group__1__Impl"
-    // InternalOCLinEcore.g:17783:1: rule__MapLiteralPartCS__Group__1__Impl : ( '<-' ) ;
+    // InternalOCLinEcore.g:17795:1: rule__MapLiteralPartCS__Group__1__Impl : ( '<-' ) ;
     public final void rule__MapLiteralPartCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17787:1: ( ( '<-' ) )
-            // InternalOCLinEcore.g:17788:1: ( '<-' )
+            // InternalOCLinEcore.g:17799:1: ( ( '<-' ) )
+            // InternalOCLinEcore.g:17800:1: ( '<-' )
             {
-            // InternalOCLinEcore.g:17788:1: ( '<-' )
-            // InternalOCLinEcore.g:17789:1: '<-'
+            // InternalOCLinEcore.g:17800:1: ( '<-' )
+            // InternalOCLinEcore.g:17801:1: '<-'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralPartCSAccess().getLessThanSignHyphenMinusKeyword_1()); 
@@ -53670,14 +53738,14 @@
 
 
     // $ANTLR start "rule__MapLiteralPartCS__Group__2"
-    // InternalOCLinEcore.g:17802:1: rule__MapLiteralPartCS__Group__2 : rule__MapLiteralPartCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:17814:1: rule__MapLiteralPartCS__Group__2 : rule__MapLiteralPartCS__Group__2__Impl ;
     public final void rule__MapLiteralPartCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17806:1: ( rule__MapLiteralPartCS__Group__2__Impl )
-            // InternalOCLinEcore.g:17807:2: rule__MapLiteralPartCS__Group__2__Impl
+            // InternalOCLinEcore.g:17818:1: ( rule__MapLiteralPartCS__Group__2__Impl )
+            // InternalOCLinEcore.g:17819:2: rule__MapLiteralPartCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralPartCS__Group__2__Impl();
@@ -53703,23 +53771,23 @@
 
 
     // $ANTLR start "rule__MapLiteralPartCS__Group__2__Impl"
-    // InternalOCLinEcore.g:17813:1: rule__MapLiteralPartCS__Group__2__Impl : ( ( rule__MapLiteralPartCS__OwnedValueAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:17825:1: rule__MapLiteralPartCS__Group__2__Impl : ( ( rule__MapLiteralPartCS__OwnedValueAssignment_2 ) ) ;
     public final void rule__MapLiteralPartCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17817:1: ( ( ( rule__MapLiteralPartCS__OwnedValueAssignment_2 ) ) )
-            // InternalOCLinEcore.g:17818:1: ( ( rule__MapLiteralPartCS__OwnedValueAssignment_2 ) )
+            // InternalOCLinEcore.g:17829:1: ( ( ( rule__MapLiteralPartCS__OwnedValueAssignment_2 ) ) )
+            // InternalOCLinEcore.g:17830:1: ( ( rule__MapLiteralPartCS__OwnedValueAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:17818:1: ( ( rule__MapLiteralPartCS__OwnedValueAssignment_2 ) )
-            // InternalOCLinEcore.g:17819:1: ( rule__MapLiteralPartCS__OwnedValueAssignment_2 )
+            // InternalOCLinEcore.g:17830:1: ( ( rule__MapLiteralPartCS__OwnedValueAssignment_2 ) )
+            // InternalOCLinEcore.g:17831:1: ( rule__MapLiteralPartCS__OwnedValueAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralPartCSAccess().getOwnedValueAssignment_2()); 
             }
-            // InternalOCLinEcore.g:17820:1: ( rule__MapLiteralPartCS__OwnedValueAssignment_2 )
-            // InternalOCLinEcore.g:17820:2: rule__MapLiteralPartCS__OwnedValueAssignment_2
+            // InternalOCLinEcore.g:17832:1: ( rule__MapLiteralPartCS__OwnedValueAssignment_2 )
+            // InternalOCLinEcore.g:17832:2: rule__MapLiteralPartCS__OwnedValueAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MapLiteralPartCS__OwnedValueAssignment_2();
@@ -53754,14 +53822,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__0"
-    // InternalOCLinEcore.g:17836:1: rule__TupleLiteralExpCS__Group__0 : rule__TupleLiteralExpCS__Group__0__Impl rule__TupleLiteralExpCS__Group__1 ;
+    // InternalOCLinEcore.g:17848:1: rule__TupleLiteralExpCS__Group__0 : rule__TupleLiteralExpCS__Group__0__Impl rule__TupleLiteralExpCS__Group__1 ;
     public final void rule__TupleLiteralExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17840:1: ( rule__TupleLiteralExpCS__Group__0__Impl rule__TupleLiteralExpCS__Group__1 )
-            // InternalOCLinEcore.g:17841:2: rule__TupleLiteralExpCS__Group__0__Impl rule__TupleLiteralExpCS__Group__1
+            // InternalOCLinEcore.g:17852:1: ( rule__TupleLiteralExpCS__Group__0__Impl rule__TupleLiteralExpCS__Group__1 )
+            // InternalOCLinEcore.g:17853:2: rule__TupleLiteralExpCS__Group__0__Impl rule__TupleLiteralExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_89);
             rule__TupleLiteralExpCS__Group__0__Impl();
@@ -53792,17 +53860,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:17848:1: rule__TupleLiteralExpCS__Group__0__Impl : ( 'Tuple' ) ;
+    // InternalOCLinEcore.g:17860:1: rule__TupleLiteralExpCS__Group__0__Impl : ( 'Tuple' ) ;
     public final void rule__TupleLiteralExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17852:1: ( ( 'Tuple' ) )
-            // InternalOCLinEcore.g:17853:1: ( 'Tuple' )
+            // InternalOCLinEcore.g:17864:1: ( ( 'Tuple' ) )
+            // InternalOCLinEcore.g:17865:1: ( 'Tuple' )
             {
-            // InternalOCLinEcore.g:17853:1: ( 'Tuple' )
-            // InternalOCLinEcore.g:17854:1: 'Tuple'
+            // InternalOCLinEcore.g:17865:1: ( 'Tuple' )
+            // InternalOCLinEcore.g:17866:1: 'Tuple'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getTupleKeyword_0()); 
@@ -53833,14 +53901,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__1"
-    // InternalOCLinEcore.g:17867:1: rule__TupleLiteralExpCS__Group__1 : rule__TupleLiteralExpCS__Group__1__Impl rule__TupleLiteralExpCS__Group__2 ;
+    // InternalOCLinEcore.g:17879:1: rule__TupleLiteralExpCS__Group__1 : rule__TupleLiteralExpCS__Group__1__Impl rule__TupleLiteralExpCS__Group__2 ;
     public final void rule__TupleLiteralExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17871:1: ( rule__TupleLiteralExpCS__Group__1__Impl rule__TupleLiteralExpCS__Group__2 )
-            // InternalOCLinEcore.g:17872:2: rule__TupleLiteralExpCS__Group__1__Impl rule__TupleLiteralExpCS__Group__2
+            // InternalOCLinEcore.g:17883:1: ( rule__TupleLiteralExpCS__Group__1__Impl rule__TupleLiteralExpCS__Group__2 )
+            // InternalOCLinEcore.g:17884:2: rule__TupleLiteralExpCS__Group__1__Impl rule__TupleLiteralExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__TupleLiteralExpCS__Group__1__Impl();
@@ -53871,17 +53939,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:17879:1: rule__TupleLiteralExpCS__Group__1__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:17891:1: rule__TupleLiteralExpCS__Group__1__Impl : ( '{' ) ;
     public final void rule__TupleLiteralExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17883:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:17884:1: ( '{' )
+            // InternalOCLinEcore.g:17895:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:17896:1: ( '{' )
             {
-            // InternalOCLinEcore.g:17884:1: ( '{' )
-            // InternalOCLinEcore.g:17885:1: '{'
+            // InternalOCLinEcore.g:17896:1: ( '{' )
+            // InternalOCLinEcore.g:17897:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getLeftCurlyBracketKeyword_1()); 
@@ -53912,14 +53980,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__2"
-    // InternalOCLinEcore.g:17898:1: rule__TupleLiteralExpCS__Group__2 : rule__TupleLiteralExpCS__Group__2__Impl rule__TupleLiteralExpCS__Group__3 ;
+    // InternalOCLinEcore.g:17910:1: rule__TupleLiteralExpCS__Group__2 : rule__TupleLiteralExpCS__Group__2__Impl rule__TupleLiteralExpCS__Group__3 ;
     public final void rule__TupleLiteralExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17902:1: ( rule__TupleLiteralExpCS__Group__2__Impl rule__TupleLiteralExpCS__Group__3 )
-            // InternalOCLinEcore.g:17903:2: rule__TupleLiteralExpCS__Group__2__Impl rule__TupleLiteralExpCS__Group__3
+            // InternalOCLinEcore.g:17914:1: ( rule__TupleLiteralExpCS__Group__2__Impl rule__TupleLiteralExpCS__Group__3 )
+            // InternalOCLinEcore.g:17915:2: rule__TupleLiteralExpCS__Group__2__Impl rule__TupleLiteralExpCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_98);
             rule__TupleLiteralExpCS__Group__2__Impl();
@@ -53950,23 +54018,23 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:17910:1: rule__TupleLiteralExpCS__Group__2__Impl : ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 ) ) ;
+    // InternalOCLinEcore.g:17922:1: rule__TupleLiteralExpCS__Group__2__Impl : ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 ) ) ;
     public final void rule__TupleLiteralExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17914:1: ( ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 ) ) )
-            // InternalOCLinEcore.g:17915:1: ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 ) )
+            // InternalOCLinEcore.g:17926:1: ( ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 ) ) )
+            // InternalOCLinEcore.g:17927:1: ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 ) )
             {
-            // InternalOCLinEcore.g:17915:1: ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 ) )
-            // InternalOCLinEcore.g:17916:1: ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 )
+            // InternalOCLinEcore.g:17927:1: ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 ) )
+            // InternalOCLinEcore.g:17928:1: ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getOwnedPartsAssignment_2()); 
             }
-            // InternalOCLinEcore.g:17917:1: ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 )
-            // InternalOCLinEcore.g:17917:2: rule__TupleLiteralExpCS__OwnedPartsAssignment_2
+            // InternalOCLinEcore.g:17929:1: ( rule__TupleLiteralExpCS__OwnedPartsAssignment_2 )
+            // InternalOCLinEcore.g:17929:2: rule__TupleLiteralExpCS__OwnedPartsAssignment_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralExpCS__OwnedPartsAssignment_2();
@@ -54001,14 +54069,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__3"
-    // InternalOCLinEcore.g:17927:1: rule__TupleLiteralExpCS__Group__3 : rule__TupleLiteralExpCS__Group__3__Impl rule__TupleLiteralExpCS__Group__4 ;
+    // InternalOCLinEcore.g:17939:1: rule__TupleLiteralExpCS__Group__3 : rule__TupleLiteralExpCS__Group__3__Impl rule__TupleLiteralExpCS__Group__4 ;
     public final void rule__TupleLiteralExpCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17931:1: ( rule__TupleLiteralExpCS__Group__3__Impl rule__TupleLiteralExpCS__Group__4 )
-            // InternalOCLinEcore.g:17932:2: rule__TupleLiteralExpCS__Group__3__Impl rule__TupleLiteralExpCS__Group__4
+            // InternalOCLinEcore.g:17943:1: ( rule__TupleLiteralExpCS__Group__3__Impl rule__TupleLiteralExpCS__Group__4 )
+            // InternalOCLinEcore.g:17944:2: rule__TupleLiteralExpCS__Group__3__Impl rule__TupleLiteralExpCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_98);
             rule__TupleLiteralExpCS__Group__3__Impl();
@@ -54039,22 +54107,22 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__3__Impl"
-    // InternalOCLinEcore.g:17939:1: rule__TupleLiteralExpCS__Group__3__Impl : ( ( rule__TupleLiteralExpCS__Group_3__0 )* ) ;
+    // InternalOCLinEcore.g:17951:1: rule__TupleLiteralExpCS__Group__3__Impl : ( ( rule__TupleLiteralExpCS__Group_3__0 )* ) ;
     public final void rule__TupleLiteralExpCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17943:1: ( ( ( rule__TupleLiteralExpCS__Group_3__0 )* ) )
-            // InternalOCLinEcore.g:17944:1: ( ( rule__TupleLiteralExpCS__Group_3__0 )* )
+            // InternalOCLinEcore.g:17955:1: ( ( ( rule__TupleLiteralExpCS__Group_3__0 )* ) )
+            // InternalOCLinEcore.g:17956:1: ( ( rule__TupleLiteralExpCS__Group_3__0 )* )
             {
-            // InternalOCLinEcore.g:17944:1: ( ( rule__TupleLiteralExpCS__Group_3__0 )* )
-            // InternalOCLinEcore.g:17945:1: ( rule__TupleLiteralExpCS__Group_3__0 )*
+            // InternalOCLinEcore.g:17956:1: ( ( rule__TupleLiteralExpCS__Group_3__0 )* )
+            // InternalOCLinEcore.g:17957:1: ( rule__TupleLiteralExpCS__Group_3__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getGroup_3()); 
             }
-            // InternalOCLinEcore.g:17946:1: ( rule__TupleLiteralExpCS__Group_3__0 )*
+            // InternalOCLinEcore.g:17958:1: ( rule__TupleLiteralExpCS__Group_3__0 )*
             loop191:
             do {
                 int alt191=2;
@@ -54067,7 +54135,7 @@
 
                 switch (alt191) {
             	case 1 :
-            	    // InternalOCLinEcore.g:17946:2: rule__TupleLiteralExpCS__Group_3__0
+            	    // InternalOCLinEcore.g:17958:2: rule__TupleLiteralExpCS__Group_3__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__TupleLiteralExpCS__Group_3__0();
@@ -54108,14 +54176,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__4"
-    // InternalOCLinEcore.g:17956:1: rule__TupleLiteralExpCS__Group__4 : rule__TupleLiteralExpCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:17968:1: rule__TupleLiteralExpCS__Group__4 : rule__TupleLiteralExpCS__Group__4__Impl ;
     public final void rule__TupleLiteralExpCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17960:1: ( rule__TupleLiteralExpCS__Group__4__Impl )
-            // InternalOCLinEcore.g:17961:2: rule__TupleLiteralExpCS__Group__4__Impl
+            // InternalOCLinEcore.g:17972:1: ( rule__TupleLiteralExpCS__Group__4__Impl )
+            // InternalOCLinEcore.g:17973:2: rule__TupleLiteralExpCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralExpCS__Group__4__Impl();
@@ -54141,17 +54209,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group__4__Impl"
-    // InternalOCLinEcore.g:17967:1: rule__TupleLiteralExpCS__Group__4__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:17979:1: rule__TupleLiteralExpCS__Group__4__Impl : ( '}' ) ;
     public final void rule__TupleLiteralExpCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:17971:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:17972:1: ( '}' )
+            // InternalOCLinEcore.g:17983:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:17984:1: ( '}' )
             {
-            // InternalOCLinEcore.g:17972:1: ( '}' )
-            // InternalOCLinEcore.g:17973:1: '}'
+            // InternalOCLinEcore.g:17984:1: ( '}' )
+            // InternalOCLinEcore.g:17985:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getRightCurlyBracketKeyword_4()); 
@@ -54182,14 +54250,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group_3__0"
-    // InternalOCLinEcore.g:17996:1: rule__TupleLiteralExpCS__Group_3__0 : rule__TupleLiteralExpCS__Group_3__0__Impl rule__TupleLiteralExpCS__Group_3__1 ;
+    // InternalOCLinEcore.g:18008:1: rule__TupleLiteralExpCS__Group_3__0 : rule__TupleLiteralExpCS__Group_3__0__Impl rule__TupleLiteralExpCS__Group_3__1 ;
     public final void rule__TupleLiteralExpCS__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18000:1: ( rule__TupleLiteralExpCS__Group_3__0__Impl rule__TupleLiteralExpCS__Group_3__1 )
-            // InternalOCLinEcore.g:18001:2: rule__TupleLiteralExpCS__Group_3__0__Impl rule__TupleLiteralExpCS__Group_3__1
+            // InternalOCLinEcore.g:18012:1: ( rule__TupleLiteralExpCS__Group_3__0__Impl rule__TupleLiteralExpCS__Group_3__1 )
+            // InternalOCLinEcore.g:18013:2: rule__TupleLiteralExpCS__Group_3__0__Impl rule__TupleLiteralExpCS__Group_3__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__TupleLiteralExpCS__Group_3__0__Impl();
@@ -54220,17 +54288,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group_3__0__Impl"
-    // InternalOCLinEcore.g:18008:1: rule__TupleLiteralExpCS__Group_3__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:18020:1: rule__TupleLiteralExpCS__Group_3__0__Impl : ( ',' ) ;
     public final void rule__TupleLiteralExpCS__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18012:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:18013:1: ( ',' )
+            // InternalOCLinEcore.g:18024:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:18025:1: ( ',' )
             {
-            // InternalOCLinEcore.g:18013:1: ( ',' )
-            // InternalOCLinEcore.g:18014:1: ','
+            // InternalOCLinEcore.g:18025:1: ( ',' )
+            // InternalOCLinEcore.g:18026:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getCommaKeyword_3_0()); 
@@ -54261,14 +54329,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group_3__1"
-    // InternalOCLinEcore.g:18027:1: rule__TupleLiteralExpCS__Group_3__1 : rule__TupleLiteralExpCS__Group_3__1__Impl ;
+    // InternalOCLinEcore.g:18039:1: rule__TupleLiteralExpCS__Group_3__1 : rule__TupleLiteralExpCS__Group_3__1__Impl ;
     public final void rule__TupleLiteralExpCS__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18031:1: ( rule__TupleLiteralExpCS__Group_3__1__Impl )
-            // InternalOCLinEcore.g:18032:2: rule__TupleLiteralExpCS__Group_3__1__Impl
+            // InternalOCLinEcore.g:18043:1: ( rule__TupleLiteralExpCS__Group_3__1__Impl )
+            // InternalOCLinEcore.g:18044:2: rule__TupleLiteralExpCS__Group_3__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralExpCS__Group_3__1__Impl();
@@ -54294,23 +54362,23 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__Group_3__1__Impl"
-    // InternalOCLinEcore.g:18038:1: rule__TupleLiteralExpCS__Group_3__1__Impl : ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 ) ) ;
+    // InternalOCLinEcore.g:18050:1: rule__TupleLiteralExpCS__Group_3__1__Impl : ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 ) ) ;
     public final void rule__TupleLiteralExpCS__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18042:1: ( ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 ) ) )
-            // InternalOCLinEcore.g:18043:1: ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 ) )
+            // InternalOCLinEcore.g:18054:1: ( ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 ) ) )
+            // InternalOCLinEcore.g:18055:1: ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 ) )
             {
-            // InternalOCLinEcore.g:18043:1: ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 ) )
-            // InternalOCLinEcore.g:18044:1: ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 )
+            // InternalOCLinEcore.g:18055:1: ( ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 ) )
+            // InternalOCLinEcore.g:18056:1: ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getOwnedPartsAssignment_3_1()); 
             }
-            // InternalOCLinEcore.g:18045:1: ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 )
-            // InternalOCLinEcore.g:18045:2: rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1
+            // InternalOCLinEcore.g:18057:1: ( rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 )
+            // InternalOCLinEcore.g:18057:2: rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1();
@@ -54345,14 +54413,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group__0"
-    // InternalOCLinEcore.g:18059:1: rule__TupleLiteralPartCS__Group__0 : rule__TupleLiteralPartCS__Group__0__Impl rule__TupleLiteralPartCS__Group__1 ;
+    // InternalOCLinEcore.g:18071:1: rule__TupleLiteralPartCS__Group__0 : rule__TupleLiteralPartCS__Group__0__Impl rule__TupleLiteralPartCS__Group__1 ;
     public final void rule__TupleLiteralPartCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18063:1: ( rule__TupleLiteralPartCS__Group__0__Impl rule__TupleLiteralPartCS__Group__1 )
-            // InternalOCLinEcore.g:18064:2: rule__TupleLiteralPartCS__Group__0__Impl rule__TupleLiteralPartCS__Group__1
+            // InternalOCLinEcore.g:18075:1: ( rule__TupleLiteralPartCS__Group__0__Impl rule__TupleLiteralPartCS__Group__1 )
+            // InternalOCLinEcore.g:18076:2: rule__TupleLiteralPartCS__Group__0__Impl rule__TupleLiteralPartCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_99);
             rule__TupleLiteralPartCS__Group__0__Impl();
@@ -54383,23 +54451,23 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group__0__Impl"
-    // InternalOCLinEcore.g:18071:1: rule__TupleLiteralPartCS__Group__0__Impl : ( ( rule__TupleLiteralPartCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:18083:1: rule__TupleLiteralPartCS__Group__0__Impl : ( ( rule__TupleLiteralPartCS__NameAssignment_0 ) ) ;
     public final void rule__TupleLiteralPartCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18075:1: ( ( ( rule__TupleLiteralPartCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:18076:1: ( ( rule__TupleLiteralPartCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:18087:1: ( ( ( rule__TupleLiteralPartCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:18088:1: ( ( rule__TupleLiteralPartCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:18076:1: ( ( rule__TupleLiteralPartCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:18077:1: ( rule__TupleLiteralPartCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:18088:1: ( ( rule__TupleLiteralPartCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:18089:1: ( rule__TupleLiteralPartCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:18078:1: ( rule__TupleLiteralPartCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:18078:2: rule__TupleLiteralPartCS__NameAssignment_0
+            // InternalOCLinEcore.g:18090:1: ( rule__TupleLiteralPartCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:18090:2: rule__TupleLiteralPartCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralPartCS__NameAssignment_0();
@@ -54434,14 +54502,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group__1"
-    // InternalOCLinEcore.g:18088:1: rule__TupleLiteralPartCS__Group__1 : rule__TupleLiteralPartCS__Group__1__Impl rule__TupleLiteralPartCS__Group__2 ;
+    // InternalOCLinEcore.g:18100:1: rule__TupleLiteralPartCS__Group__1 : rule__TupleLiteralPartCS__Group__1__Impl rule__TupleLiteralPartCS__Group__2 ;
     public final void rule__TupleLiteralPartCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18092:1: ( rule__TupleLiteralPartCS__Group__1__Impl rule__TupleLiteralPartCS__Group__2 )
-            // InternalOCLinEcore.g:18093:2: rule__TupleLiteralPartCS__Group__1__Impl rule__TupleLiteralPartCS__Group__2
+            // InternalOCLinEcore.g:18104:1: ( rule__TupleLiteralPartCS__Group__1__Impl rule__TupleLiteralPartCS__Group__2 )
+            // InternalOCLinEcore.g:18105:2: rule__TupleLiteralPartCS__Group__1__Impl rule__TupleLiteralPartCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_99);
             rule__TupleLiteralPartCS__Group__1__Impl();
@@ -54472,22 +54540,22 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group__1__Impl"
-    // InternalOCLinEcore.g:18100:1: rule__TupleLiteralPartCS__Group__1__Impl : ( ( rule__TupleLiteralPartCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:18112:1: rule__TupleLiteralPartCS__Group__1__Impl : ( ( rule__TupleLiteralPartCS__Group_1__0 )? ) ;
     public final void rule__TupleLiteralPartCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18104:1: ( ( ( rule__TupleLiteralPartCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:18105:1: ( ( rule__TupleLiteralPartCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:18116:1: ( ( ( rule__TupleLiteralPartCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:18117:1: ( ( rule__TupleLiteralPartCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:18105:1: ( ( rule__TupleLiteralPartCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:18106:1: ( rule__TupleLiteralPartCS__Group_1__0 )?
+            // InternalOCLinEcore.g:18117:1: ( ( rule__TupleLiteralPartCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:18118:1: ( rule__TupleLiteralPartCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:18107:1: ( rule__TupleLiteralPartCS__Group_1__0 )?
+            // InternalOCLinEcore.g:18119:1: ( rule__TupleLiteralPartCS__Group_1__0 )?
             int alt192=2;
             int LA192_0 = input.LA(1);
 
@@ -54496,7 +54564,7 @@
             }
             switch (alt192) {
                 case 1 :
-                    // InternalOCLinEcore.g:18107:2: rule__TupleLiteralPartCS__Group_1__0
+                    // InternalOCLinEcore.g:18119:2: rule__TupleLiteralPartCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TupleLiteralPartCS__Group_1__0();
@@ -54534,14 +54602,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group__2"
-    // InternalOCLinEcore.g:18117:1: rule__TupleLiteralPartCS__Group__2 : rule__TupleLiteralPartCS__Group__2__Impl rule__TupleLiteralPartCS__Group__3 ;
+    // InternalOCLinEcore.g:18129:1: rule__TupleLiteralPartCS__Group__2 : rule__TupleLiteralPartCS__Group__2__Impl rule__TupleLiteralPartCS__Group__3 ;
     public final void rule__TupleLiteralPartCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18121:1: ( rule__TupleLiteralPartCS__Group__2__Impl rule__TupleLiteralPartCS__Group__3 )
-            // InternalOCLinEcore.g:18122:2: rule__TupleLiteralPartCS__Group__2__Impl rule__TupleLiteralPartCS__Group__3
+            // InternalOCLinEcore.g:18133:1: ( rule__TupleLiteralPartCS__Group__2__Impl rule__TupleLiteralPartCS__Group__3 )
+            // InternalOCLinEcore.g:18134:2: rule__TupleLiteralPartCS__Group__2__Impl rule__TupleLiteralPartCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__TupleLiteralPartCS__Group__2__Impl();
@@ -54572,17 +54640,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group__2__Impl"
-    // InternalOCLinEcore.g:18129:1: rule__TupleLiteralPartCS__Group__2__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:18141:1: rule__TupleLiteralPartCS__Group__2__Impl : ( '=' ) ;
     public final void rule__TupleLiteralPartCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18133:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:18134:1: ( '=' )
+            // InternalOCLinEcore.g:18145:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:18146:1: ( '=' )
             {
-            // InternalOCLinEcore.g:18134:1: ( '=' )
-            // InternalOCLinEcore.g:18135:1: '='
+            // InternalOCLinEcore.g:18146:1: ( '=' )
+            // InternalOCLinEcore.g:18147:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getEqualsSignKeyword_2()); 
@@ -54613,14 +54681,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group__3"
-    // InternalOCLinEcore.g:18148:1: rule__TupleLiteralPartCS__Group__3 : rule__TupleLiteralPartCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:18160:1: rule__TupleLiteralPartCS__Group__3 : rule__TupleLiteralPartCS__Group__3__Impl ;
     public final void rule__TupleLiteralPartCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18152:1: ( rule__TupleLiteralPartCS__Group__3__Impl )
-            // InternalOCLinEcore.g:18153:2: rule__TupleLiteralPartCS__Group__3__Impl
+            // InternalOCLinEcore.g:18164:1: ( rule__TupleLiteralPartCS__Group__3__Impl )
+            // InternalOCLinEcore.g:18165:2: rule__TupleLiteralPartCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralPartCS__Group__3__Impl();
@@ -54646,23 +54714,23 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group__3__Impl"
-    // InternalOCLinEcore.g:18159:1: rule__TupleLiteralPartCS__Group__3__Impl : ( ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 ) ) ;
+    // InternalOCLinEcore.g:18171:1: rule__TupleLiteralPartCS__Group__3__Impl : ( ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 ) ) ;
     public final void rule__TupleLiteralPartCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18163:1: ( ( ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 ) ) )
-            // InternalOCLinEcore.g:18164:1: ( ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 ) )
+            // InternalOCLinEcore.g:18175:1: ( ( ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 ) ) )
+            // InternalOCLinEcore.g:18176:1: ( ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 ) )
             {
-            // InternalOCLinEcore.g:18164:1: ( ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 ) )
-            // InternalOCLinEcore.g:18165:1: ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 )
+            // InternalOCLinEcore.g:18176:1: ( ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 ) )
+            // InternalOCLinEcore.g:18177:1: ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getOwnedInitExpressionAssignment_3()); 
             }
-            // InternalOCLinEcore.g:18166:1: ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 )
-            // InternalOCLinEcore.g:18166:2: rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3
+            // InternalOCLinEcore.g:18178:1: ( rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 )
+            // InternalOCLinEcore.g:18178:2: rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3();
@@ -54697,14 +54765,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group_1__0"
-    // InternalOCLinEcore.g:18184:1: rule__TupleLiteralPartCS__Group_1__0 : rule__TupleLiteralPartCS__Group_1__0__Impl rule__TupleLiteralPartCS__Group_1__1 ;
+    // InternalOCLinEcore.g:18196:1: rule__TupleLiteralPartCS__Group_1__0 : rule__TupleLiteralPartCS__Group_1__0__Impl rule__TupleLiteralPartCS__Group_1__1 ;
     public final void rule__TupleLiteralPartCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18188:1: ( rule__TupleLiteralPartCS__Group_1__0__Impl rule__TupleLiteralPartCS__Group_1__1 )
-            // InternalOCLinEcore.g:18189:2: rule__TupleLiteralPartCS__Group_1__0__Impl rule__TupleLiteralPartCS__Group_1__1
+            // InternalOCLinEcore.g:18200:1: ( rule__TupleLiteralPartCS__Group_1__0__Impl rule__TupleLiteralPartCS__Group_1__1 )
+            // InternalOCLinEcore.g:18201:2: rule__TupleLiteralPartCS__Group_1__0__Impl rule__TupleLiteralPartCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__TupleLiteralPartCS__Group_1__0__Impl();
@@ -54735,17 +54803,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:18196:1: rule__TupleLiteralPartCS__Group_1__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:18208:1: rule__TupleLiteralPartCS__Group_1__0__Impl : ( ':' ) ;
     public final void rule__TupleLiteralPartCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18200:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:18201:1: ( ':' )
+            // InternalOCLinEcore.g:18212:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:18213:1: ( ':' )
             {
-            // InternalOCLinEcore.g:18201:1: ( ':' )
-            // InternalOCLinEcore.g:18202:1: ':'
+            // InternalOCLinEcore.g:18213:1: ( ':' )
+            // InternalOCLinEcore.g:18214:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getColonKeyword_1_0()); 
@@ -54776,14 +54844,14 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group_1__1"
-    // InternalOCLinEcore.g:18215:1: rule__TupleLiteralPartCS__Group_1__1 : rule__TupleLiteralPartCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:18227:1: rule__TupleLiteralPartCS__Group_1__1 : rule__TupleLiteralPartCS__Group_1__1__Impl ;
     public final void rule__TupleLiteralPartCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18219:1: ( rule__TupleLiteralPartCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:18220:2: rule__TupleLiteralPartCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:18231:1: ( rule__TupleLiteralPartCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:18232:2: rule__TupleLiteralPartCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralPartCS__Group_1__1__Impl();
@@ -54809,23 +54877,23 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:18226:1: rule__TupleLiteralPartCS__Group_1__1__Impl : ( ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:18238:1: rule__TupleLiteralPartCS__Group_1__1__Impl : ( ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 ) ) ;
     public final void rule__TupleLiteralPartCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18230:1: ( ( ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:18231:1: ( ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:18242:1: ( ( ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:18243:1: ( ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:18231:1: ( ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 ) )
-            // InternalOCLinEcore.g:18232:1: ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:18243:1: ( ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:18244:1: ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getOwnedTypeAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:18233:1: ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 )
-            // InternalOCLinEcore.g:18233:2: rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1
+            // InternalOCLinEcore.g:18245:1: ( rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:18245:2: rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1();
@@ -54860,14 +54928,14 @@
 
 
     // $ANTLR start "rule__UnlimitedNaturalLiteralExpCS__Group__0"
-    // InternalOCLinEcore.g:18247:1: rule__UnlimitedNaturalLiteralExpCS__Group__0 : rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl rule__UnlimitedNaturalLiteralExpCS__Group__1 ;
+    // InternalOCLinEcore.g:18259:1: rule__UnlimitedNaturalLiteralExpCS__Group__0 : rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl rule__UnlimitedNaturalLiteralExpCS__Group__1 ;
     public final void rule__UnlimitedNaturalLiteralExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18251:1: ( rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl rule__UnlimitedNaturalLiteralExpCS__Group__1 )
-            // InternalOCLinEcore.g:18252:2: rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl rule__UnlimitedNaturalLiteralExpCS__Group__1
+            // InternalOCLinEcore.g:18263:1: ( rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl rule__UnlimitedNaturalLiteralExpCS__Group__1 )
+            // InternalOCLinEcore.g:18264:2: rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl rule__UnlimitedNaturalLiteralExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_100);
             rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl();
@@ -54898,23 +54966,23 @@
 
 
     // $ANTLR start "rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:18259:1: rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:18271:1: rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl : ( () ) ;
     public final void rule__UnlimitedNaturalLiteralExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18263:1: ( ( () ) )
-            // InternalOCLinEcore.g:18264:1: ( () )
+            // InternalOCLinEcore.g:18275:1: ( ( () ) )
+            // InternalOCLinEcore.g:18276:1: ( () )
             {
-            // InternalOCLinEcore.g:18264:1: ( () )
-            // InternalOCLinEcore.g:18265:1: ()
+            // InternalOCLinEcore.g:18276:1: ( () )
+            // InternalOCLinEcore.g:18277:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnlimitedNaturalLiteralExpCSAccess().getUnlimitedNaturalLiteralExpCSAction_0()); 
             }
-            // InternalOCLinEcore.g:18266:1: ()
-            // InternalOCLinEcore.g:18268:1: 
+            // InternalOCLinEcore.g:18278:1: ()
+            // InternalOCLinEcore.g:18280:1: 
             {
             }
 
@@ -54939,14 +55007,14 @@
 
 
     // $ANTLR start "rule__UnlimitedNaturalLiteralExpCS__Group__1"
-    // InternalOCLinEcore.g:18278:1: rule__UnlimitedNaturalLiteralExpCS__Group__1 : rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:18290:1: rule__UnlimitedNaturalLiteralExpCS__Group__1 : rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl ;
     public final void rule__UnlimitedNaturalLiteralExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18282:1: ( rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl )
-            // InternalOCLinEcore.g:18283:2: rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl
+            // InternalOCLinEcore.g:18294:1: ( rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl )
+            // InternalOCLinEcore.g:18295:2: rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl();
@@ -54972,17 +55040,17 @@
 
 
     // $ANTLR start "rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:18289:1: rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl : ( '*' ) ;
+    // InternalOCLinEcore.g:18301:1: rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl : ( '*' ) ;
     public final void rule__UnlimitedNaturalLiteralExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18293:1: ( ( '*' ) )
-            // InternalOCLinEcore.g:18294:1: ( '*' )
+            // InternalOCLinEcore.g:18305:1: ( ( '*' ) )
+            // InternalOCLinEcore.g:18306:1: ( '*' )
             {
-            // InternalOCLinEcore.g:18294:1: ( '*' )
-            // InternalOCLinEcore.g:18295:1: '*'
+            // InternalOCLinEcore.g:18306:1: ( '*' )
+            // InternalOCLinEcore.g:18307:1: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnlimitedNaturalLiteralExpCSAccess().getAsteriskKeyword_1()); 
@@ -55013,14 +55081,14 @@
 
 
     // $ANTLR start "rule__InvalidLiteralExpCS__Group__0"
-    // InternalOCLinEcore.g:18312:1: rule__InvalidLiteralExpCS__Group__0 : rule__InvalidLiteralExpCS__Group__0__Impl rule__InvalidLiteralExpCS__Group__1 ;
+    // InternalOCLinEcore.g:18324:1: rule__InvalidLiteralExpCS__Group__0 : rule__InvalidLiteralExpCS__Group__0__Impl rule__InvalidLiteralExpCS__Group__1 ;
     public final void rule__InvalidLiteralExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18316:1: ( rule__InvalidLiteralExpCS__Group__0__Impl rule__InvalidLiteralExpCS__Group__1 )
-            // InternalOCLinEcore.g:18317:2: rule__InvalidLiteralExpCS__Group__0__Impl rule__InvalidLiteralExpCS__Group__1
+            // InternalOCLinEcore.g:18328:1: ( rule__InvalidLiteralExpCS__Group__0__Impl rule__InvalidLiteralExpCS__Group__1 )
+            // InternalOCLinEcore.g:18329:2: rule__InvalidLiteralExpCS__Group__0__Impl rule__InvalidLiteralExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_101);
             rule__InvalidLiteralExpCS__Group__0__Impl();
@@ -55051,23 +55119,23 @@
 
 
     // $ANTLR start "rule__InvalidLiteralExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:18324:1: rule__InvalidLiteralExpCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:18336:1: rule__InvalidLiteralExpCS__Group__0__Impl : ( () ) ;
     public final void rule__InvalidLiteralExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18328:1: ( ( () ) )
-            // InternalOCLinEcore.g:18329:1: ( () )
+            // InternalOCLinEcore.g:18340:1: ( ( () ) )
+            // InternalOCLinEcore.g:18341:1: ( () )
             {
-            // InternalOCLinEcore.g:18329:1: ( () )
-            // InternalOCLinEcore.g:18330:1: ()
+            // InternalOCLinEcore.g:18341:1: ( () )
+            // InternalOCLinEcore.g:18342:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvalidLiteralExpCSAccess().getInvalidLiteralExpCSAction_0()); 
             }
-            // InternalOCLinEcore.g:18331:1: ()
-            // InternalOCLinEcore.g:18333:1: 
+            // InternalOCLinEcore.g:18343:1: ()
+            // InternalOCLinEcore.g:18345:1: 
             {
             }
 
@@ -55092,14 +55160,14 @@
 
 
     // $ANTLR start "rule__InvalidLiteralExpCS__Group__1"
-    // InternalOCLinEcore.g:18343:1: rule__InvalidLiteralExpCS__Group__1 : rule__InvalidLiteralExpCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:18355:1: rule__InvalidLiteralExpCS__Group__1 : rule__InvalidLiteralExpCS__Group__1__Impl ;
     public final void rule__InvalidLiteralExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18347:1: ( rule__InvalidLiteralExpCS__Group__1__Impl )
-            // InternalOCLinEcore.g:18348:2: rule__InvalidLiteralExpCS__Group__1__Impl
+            // InternalOCLinEcore.g:18359:1: ( rule__InvalidLiteralExpCS__Group__1__Impl )
+            // InternalOCLinEcore.g:18360:2: rule__InvalidLiteralExpCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__InvalidLiteralExpCS__Group__1__Impl();
@@ -55125,17 +55193,17 @@
 
 
     // $ANTLR start "rule__InvalidLiteralExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:18354:1: rule__InvalidLiteralExpCS__Group__1__Impl : ( 'invalid' ) ;
+    // InternalOCLinEcore.g:18366:1: rule__InvalidLiteralExpCS__Group__1__Impl : ( 'invalid' ) ;
     public final void rule__InvalidLiteralExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18358:1: ( ( 'invalid' ) )
-            // InternalOCLinEcore.g:18359:1: ( 'invalid' )
+            // InternalOCLinEcore.g:18370:1: ( ( 'invalid' ) )
+            // InternalOCLinEcore.g:18371:1: ( 'invalid' )
             {
-            // InternalOCLinEcore.g:18359:1: ( 'invalid' )
-            // InternalOCLinEcore.g:18360:1: 'invalid'
+            // InternalOCLinEcore.g:18371:1: ( 'invalid' )
+            // InternalOCLinEcore.g:18372:1: 'invalid'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvalidLiteralExpCSAccess().getInvalidKeyword_1()); 
@@ -55166,14 +55234,14 @@
 
 
     // $ANTLR start "rule__NullLiteralExpCS__Group__0"
-    // InternalOCLinEcore.g:18377:1: rule__NullLiteralExpCS__Group__0 : rule__NullLiteralExpCS__Group__0__Impl rule__NullLiteralExpCS__Group__1 ;
+    // InternalOCLinEcore.g:18389:1: rule__NullLiteralExpCS__Group__0 : rule__NullLiteralExpCS__Group__0__Impl rule__NullLiteralExpCS__Group__1 ;
     public final void rule__NullLiteralExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18381:1: ( rule__NullLiteralExpCS__Group__0__Impl rule__NullLiteralExpCS__Group__1 )
-            // InternalOCLinEcore.g:18382:2: rule__NullLiteralExpCS__Group__0__Impl rule__NullLiteralExpCS__Group__1
+            // InternalOCLinEcore.g:18393:1: ( rule__NullLiteralExpCS__Group__0__Impl rule__NullLiteralExpCS__Group__1 )
+            // InternalOCLinEcore.g:18394:2: rule__NullLiteralExpCS__Group__0__Impl rule__NullLiteralExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_102);
             rule__NullLiteralExpCS__Group__0__Impl();
@@ -55204,23 +55272,23 @@
 
 
     // $ANTLR start "rule__NullLiteralExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:18389:1: rule__NullLiteralExpCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:18401:1: rule__NullLiteralExpCS__Group__0__Impl : ( () ) ;
     public final void rule__NullLiteralExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18393:1: ( ( () ) )
-            // InternalOCLinEcore.g:18394:1: ( () )
+            // InternalOCLinEcore.g:18405:1: ( ( () ) )
+            // InternalOCLinEcore.g:18406:1: ( () )
             {
-            // InternalOCLinEcore.g:18394:1: ( () )
-            // InternalOCLinEcore.g:18395:1: ()
+            // InternalOCLinEcore.g:18406:1: ( () )
+            // InternalOCLinEcore.g:18407:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNullLiteralExpCSAccess().getNullLiteralExpCSAction_0()); 
             }
-            // InternalOCLinEcore.g:18396:1: ()
-            // InternalOCLinEcore.g:18398:1: 
+            // InternalOCLinEcore.g:18408:1: ()
+            // InternalOCLinEcore.g:18410:1: 
             {
             }
 
@@ -55245,14 +55313,14 @@
 
 
     // $ANTLR start "rule__NullLiteralExpCS__Group__1"
-    // InternalOCLinEcore.g:18408:1: rule__NullLiteralExpCS__Group__1 : rule__NullLiteralExpCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:18420:1: rule__NullLiteralExpCS__Group__1 : rule__NullLiteralExpCS__Group__1__Impl ;
     public final void rule__NullLiteralExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18412:1: ( rule__NullLiteralExpCS__Group__1__Impl )
-            // InternalOCLinEcore.g:18413:2: rule__NullLiteralExpCS__Group__1__Impl
+            // InternalOCLinEcore.g:18424:1: ( rule__NullLiteralExpCS__Group__1__Impl )
+            // InternalOCLinEcore.g:18425:2: rule__NullLiteralExpCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NullLiteralExpCS__Group__1__Impl();
@@ -55278,17 +55346,17 @@
 
 
     // $ANTLR start "rule__NullLiteralExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:18419:1: rule__NullLiteralExpCS__Group__1__Impl : ( 'null' ) ;
+    // InternalOCLinEcore.g:18431:1: rule__NullLiteralExpCS__Group__1__Impl : ( 'null' ) ;
     public final void rule__NullLiteralExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18423:1: ( ( 'null' ) )
-            // InternalOCLinEcore.g:18424:1: ( 'null' )
+            // InternalOCLinEcore.g:18435:1: ( ( 'null' ) )
+            // InternalOCLinEcore.g:18436:1: ( 'null' )
             {
-            // InternalOCLinEcore.g:18424:1: ( 'null' )
-            // InternalOCLinEcore.g:18425:1: 'null'
+            // InternalOCLinEcore.g:18436:1: ( 'null' )
+            // InternalOCLinEcore.g:18437:1: 'null'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNullLiteralExpCSAccess().getNullKeyword_1()); 
@@ -55319,14 +55387,14 @@
 
 
     // $ANTLR start "rule__TypeLiteralWithMultiplicityCS__Group__0"
-    // InternalOCLinEcore.g:18442:1: rule__TypeLiteralWithMultiplicityCS__Group__0 : rule__TypeLiteralWithMultiplicityCS__Group__0__Impl rule__TypeLiteralWithMultiplicityCS__Group__1 ;
+    // InternalOCLinEcore.g:18454:1: rule__TypeLiteralWithMultiplicityCS__Group__0 : rule__TypeLiteralWithMultiplicityCS__Group__0__Impl rule__TypeLiteralWithMultiplicityCS__Group__1 ;
     public final void rule__TypeLiteralWithMultiplicityCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18446:1: ( rule__TypeLiteralWithMultiplicityCS__Group__0__Impl rule__TypeLiteralWithMultiplicityCS__Group__1 )
-            // InternalOCLinEcore.g:18447:2: rule__TypeLiteralWithMultiplicityCS__Group__0__Impl rule__TypeLiteralWithMultiplicityCS__Group__1
+            // InternalOCLinEcore.g:18458:1: ( rule__TypeLiteralWithMultiplicityCS__Group__0__Impl rule__TypeLiteralWithMultiplicityCS__Group__1 )
+            // InternalOCLinEcore.g:18459:2: rule__TypeLiteralWithMultiplicityCS__Group__0__Impl rule__TypeLiteralWithMultiplicityCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_81);
             rule__TypeLiteralWithMultiplicityCS__Group__0__Impl();
@@ -55357,17 +55425,17 @@
 
 
     // $ANTLR start "rule__TypeLiteralWithMultiplicityCS__Group__0__Impl"
-    // InternalOCLinEcore.g:18454:1: rule__TypeLiteralWithMultiplicityCS__Group__0__Impl : ( ruleTypeLiteralCS ) ;
+    // InternalOCLinEcore.g:18466:1: rule__TypeLiteralWithMultiplicityCS__Group__0__Impl : ( ruleTypeLiteralCS ) ;
     public final void rule__TypeLiteralWithMultiplicityCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18458:1: ( ( ruleTypeLiteralCS ) )
-            // InternalOCLinEcore.g:18459:1: ( ruleTypeLiteralCS )
+            // InternalOCLinEcore.g:18470:1: ( ( ruleTypeLiteralCS ) )
+            // InternalOCLinEcore.g:18471:1: ( ruleTypeLiteralCS )
             {
-            // InternalOCLinEcore.g:18459:1: ( ruleTypeLiteralCS )
-            // InternalOCLinEcore.g:18460:1: ruleTypeLiteralCS
+            // InternalOCLinEcore.g:18471:1: ( ruleTypeLiteralCS )
+            // InternalOCLinEcore.g:18472:1: ruleTypeLiteralCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeLiteralWithMultiplicityCSAccess().getTypeLiteralCSParserRuleCall_0()); 
@@ -55402,14 +55470,14 @@
 
 
     // $ANTLR start "rule__TypeLiteralWithMultiplicityCS__Group__1"
-    // InternalOCLinEcore.g:18471:1: rule__TypeLiteralWithMultiplicityCS__Group__1 : rule__TypeLiteralWithMultiplicityCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:18483:1: rule__TypeLiteralWithMultiplicityCS__Group__1 : rule__TypeLiteralWithMultiplicityCS__Group__1__Impl ;
     public final void rule__TypeLiteralWithMultiplicityCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18475:1: ( rule__TypeLiteralWithMultiplicityCS__Group__1__Impl )
-            // InternalOCLinEcore.g:18476:2: rule__TypeLiteralWithMultiplicityCS__Group__1__Impl
+            // InternalOCLinEcore.g:18487:1: ( rule__TypeLiteralWithMultiplicityCS__Group__1__Impl )
+            // InternalOCLinEcore.g:18488:2: rule__TypeLiteralWithMultiplicityCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeLiteralWithMultiplicityCS__Group__1__Impl();
@@ -55435,22 +55503,22 @@
 
 
     // $ANTLR start "rule__TypeLiteralWithMultiplicityCS__Group__1__Impl"
-    // InternalOCLinEcore.g:18482:1: rule__TypeLiteralWithMultiplicityCS__Group__1__Impl : ( ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )? ) ;
+    // InternalOCLinEcore.g:18494:1: rule__TypeLiteralWithMultiplicityCS__Group__1__Impl : ( ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )? ) ;
     public final void rule__TypeLiteralWithMultiplicityCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18486:1: ( ( ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )? ) )
-            // InternalOCLinEcore.g:18487:1: ( ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )? )
+            // InternalOCLinEcore.g:18498:1: ( ( ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )? ) )
+            // InternalOCLinEcore.g:18499:1: ( ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )? )
             {
-            // InternalOCLinEcore.g:18487:1: ( ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )? )
-            // InternalOCLinEcore.g:18488:1: ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )?
+            // InternalOCLinEcore.g:18499:1: ( ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )? )
+            // InternalOCLinEcore.g:18500:1: ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeLiteralWithMultiplicityCSAccess().getOwnedMultiplicityAssignment_1()); 
             }
-            // InternalOCLinEcore.g:18489:1: ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )?
+            // InternalOCLinEcore.g:18501:1: ( rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 )?
             int alt193=2;
             int LA193_0 = input.LA(1);
 
@@ -55459,7 +55527,7 @@
             }
             switch (alt193) {
                 case 1 :
-                    // InternalOCLinEcore.g:18489:2: rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1
+                    // InternalOCLinEcore.g:18501:2: rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1();
@@ -55497,14 +55565,14 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group__0"
-    // InternalOCLinEcore.g:18503:1: rule__TypeNameExpCS__Group__0 : rule__TypeNameExpCS__Group__0__Impl rule__TypeNameExpCS__Group__1 ;
+    // InternalOCLinEcore.g:18515:1: rule__TypeNameExpCS__Group__0 : rule__TypeNameExpCS__Group__0__Impl rule__TypeNameExpCS__Group__1 ;
     public final void rule__TypeNameExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18507:1: ( rule__TypeNameExpCS__Group__0__Impl rule__TypeNameExpCS__Group__1 )
-            // InternalOCLinEcore.g:18508:2: rule__TypeNameExpCS__Group__0__Impl rule__TypeNameExpCS__Group__1
+            // InternalOCLinEcore.g:18519:1: ( rule__TypeNameExpCS__Group__0__Impl rule__TypeNameExpCS__Group__1 )
+            // InternalOCLinEcore.g:18520:2: rule__TypeNameExpCS__Group__0__Impl rule__TypeNameExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_89);
             rule__TypeNameExpCS__Group__0__Impl();
@@ -55535,23 +55603,23 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:18515:1: rule__TypeNameExpCS__Group__0__Impl : ( ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:18527:1: rule__TypeNameExpCS__Group__0__Impl : ( ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 ) ) ;
     public final void rule__TypeNameExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18519:1: ( ( ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:18520:1: ( ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 ) )
+            // InternalOCLinEcore.g:18531:1: ( ( ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:18532:1: ( ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:18520:1: ( ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 ) )
-            // InternalOCLinEcore.g:18521:1: ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 )
+            // InternalOCLinEcore.g:18532:1: ( ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 ) )
+            // InternalOCLinEcore.g:18533:1: ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getOwnedPathNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:18522:1: ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 )
-            // InternalOCLinEcore.g:18522:2: rule__TypeNameExpCS__OwnedPathNameAssignment_0
+            // InternalOCLinEcore.g:18534:1: ( rule__TypeNameExpCS__OwnedPathNameAssignment_0 )
+            // InternalOCLinEcore.g:18534:2: rule__TypeNameExpCS__OwnedPathNameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeNameExpCS__OwnedPathNameAssignment_0();
@@ -55586,14 +55654,14 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group__1"
-    // InternalOCLinEcore.g:18532:1: rule__TypeNameExpCS__Group__1 : rule__TypeNameExpCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:18544:1: rule__TypeNameExpCS__Group__1 : rule__TypeNameExpCS__Group__1__Impl ;
     public final void rule__TypeNameExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18536:1: ( rule__TypeNameExpCS__Group__1__Impl )
-            // InternalOCLinEcore.g:18537:2: rule__TypeNameExpCS__Group__1__Impl
+            // InternalOCLinEcore.g:18548:1: ( rule__TypeNameExpCS__Group__1__Impl )
+            // InternalOCLinEcore.g:18549:2: rule__TypeNameExpCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeNameExpCS__Group__1__Impl();
@@ -55619,22 +55687,22 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:18543:1: rule__TypeNameExpCS__Group__1__Impl : ( ( rule__TypeNameExpCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:18555:1: rule__TypeNameExpCS__Group__1__Impl : ( ( rule__TypeNameExpCS__Group_1__0 )? ) ;
     public final void rule__TypeNameExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18547:1: ( ( ( rule__TypeNameExpCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:18548:1: ( ( rule__TypeNameExpCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:18559:1: ( ( ( rule__TypeNameExpCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:18560:1: ( ( rule__TypeNameExpCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:18548:1: ( ( rule__TypeNameExpCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:18549:1: ( rule__TypeNameExpCS__Group_1__0 )?
+            // InternalOCLinEcore.g:18560:1: ( ( rule__TypeNameExpCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:18561:1: ( rule__TypeNameExpCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:18550:1: ( rule__TypeNameExpCS__Group_1__0 )?
+            // InternalOCLinEcore.g:18562:1: ( rule__TypeNameExpCS__Group_1__0 )?
             int alt194=2;
             int LA194_0 = input.LA(1);
 
@@ -55643,7 +55711,7 @@
             }
             switch (alt194) {
                 case 1 :
-                    // InternalOCLinEcore.g:18550:2: rule__TypeNameExpCS__Group_1__0
+                    // InternalOCLinEcore.g:18562:2: rule__TypeNameExpCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypeNameExpCS__Group_1__0();
@@ -55681,14 +55749,14 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1__0"
-    // InternalOCLinEcore.g:18564:1: rule__TypeNameExpCS__Group_1__0 : rule__TypeNameExpCS__Group_1__0__Impl rule__TypeNameExpCS__Group_1__1 ;
+    // InternalOCLinEcore.g:18576:1: rule__TypeNameExpCS__Group_1__0 : rule__TypeNameExpCS__Group_1__0__Impl rule__TypeNameExpCS__Group_1__1 ;
     public final void rule__TypeNameExpCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18568:1: ( rule__TypeNameExpCS__Group_1__0__Impl rule__TypeNameExpCS__Group_1__1 )
-            // InternalOCLinEcore.g:18569:2: rule__TypeNameExpCS__Group_1__0__Impl rule__TypeNameExpCS__Group_1__1
+            // InternalOCLinEcore.g:18580:1: ( rule__TypeNameExpCS__Group_1__0__Impl rule__TypeNameExpCS__Group_1__1 )
+            // InternalOCLinEcore.g:18581:2: rule__TypeNameExpCS__Group_1__0__Impl rule__TypeNameExpCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_89);
             rule__TypeNameExpCS__Group_1__0__Impl();
@@ -55719,23 +55787,23 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:18576:1: rule__TypeNameExpCS__Group_1__0__Impl : ( ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 ) ) ;
+    // InternalOCLinEcore.g:18588:1: rule__TypeNameExpCS__Group_1__0__Impl : ( ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 ) ) ;
     public final void rule__TypeNameExpCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18580:1: ( ( ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 ) ) )
-            // InternalOCLinEcore.g:18581:1: ( ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 ) )
+            // InternalOCLinEcore.g:18592:1: ( ( ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 ) ) )
+            // InternalOCLinEcore.g:18593:1: ( ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 ) )
             {
-            // InternalOCLinEcore.g:18581:1: ( ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 ) )
-            // InternalOCLinEcore.g:18582:1: ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 )
+            // InternalOCLinEcore.g:18593:1: ( ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 ) )
+            // InternalOCLinEcore.g:18594:1: ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getOwnedCurlyBracketedClauseAssignment_1_0()); 
             }
-            // InternalOCLinEcore.g:18583:1: ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 )
-            // InternalOCLinEcore.g:18583:2: rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0
+            // InternalOCLinEcore.g:18595:1: ( rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 )
+            // InternalOCLinEcore.g:18595:2: rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0();
@@ -55770,14 +55838,14 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1__1"
-    // InternalOCLinEcore.g:18593:1: rule__TypeNameExpCS__Group_1__1 : rule__TypeNameExpCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:18605:1: rule__TypeNameExpCS__Group_1__1 : rule__TypeNameExpCS__Group_1__1__Impl ;
     public final void rule__TypeNameExpCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18597:1: ( rule__TypeNameExpCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:18598:2: rule__TypeNameExpCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:18609:1: ( rule__TypeNameExpCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:18610:2: rule__TypeNameExpCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeNameExpCS__Group_1__1__Impl();
@@ -55803,22 +55871,22 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:18604:1: rule__TypeNameExpCS__Group_1__1__Impl : ( ( rule__TypeNameExpCS__Group_1_1__0 )? ) ;
+    // InternalOCLinEcore.g:18616:1: rule__TypeNameExpCS__Group_1__1__Impl : ( ( rule__TypeNameExpCS__Group_1_1__0 )? ) ;
     public final void rule__TypeNameExpCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18608:1: ( ( ( rule__TypeNameExpCS__Group_1_1__0 )? ) )
-            // InternalOCLinEcore.g:18609:1: ( ( rule__TypeNameExpCS__Group_1_1__0 )? )
+            // InternalOCLinEcore.g:18620:1: ( ( ( rule__TypeNameExpCS__Group_1_1__0 )? ) )
+            // InternalOCLinEcore.g:18621:1: ( ( rule__TypeNameExpCS__Group_1_1__0 )? )
             {
-            // InternalOCLinEcore.g:18609:1: ( ( rule__TypeNameExpCS__Group_1_1__0 )? )
-            // InternalOCLinEcore.g:18610:1: ( rule__TypeNameExpCS__Group_1_1__0 )?
+            // InternalOCLinEcore.g:18621:1: ( ( rule__TypeNameExpCS__Group_1_1__0 )? )
+            // InternalOCLinEcore.g:18622:1: ( rule__TypeNameExpCS__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getGroup_1_1()); 
             }
-            // InternalOCLinEcore.g:18611:1: ( rule__TypeNameExpCS__Group_1_1__0 )?
+            // InternalOCLinEcore.g:18623:1: ( rule__TypeNameExpCS__Group_1_1__0 )?
             int alt195=2;
             int LA195_0 = input.LA(1);
 
@@ -55827,7 +55895,7 @@
             }
             switch (alt195) {
                 case 1 :
-                    // InternalOCLinEcore.g:18611:2: rule__TypeNameExpCS__Group_1_1__0
+                    // InternalOCLinEcore.g:18623:2: rule__TypeNameExpCS__Group_1_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypeNameExpCS__Group_1_1__0();
@@ -55865,14 +55933,14 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1_1__0"
-    // InternalOCLinEcore.g:18625:1: rule__TypeNameExpCS__Group_1_1__0 : rule__TypeNameExpCS__Group_1_1__0__Impl rule__TypeNameExpCS__Group_1_1__1 ;
+    // InternalOCLinEcore.g:18637:1: rule__TypeNameExpCS__Group_1_1__0 : rule__TypeNameExpCS__Group_1_1__0__Impl rule__TypeNameExpCS__Group_1_1__1 ;
     public final void rule__TypeNameExpCS__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18629:1: ( rule__TypeNameExpCS__Group_1_1__0__Impl rule__TypeNameExpCS__Group_1_1__1 )
-            // InternalOCLinEcore.g:18630:2: rule__TypeNameExpCS__Group_1_1__0__Impl rule__TypeNameExpCS__Group_1_1__1
+            // InternalOCLinEcore.g:18641:1: ( rule__TypeNameExpCS__Group_1_1__0__Impl rule__TypeNameExpCS__Group_1_1__1 )
+            // InternalOCLinEcore.g:18642:2: rule__TypeNameExpCS__Group_1_1__0__Impl rule__TypeNameExpCS__Group_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__TypeNameExpCS__Group_1_1__0__Impl();
@@ -55903,17 +55971,17 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1_1__0__Impl"
-    // InternalOCLinEcore.g:18637:1: rule__TypeNameExpCS__Group_1_1__0__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:18649:1: rule__TypeNameExpCS__Group_1_1__0__Impl : ( '{' ) ;
     public final void rule__TypeNameExpCS__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18641:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:18642:1: ( '{' )
+            // InternalOCLinEcore.g:18653:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:18654:1: ( '{' )
             {
-            // InternalOCLinEcore.g:18642:1: ( '{' )
-            // InternalOCLinEcore.g:18643:1: '{'
+            // InternalOCLinEcore.g:18654:1: ( '{' )
+            // InternalOCLinEcore.g:18655:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getLeftCurlyBracketKeyword_1_1_0()); 
@@ -55944,14 +56012,14 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1_1__1"
-    // InternalOCLinEcore.g:18656:1: rule__TypeNameExpCS__Group_1_1__1 : rule__TypeNameExpCS__Group_1_1__1__Impl rule__TypeNameExpCS__Group_1_1__2 ;
+    // InternalOCLinEcore.g:18668:1: rule__TypeNameExpCS__Group_1_1__1 : rule__TypeNameExpCS__Group_1_1__1__Impl rule__TypeNameExpCS__Group_1_1__2 ;
     public final void rule__TypeNameExpCS__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18660:1: ( rule__TypeNameExpCS__Group_1_1__1__Impl rule__TypeNameExpCS__Group_1_1__2 )
-            // InternalOCLinEcore.g:18661:2: rule__TypeNameExpCS__Group_1_1__1__Impl rule__TypeNameExpCS__Group_1_1__2
+            // InternalOCLinEcore.g:18672:1: ( rule__TypeNameExpCS__Group_1_1__1__Impl rule__TypeNameExpCS__Group_1_1__2 )
+            // InternalOCLinEcore.g:18673:2: rule__TypeNameExpCS__Group_1_1__1__Impl rule__TypeNameExpCS__Group_1_1__2
             {
             pushFollow(FollowSets000.FOLLOW_22);
             rule__TypeNameExpCS__Group_1_1__1__Impl();
@@ -55982,23 +56050,23 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1_1__1__Impl"
-    // InternalOCLinEcore.g:18668:1: rule__TypeNameExpCS__Group_1_1__1__Impl : ( ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 ) ) ;
+    // InternalOCLinEcore.g:18680:1: rule__TypeNameExpCS__Group_1_1__1__Impl : ( ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 ) ) ;
     public final void rule__TypeNameExpCS__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18672:1: ( ( ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 ) ) )
-            // InternalOCLinEcore.g:18673:1: ( ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 ) )
+            // InternalOCLinEcore.g:18684:1: ( ( ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 ) ) )
+            // InternalOCLinEcore.g:18685:1: ( ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 ) )
             {
-            // InternalOCLinEcore.g:18673:1: ( ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 ) )
-            // InternalOCLinEcore.g:18674:1: ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 )
+            // InternalOCLinEcore.g:18685:1: ( ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 ) )
+            // InternalOCLinEcore.g:18686:1: ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getOwnedPatternGuardAssignment_1_1_1()); 
             }
-            // InternalOCLinEcore.g:18675:1: ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 )
-            // InternalOCLinEcore.g:18675:2: rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1
+            // InternalOCLinEcore.g:18687:1: ( rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 )
+            // InternalOCLinEcore.g:18687:2: rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1();
@@ -56033,14 +56101,14 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1_1__2"
-    // InternalOCLinEcore.g:18685:1: rule__TypeNameExpCS__Group_1_1__2 : rule__TypeNameExpCS__Group_1_1__2__Impl ;
+    // InternalOCLinEcore.g:18697:1: rule__TypeNameExpCS__Group_1_1__2 : rule__TypeNameExpCS__Group_1_1__2__Impl ;
     public final void rule__TypeNameExpCS__Group_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18689:1: ( rule__TypeNameExpCS__Group_1_1__2__Impl )
-            // InternalOCLinEcore.g:18690:2: rule__TypeNameExpCS__Group_1_1__2__Impl
+            // InternalOCLinEcore.g:18701:1: ( rule__TypeNameExpCS__Group_1_1__2__Impl )
+            // InternalOCLinEcore.g:18702:2: rule__TypeNameExpCS__Group_1_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeNameExpCS__Group_1_1__2__Impl();
@@ -56066,17 +56134,17 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__Group_1_1__2__Impl"
-    // InternalOCLinEcore.g:18696:1: rule__TypeNameExpCS__Group_1_1__2__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:18708:1: rule__TypeNameExpCS__Group_1_1__2__Impl : ( '}' ) ;
     public final void rule__TypeNameExpCS__Group_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18700:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:18701:1: ( '}' )
+            // InternalOCLinEcore.g:18712:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:18713:1: ( '}' )
             {
-            // InternalOCLinEcore.g:18701:1: ( '}' )
-            // InternalOCLinEcore.g:18702:1: '}'
+            // InternalOCLinEcore.g:18713:1: ( '}' )
+            // InternalOCLinEcore.g:18714:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getRightCurlyBracketKeyword_1_1_2()); 
@@ -56107,14 +56175,14 @@
 
 
     // $ANTLR start "rule__TypeExpCS__Group__0"
-    // InternalOCLinEcore.g:18721:1: rule__TypeExpCS__Group__0 : rule__TypeExpCS__Group__0__Impl rule__TypeExpCS__Group__1 ;
+    // InternalOCLinEcore.g:18733:1: rule__TypeExpCS__Group__0 : rule__TypeExpCS__Group__0__Impl rule__TypeExpCS__Group__1 ;
     public final void rule__TypeExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18725:1: ( rule__TypeExpCS__Group__0__Impl rule__TypeExpCS__Group__1 )
-            // InternalOCLinEcore.g:18726:2: rule__TypeExpCS__Group__0__Impl rule__TypeExpCS__Group__1
+            // InternalOCLinEcore.g:18737:1: ( rule__TypeExpCS__Group__0__Impl rule__TypeExpCS__Group__1 )
+            // InternalOCLinEcore.g:18738:2: rule__TypeExpCS__Group__0__Impl rule__TypeExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_81);
             rule__TypeExpCS__Group__0__Impl();
@@ -56145,23 +56213,23 @@
 
 
     // $ANTLR start "rule__TypeExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:18733:1: rule__TypeExpCS__Group__0__Impl : ( ( rule__TypeExpCS__Alternatives_0 ) ) ;
+    // InternalOCLinEcore.g:18745:1: rule__TypeExpCS__Group__0__Impl : ( ( rule__TypeExpCS__Alternatives_0 ) ) ;
     public final void rule__TypeExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18737:1: ( ( ( rule__TypeExpCS__Alternatives_0 ) ) )
-            // InternalOCLinEcore.g:18738:1: ( ( rule__TypeExpCS__Alternatives_0 ) )
+            // InternalOCLinEcore.g:18749:1: ( ( ( rule__TypeExpCS__Alternatives_0 ) ) )
+            // InternalOCLinEcore.g:18750:1: ( ( rule__TypeExpCS__Alternatives_0 ) )
             {
-            // InternalOCLinEcore.g:18738:1: ( ( rule__TypeExpCS__Alternatives_0 ) )
-            // InternalOCLinEcore.g:18739:1: ( rule__TypeExpCS__Alternatives_0 )
+            // InternalOCLinEcore.g:18750:1: ( ( rule__TypeExpCS__Alternatives_0 ) )
+            // InternalOCLinEcore.g:18751:1: ( rule__TypeExpCS__Alternatives_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeExpCSAccess().getAlternatives_0()); 
             }
-            // InternalOCLinEcore.g:18740:1: ( rule__TypeExpCS__Alternatives_0 )
-            // InternalOCLinEcore.g:18740:2: rule__TypeExpCS__Alternatives_0
+            // InternalOCLinEcore.g:18752:1: ( rule__TypeExpCS__Alternatives_0 )
+            // InternalOCLinEcore.g:18752:2: rule__TypeExpCS__Alternatives_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeExpCS__Alternatives_0();
@@ -56196,14 +56264,14 @@
 
 
     // $ANTLR start "rule__TypeExpCS__Group__1"
-    // InternalOCLinEcore.g:18750:1: rule__TypeExpCS__Group__1 : rule__TypeExpCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:18762:1: rule__TypeExpCS__Group__1 : rule__TypeExpCS__Group__1__Impl ;
     public final void rule__TypeExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18754:1: ( rule__TypeExpCS__Group__1__Impl )
-            // InternalOCLinEcore.g:18755:2: rule__TypeExpCS__Group__1__Impl
+            // InternalOCLinEcore.g:18766:1: ( rule__TypeExpCS__Group__1__Impl )
+            // InternalOCLinEcore.g:18767:2: rule__TypeExpCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeExpCS__Group__1__Impl();
@@ -56229,22 +56297,22 @@
 
 
     // $ANTLR start "rule__TypeExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:18761:1: rule__TypeExpCS__Group__1__Impl : ( ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )? ) ;
+    // InternalOCLinEcore.g:18773:1: rule__TypeExpCS__Group__1__Impl : ( ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )? ) ;
     public final void rule__TypeExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18765:1: ( ( ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )? ) )
-            // InternalOCLinEcore.g:18766:1: ( ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )? )
+            // InternalOCLinEcore.g:18777:1: ( ( ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )? ) )
+            // InternalOCLinEcore.g:18778:1: ( ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )? )
             {
-            // InternalOCLinEcore.g:18766:1: ( ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )? )
-            // InternalOCLinEcore.g:18767:1: ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )?
+            // InternalOCLinEcore.g:18778:1: ( ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )? )
+            // InternalOCLinEcore.g:18779:1: ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeExpCSAccess().getOwnedMultiplicityAssignment_1()); 
             }
-            // InternalOCLinEcore.g:18768:1: ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )?
+            // InternalOCLinEcore.g:18780:1: ( rule__TypeExpCS__OwnedMultiplicityAssignment_1 )?
             int alt196=2;
             int LA196_0 = input.LA(1);
 
@@ -56253,7 +56321,7 @@
             }
             switch (alt196) {
                 case 1 :
-                    // InternalOCLinEcore.g:18768:2: rule__TypeExpCS__OwnedMultiplicityAssignment_1
+                    // InternalOCLinEcore.g:18780:2: rule__TypeExpCS__OwnedMultiplicityAssignment_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypeExpCS__OwnedMultiplicityAssignment_1();
@@ -56291,14 +56359,14 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0__0"
-    // InternalOCLinEcore.g:18782:1: rule__ExpCS__Group_0__0 : rule__ExpCS__Group_0__0__Impl rule__ExpCS__Group_0__1 ;
+    // InternalOCLinEcore.g:18794:1: rule__ExpCS__Group_0__0 : rule__ExpCS__Group_0__0__Impl rule__ExpCS__Group_0__1 ;
     public final void rule__ExpCS__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18786:1: ( rule__ExpCS__Group_0__0__Impl rule__ExpCS__Group_0__1 )
-            // InternalOCLinEcore.g:18787:2: rule__ExpCS__Group_0__0__Impl rule__ExpCS__Group_0__1
+            // InternalOCLinEcore.g:18798:1: ( rule__ExpCS__Group_0__0__Impl rule__ExpCS__Group_0__1 )
+            // InternalOCLinEcore.g:18799:2: rule__ExpCS__Group_0__0__Impl rule__ExpCS__Group_0__1
             {
             pushFollow(FollowSets000.FOLLOW_103);
             rule__ExpCS__Group_0__0__Impl();
@@ -56329,17 +56397,17 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0__0__Impl"
-    // InternalOCLinEcore.g:18794:1: rule__ExpCS__Group_0__0__Impl : ( rulePrefixedPrimaryExpCS ) ;
+    // InternalOCLinEcore.g:18806:1: rule__ExpCS__Group_0__0__Impl : ( rulePrefixedPrimaryExpCS ) ;
     public final void rule__ExpCS__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18798:1: ( ( rulePrefixedPrimaryExpCS ) )
-            // InternalOCLinEcore.g:18799:1: ( rulePrefixedPrimaryExpCS )
+            // InternalOCLinEcore.g:18810:1: ( ( rulePrefixedPrimaryExpCS ) )
+            // InternalOCLinEcore.g:18811:1: ( rulePrefixedPrimaryExpCS )
             {
-            // InternalOCLinEcore.g:18799:1: ( rulePrefixedPrimaryExpCS )
-            // InternalOCLinEcore.g:18800:1: rulePrefixedPrimaryExpCS
+            // InternalOCLinEcore.g:18811:1: ( rulePrefixedPrimaryExpCS )
+            // InternalOCLinEcore.g:18812:1: rulePrefixedPrimaryExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpCSAccess().getPrefixedPrimaryExpCSParserRuleCall_0_0()); 
@@ -56374,14 +56442,14 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0__1"
-    // InternalOCLinEcore.g:18811:1: rule__ExpCS__Group_0__1 : rule__ExpCS__Group_0__1__Impl ;
+    // InternalOCLinEcore.g:18823:1: rule__ExpCS__Group_0__1 : rule__ExpCS__Group_0__1__Impl ;
     public final void rule__ExpCS__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18815:1: ( rule__ExpCS__Group_0__1__Impl )
-            // InternalOCLinEcore.g:18816:2: rule__ExpCS__Group_0__1__Impl
+            // InternalOCLinEcore.g:18827:1: ( rule__ExpCS__Group_0__1__Impl )
+            // InternalOCLinEcore.g:18828:2: rule__ExpCS__Group_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ExpCS__Group_0__1__Impl();
@@ -56407,22 +56475,22 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0__1__Impl"
-    // InternalOCLinEcore.g:18822:1: rule__ExpCS__Group_0__1__Impl : ( ( rule__ExpCS__Group_0_1__0 )? ) ;
+    // InternalOCLinEcore.g:18834:1: rule__ExpCS__Group_0__1__Impl : ( ( rule__ExpCS__Group_0_1__0 )? ) ;
     public final void rule__ExpCS__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18826:1: ( ( ( rule__ExpCS__Group_0_1__0 )? ) )
-            // InternalOCLinEcore.g:18827:1: ( ( rule__ExpCS__Group_0_1__0 )? )
+            // InternalOCLinEcore.g:18838:1: ( ( ( rule__ExpCS__Group_0_1__0 )? ) )
+            // InternalOCLinEcore.g:18839:1: ( ( rule__ExpCS__Group_0_1__0 )? )
             {
-            // InternalOCLinEcore.g:18827:1: ( ( rule__ExpCS__Group_0_1__0 )? )
-            // InternalOCLinEcore.g:18828:1: ( rule__ExpCS__Group_0_1__0 )?
+            // InternalOCLinEcore.g:18839:1: ( ( rule__ExpCS__Group_0_1__0 )? )
+            // InternalOCLinEcore.g:18840:1: ( rule__ExpCS__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpCSAccess().getGroup_0_1()); 
             }
-            // InternalOCLinEcore.g:18829:1: ( rule__ExpCS__Group_0_1__0 )?
+            // InternalOCLinEcore.g:18841:1: ( rule__ExpCS__Group_0_1__0 )?
             int alt197=2;
             int LA197_0 = input.LA(1);
 
@@ -56431,7 +56499,7 @@
             }
             switch (alt197) {
                 case 1 :
-                    // InternalOCLinEcore.g:18829:2: rule__ExpCS__Group_0_1__0
+                    // InternalOCLinEcore.g:18841:2: rule__ExpCS__Group_0_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__ExpCS__Group_0_1__0();
@@ -56469,14 +56537,14 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0_1__0"
-    // InternalOCLinEcore.g:18843:1: rule__ExpCS__Group_0_1__0 : rule__ExpCS__Group_0_1__0__Impl rule__ExpCS__Group_0_1__1 ;
+    // InternalOCLinEcore.g:18855:1: rule__ExpCS__Group_0_1__0 : rule__ExpCS__Group_0_1__0__Impl rule__ExpCS__Group_0_1__1 ;
     public final void rule__ExpCS__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18847:1: ( rule__ExpCS__Group_0_1__0__Impl rule__ExpCS__Group_0_1__1 )
-            // InternalOCLinEcore.g:18848:2: rule__ExpCS__Group_0_1__0__Impl rule__ExpCS__Group_0_1__1
+            // InternalOCLinEcore.g:18859:1: ( rule__ExpCS__Group_0_1__0__Impl rule__ExpCS__Group_0_1__1 )
+            // InternalOCLinEcore.g:18860:2: rule__ExpCS__Group_0_1__0__Impl rule__ExpCS__Group_0_1__1
             {
             pushFollow(FollowSets000.FOLLOW_103);
             rule__ExpCS__Group_0_1__0__Impl();
@@ -56507,23 +56575,23 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0_1__0__Impl"
-    // InternalOCLinEcore.g:18855:1: rule__ExpCS__Group_0_1__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:18867:1: rule__ExpCS__Group_0_1__0__Impl : ( () ) ;
     public final void rule__ExpCS__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18859:1: ( ( () ) )
-            // InternalOCLinEcore.g:18860:1: ( () )
+            // InternalOCLinEcore.g:18871:1: ( ( () ) )
+            // InternalOCLinEcore.g:18872:1: ( () )
             {
-            // InternalOCLinEcore.g:18860:1: ( () )
-            // InternalOCLinEcore.g:18861:1: ()
+            // InternalOCLinEcore.g:18872:1: ( () )
+            // InternalOCLinEcore.g:18873:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpCSAccess().getInfixExpCSOwnedLeftAction_0_1_0()); 
             }
-            // InternalOCLinEcore.g:18862:1: ()
-            // InternalOCLinEcore.g:18864:1: 
+            // InternalOCLinEcore.g:18874:1: ()
+            // InternalOCLinEcore.g:18876:1: 
             {
             }
 
@@ -56548,14 +56616,14 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0_1__1"
-    // InternalOCLinEcore.g:18874:1: rule__ExpCS__Group_0_1__1 : rule__ExpCS__Group_0_1__1__Impl rule__ExpCS__Group_0_1__2 ;
+    // InternalOCLinEcore.g:18886:1: rule__ExpCS__Group_0_1__1 : rule__ExpCS__Group_0_1__1__Impl rule__ExpCS__Group_0_1__2 ;
     public final void rule__ExpCS__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18878:1: ( rule__ExpCS__Group_0_1__1__Impl rule__ExpCS__Group_0_1__2 )
-            // InternalOCLinEcore.g:18879:2: rule__ExpCS__Group_0_1__1__Impl rule__ExpCS__Group_0_1__2
+            // InternalOCLinEcore.g:18890:1: ( rule__ExpCS__Group_0_1__1__Impl rule__ExpCS__Group_0_1__2 )
+            // InternalOCLinEcore.g:18891:2: rule__ExpCS__Group_0_1__1__Impl rule__ExpCS__Group_0_1__2
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__ExpCS__Group_0_1__1__Impl();
@@ -56586,23 +56654,23 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0_1__1__Impl"
-    // InternalOCLinEcore.g:18886:1: rule__ExpCS__Group_0_1__1__Impl : ( ( rule__ExpCS__NameAssignment_0_1_1 ) ) ;
+    // InternalOCLinEcore.g:18898:1: rule__ExpCS__Group_0_1__1__Impl : ( ( rule__ExpCS__NameAssignment_0_1_1 ) ) ;
     public final void rule__ExpCS__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18890:1: ( ( ( rule__ExpCS__NameAssignment_0_1_1 ) ) )
-            // InternalOCLinEcore.g:18891:1: ( ( rule__ExpCS__NameAssignment_0_1_1 ) )
+            // InternalOCLinEcore.g:18902:1: ( ( ( rule__ExpCS__NameAssignment_0_1_1 ) ) )
+            // InternalOCLinEcore.g:18903:1: ( ( rule__ExpCS__NameAssignment_0_1_1 ) )
             {
-            // InternalOCLinEcore.g:18891:1: ( ( rule__ExpCS__NameAssignment_0_1_1 ) )
-            // InternalOCLinEcore.g:18892:1: ( rule__ExpCS__NameAssignment_0_1_1 )
+            // InternalOCLinEcore.g:18903:1: ( ( rule__ExpCS__NameAssignment_0_1_1 ) )
+            // InternalOCLinEcore.g:18904:1: ( rule__ExpCS__NameAssignment_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpCSAccess().getNameAssignment_0_1_1()); 
             }
-            // InternalOCLinEcore.g:18893:1: ( rule__ExpCS__NameAssignment_0_1_1 )
-            // InternalOCLinEcore.g:18893:2: rule__ExpCS__NameAssignment_0_1_1
+            // InternalOCLinEcore.g:18905:1: ( rule__ExpCS__NameAssignment_0_1_1 )
+            // InternalOCLinEcore.g:18905:2: rule__ExpCS__NameAssignment_0_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ExpCS__NameAssignment_0_1_1();
@@ -56637,14 +56705,14 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0_1__2"
-    // InternalOCLinEcore.g:18903:1: rule__ExpCS__Group_0_1__2 : rule__ExpCS__Group_0_1__2__Impl ;
+    // InternalOCLinEcore.g:18915:1: rule__ExpCS__Group_0_1__2 : rule__ExpCS__Group_0_1__2__Impl ;
     public final void rule__ExpCS__Group_0_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18907:1: ( rule__ExpCS__Group_0_1__2__Impl )
-            // InternalOCLinEcore.g:18908:2: rule__ExpCS__Group_0_1__2__Impl
+            // InternalOCLinEcore.g:18919:1: ( rule__ExpCS__Group_0_1__2__Impl )
+            // InternalOCLinEcore.g:18920:2: rule__ExpCS__Group_0_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ExpCS__Group_0_1__2__Impl();
@@ -56670,23 +56738,23 @@
 
 
     // $ANTLR start "rule__ExpCS__Group_0_1__2__Impl"
-    // InternalOCLinEcore.g:18914:1: rule__ExpCS__Group_0_1__2__Impl : ( ( rule__ExpCS__OwnedRightAssignment_0_1_2 ) ) ;
+    // InternalOCLinEcore.g:18926:1: rule__ExpCS__Group_0_1__2__Impl : ( ( rule__ExpCS__OwnedRightAssignment_0_1_2 ) ) ;
     public final void rule__ExpCS__Group_0_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18918:1: ( ( ( rule__ExpCS__OwnedRightAssignment_0_1_2 ) ) )
-            // InternalOCLinEcore.g:18919:1: ( ( rule__ExpCS__OwnedRightAssignment_0_1_2 ) )
+            // InternalOCLinEcore.g:18930:1: ( ( ( rule__ExpCS__OwnedRightAssignment_0_1_2 ) ) )
+            // InternalOCLinEcore.g:18931:1: ( ( rule__ExpCS__OwnedRightAssignment_0_1_2 ) )
             {
-            // InternalOCLinEcore.g:18919:1: ( ( rule__ExpCS__OwnedRightAssignment_0_1_2 ) )
-            // InternalOCLinEcore.g:18920:1: ( rule__ExpCS__OwnedRightAssignment_0_1_2 )
+            // InternalOCLinEcore.g:18931:1: ( ( rule__ExpCS__OwnedRightAssignment_0_1_2 ) )
+            // InternalOCLinEcore.g:18932:1: ( rule__ExpCS__OwnedRightAssignment_0_1_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpCSAccess().getOwnedRightAssignment_0_1_2()); 
             }
-            // InternalOCLinEcore.g:18921:1: ( rule__ExpCS__OwnedRightAssignment_0_1_2 )
-            // InternalOCLinEcore.g:18921:2: rule__ExpCS__OwnedRightAssignment_0_1_2
+            // InternalOCLinEcore.g:18933:1: ( rule__ExpCS__OwnedRightAssignment_0_1_2 )
+            // InternalOCLinEcore.g:18933:2: rule__ExpCS__OwnedRightAssignment_0_1_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ExpCS__OwnedRightAssignment_0_1_2();
@@ -56721,14 +56789,14 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__Group_0__0"
-    // InternalOCLinEcore.g:18937:1: rule__PrefixedLetExpCS__Group_0__0 : rule__PrefixedLetExpCS__Group_0__0__Impl rule__PrefixedLetExpCS__Group_0__1 ;
+    // InternalOCLinEcore.g:18949:1: rule__PrefixedLetExpCS__Group_0__0 : rule__PrefixedLetExpCS__Group_0__0__Impl rule__PrefixedLetExpCS__Group_0__1 ;
     public final void rule__PrefixedLetExpCS__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18941:1: ( rule__PrefixedLetExpCS__Group_0__0__Impl rule__PrefixedLetExpCS__Group_0__1 )
-            // InternalOCLinEcore.g:18942:2: rule__PrefixedLetExpCS__Group_0__0__Impl rule__PrefixedLetExpCS__Group_0__1
+            // InternalOCLinEcore.g:18953:1: ( rule__PrefixedLetExpCS__Group_0__0__Impl rule__PrefixedLetExpCS__Group_0__1 )
+            // InternalOCLinEcore.g:18954:2: rule__PrefixedLetExpCS__Group_0__0__Impl rule__PrefixedLetExpCS__Group_0__1
             {
             pushFollow(FollowSets000.FOLLOW_104);
             rule__PrefixedLetExpCS__Group_0__0__Impl();
@@ -56759,23 +56827,23 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__Group_0__0__Impl"
-    // InternalOCLinEcore.g:18949:1: rule__PrefixedLetExpCS__Group_0__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:18961:1: rule__PrefixedLetExpCS__Group_0__0__Impl : ( () ) ;
     public final void rule__PrefixedLetExpCS__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18953:1: ( ( () ) )
-            // InternalOCLinEcore.g:18954:1: ( () )
+            // InternalOCLinEcore.g:18965:1: ( ( () ) )
+            // InternalOCLinEcore.g:18966:1: ( () )
             {
-            // InternalOCLinEcore.g:18954:1: ( () )
-            // InternalOCLinEcore.g:18955:1: ()
+            // InternalOCLinEcore.g:18966:1: ( () )
+            // InternalOCLinEcore.g:18967:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedLetExpCSAccess().getPrefixExpCSAction_0_0()); 
             }
-            // InternalOCLinEcore.g:18956:1: ()
-            // InternalOCLinEcore.g:18958:1: 
+            // InternalOCLinEcore.g:18968:1: ()
+            // InternalOCLinEcore.g:18970:1: 
             {
             }
 
@@ -56800,14 +56868,14 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__Group_0__1"
-    // InternalOCLinEcore.g:18968:1: rule__PrefixedLetExpCS__Group_0__1 : rule__PrefixedLetExpCS__Group_0__1__Impl rule__PrefixedLetExpCS__Group_0__2 ;
+    // InternalOCLinEcore.g:18980:1: rule__PrefixedLetExpCS__Group_0__1 : rule__PrefixedLetExpCS__Group_0__1__Impl rule__PrefixedLetExpCS__Group_0__2 ;
     public final void rule__PrefixedLetExpCS__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18972:1: ( rule__PrefixedLetExpCS__Group_0__1__Impl rule__PrefixedLetExpCS__Group_0__2 )
-            // InternalOCLinEcore.g:18973:2: rule__PrefixedLetExpCS__Group_0__1__Impl rule__PrefixedLetExpCS__Group_0__2
+            // InternalOCLinEcore.g:18984:1: ( rule__PrefixedLetExpCS__Group_0__1__Impl rule__PrefixedLetExpCS__Group_0__2 )
+            // InternalOCLinEcore.g:18985:2: rule__PrefixedLetExpCS__Group_0__1__Impl rule__PrefixedLetExpCS__Group_0__2
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__PrefixedLetExpCS__Group_0__1__Impl();
@@ -56838,23 +56906,23 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__Group_0__1__Impl"
-    // InternalOCLinEcore.g:18980:1: rule__PrefixedLetExpCS__Group_0__1__Impl : ( ( rule__PrefixedLetExpCS__NameAssignment_0_1 ) ) ;
+    // InternalOCLinEcore.g:18992:1: rule__PrefixedLetExpCS__Group_0__1__Impl : ( ( rule__PrefixedLetExpCS__NameAssignment_0_1 ) ) ;
     public final void rule__PrefixedLetExpCS__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:18984:1: ( ( ( rule__PrefixedLetExpCS__NameAssignment_0_1 ) ) )
-            // InternalOCLinEcore.g:18985:1: ( ( rule__PrefixedLetExpCS__NameAssignment_0_1 ) )
+            // InternalOCLinEcore.g:18996:1: ( ( ( rule__PrefixedLetExpCS__NameAssignment_0_1 ) ) )
+            // InternalOCLinEcore.g:18997:1: ( ( rule__PrefixedLetExpCS__NameAssignment_0_1 ) )
             {
-            // InternalOCLinEcore.g:18985:1: ( ( rule__PrefixedLetExpCS__NameAssignment_0_1 ) )
-            // InternalOCLinEcore.g:18986:1: ( rule__PrefixedLetExpCS__NameAssignment_0_1 )
+            // InternalOCLinEcore.g:18997:1: ( ( rule__PrefixedLetExpCS__NameAssignment_0_1 ) )
+            // InternalOCLinEcore.g:18998:1: ( rule__PrefixedLetExpCS__NameAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedLetExpCSAccess().getNameAssignment_0_1()); 
             }
-            // InternalOCLinEcore.g:18987:1: ( rule__PrefixedLetExpCS__NameAssignment_0_1 )
-            // InternalOCLinEcore.g:18987:2: rule__PrefixedLetExpCS__NameAssignment_0_1
+            // InternalOCLinEcore.g:18999:1: ( rule__PrefixedLetExpCS__NameAssignment_0_1 )
+            // InternalOCLinEcore.g:18999:2: rule__PrefixedLetExpCS__NameAssignment_0_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PrefixedLetExpCS__NameAssignment_0_1();
@@ -56889,14 +56957,14 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__Group_0__2"
-    // InternalOCLinEcore.g:18997:1: rule__PrefixedLetExpCS__Group_0__2 : rule__PrefixedLetExpCS__Group_0__2__Impl ;
+    // InternalOCLinEcore.g:19009:1: rule__PrefixedLetExpCS__Group_0__2 : rule__PrefixedLetExpCS__Group_0__2__Impl ;
     public final void rule__PrefixedLetExpCS__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19001:1: ( rule__PrefixedLetExpCS__Group_0__2__Impl )
-            // InternalOCLinEcore.g:19002:2: rule__PrefixedLetExpCS__Group_0__2__Impl
+            // InternalOCLinEcore.g:19013:1: ( rule__PrefixedLetExpCS__Group_0__2__Impl )
+            // InternalOCLinEcore.g:19014:2: rule__PrefixedLetExpCS__Group_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PrefixedLetExpCS__Group_0__2__Impl();
@@ -56922,23 +56990,23 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__Group_0__2__Impl"
-    // InternalOCLinEcore.g:19008:1: rule__PrefixedLetExpCS__Group_0__2__Impl : ( ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 ) ) ;
+    // InternalOCLinEcore.g:19020:1: rule__PrefixedLetExpCS__Group_0__2__Impl : ( ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 ) ) ;
     public final void rule__PrefixedLetExpCS__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19012:1: ( ( ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 ) ) )
-            // InternalOCLinEcore.g:19013:1: ( ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 ) )
+            // InternalOCLinEcore.g:19024:1: ( ( ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 ) ) )
+            // InternalOCLinEcore.g:19025:1: ( ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 ) )
             {
-            // InternalOCLinEcore.g:19013:1: ( ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 ) )
-            // InternalOCLinEcore.g:19014:1: ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 )
+            // InternalOCLinEcore.g:19025:1: ( ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 ) )
+            // InternalOCLinEcore.g:19026:1: ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedLetExpCSAccess().getOwnedRightAssignment_0_2()); 
             }
-            // InternalOCLinEcore.g:19015:1: ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 )
-            // InternalOCLinEcore.g:19015:2: rule__PrefixedLetExpCS__OwnedRightAssignment_0_2
+            // InternalOCLinEcore.g:19027:1: ( rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 )
+            // InternalOCLinEcore.g:19027:2: rule__PrefixedLetExpCS__OwnedRightAssignment_0_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PrefixedLetExpCS__OwnedRightAssignment_0_2();
@@ -56973,14 +57041,14 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__Group_0__0"
-    // InternalOCLinEcore.g:19031:1: rule__PrefixedPrimaryExpCS__Group_0__0 : rule__PrefixedPrimaryExpCS__Group_0__0__Impl rule__PrefixedPrimaryExpCS__Group_0__1 ;
+    // InternalOCLinEcore.g:19043:1: rule__PrefixedPrimaryExpCS__Group_0__0 : rule__PrefixedPrimaryExpCS__Group_0__0__Impl rule__PrefixedPrimaryExpCS__Group_0__1 ;
     public final void rule__PrefixedPrimaryExpCS__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19035:1: ( rule__PrefixedPrimaryExpCS__Group_0__0__Impl rule__PrefixedPrimaryExpCS__Group_0__1 )
-            // InternalOCLinEcore.g:19036:2: rule__PrefixedPrimaryExpCS__Group_0__0__Impl rule__PrefixedPrimaryExpCS__Group_0__1
+            // InternalOCLinEcore.g:19047:1: ( rule__PrefixedPrimaryExpCS__Group_0__0__Impl rule__PrefixedPrimaryExpCS__Group_0__1 )
+            // InternalOCLinEcore.g:19048:2: rule__PrefixedPrimaryExpCS__Group_0__0__Impl rule__PrefixedPrimaryExpCS__Group_0__1
             {
             pushFollow(FollowSets000.FOLLOW_104);
             rule__PrefixedPrimaryExpCS__Group_0__0__Impl();
@@ -57011,23 +57079,23 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__Group_0__0__Impl"
-    // InternalOCLinEcore.g:19043:1: rule__PrefixedPrimaryExpCS__Group_0__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:19055:1: rule__PrefixedPrimaryExpCS__Group_0__0__Impl : ( () ) ;
     public final void rule__PrefixedPrimaryExpCS__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19047:1: ( ( () ) )
-            // InternalOCLinEcore.g:19048:1: ( () )
+            // InternalOCLinEcore.g:19059:1: ( ( () ) )
+            // InternalOCLinEcore.g:19060:1: ( () )
             {
-            // InternalOCLinEcore.g:19048:1: ( () )
-            // InternalOCLinEcore.g:19049:1: ()
+            // InternalOCLinEcore.g:19060:1: ( () )
+            // InternalOCLinEcore.g:19061:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedPrimaryExpCSAccess().getPrefixExpCSAction_0_0()); 
             }
-            // InternalOCLinEcore.g:19050:1: ()
-            // InternalOCLinEcore.g:19052:1: 
+            // InternalOCLinEcore.g:19062:1: ()
+            // InternalOCLinEcore.g:19064:1: 
             {
             }
 
@@ -57052,14 +57120,14 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__Group_0__1"
-    // InternalOCLinEcore.g:19062:1: rule__PrefixedPrimaryExpCS__Group_0__1 : rule__PrefixedPrimaryExpCS__Group_0__1__Impl rule__PrefixedPrimaryExpCS__Group_0__2 ;
+    // InternalOCLinEcore.g:19074:1: rule__PrefixedPrimaryExpCS__Group_0__1 : rule__PrefixedPrimaryExpCS__Group_0__1__Impl rule__PrefixedPrimaryExpCS__Group_0__2 ;
     public final void rule__PrefixedPrimaryExpCS__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19066:1: ( rule__PrefixedPrimaryExpCS__Group_0__1__Impl rule__PrefixedPrimaryExpCS__Group_0__2 )
-            // InternalOCLinEcore.g:19067:2: rule__PrefixedPrimaryExpCS__Group_0__1__Impl rule__PrefixedPrimaryExpCS__Group_0__2
+            // InternalOCLinEcore.g:19078:1: ( rule__PrefixedPrimaryExpCS__Group_0__1__Impl rule__PrefixedPrimaryExpCS__Group_0__2 )
+            // InternalOCLinEcore.g:19079:2: rule__PrefixedPrimaryExpCS__Group_0__1__Impl rule__PrefixedPrimaryExpCS__Group_0__2
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__PrefixedPrimaryExpCS__Group_0__1__Impl();
@@ -57090,23 +57158,23 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__Group_0__1__Impl"
-    // InternalOCLinEcore.g:19074:1: rule__PrefixedPrimaryExpCS__Group_0__1__Impl : ( ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 ) ) ;
+    // InternalOCLinEcore.g:19086:1: rule__PrefixedPrimaryExpCS__Group_0__1__Impl : ( ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 ) ) ;
     public final void rule__PrefixedPrimaryExpCS__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19078:1: ( ( ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 ) ) )
-            // InternalOCLinEcore.g:19079:1: ( ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 ) )
+            // InternalOCLinEcore.g:19090:1: ( ( ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 ) ) )
+            // InternalOCLinEcore.g:19091:1: ( ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 ) )
             {
-            // InternalOCLinEcore.g:19079:1: ( ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 ) )
-            // InternalOCLinEcore.g:19080:1: ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 )
+            // InternalOCLinEcore.g:19091:1: ( ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 ) )
+            // InternalOCLinEcore.g:19092:1: ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedPrimaryExpCSAccess().getNameAssignment_0_1()); 
             }
-            // InternalOCLinEcore.g:19081:1: ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 )
-            // InternalOCLinEcore.g:19081:2: rule__PrefixedPrimaryExpCS__NameAssignment_0_1
+            // InternalOCLinEcore.g:19093:1: ( rule__PrefixedPrimaryExpCS__NameAssignment_0_1 )
+            // InternalOCLinEcore.g:19093:2: rule__PrefixedPrimaryExpCS__NameAssignment_0_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PrefixedPrimaryExpCS__NameAssignment_0_1();
@@ -57141,14 +57209,14 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__Group_0__2"
-    // InternalOCLinEcore.g:19091:1: rule__PrefixedPrimaryExpCS__Group_0__2 : rule__PrefixedPrimaryExpCS__Group_0__2__Impl ;
+    // InternalOCLinEcore.g:19103:1: rule__PrefixedPrimaryExpCS__Group_0__2 : rule__PrefixedPrimaryExpCS__Group_0__2__Impl ;
     public final void rule__PrefixedPrimaryExpCS__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19095:1: ( rule__PrefixedPrimaryExpCS__Group_0__2__Impl )
-            // InternalOCLinEcore.g:19096:2: rule__PrefixedPrimaryExpCS__Group_0__2__Impl
+            // InternalOCLinEcore.g:19107:1: ( rule__PrefixedPrimaryExpCS__Group_0__2__Impl )
+            // InternalOCLinEcore.g:19108:2: rule__PrefixedPrimaryExpCS__Group_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PrefixedPrimaryExpCS__Group_0__2__Impl();
@@ -57174,23 +57242,23 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__Group_0__2__Impl"
-    // InternalOCLinEcore.g:19102:1: rule__PrefixedPrimaryExpCS__Group_0__2__Impl : ( ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 ) ) ;
+    // InternalOCLinEcore.g:19114:1: rule__PrefixedPrimaryExpCS__Group_0__2__Impl : ( ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 ) ) ;
     public final void rule__PrefixedPrimaryExpCS__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19106:1: ( ( ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 ) ) )
-            // InternalOCLinEcore.g:19107:1: ( ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 ) )
+            // InternalOCLinEcore.g:19118:1: ( ( ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 ) ) )
+            // InternalOCLinEcore.g:19119:1: ( ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 ) )
             {
-            // InternalOCLinEcore.g:19107:1: ( ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 ) )
-            // InternalOCLinEcore.g:19108:1: ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 )
+            // InternalOCLinEcore.g:19119:1: ( ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 ) )
+            // InternalOCLinEcore.g:19120:1: ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedPrimaryExpCSAccess().getOwnedRightAssignment_0_2()); 
             }
-            // InternalOCLinEcore.g:19109:1: ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 )
-            // InternalOCLinEcore.g:19109:2: rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2
+            // InternalOCLinEcore.g:19121:1: ( rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 )
+            // InternalOCLinEcore.g:19121:2: rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2();
@@ -57225,14 +57293,14 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__0"
-    // InternalOCLinEcore.g:19125:1: rule__NameExpCS__Group__0 : rule__NameExpCS__Group__0__Impl rule__NameExpCS__Group__1 ;
+    // InternalOCLinEcore.g:19137:1: rule__NameExpCS__Group__0 : rule__NameExpCS__Group__0__Impl rule__NameExpCS__Group__1 ;
     public final void rule__NameExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19129:1: ( rule__NameExpCS__Group__0__Impl rule__NameExpCS__Group__1 )
-            // InternalOCLinEcore.g:19130:2: rule__NameExpCS__Group__0__Impl rule__NameExpCS__Group__1
+            // InternalOCLinEcore.g:19141:1: ( rule__NameExpCS__Group__0__Impl rule__NameExpCS__Group__1 )
+            // InternalOCLinEcore.g:19142:2: rule__NameExpCS__Group__0__Impl rule__NameExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_105);
             rule__NameExpCS__Group__0__Impl();
@@ -57263,23 +57331,23 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:19137:1: rule__NameExpCS__Group__0__Impl : ( ( rule__NameExpCS__OwnedPathNameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:19149:1: rule__NameExpCS__Group__0__Impl : ( ( rule__NameExpCS__OwnedPathNameAssignment_0 ) ) ;
     public final void rule__NameExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19141:1: ( ( ( rule__NameExpCS__OwnedPathNameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:19142:1: ( ( rule__NameExpCS__OwnedPathNameAssignment_0 ) )
+            // InternalOCLinEcore.g:19153:1: ( ( ( rule__NameExpCS__OwnedPathNameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:19154:1: ( ( rule__NameExpCS__OwnedPathNameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:19142:1: ( ( rule__NameExpCS__OwnedPathNameAssignment_0 ) )
-            // InternalOCLinEcore.g:19143:1: ( rule__NameExpCS__OwnedPathNameAssignment_0 )
+            // InternalOCLinEcore.g:19154:1: ( ( rule__NameExpCS__OwnedPathNameAssignment_0 ) )
+            // InternalOCLinEcore.g:19155:1: ( rule__NameExpCS__OwnedPathNameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getOwnedPathNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:19144:1: ( rule__NameExpCS__OwnedPathNameAssignment_0 )
-            // InternalOCLinEcore.g:19144:2: rule__NameExpCS__OwnedPathNameAssignment_0
+            // InternalOCLinEcore.g:19156:1: ( rule__NameExpCS__OwnedPathNameAssignment_0 )
+            // InternalOCLinEcore.g:19156:2: rule__NameExpCS__OwnedPathNameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NameExpCS__OwnedPathNameAssignment_0();
@@ -57314,14 +57382,14 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__1"
-    // InternalOCLinEcore.g:19154:1: rule__NameExpCS__Group__1 : rule__NameExpCS__Group__1__Impl rule__NameExpCS__Group__2 ;
+    // InternalOCLinEcore.g:19166:1: rule__NameExpCS__Group__1 : rule__NameExpCS__Group__1__Impl rule__NameExpCS__Group__2 ;
     public final void rule__NameExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19158:1: ( rule__NameExpCS__Group__1__Impl rule__NameExpCS__Group__2 )
-            // InternalOCLinEcore.g:19159:2: rule__NameExpCS__Group__1__Impl rule__NameExpCS__Group__2
+            // InternalOCLinEcore.g:19170:1: ( rule__NameExpCS__Group__1__Impl rule__NameExpCS__Group__2 )
+            // InternalOCLinEcore.g:19171:2: rule__NameExpCS__Group__1__Impl rule__NameExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_105);
             rule__NameExpCS__Group__1__Impl();
@@ -57352,22 +57420,22 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:19166:1: rule__NameExpCS__Group__1__Impl : ( ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )* ) ;
+    // InternalOCLinEcore.g:19178:1: rule__NameExpCS__Group__1__Impl : ( ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )* ) ;
     public final void rule__NameExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19170:1: ( ( ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )* ) )
-            // InternalOCLinEcore.g:19171:1: ( ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )* )
+            // InternalOCLinEcore.g:19182:1: ( ( ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )* ) )
+            // InternalOCLinEcore.g:19183:1: ( ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )* )
             {
-            // InternalOCLinEcore.g:19171:1: ( ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )* )
-            // InternalOCLinEcore.g:19172:1: ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )*
+            // InternalOCLinEcore.g:19183:1: ( ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )* )
+            // InternalOCLinEcore.g:19184:1: ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getOwnedSquareBracketedClausesAssignment_1()); 
             }
-            // InternalOCLinEcore.g:19173:1: ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )*
+            // InternalOCLinEcore.g:19185:1: ( rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 )*
             loop198:
             do {
                 int alt198=2;
@@ -57380,7 +57448,7 @@
 
                 switch (alt198) {
             	case 1 :
-            	    // InternalOCLinEcore.g:19173:2: rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1
+            	    // InternalOCLinEcore.g:19185:2: rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_106);
             	    rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1();
@@ -57421,14 +57489,14 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__2"
-    // InternalOCLinEcore.g:19183:1: rule__NameExpCS__Group__2 : rule__NameExpCS__Group__2__Impl rule__NameExpCS__Group__3 ;
+    // InternalOCLinEcore.g:19195:1: rule__NameExpCS__Group__2 : rule__NameExpCS__Group__2__Impl rule__NameExpCS__Group__3 ;
     public final void rule__NameExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19187:1: ( rule__NameExpCS__Group__2__Impl rule__NameExpCS__Group__3 )
-            // InternalOCLinEcore.g:19188:2: rule__NameExpCS__Group__2__Impl rule__NameExpCS__Group__3
+            // InternalOCLinEcore.g:19199:1: ( rule__NameExpCS__Group__2__Impl rule__NameExpCS__Group__3 )
+            // InternalOCLinEcore.g:19200:2: rule__NameExpCS__Group__2__Impl rule__NameExpCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_105);
             rule__NameExpCS__Group__2__Impl();
@@ -57459,22 +57527,22 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:19195:1: rule__NameExpCS__Group__2__Impl : ( ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )? ) ;
+    // InternalOCLinEcore.g:19207:1: rule__NameExpCS__Group__2__Impl : ( ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )? ) ;
     public final void rule__NameExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19199:1: ( ( ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )? ) )
-            // InternalOCLinEcore.g:19200:1: ( ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )? )
+            // InternalOCLinEcore.g:19211:1: ( ( ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )? ) )
+            // InternalOCLinEcore.g:19212:1: ( ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )? )
             {
-            // InternalOCLinEcore.g:19200:1: ( ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )? )
-            // InternalOCLinEcore.g:19201:1: ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )?
+            // InternalOCLinEcore.g:19212:1: ( ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )? )
+            // InternalOCLinEcore.g:19213:1: ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getOwnedRoundBracketedClauseAssignment_2()); 
             }
-            // InternalOCLinEcore.g:19202:1: ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )?
+            // InternalOCLinEcore.g:19214:1: ( rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 )?
             int alt199=2;
             int LA199_0 = input.LA(1);
 
@@ -57483,7 +57551,7 @@
             }
             switch (alt199) {
                 case 1 :
-                    // InternalOCLinEcore.g:19202:2: rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2
+                    // InternalOCLinEcore.g:19214:2: rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2();
@@ -57521,14 +57589,14 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__3"
-    // InternalOCLinEcore.g:19212:1: rule__NameExpCS__Group__3 : rule__NameExpCS__Group__3__Impl rule__NameExpCS__Group__4 ;
+    // InternalOCLinEcore.g:19224:1: rule__NameExpCS__Group__3 : rule__NameExpCS__Group__3__Impl rule__NameExpCS__Group__4 ;
     public final void rule__NameExpCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19216:1: ( rule__NameExpCS__Group__3__Impl rule__NameExpCS__Group__4 )
-            // InternalOCLinEcore.g:19217:2: rule__NameExpCS__Group__3__Impl rule__NameExpCS__Group__4
+            // InternalOCLinEcore.g:19228:1: ( rule__NameExpCS__Group__3__Impl rule__NameExpCS__Group__4 )
+            // InternalOCLinEcore.g:19229:2: rule__NameExpCS__Group__3__Impl rule__NameExpCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_105);
             rule__NameExpCS__Group__3__Impl();
@@ -57559,22 +57627,22 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__3__Impl"
-    // InternalOCLinEcore.g:19224:1: rule__NameExpCS__Group__3__Impl : ( ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )? ) ;
+    // InternalOCLinEcore.g:19236:1: rule__NameExpCS__Group__3__Impl : ( ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )? ) ;
     public final void rule__NameExpCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19228:1: ( ( ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )? ) )
-            // InternalOCLinEcore.g:19229:1: ( ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )? )
+            // InternalOCLinEcore.g:19240:1: ( ( ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )? ) )
+            // InternalOCLinEcore.g:19241:1: ( ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )? )
             {
-            // InternalOCLinEcore.g:19229:1: ( ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )? )
-            // InternalOCLinEcore.g:19230:1: ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )?
+            // InternalOCLinEcore.g:19241:1: ( ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )? )
+            // InternalOCLinEcore.g:19242:1: ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getOwnedCurlyBracketedClauseAssignment_3()); 
             }
-            // InternalOCLinEcore.g:19231:1: ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )?
+            // InternalOCLinEcore.g:19243:1: ( rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 )?
             int alt200=2;
             int LA200_0 = input.LA(1);
 
@@ -57583,7 +57651,7 @@
             }
             switch (alt200) {
                 case 1 :
-                    // InternalOCLinEcore.g:19231:2: rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3
+                    // InternalOCLinEcore.g:19243:2: rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3();
@@ -57621,14 +57689,14 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__4"
-    // InternalOCLinEcore.g:19241:1: rule__NameExpCS__Group__4 : rule__NameExpCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:19253:1: rule__NameExpCS__Group__4 : rule__NameExpCS__Group__4__Impl ;
     public final void rule__NameExpCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19245:1: ( rule__NameExpCS__Group__4__Impl )
-            // InternalOCLinEcore.g:19246:2: rule__NameExpCS__Group__4__Impl
+            // InternalOCLinEcore.g:19257:1: ( rule__NameExpCS__Group__4__Impl )
+            // InternalOCLinEcore.g:19258:2: rule__NameExpCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NameExpCS__Group__4__Impl();
@@ -57654,22 +57722,22 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group__4__Impl"
-    // InternalOCLinEcore.g:19252:1: rule__NameExpCS__Group__4__Impl : ( ( rule__NameExpCS__Group_4__0 )? ) ;
+    // InternalOCLinEcore.g:19264:1: rule__NameExpCS__Group__4__Impl : ( ( rule__NameExpCS__Group_4__0 )? ) ;
     public final void rule__NameExpCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19256:1: ( ( ( rule__NameExpCS__Group_4__0 )? ) )
-            // InternalOCLinEcore.g:19257:1: ( ( rule__NameExpCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:19268:1: ( ( ( rule__NameExpCS__Group_4__0 )? ) )
+            // InternalOCLinEcore.g:19269:1: ( ( rule__NameExpCS__Group_4__0 )? )
             {
-            // InternalOCLinEcore.g:19257:1: ( ( rule__NameExpCS__Group_4__0 )? )
-            // InternalOCLinEcore.g:19258:1: ( rule__NameExpCS__Group_4__0 )?
+            // InternalOCLinEcore.g:19269:1: ( ( rule__NameExpCS__Group_4__0 )? )
+            // InternalOCLinEcore.g:19270:1: ( rule__NameExpCS__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getGroup_4()); 
             }
-            // InternalOCLinEcore.g:19259:1: ( rule__NameExpCS__Group_4__0 )?
+            // InternalOCLinEcore.g:19271:1: ( rule__NameExpCS__Group_4__0 )?
             int alt201=2;
             int LA201_0 = input.LA(1);
 
@@ -57678,7 +57746,7 @@
             }
             switch (alt201) {
                 case 1 :
-                    // InternalOCLinEcore.g:19259:2: rule__NameExpCS__Group_4__0
+                    // InternalOCLinEcore.g:19271:2: rule__NameExpCS__Group_4__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NameExpCS__Group_4__0();
@@ -57716,14 +57784,14 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group_4__0"
-    // InternalOCLinEcore.g:19279:1: rule__NameExpCS__Group_4__0 : rule__NameExpCS__Group_4__0__Impl rule__NameExpCS__Group_4__1 ;
+    // InternalOCLinEcore.g:19291:1: rule__NameExpCS__Group_4__0 : rule__NameExpCS__Group_4__0__Impl rule__NameExpCS__Group_4__1 ;
     public final void rule__NameExpCS__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19283:1: ( rule__NameExpCS__Group_4__0__Impl rule__NameExpCS__Group_4__1 )
-            // InternalOCLinEcore.g:19284:2: rule__NameExpCS__Group_4__0__Impl rule__NameExpCS__Group_4__1
+            // InternalOCLinEcore.g:19295:1: ( rule__NameExpCS__Group_4__0__Impl rule__NameExpCS__Group_4__1 )
+            // InternalOCLinEcore.g:19296:2: rule__NameExpCS__Group_4__0__Impl rule__NameExpCS__Group_4__1
             {
             pushFollow(FollowSets000.FOLLOW_107);
             rule__NameExpCS__Group_4__0__Impl();
@@ -57754,23 +57822,23 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group_4__0__Impl"
-    // InternalOCLinEcore.g:19291:1: rule__NameExpCS__Group_4__0__Impl : ( ( rule__NameExpCS__IsPreAssignment_4_0 ) ) ;
+    // InternalOCLinEcore.g:19303:1: rule__NameExpCS__Group_4__0__Impl : ( ( rule__NameExpCS__IsPreAssignment_4_0 ) ) ;
     public final void rule__NameExpCS__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19295:1: ( ( ( rule__NameExpCS__IsPreAssignment_4_0 ) ) )
-            // InternalOCLinEcore.g:19296:1: ( ( rule__NameExpCS__IsPreAssignment_4_0 ) )
+            // InternalOCLinEcore.g:19307:1: ( ( ( rule__NameExpCS__IsPreAssignment_4_0 ) ) )
+            // InternalOCLinEcore.g:19308:1: ( ( rule__NameExpCS__IsPreAssignment_4_0 ) )
             {
-            // InternalOCLinEcore.g:19296:1: ( ( rule__NameExpCS__IsPreAssignment_4_0 ) )
-            // InternalOCLinEcore.g:19297:1: ( rule__NameExpCS__IsPreAssignment_4_0 )
+            // InternalOCLinEcore.g:19308:1: ( ( rule__NameExpCS__IsPreAssignment_4_0 ) )
+            // InternalOCLinEcore.g:19309:1: ( rule__NameExpCS__IsPreAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getIsPreAssignment_4_0()); 
             }
-            // InternalOCLinEcore.g:19298:1: ( rule__NameExpCS__IsPreAssignment_4_0 )
-            // InternalOCLinEcore.g:19298:2: rule__NameExpCS__IsPreAssignment_4_0
+            // InternalOCLinEcore.g:19310:1: ( rule__NameExpCS__IsPreAssignment_4_0 )
+            // InternalOCLinEcore.g:19310:2: rule__NameExpCS__IsPreAssignment_4_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NameExpCS__IsPreAssignment_4_0();
@@ -57805,14 +57873,14 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group_4__1"
-    // InternalOCLinEcore.g:19308:1: rule__NameExpCS__Group_4__1 : rule__NameExpCS__Group_4__1__Impl ;
+    // InternalOCLinEcore.g:19320:1: rule__NameExpCS__Group_4__1 : rule__NameExpCS__Group_4__1__Impl ;
     public final void rule__NameExpCS__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19312:1: ( rule__NameExpCS__Group_4__1__Impl )
-            // InternalOCLinEcore.g:19313:2: rule__NameExpCS__Group_4__1__Impl
+            // InternalOCLinEcore.g:19324:1: ( rule__NameExpCS__Group_4__1__Impl )
+            // InternalOCLinEcore.g:19325:2: rule__NameExpCS__Group_4__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NameExpCS__Group_4__1__Impl();
@@ -57838,17 +57906,17 @@
 
 
     // $ANTLR start "rule__NameExpCS__Group_4__1__Impl"
-    // InternalOCLinEcore.g:19319:1: rule__NameExpCS__Group_4__1__Impl : ( 'pre' ) ;
+    // InternalOCLinEcore.g:19331:1: rule__NameExpCS__Group_4__1__Impl : ( 'pre' ) ;
     public final void rule__NameExpCS__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19323:1: ( ( 'pre' ) )
-            // InternalOCLinEcore.g:19324:1: ( 'pre' )
+            // InternalOCLinEcore.g:19335:1: ( ( 'pre' ) )
+            // InternalOCLinEcore.g:19336:1: ( 'pre' )
             {
-            // InternalOCLinEcore.g:19324:1: ( 'pre' )
-            // InternalOCLinEcore.g:19325:1: 'pre'
+            // InternalOCLinEcore.g:19336:1: ( 'pre' )
+            // InternalOCLinEcore.g:19337:1: 'pre'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getPreKeyword_4_1()); 
@@ -57879,14 +57947,14 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group__0"
-    // InternalOCLinEcore.g:19342:1: rule__CurlyBracketedClauseCS__Group__0 : rule__CurlyBracketedClauseCS__Group__0__Impl rule__CurlyBracketedClauseCS__Group__1 ;
+    // InternalOCLinEcore.g:19354:1: rule__CurlyBracketedClauseCS__Group__0 : rule__CurlyBracketedClauseCS__Group__0__Impl rule__CurlyBracketedClauseCS__Group__1 ;
     public final void rule__CurlyBracketedClauseCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19346:1: ( rule__CurlyBracketedClauseCS__Group__0__Impl rule__CurlyBracketedClauseCS__Group__1 )
-            // InternalOCLinEcore.g:19347:2: rule__CurlyBracketedClauseCS__Group__0__Impl rule__CurlyBracketedClauseCS__Group__1
+            // InternalOCLinEcore.g:19358:1: ( rule__CurlyBracketedClauseCS__Group__0__Impl rule__CurlyBracketedClauseCS__Group__1 )
+            // InternalOCLinEcore.g:19359:2: rule__CurlyBracketedClauseCS__Group__0__Impl rule__CurlyBracketedClauseCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_89);
             rule__CurlyBracketedClauseCS__Group__0__Impl();
@@ -57917,23 +57985,23 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group__0__Impl"
-    // InternalOCLinEcore.g:19354:1: rule__CurlyBracketedClauseCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:19366:1: rule__CurlyBracketedClauseCS__Group__0__Impl : ( () ) ;
     public final void rule__CurlyBracketedClauseCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19358:1: ( ( () ) )
-            // InternalOCLinEcore.g:19359:1: ( () )
+            // InternalOCLinEcore.g:19370:1: ( ( () ) )
+            // InternalOCLinEcore.g:19371:1: ( () )
             {
-            // InternalOCLinEcore.g:19359:1: ( () )
-            // InternalOCLinEcore.g:19360:1: ()
+            // InternalOCLinEcore.g:19371:1: ( () )
+            // InternalOCLinEcore.g:19372:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getCurlyBracketedClauseCSAction_0()); 
             }
-            // InternalOCLinEcore.g:19361:1: ()
-            // InternalOCLinEcore.g:19363:1: 
+            // InternalOCLinEcore.g:19373:1: ()
+            // InternalOCLinEcore.g:19375:1: 
             {
             }
 
@@ -57958,14 +58026,14 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group__1"
-    // InternalOCLinEcore.g:19373:1: rule__CurlyBracketedClauseCS__Group__1 : rule__CurlyBracketedClauseCS__Group__1__Impl rule__CurlyBracketedClauseCS__Group__2 ;
+    // InternalOCLinEcore.g:19385:1: rule__CurlyBracketedClauseCS__Group__1 : rule__CurlyBracketedClauseCS__Group__1__Impl rule__CurlyBracketedClauseCS__Group__2 ;
     public final void rule__CurlyBracketedClauseCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19377:1: ( rule__CurlyBracketedClauseCS__Group__1__Impl rule__CurlyBracketedClauseCS__Group__2 )
-            // InternalOCLinEcore.g:19378:2: rule__CurlyBracketedClauseCS__Group__1__Impl rule__CurlyBracketedClauseCS__Group__2
+            // InternalOCLinEcore.g:19389:1: ( rule__CurlyBracketedClauseCS__Group__1__Impl rule__CurlyBracketedClauseCS__Group__2 )
+            // InternalOCLinEcore.g:19390:2: rule__CurlyBracketedClauseCS__Group__1__Impl rule__CurlyBracketedClauseCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_18);
             rule__CurlyBracketedClauseCS__Group__1__Impl();
@@ -57996,17 +58064,17 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group__1__Impl"
-    // InternalOCLinEcore.g:19385:1: rule__CurlyBracketedClauseCS__Group__1__Impl : ( '{' ) ;
+    // InternalOCLinEcore.g:19397:1: rule__CurlyBracketedClauseCS__Group__1__Impl : ( '{' ) ;
     public final void rule__CurlyBracketedClauseCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19389:1: ( ( '{' ) )
-            // InternalOCLinEcore.g:19390:1: ( '{' )
+            // InternalOCLinEcore.g:19401:1: ( ( '{' ) )
+            // InternalOCLinEcore.g:19402:1: ( '{' )
             {
-            // InternalOCLinEcore.g:19390:1: ( '{' )
-            // InternalOCLinEcore.g:19391:1: '{'
+            // InternalOCLinEcore.g:19402:1: ( '{' )
+            // InternalOCLinEcore.g:19403:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getLeftCurlyBracketKeyword_1()); 
@@ -58037,14 +58105,14 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group__2"
-    // InternalOCLinEcore.g:19404:1: rule__CurlyBracketedClauseCS__Group__2 : rule__CurlyBracketedClauseCS__Group__2__Impl rule__CurlyBracketedClauseCS__Group__3 ;
+    // InternalOCLinEcore.g:19416:1: rule__CurlyBracketedClauseCS__Group__2 : rule__CurlyBracketedClauseCS__Group__2__Impl rule__CurlyBracketedClauseCS__Group__3 ;
     public final void rule__CurlyBracketedClauseCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19408:1: ( rule__CurlyBracketedClauseCS__Group__2__Impl rule__CurlyBracketedClauseCS__Group__3 )
-            // InternalOCLinEcore.g:19409:2: rule__CurlyBracketedClauseCS__Group__2__Impl rule__CurlyBracketedClauseCS__Group__3
+            // InternalOCLinEcore.g:19420:1: ( rule__CurlyBracketedClauseCS__Group__2__Impl rule__CurlyBracketedClauseCS__Group__3 )
+            // InternalOCLinEcore.g:19421:2: rule__CurlyBracketedClauseCS__Group__2__Impl rule__CurlyBracketedClauseCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_22);
             rule__CurlyBracketedClauseCS__Group__2__Impl();
@@ -58075,23 +58143,23 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group__2__Impl"
-    // InternalOCLinEcore.g:19416:1: rule__CurlyBracketedClauseCS__Group__2__Impl : ( ( rule__CurlyBracketedClauseCS__Alternatives_2 ) ) ;
+    // InternalOCLinEcore.g:19428:1: rule__CurlyBracketedClauseCS__Group__2__Impl : ( ( rule__CurlyBracketedClauseCS__Alternatives_2 ) ) ;
     public final void rule__CurlyBracketedClauseCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19420:1: ( ( ( rule__CurlyBracketedClauseCS__Alternatives_2 ) ) )
-            // InternalOCLinEcore.g:19421:1: ( ( rule__CurlyBracketedClauseCS__Alternatives_2 ) )
+            // InternalOCLinEcore.g:19432:1: ( ( ( rule__CurlyBracketedClauseCS__Alternatives_2 ) ) )
+            // InternalOCLinEcore.g:19433:1: ( ( rule__CurlyBracketedClauseCS__Alternatives_2 ) )
             {
-            // InternalOCLinEcore.g:19421:1: ( ( rule__CurlyBracketedClauseCS__Alternatives_2 ) )
-            // InternalOCLinEcore.g:19422:1: ( rule__CurlyBracketedClauseCS__Alternatives_2 )
+            // InternalOCLinEcore.g:19433:1: ( ( rule__CurlyBracketedClauseCS__Alternatives_2 ) )
+            // InternalOCLinEcore.g:19434:1: ( rule__CurlyBracketedClauseCS__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getAlternatives_2()); 
             }
-            // InternalOCLinEcore.g:19423:1: ( rule__CurlyBracketedClauseCS__Alternatives_2 )
-            // InternalOCLinEcore.g:19423:2: rule__CurlyBracketedClauseCS__Alternatives_2
+            // InternalOCLinEcore.g:19435:1: ( rule__CurlyBracketedClauseCS__Alternatives_2 )
+            // InternalOCLinEcore.g:19435:2: rule__CurlyBracketedClauseCS__Alternatives_2
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CurlyBracketedClauseCS__Alternatives_2();
@@ -58126,14 +58194,14 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group__3"
-    // InternalOCLinEcore.g:19433:1: rule__CurlyBracketedClauseCS__Group__3 : rule__CurlyBracketedClauseCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:19445:1: rule__CurlyBracketedClauseCS__Group__3 : rule__CurlyBracketedClauseCS__Group__3__Impl ;
     public final void rule__CurlyBracketedClauseCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19437:1: ( rule__CurlyBracketedClauseCS__Group__3__Impl )
-            // InternalOCLinEcore.g:19438:2: rule__CurlyBracketedClauseCS__Group__3__Impl
+            // InternalOCLinEcore.g:19449:1: ( rule__CurlyBracketedClauseCS__Group__3__Impl )
+            // InternalOCLinEcore.g:19450:2: rule__CurlyBracketedClauseCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CurlyBracketedClauseCS__Group__3__Impl();
@@ -58159,17 +58227,17 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group__3__Impl"
-    // InternalOCLinEcore.g:19444:1: rule__CurlyBracketedClauseCS__Group__3__Impl : ( '}' ) ;
+    // InternalOCLinEcore.g:19456:1: rule__CurlyBracketedClauseCS__Group__3__Impl : ( '}' ) ;
     public final void rule__CurlyBracketedClauseCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19448:1: ( ( '}' ) )
-            // InternalOCLinEcore.g:19449:1: ( '}' )
+            // InternalOCLinEcore.g:19460:1: ( ( '}' ) )
+            // InternalOCLinEcore.g:19461:1: ( '}' )
             {
-            // InternalOCLinEcore.g:19449:1: ( '}' )
-            // InternalOCLinEcore.g:19450:1: '}'
+            // InternalOCLinEcore.g:19461:1: ( '}' )
+            // InternalOCLinEcore.g:19462:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getRightCurlyBracketKeyword_3()); 
@@ -58200,14 +58268,14 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group_2_0__0"
-    // InternalOCLinEcore.g:19471:1: rule__CurlyBracketedClauseCS__Group_2_0__0 : rule__CurlyBracketedClauseCS__Group_2_0__0__Impl rule__CurlyBracketedClauseCS__Group_2_0__1 ;
+    // InternalOCLinEcore.g:19483:1: rule__CurlyBracketedClauseCS__Group_2_0__0 : rule__CurlyBracketedClauseCS__Group_2_0__0__Impl rule__CurlyBracketedClauseCS__Group_2_0__1 ;
     public final void rule__CurlyBracketedClauseCS__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19475:1: ( rule__CurlyBracketedClauseCS__Group_2_0__0__Impl rule__CurlyBracketedClauseCS__Group_2_0__1 )
-            // InternalOCLinEcore.g:19476:2: rule__CurlyBracketedClauseCS__Group_2_0__0__Impl rule__CurlyBracketedClauseCS__Group_2_0__1
+            // InternalOCLinEcore.g:19487:1: ( rule__CurlyBracketedClauseCS__Group_2_0__0__Impl rule__CurlyBracketedClauseCS__Group_2_0__1 )
+            // InternalOCLinEcore.g:19488:2: rule__CurlyBracketedClauseCS__Group_2_0__0__Impl rule__CurlyBracketedClauseCS__Group_2_0__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__CurlyBracketedClauseCS__Group_2_0__0__Impl();
@@ -58238,23 +58306,23 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group_2_0__0__Impl"
-    // InternalOCLinEcore.g:19483:1: rule__CurlyBracketedClauseCS__Group_2_0__0__Impl : ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 ) ) ;
+    // InternalOCLinEcore.g:19495:1: rule__CurlyBracketedClauseCS__Group_2_0__0__Impl : ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 ) ) ;
     public final void rule__CurlyBracketedClauseCS__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19487:1: ( ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 ) ) )
-            // InternalOCLinEcore.g:19488:1: ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 ) )
+            // InternalOCLinEcore.g:19499:1: ( ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 ) ) )
+            // InternalOCLinEcore.g:19500:1: ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 ) )
             {
-            // InternalOCLinEcore.g:19488:1: ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 ) )
-            // InternalOCLinEcore.g:19489:1: ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 )
+            // InternalOCLinEcore.g:19500:1: ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 ) )
+            // InternalOCLinEcore.g:19501:1: ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getOwnedPartsAssignment_2_0_0()); 
             }
-            // InternalOCLinEcore.g:19490:1: ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 )
-            // InternalOCLinEcore.g:19490:2: rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0
+            // InternalOCLinEcore.g:19502:1: ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 )
+            // InternalOCLinEcore.g:19502:2: rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0();
@@ -58289,14 +58357,14 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group_2_0__1"
-    // InternalOCLinEcore.g:19500:1: rule__CurlyBracketedClauseCS__Group_2_0__1 : rule__CurlyBracketedClauseCS__Group_2_0__1__Impl ;
+    // InternalOCLinEcore.g:19512:1: rule__CurlyBracketedClauseCS__Group_2_0__1 : rule__CurlyBracketedClauseCS__Group_2_0__1__Impl ;
     public final void rule__CurlyBracketedClauseCS__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19504:1: ( rule__CurlyBracketedClauseCS__Group_2_0__1__Impl )
-            // InternalOCLinEcore.g:19505:2: rule__CurlyBracketedClauseCS__Group_2_0__1__Impl
+            // InternalOCLinEcore.g:19516:1: ( rule__CurlyBracketedClauseCS__Group_2_0__1__Impl )
+            // InternalOCLinEcore.g:19517:2: rule__CurlyBracketedClauseCS__Group_2_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CurlyBracketedClauseCS__Group_2_0__1__Impl();
@@ -58322,22 +58390,22 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group_2_0__1__Impl"
-    // InternalOCLinEcore.g:19511:1: rule__CurlyBracketedClauseCS__Group_2_0__1__Impl : ( ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )* ) ;
+    // InternalOCLinEcore.g:19523:1: rule__CurlyBracketedClauseCS__Group_2_0__1__Impl : ( ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )* ) ;
     public final void rule__CurlyBracketedClauseCS__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19515:1: ( ( ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )* ) )
-            // InternalOCLinEcore.g:19516:1: ( ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )* )
+            // InternalOCLinEcore.g:19527:1: ( ( ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )* ) )
+            // InternalOCLinEcore.g:19528:1: ( ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )* )
             {
-            // InternalOCLinEcore.g:19516:1: ( ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )* )
-            // InternalOCLinEcore.g:19517:1: ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )*
+            // InternalOCLinEcore.g:19528:1: ( ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )* )
+            // InternalOCLinEcore.g:19529:1: ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getGroup_2_0_1()); 
             }
-            // InternalOCLinEcore.g:19518:1: ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )*
+            // InternalOCLinEcore.g:19530:1: ( rule__CurlyBracketedClauseCS__Group_2_0_1__0 )*
             loop202:
             do {
                 int alt202=2;
@@ -58350,7 +58418,7 @@
 
                 switch (alt202) {
             	case 1 :
-            	    // InternalOCLinEcore.g:19518:2: rule__CurlyBracketedClauseCS__Group_2_0_1__0
+            	    // InternalOCLinEcore.g:19530:2: rule__CurlyBracketedClauseCS__Group_2_0_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__CurlyBracketedClauseCS__Group_2_0_1__0();
@@ -58391,14 +58459,14 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group_2_0_1__0"
-    // InternalOCLinEcore.g:19532:1: rule__CurlyBracketedClauseCS__Group_2_0_1__0 : rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl rule__CurlyBracketedClauseCS__Group_2_0_1__1 ;
+    // InternalOCLinEcore.g:19544:1: rule__CurlyBracketedClauseCS__Group_2_0_1__0 : rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl rule__CurlyBracketedClauseCS__Group_2_0_1__1 ;
     public final void rule__CurlyBracketedClauseCS__Group_2_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19536:1: ( rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl rule__CurlyBracketedClauseCS__Group_2_0_1__1 )
-            // InternalOCLinEcore.g:19537:2: rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl rule__CurlyBracketedClauseCS__Group_2_0_1__1
+            // InternalOCLinEcore.g:19548:1: ( rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl rule__CurlyBracketedClauseCS__Group_2_0_1__1 )
+            // InternalOCLinEcore.g:19549:2: rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl rule__CurlyBracketedClauseCS__Group_2_0_1__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl();
@@ -58429,17 +58497,17 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl"
-    // InternalOCLinEcore.g:19544:1: rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:19556:1: rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl : ( ',' ) ;
     public final void rule__CurlyBracketedClauseCS__Group_2_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19548:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:19549:1: ( ',' )
+            // InternalOCLinEcore.g:19560:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:19561:1: ( ',' )
             {
-            // InternalOCLinEcore.g:19549:1: ( ',' )
-            // InternalOCLinEcore.g:19550:1: ','
+            // InternalOCLinEcore.g:19561:1: ( ',' )
+            // InternalOCLinEcore.g:19562:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getCommaKeyword_2_0_1_0()); 
@@ -58470,14 +58538,14 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group_2_0_1__1"
-    // InternalOCLinEcore.g:19563:1: rule__CurlyBracketedClauseCS__Group_2_0_1__1 : rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl ;
+    // InternalOCLinEcore.g:19575:1: rule__CurlyBracketedClauseCS__Group_2_0_1__1 : rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl ;
     public final void rule__CurlyBracketedClauseCS__Group_2_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19567:1: ( rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl )
-            // InternalOCLinEcore.g:19568:2: rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl
+            // InternalOCLinEcore.g:19579:1: ( rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl )
+            // InternalOCLinEcore.g:19580:2: rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl();
@@ -58503,23 +58571,23 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl"
-    // InternalOCLinEcore.g:19574:1: rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl : ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 ) ) ;
+    // InternalOCLinEcore.g:19586:1: rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl : ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 ) ) ;
     public final void rule__CurlyBracketedClauseCS__Group_2_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19578:1: ( ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 ) ) )
-            // InternalOCLinEcore.g:19579:1: ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 ) )
+            // InternalOCLinEcore.g:19590:1: ( ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 ) ) )
+            // InternalOCLinEcore.g:19591:1: ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 ) )
             {
-            // InternalOCLinEcore.g:19579:1: ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 ) )
-            // InternalOCLinEcore.g:19580:1: ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 )
+            // InternalOCLinEcore.g:19591:1: ( ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 ) )
+            // InternalOCLinEcore.g:19592:1: ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getOwnedPartsAssignment_2_0_1_1()); 
             }
-            // InternalOCLinEcore.g:19581:1: ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 )
-            // InternalOCLinEcore.g:19581:2: rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1
+            // InternalOCLinEcore.g:19593:1: ( rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 )
+            // InternalOCLinEcore.g:19593:2: rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1();
@@ -58554,14 +58622,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group__0"
-    // InternalOCLinEcore.g:19595:1: rule__RoundBracketedClauseCS__Group__0 : rule__RoundBracketedClauseCS__Group__0__Impl rule__RoundBracketedClauseCS__Group__1 ;
+    // InternalOCLinEcore.g:19607:1: rule__RoundBracketedClauseCS__Group__0 : rule__RoundBracketedClauseCS__Group__0__Impl rule__RoundBracketedClauseCS__Group__1 ;
     public final void rule__RoundBracketedClauseCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19599:1: ( rule__RoundBracketedClauseCS__Group__0__Impl rule__RoundBracketedClauseCS__Group__1 )
-            // InternalOCLinEcore.g:19600:2: rule__RoundBracketedClauseCS__Group__0__Impl rule__RoundBracketedClauseCS__Group__1
+            // InternalOCLinEcore.g:19611:1: ( rule__RoundBracketedClauseCS__Group__0__Impl rule__RoundBracketedClauseCS__Group__1 )
+            // InternalOCLinEcore.g:19612:2: rule__RoundBracketedClauseCS__Group__0__Impl rule__RoundBracketedClauseCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_11);
             rule__RoundBracketedClauseCS__Group__0__Impl();
@@ -58592,23 +58660,23 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group__0__Impl"
-    // InternalOCLinEcore.g:19607:1: rule__RoundBracketedClauseCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:19619:1: rule__RoundBracketedClauseCS__Group__0__Impl : ( () ) ;
     public final void rule__RoundBracketedClauseCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19611:1: ( ( () ) )
-            // InternalOCLinEcore.g:19612:1: ( () )
+            // InternalOCLinEcore.g:19623:1: ( ( () ) )
+            // InternalOCLinEcore.g:19624:1: ( () )
             {
-            // InternalOCLinEcore.g:19612:1: ( () )
-            // InternalOCLinEcore.g:19613:1: ()
+            // InternalOCLinEcore.g:19624:1: ( () )
+            // InternalOCLinEcore.g:19625:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getRoundBracketedClauseCSAction_0()); 
             }
-            // InternalOCLinEcore.g:19614:1: ()
-            // InternalOCLinEcore.g:19616:1: 
+            // InternalOCLinEcore.g:19626:1: ()
+            // InternalOCLinEcore.g:19628:1: 
             {
             }
 
@@ -58633,14 +58701,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group__1"
-    // InternalOCLinEcore.g:19626:1: rule__RoundBracketedClauseCS__Group__1 : rule__RoundBracketedClauseCS__Group__1__Impl rule__RoundBracketedClauseCS__Group__2 ;
+    // InternalOCLinEcore.g:19638:1: rule__RoundBracketedClauseCS__Group__1 : rule__RoundBracketedClauseCS__Group__1__Impl rule__RoundBracketedClauseCS__Group__2 ;
     public final void rule__RoundBracketedClauseCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19630:1: ( rule__RoundBracketedClauseCS__Group__1__Impl rule__RoundBracketedClauseCS__Group__2 )
-            // InternalOCLinEcore.g:19631:2: rule__RoundBracketedClauseCS__Group__1__Impl rule__RoundBracketedClauseCS__Group__2
+            // InternalOCLinEcore.g:19642:1: ( rule__RoundBracketedClauseCS__Group__1__Impl rule__RoundBracketedClauseCS__Group__2 )
+            // InternalOCLinEcore.g:19643:2: rule__RoundBracketedClauseCS__Group__1__Impl rule__RoundBracketedClauseCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_108);
             rule__RoundBracketedClauseCS__Group__1__Impl();
@@ -58671,17 +58739,17 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group__1__Impl"
-    // InternalOCLinEcore.g:19638:1: rule__RoundBracketedClauseCS__Group__1__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:19650:1: rule__RoundBracketedClauseCS__Group__1__Impl : ( '(' ) ;
     public final void rule__RoundBracketedClauseCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19642:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:19643:1: ( '(' )
+            // InternalOCLinEcore.g:19654:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:19655:1: ( '(' )
             {
-            // InternalOCLinEcore.g:19643:1: ( '(' )
-            // InternalOCLinEcore.g:19644:1: '('
+            // InternalOCLinEcore.g:19655:1: ( '(' )
+            // InternalOCLinEcore.g:19656:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getLeftParenthesisKeyword_1()); 
@@ -58712,14 +58780,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group__2"
-    // InternalOCLinEcore.g:19657:1: rule__RoundBracketedClauseCS__Group__2 : rule__RoundBracketedClauseCS__Group__2__Impl rule__RoundBracketedClauseCS__Group__3 ;
+    // InternalOCLinEcore.g:19669:1: rule__RoundBracketedClauseCS__Group__2 : rule__RoundBracketedClauseCS__Group__2__Impl rule__RoundBracketedClauseCS__Group__3 ;
     public final void rule__RoundBracketedClauseCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19661:1: ( rule__RoundBracketedClauseCS__Group__2__Impl rule__RoundBracketedClauseCS__Group__3 )
-            // InternalOCLinEcore.g:19662:2: rule__RoundBracketedClauseCS__Group__2__Impl rule__RoundBracketedClauseCS__Group__3
+            // InternalOCLinEcore.g:19673:1: ( rule__RoundBracketedClauseCS__Group__2__Impl rule__RoundBracketedClauseCS__Group__3 )
+            // InternalOCLinEcore.g:19674:2: rule__RoundBracketedClauseCS__Group__2__Impl rule__RoundBracketedClauseCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_108);
             rule__RoundBracketedClauseCS__Group__2__Impl();
@@ -58750,22 +58818,22 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group__2__Impl"
-    // InternalOCLinEcore.g:19669:1: rule__RoundBracketedClauseCS__Group__2__Impl : ( ( rule__RoundBracketedClauseCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:19681:1: rule__RoundBracketedClauseCS__Group__2__Impl : ( ( rule__RoundBracketedClauseCS__Group_2__0 )? ) ;
     public final void rule__RoundBracketedClauseCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19673:1: ( ( ( rule__RoundBracketedClauseCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:19674:1: ( ( rule__RoundBracketedClauseCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:19685:1: ( ( ( rule__RoundBracketedClauseCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:19686:1: ( ( rule__RoundBracketedClauseCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:19674:1: ( ( rule__RoundBracketedClauseCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:19675:1: ( rule__RoundBracketedClauseCS__Group_2__0 )?
+            // InternalOCLinEcore.g:19686:1: ( ( rule__RoundBracketedClauseCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:19687:1: ( rule__RoundBracketedClauseCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:19676:1: ( rule__RoundBracketedClauseCS__Group_2__0 )?
+            // InternalOCLinEcore.g:19688:1: ( rule__RoundBracketedClauseCS__Group_2__0 )?
             int alt203=2;
             int LA203_0 = input.LA(1);
 
@@ -58774,7 +58842,7 @@
             }
             switch (alt203) {
                 case 1 :
-                    // InternalOCLinEcore.g:19676:2: rule__RoundBracketedClauseCS__Group_2__0
+                    // InternalOCLinEcore.g:19688:2: rule__RoundBracketedClauseCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__RoundBracketedClauseCS__Group_2__0();
@@ -58812,14 +58880,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group__3"
-    // InternalOCLinEcore.g:19686:1: rule__RoundBracketedClauseCS__Group__3 : rule__RoundBracketedClauseCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:19698:1: rule__RoundBracketedClauseCS__Group__3 : rule__RoundBracketedClauseCS__Group__3__Impl ;
     public final void rule__RoundBracketedClauseCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19690:1: ( rule__RoundBracketedClauseCS__Group__3__Impl )
-            // InternalOCLinEcore.g:19691:2: rule__RoundBracketedClauseCS__Group__3__Impl
+            // InternalOCLinEcore.g:19702:1: ( rule__RoundBracketedClauseCS__Group__3__Impl )
+            // InternalOCLinEcore.g:19703:2: rule__RoundBracketedClauseCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__RoundBracketedClauseCS__Group__3__Impl();
@@ -58845,17 +58913,17 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group__3__Impl"
-    // InternalOCLinEcore.g:19697:1: rule__RoundBracketedClauseCS__Group__3__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:19709:1: rule__RoundBracketedClauseCS__Group__3__Impl : ( ')' ) ;
     public final void rule__RoundBracketedClauseCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19701:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:19702:1: ( ')' )
+            // InternalOCLinEcore.g:19713:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:19714:1: ( ')' )
             {
-            // InternalOCLinEcore.g:19702:1: ( ')' )
-            // InternalOCLinEcore.g:19703:1: ')'
+            // InternalOCLinEcore.g:19714:1: ( ')' )
+            // InternalOCLinEcore.g:19715:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getRightParenthesisKeyword_3()); 
@@ -58886,14 +58954,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2__0"
-    // InternalOCLinEcore.g:19724:1: rule__RoundBracketedClauseCS__Group_2__0 : rule__RoundBracketedClauseCS__Group_2__0__Impl rule__RoundBracketedClauseCS__Group_2__1 ;
+    // InternalOCLinEcore.g:19736:1: rule__RoundBracketedClauseCS__Group_2__0 : rule__RoundBracketedClauseCS__Group_2__0__Impl rule__RoundBracketedClauseCS__Group_2__1 ;
     public final void rule__RoundBracketedClauseCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19728:1: ( rule__RoundBracketedClauseCS__Group_2__0__Impl rule__RoundBracketedClauseCS__Group_2__1 )
-            // InternalOCLinEcore.g:19729:2: rule__RoundBracketedClauseCS__Group_2__0__Impl rule__RoundBracketedClauseCS__Group_2__1
+            // InternalOCLinEcore.g:19740:1: ( rule__RoundBracketedClauseCS__Group_2__0__Impl rule__RoundBracketedClauseCS__Group_2__1 )
+            // InternalOCLinEcore.g:19741:2: rule__RoundBracketedClauseCS__Group_2__0__Impl rule__RoundBracketedClauseCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_109);
             rule__RoundBracketedClauseCS__Group_2__0__Impl();
@@ -58924,23 +58992,23 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:19736:1: rule__RoundBracketedClauseCS__Group_2__0__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 ) ) ;
+    // InternalOCLinEcore.g:19748:1: rule__RoundBracketedClauseCS__Group_2__0__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 ) ) ;
     public final void rule__RoundBracketedClauseCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19740:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 ) ) )
-            // InternalOCLinEcore.g:19741:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 ) )
+            // InternalOCLinEcore.g:19752:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 ) ) )
+            // InternalOCLinEcore.g:19753:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 ) )
             {
-            // InternalOCLinEcore.g:19741:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 ) )
-            // InternalOCLinEcore.g:19742:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 )
+            // InternalOCLinEcore.g:19753:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 ) )
+            // InternalOCLinEcore.g:19754:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsAssignment_2_0()); 
             }
-            // InternalOCLinEcore.g:19743:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 )
-            // InternalOCLinEcore.g:19743:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0
+            // InternalOCLinEcore.g:19755:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 )
+            // InternalOCLinEcore.g:19755:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0();
@@ -58975,14 +59043,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2__1"
-    // InternalOCLinEcore.g:19753:1: rule__RoundBracketedClauseCS__Group_2__1 : rule__RoundBracketedClauseCS__Group_2__1__Impl rule__RoundBracketedClauseCS__Group_2__2 ;
+    // InternalOCLinEcore.g:19765:1: rule__RoundBracketedClauseCS__Group_2__1 : rule__RoundBracketedClauseCS__Group_2__1__Impl rule__RoundBracketedClauseCS__Group_2__2 ;
     public final void rule__RoundBracketedClauseCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19757:1: ( rule__RoundBracketedClauseCS__Group_2__1__Impl rule__RoundBracketedClauseCS__Group_2__2 )
-            // InternalOCLinEcore.g:19758:2: rule__RoundBracketedClauseCS__Group_2__1__Impl rule__RoundBracketedClauseCS__Group_2__2
+            // InternalOCLinEcore.g:19769:1: ( rule__RoundBracketedClauseCS__Group_2__1__Impl rule__RoundBracketedClauseCS__Group_2__2 )
+            // InternalOCLinEcore.g:19770:2: rule__RoundBracketedClauseCS__Group_2__1__Impl rule__RoundBracketedClauseCS__Group_2__2
             {
             pushFollow(FollowSets000.FOLLOW_109);
             rule__RoundBracketedClauseCS__Group_2__1__Impl();
@@ -59013,22 +59081,22 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:19765:1: rule__RoundBracketedClauseCS__Group_2__1__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )* ) ;
+    // InternalOCLinEcore.g:19777:1: rule__RoundBracketedClauseCS__Group_2__1__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )* ) ;
     public final void rule__RoundBracketedClauseCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19769:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )* ) )
-            // InternalOCLinEcore.g:19770:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )* )
+            // InternalOCLinEcore.g:19781:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )* ) )
+            // InternalOCLinEcore.g:19782:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )* )
             {
-            // InternalOCLinEcore.g:19770:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )* )
-            // InternalOCLinEcore.g:19771:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )*
+            // InternalOCLinEcore.g:19782:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )* )
+            // InternalOCLinEcore.g:19783:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsAssignment_2_1()); 
             }
-            // InternalOCLinEcore.g:19772:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )*
+            // InternalOCLinEcore.g:19784:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 )*
             loop204:
             do {
                 int alt204=2;
@@ -59041,7 +59109,7 @@
 
                 switch (alt204) {
             	case 1 :
-            	    // InternalOCLinEcore.g:19772:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1
+            	    // InternalOCLinEcore.g:19784:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1();
@@ -59082,14 +59150,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2__2"
-    // InternalOCLinEcore.g:19782:1: rule__RoundBracketedClauseCS__Group_2__2 : rule__RoundBracketedClauseCS__Group_2__2__Impl rule__RoundBracketedClauseCS__Group_2__3 ;
+    // InternalOCLinEcore.g:19794:1: rule__RoundBracketedClauseCS__Group_2__2 : rule__RoundBracketedClauseCS__Group_2__2__Impl rule__RoundBracketedClauseCS__Group_2__3 ;
     public final void rule__RoundBracketedClauseCS__Group_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19786:1: ( rule__RoundBracketedClauseCS__Group_2__2__Impl rule__RoundBracketedClauseCS__Group_2__3 )
-            // InternalOCLinEcore.g:19787:2: rule__RoundBracketedClauseCS__Group_2__2__Impl rule__RoundBracketedClauseCS__Group_2__3
+            // InternalOCLinEcore.g:19798:1: ( rule__RoundBracketedClauseCS__Group_2__2__Impl rule__RoundBracketedClauseCS__Group_2__3 )
+            // InternalOCLinEcore.g:19799:2: rule__RoundBracketedClauseCS__Group_2__2__Impl rule__RoundBracketedClauseCS__Group_2__3
             {
             pushFollow(FollowSets000.FOLLOW_109);
             rule__RoundBracketedClauseCS__Group_2__2__Impl();
@@ -59120,22 +59188,22 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2__2__Impl"
-    // InternalOCLinEcore.g:19794:1: rule__RoundBracketedClauseCS__Group_2__2__Impl : ( ( rule__RoundBracketedClauseCS__Group_2_2__0 )? ) ;
+    // InternalOCLinEcore.g:19806:1: rule__RoundBracketedClauseCS__Group_2__2__Impl : ( ( rule__RoundBracketedClauseCS__Group_2_2__0 )? ) ;
     public final void rule__RoundBracketedClauseCS__Group_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19798:1: ( ( ( rule__RoundBracketedClauseCS__Group_2_2__0 )? ) )
-            // InternalOCLinEcore.g:19799:1: ( ( rule__RoundBracketedClauseCS__Group_2_2__0 )? )
+            // InternalOCLinEcore.g:19810:1: ( ( ( rule__RoundBracketedClauseCS__Group_2_2__0 )? ) )
+            // InternalOCLinEcore.g:19811:1: ( ( rule__RoundBracketedClauseCS__Group_2_2__0 )? )
             {
-            // InternalOCLinEcore.g:19799:1: ( ( rule__RoundBracketedClauseCS__Group_2_2__0 )? )
-            // InternalOCLinEcore.g:19800:1: ( rule__RoundBracketedClauseCS__Group_2_2__0 )?
+            // InternalOCLinEcore.g:19811:1: ( ( rule__RoundBracketedClauseCS__Group_2_2__0 )? )
+            // InternalOCLinEcore.g:19812:1: ( rule__RoundBracketedClauseCS__Group_2_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getGroup_2_2()); 
             }
-            // InternalOCLinEcore.g:19801:1: ( rule__RoundBracketedClauseCS__Group_2_2__0 )?
+            // InternalOCLinEcore.g:19813:1: ( rule__RoundBracketedClauseCS__Group_2_2__0 )?
             int alt205=2;
             int LA205_0 = input.LA(1);
 
@@ -59144,7 +59212,7 @@
             }
             switch (alt205) {
                 case 1 :
-                    // InternalOCLinEcore.g:19801:2: rule__RoundBracketedClauseCS__Group_2_2__0
+                    // InternalOCLinEcore.g:19813:2: rule__RoundBracketedClauseCS__Group_2_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__RoundBracketedClauseCS__Group_2_2__0();
@@ -59182,14 +59250,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2__3"
-    // InternalOCLinEcore.g:19811:1: rule__RoundBracketedClauseCS__Group_2__3 : rule__RoundBracketedClauseCS__Group_2__3__Impl ;
+    // InternalOCLinEcore.g:19823:1: rule__RoundBracketedClauseCS__Group_2__3 : rule__RoundBracketedClauseCS__Group_2__3__Impl ;
     public final void rule__RoundBracketedClauseCS__Group_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19815:1: ( rule__RoundBracketedClauseCS__Group_2__3__Impl )
-            // InternalOCLinEcore.g:19816:2: rule__RoundBracketedClauseCS__Group_2__3__Impl
+            // InternalOCLinEcore.g:19827:1: ( rule__RoundBracketedClauseCS__Group_2__3__Impl )
+            // InternalOCLinEcore.g:19828:2: rule__RoundBracketedClauseCS__Group_2__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__RoundBracketedClauseCS__Group_2__3__Impl();
@@ -59215,22 +59283,22 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2__3__Impl"
-    // InternalOCLinEcore.g:19822:1: rule__RoundBracketedClauseCS__Group_2__3__Impl : ( ( rule__RoundBracketedClauseCS__Group_2_3__0 )* ) ;
+    // InternalOCLinEcore.g:19834:1: rule__RoundBracketedClauseCS__Group_2__3__Impl : ( ( rule__RoundBracketedClauseCS__Group_2_3__0 )* ) ;
     public final void rule__RoundBracketedClauseCS__Group_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19826:1: ( ( ( rule__RoundBracketedClauseCS__Group_2_3__0 )* ) )
-            // InternalOCLinEcore.g:19827:1: ( ( rule__RoundBracketedClauseCS__Group_2_3__0 )* )
+            // InternalOCLinEcore.g:19838:1: ( ( ( rule__RoundBracketedClauseCS__Group_2_3__0 )* ) )
+            // InternalOCLinEcore.g:19839:1: ( ( rule__RoundBracketedClauseCS__Group_2_3__0 )* )
             {
-            // InternalOCLinEcore.g:19827:1: ( ( rule__RoundBracketedClauseCS__Group_2_3__0 )* )
-            // InternalOCLinEcore.g:19828:1: ( rule__RoundBracketedClauseCS__Group_2_3__0 )*
+            // InternalOCLinEcore.g:19839:1: ( ( rule__RoundBracketedClauseCS__Group_2_3__0 )* )
+            // InternalOCLinEcore.g:19840:1: ( rule__RoundBracketedClauseCS__Group_2_3__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getGroup_2_3()); 
             }
-            // InternalOCLinEcore.g:19829:1: ( rule__RoundBracketedClauseCS__Group_2_3__0 )*
+            // InternalOCLinEcore.g:19841:1: ( rule__RoundBracketedClauseCS__Group_2_3__0 )*
             loop206:
             do {
                 int alt206=2;
@@ -59243,7 +59311,7 @@
 
                 switch (alt206) {
             	case 1 :
-            	    // InternalOCLinEcore.g:19829:2: rule__RoundBracketedClauseCS__Group_2_3__0
+            	    // InternalOCLinEcore.g:19841:2: rule__RoundBracketedClauseCS__Group_2_3__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_110);
             	    rule__RoundBracketedClauseCS__Group_2_3__0();
@@ -59284,14 +59352,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2_2__0"
-    // InternalOCLinEcore.g:19847:1: rule__RoundBracketedClauseCS__Group_2_2__0 : rule__RoundBracketedClauseCS__Group_2_2__0__Impl rule__RoundBracketedClauseCS__Group_2_2__1 ;
+    // InternalOCLinEcore.g:19859:1: rule__RoundBracketedClauseCS__Group_2_2__0 : rule__RoundBracketedClauseCS__Group_2_2__0__Impl rule__RoundBracketedClauseCS__Group_2_2__1 ;
     public final void rule__RoundBracketedClauseCS__Group_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19851:1: ( rule__RoundBracketedClauseCS__Group_2_2__0__Impl rule__RoundBracketedClauseCS__Group_2_2__1 )
-            // InternalOCLinEcore.g:19852:2: rule__RoundBracketedClauseCS__Group_2_2__0__Impl rule__RoundBracketedClauseCS__Group_2_2__1
+            // InternalOCLinEcore.g:19863:1: ( rule__RoundBracketedClauseCS__Group_2_2__0__Impl rule__RoundBracketedClauseCS__Group_2_2__1 )
+            // InternalOCLinEcore.g:19864:2: rule__RoundBracketedClauseCS__Group_2_2__0__Impl rule__RoundBracketedClauseCS__Group_2_2__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__RoundBracketedClauseCS__Group_2_2__0__Impl();
@@ -59322,23 +59390,23 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2_2__0__Impl"
-    // InternalOCLinEcore.g:19859:1: rule__RoundBracketedClauseCS__Group_2_2__0__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 ) ) ;
+    // InternalOCLinEcore.g:19871:1: rule__RoundBracketedClauseCS__Group_2_2__0__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 ) ) ;
     public final void rule__RoundBracketedClauseCS__Group_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19863:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 ) ) )
-            // InternalOCLinEcore.g:19864:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 ) )
+            // InternalOCLinEcore.g:19875:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 ) ) )
+            // InternalOCLinEcore.g:19876:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 ) )
             {
-            // InternalOCLinEcore.g:19864:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 ) )
-            // InternalOCLinEcore.g:19865:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 )
+            // InternalOCLinEcore.g:19876:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 ) )
+            // InternalOCLinEcore.g:19877:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsAssignment_2_2_0()); 
             }
-            // InternalOCLinEcore.g:19866:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 )
-            // InternalOCLinEcore.g:19866:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0
+            // InternalOCLinEcore.g:19878:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 )
+            // InternalOCLinEcore.g:19878:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0();
@@ -59373,14 +59441,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2_2__1"
-    // InternalOCLinEcore.g:19876:1: rule__RoundBracketedClauseCS__Group_2_2__1 : rule__RoundBracketedClauseCS__Group_2_2__1__Impl ;
+    // InternalOCLinEcore.g:19888:1: rule__RoundBracketedClauseCS__Group_2_2__1 : rule__RoundBracketedClauseCS__Group_2_2__1__Impl ;
     public final void rule__RoundBracketedClauseCS__Group_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19880:1: ( rule__RoundBracketedClauseCS__Group_2_2__1__Impl )
-            // InternalOCLinEcore.g:19881:2: rule__RoundBracketedClauseCS__Group_2_2__1__Impl
+            // InternalOCLinEcore.g:19892:1: ( rule__RoundBracketedClauseCS__Group_2_2__1__Impl )
+            // InternalOCLinEcore.g:19893:2: rule__RoundBracketedClauseCS__Group_2_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__RoundBracketedClauseCS__Group_2_2__1__Impl();
@@ -59406,22 +59474,22 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2_2__1__Impl"
-    // InternalOCLinEcore.g:19887:1: rule__RoundBracketedClauseCS__Group_2_2__1__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )* ) ;
+    // InternalOCLinEcore.g:19899:1: rule__RoundBracketedClauseCS__Group_2_2__1__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )* ) ;
     public final void rule__RoundBracketedClauseCS__Group_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19891:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )* ) )
-            // InternalOCLinEcore.g:19892:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )* )
+            // InternalOCLinEcore.g:19903:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )* ) )
+            // InternalOCLinEcore.g:19904:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )* )
             {
-            // InternalOCLinEcore.g:19892:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )* )
-            // InternalOCLinEcore.g:19893:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )*
+            // InternalOCLinEcore.g:19904:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )* )
+            // InternalOCLinEcore.g:19905:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsAssignment_2_2_1()); 
             }
-            // InternalOCLinEcore.g:19894:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )*
+            // InternalOCLinEcore.g:19906:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 )*
             loop207:
             do {
                 int alt207=2;
@@ -59434,7 +59502,7 @@
 
                 switch (alt207) {
             	case 1 :
-            	    // InternalOCLinEcore.g:19894:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1
+            	    // InternalOCLinEcore.g:19906:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1();
@@ -59475,14 +59543,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2_3__0"
-    // InternalOCLinEcore.g:19908:1: rule__RoundBracketedClauseCS__Group_2_3__0 : rule__RoundBracketedClauseCS__Group_2_3__0__Impl rule__RoundBracketedClauseCS__Group_2_3__1 ;
+    // InternalOCLinEcore.g:19920:1: rule__RoundBracketedClauseCS__Group_2_3__0 : rule__RoundBracketedClauseCS__Group_2_3__0__Impl rule__RoundBracketedClauseCS__Group_2_3__1 ;
     public final void rule__RoundBracketedClauseCS__Group_2_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19912:1: ( rule__RoundBracketedClauseCS__Group_2_3__0__Impl rule__RoundBracketedClauseCS__Group_2_3__1 )
-            // InternalOCLinEcore.g:19913:2: rule__RoundBracketedClauseCS__Group_2_3__0__Impl rule__RoundBracketedClauseCS__Group_2_3__1
+            // InternalOCLinEcore.g:19924:1: ( rule__RoundBracketedClauseCS__Group_2_3__0__Impl rule__RoundBracketedClauseCS__Group_2_3__1 )
+            // InternalOCLinEcore.g:19925:2: rule__RoundBracketedClauseCS__Group_2_3__0__Impl rule__RoundBracketedClauseCS__Group_2_3__1
             {
             pushFollow(FollowSets000.FOLLOW_32);
             rule__RoundBracketedClauseCS__Group_2_3__0__Impl();
@@ -59513,23 +59581,23 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2_3__0__Impl"
-    // InternalOCLinEcore.g:19920:1: rule__RoundBracketedClauseCS__Group_2_3__0__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 ) ) ;
+    // InternalOCLinEcore.g:19932:1: rule__RoundBracketedClauseCS__Group_2_3__0__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 ) ) ;
     public final void rule__RoundBracketedClauseCS__Group_2_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19924:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 ) ) )
-            // InternalOCLinEcore.g:19925:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 ) )
+            // InternalOCLinEcore.g:19936:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 ) ) )
+            // InternalOCLinEcore.g:19937:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 ) )
             {
-            // InternalOCLinEcore.g:19925:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 ) )
-            // InternalOCLinEcore.g:19926:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 )
+            // InternalOCLinEcore.g:19937:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 ) )
+            // InternalOCLinEcore.g:19938:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsAssignment_2_3_0()); 
             }
-            // InternalOCLinEcore.g:19927:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 )
-            // InternalOCLinEcore.g:19927:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0
+            // InternalOCLinEcore.g:19939:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 )
+            // InternalOCLinEcore.g:19939:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0();
@@ -59564,14 +59632,14 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2_3__1"
-    // InternalOCLinEcore.g:19937:1: rule__RoundBracketedClauseCS__Group_2_3__1 : rule__RoundBracketedClauseCS__Group_2_3__1__Impl ;
+    // InternalOCLinEcore.g:19949:1: rule__RoundBracketedClauseCS__Group_2_3__1 : rule__RoundBracketedClauseCS__Group_2_3__1__Impl ;
     public final void rule__RoundBracketedClauseCS__Group_2_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19941:1: ( rule__RoundBracketedClauseCS__Group_2_3__1__Impl )
-            // InternalOCLinEcore.g:19942:2: rule__RoundBracketedClauseCS__Group_2_3__1__Impl
+            // InternalOCLinEcore.g:19953:1: ( rule__RoundBracketedClauseCS__Group_2_3__1__Impl )
+            // InternalOCLinEcore.g:19954:2: rule__RoundBracketedClauseCS__Group_2_3__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__RoundBracketedClauseCS__Group_2_3__1__Impl();
@@ -59597,22 +59665,22 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__Group_2_3__1__Impl"
-    // InternalOCLinEcore.g:19948:1: rule__RoundBracketedClauseCS__Group_2_3__1__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )* ) ;
+    // InternalOCLinEcore.g:19960:1: rule__RoundBracketedClauseCS__Group_2_3__1__Impl : ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )* ) ;
     public final void rule__RoundBracketedClauseCS__Group_2_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19952:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )* ) )
-            // InternalOCLinEcore.g:19953:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )* )
+            // InternalOCLinEcore.g:19964:1: ( ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )* ) )
+            // InternalOCLinEcore.g:19965:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )* )
             {
-            // InternalOCLinEcore.g:19953:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )* )
-            // InternalOCLinEcore.g:19954:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )*
+            // InternalOCLinEcore.g:19965:1: ( ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )* )
+            // InternalOCLinEcore.g:19966:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsAssignment_2_3_1()); 
             }
-            // InternalOCLinEcore.g:19955:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )*
+            // InternalOCLinEcore.g:19967:1: ( rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 )*
             loop208:
             do {
                 int alt208=2;
@@ -59625,7 +59693,7 @@
 
                 switch (alt208) {
             	case 1 :
-            	    // InternalOCLinEcore.g:19955:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1
+            	    // InternalOCLinEcore.g:19967:2: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1();
@@ -59666,14 +59734,14 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group__0"
-    // InternalOCLinEcore.g:19969:1: rule__SquareBracketedClauseCS__Group__0 : rule__SquareBracketedClauseCS__Group__0__Impl rule__SquareBracketedClauseCS__Group__1 ;
+    // InternalOCLinEcore.g:19981:1: rule__SquareBracketedClauseCS__Group__0 : rule__SquareBracketedClauseCS__Group__0__Impl rule__SquareBracketedClauseCS__Group__1 ;
     public final void rule__SquareBracketedClauseCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19973:1: ( rule__SquareBracketedClauseCS__Group__0__Impl rule__SquareBracketedClauseCS__Group__1 )
-            // InternalOCLinEcore.g:19974:2: rule__SquareBracketedClauseCS__Group__0__Impl rule__SquareBracketedClauseCS__Group__1
+            // InternalOCLinEcore.g:19985:1: ( rule__SquareBracketedClauseCS__Group__0__Impl rule__SquareBracketedClauseCS__Group__1 )
+            // InternalOCLinEcore.g:19986:2: rule__SquareBracketedClauseCS__Group__0__Impl rule__SquareBracketedClauseCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__SquareBracketedClauseCS__Group__0__Impl();
@@ -59704,17 +59772,17 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group__0__Impl"
-    // InternalOCLinEcore.g:19981:1: rule__SquareBracketedClauseCS__Group__0__Impl : ( '[' ) ;
+    // InternalOCLinEcore.g:19993:1: rule__SquareBracketedClauseCS__Group__0__Impl : ( '[' ) ;
     public final void rule__SquareBracketedClauseCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:19985:1: ( ( '[' ) )
-            // InternalOCLinEcore.g:19986:1: ( '[' )
+            // InternalOCLinEcore.g:19997:1: ( ( '[' ) )
+            // InternalOCLinEcore.g:19998:1: ( '[' )
             {
-            // InternalOCLinEcore.g:19986:1: ( '[' )
-            // InternalOCLinEcore.g:19987:1: '['
+            // InternalOCLinEcore.g:19998:1: ( '[' )
+            // InternalOCLinEcore.g:19999:1: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSquareBracketedClauseCSAccess().getLeftSquareBracketKeyword_0()); 
@@ -59745,14 +59813,14 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group__1"
-    // InternalOCLinEcore.g:20000:1: rule__SquareBracketedClauseCS__Group__1 : rule__SquareBracketedClauseCS__Group__1__Impl rule__SquareBracketedClauseCS__Group__2 ;
+    // InternalOCLinEcore.g:20012:1: rule__SquareBracketedClauseCS__Group__1 : rule__SquareBracketedClauseCS__Group__1__Impl rule__SquareBracketedClauseCS__Group__2 ;
     public final void rule__SquareBracketedClauseCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20004:1: ( rule__SquareBracketedClauseCS__Group__1__Impl rule__SquareBracketedClauseCS__Group__2 )
-            // InternalOCLinEcore.g:20005:2: rule__SquareBracketedClauseCS__Group__1__Impl rule__SquareBracketedClauseCS__Group__2
+            // InternalOCLinEcore.g:20016:1: ( rule__SquareBracketedClauseCS__Group__1__Impl rule__SquareBracketedClauseCS__Group__2 )
+            // InternalOCLinEcore.g:20017:2: rule__SquareBracketedClauseCS__Group__1__Impl rule__SquareBracketedClauseCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_111);
             rule__SquareBracketedClauseCS__Group__1__Impl();
@@ -59783,23 +59851,23 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group__1__Impl"
-    // InternalOCLinEcore.g:20012:1: rule__SquareBracketedClauseCS__Group__1__Impl : ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:20024:1: rule__SquareBracketedClauseCS__Group__1__Impl : ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 ) ) ;
     public final void rule__SquareBracketedClauseCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20016:1: ( ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 ) ) )
-            // InternalOCLinEcore.g:20017:1: ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 ) )
+            // InternalOCLinEcore.g:20028:1: ( ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 ) ) )
+            // InternalOCLinEcore.g:20029:1: ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:20017:1: ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 ) )
-            // InternalOCLinEcore.g:20018:1: ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 )
+            // InternalOCLinEcore.g:20029:1: ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 ) )
+            // InternalOCLinEcore.g:20030:1: ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSquareBracketedClauseCSAccess().getOwnedTermsAssignment_1()); 
             }
-            // InternalOCLinEcore.g:20019:1: ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 )
-            // InternalOCLinEcore.g:20019:2: rule__SquareBracketedClauseCS__OwnedTermsAssignment_1
+            // InternalOCLinEcore.g:20031:1: ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 )
+            // InternalOCLinEcore.g:20031:2: rule__SquareBracketedClauseCS__OwnedTermsAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SquareBracketedClauseCS__OwnedTermsAssignment_1();
@@ -59834,14 +59902,14 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group__2"
-    // InternalOCLinEcore.g:20029:1: rule__SquareBracketedClauseCS__Group__2 : rule__SquareBracketedClauseCS__Group__2__Impl rule__SquareBracketedClauseCS__Group__3 ;
+    // InternalOCLinEcore.g:20041:1: rule__SquareBracketedClauseCS__Group__2 : rule__SquareBracketedClauseCS__Group__2__Impl rule__SquareBracketedClauseCS__Group__3 ;
     public final void rule__SquareBracketedClauseCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20033:1: ( rule__SquareBracketedClauseCS__Group__2__Impl rule__SquareBracketedClauseCS__Group__3 )
-            // InternalOCLinEcore.g:20034:2: rule__SquareBracketedClauseCS__Group__2__Impl rule__SquareBracketedClauseCS__Group__3
+            // InternalOCLinEcore.g:20045:1: ( rule__SquareBracketedClauseCS__Group__2__Impl rule__SquareBracketedClauseCS__Group__3 )
+            // InternalOCLinEcore.g:20046:2: rule__SquareBracketedClauseCS__Group__2__Impl rule__SquareBracketedClauseCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_111);
             rule__SquareBracketedClauseCS__Group__2__Impl();
@@ -59872,22 +59940,22 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group__2__Impl"
-    // InternalOCLinEcore.g:20041:1: rule__SquareBracketedClauseCS__Group__2__Impl : ( ( rule__SquareBracketedClauseCS__Group_2__0 )* ) ;
+    // InternalOCLinEcore.g:20053:1: rule__SquareBracketedClauseCS__Group__2__Impl : ( ( rule__SquareBracketedClauseCS__Group_2__0 )* ) ;
     public final void rule__SquareBracketedClauseCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20045:1: ( ( ( rule__SquareBracketedClauseCS__Group_2__0 )* ) )
-            // InternalOCLinEcore.g:20046:1: ( ( rule__SquareBracketedClauseCS__Group_2__0 )* )
+            // InternalOCLinEcore.g:20057:1: ( ( ( rule__SquareBracketedClauseCS__Group_2__0 )* ) )
+            // InternalOCLinEcore.g:20058:1: ( ( rule__SquareBracketedClauseCS__Group_2__0 )* )
             {
-            // InternalOCLinEcore.g:20046:1: ( ( rule__SquareBracketedClauseCS__Group_2__0 )* )
-            // InternalOCLinEcore.g:20047:1: ( rule__SquareBracketedClauseCS__Group_2__0 )*
+            // InternalOCLinEcore.g:20058:1: ( ( rule__SquareBracketedClauseCS__Group_2__0 )* )
+            // InternalOCLinEcore.g:20059:1: ( rule__SquareBracketedClauseCS__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSquareBracketedClauseCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:20048:1: ( rule__SquareBracketedClauseCS__Group_2__0 )*
+            // InternalOCLinEcore.g:20060:1: ( rule__SquareBracketedClauseCS__Group_2__0 )*
             loop209:
             do {
                 int alt209=2;
@@ -59900,7 +59968,7 @@
 
                 switch (alt209) {
             	case 1 :
-            	    // InternalOCLinEcore.g:20048:2: rule__SquareBracketedClauseCS__Group_2__0
+            	    // InternalOCLinEcore.g:20060:2: rule__SquareBracketedClauseCS__Group_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__SquareBracketedClauseCS__Group_2__0();
@@ -59941,14 +60009,14 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group__3"
-    // InternalOCLinEcore.g:20058:1: rule__SquareBracketedClauseCS__Group__3 : rule__SquareBracketedClauseCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:20070:1: rule__SquareBracketedClauseCS__Group__3 : rule__SquareBracketedClauseCS__Group__3__Impl ;
     public final void rule__SquareBracketedClauseCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20062:1: ( rule__SquareBracketedClauseCS__Group__3__Impl )
-            // InternalOCLinEcore.g:20063:2: rule__SquareBracketedClauseCS__Group__3__Impl
+            // InternalOCLinEcore.g:20074:1: ( rule__SquareBracketedClauseCS__Group__3__Impl )
+            // InternalOCLinEcore.g:20075:2: rule__SquareBracketedClauseCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SquareBracketedClauseCS__Group__3__Impl();
@@ -59974,17 +60042,17 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group__3__Impl"
-    // InternalOCLinEcore.g:20069:1: rule__SquareBracketedClauseCS__Group__3__Impl : ( ']' ) ;
+    // InternalOCLinEcore.g:20081:1: rule__SquareBracketedClauseCS__Group__3__Impl : ( ']' ) ;
     public final void rule__SquareBracketedClauseCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20073:1: ( ( ']' ) )
-            // InternalOCLinEcore.g:20074:1: ( ']' )
+            // InternalOCLinEcore.g:20085:1: ( ( ']' ) )
+            // InternalOCLinEcore.g:20086:1: ( ']' )
             {
-            // InternalOCLinEcore.g:20074:1: ( ']' )
-            // InternalOCLinEcore.g:20075:1: ']'
+            // InternalOCLinEcore.g:20086:1: ( ']' )
+            // InternalOCLinEcore.g:20087:1: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSquareBracketedClauseCSAccess().getRightSquareBracketKeyword_3()); 
@@ -60015,14 +60083,14 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group_2__0"
-    // InternalOCLinEcore.g:20096:1: rule__SquareBracketedClauseCS__Group_2__0 : rule__SquareBracketedClauseCS__Group_2__0__Impl rule__SquareBracketedClauseCS__Group_2__1 ;
+    // InternalOCLinEcore.g:20108:1: rule__SquareBracketedClauseCS__Group_2__0 : rule__SquareBracketedClauseCS__Group_2__0__Impl rule__SquareBracketedClauseCS__Group_2__1 ;
     public final void rule__SquareBracketedClauseCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20100:1: ( rule__SquareBracketedClauseCS__Group_2__0__Impl rule__SquareBracketedClauseCS__Group_2__1 )
-            // InternalOCLinEcore.g:20101:2: rule__SquareBracketedClauseCS__Group_2__0__Impl rule__SquareBracketedClauseCS__Group_2__1
+            // InternalOCLinEcore.g:20112:1: ( rule__SquareBracketedClauseCS__Group_2__0__Impl rule__SquareBracketedClauseCS__Group_2__1 )
+            // InternalOCLinEcore.g:20113:2: rule__SquareBracketedClauseCS__Group_2__0__Impl rule__SquareBracketedClauseCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__SquareBracketedClauseCS__Group_2__0__Impl();
@@ -60053,17 +60121,17 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:20108:1: rule__SquareBracketedClauseCS__Group_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:20120:1: rule__SquareBracketedClauseCS__Group_2__0__Impl : ( ',' ) ;
     public final void rule__SquareBracketedClauseCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20112:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:20113:1: ( ',' )
+            // InternalOCLinEcore.g:20124:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:20125:1: ( ',' )
             {
-            // InternalOCLinEcore.g:20113:1: ( ',' )
-            // InternalOCLinEcore.g:20114:1: ','
+            // InternalOCLinEcore.g:20125:1: ( ',' )
+            // InternalOCLinEcore.g:20126:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSquareBracketedClauseCSAccess().getCommaKeyword_2_0()); 
@@ -60094,14 +60162,14 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group_2__1"
-    // InternalOCLinEcore.g:20127:1: rule__SquareBracketedClauseCS__Group_2__1 : rule__SquareBracketedClauseCS__Group_2__1__Impl ;
+    // InternalOCLinEcore.g:20139:1: rule__SquareBracketedClauseCS__Group_2__1 : rule__SquareBracketedClauseCS__Group_2__1__Impl ;
     public final void rule__SquareBracketedClauseCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20131:1: ( rule__SquareBracketedClauseCS__Group_2__1__Impl )
-            // InternalOCLinEcore.g:20132:2: rule__SquareBracketedClauseCS__Group_2__1__Impl
+            // InternalOCLinEcore.g:20143:1: ( rule__SquareBracketedClauseCS__Group_2__1__Impl )
+            // InternalOCLinEcore.g:20144:2: rule__SquareBracketedClauseCS__Group_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SquareBracketedClauseCS__Group_2__1__Impl();
@@ -60127,23 +60195,23 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:20138:1: rule__SquareBracketedClauseCS__Group_2__1__Impl : ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 ) ) ;
+    // InternalOCLinEcore.g:20150:1: rule__SquareBracketedClauseCS__Group_2__1__Impl : ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 ) ) ;
     public final void rule__SquareBracketedClauseCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20142:1: ( ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 ) ) )
-            // InternalOCLinEcore.g:20143:1: ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 ) )
+            // InternalOCLinEcore.g:20154:1: ( ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:20155:1: ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 ) )
             {
-            // InternalOCLinEcore.g:20143:1: ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 ) )
-            // InternalOCLinEcore.g:20144:1: ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 )
+            // InternalOCLinEcore.g:20155:1: ( ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 ) )
+            // InternalOCLinEcore.g:20156:1: ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSquareBracketedClauseCSAccess().getOwnedTermsAssignment_2_1()); 
             }
-            // InternalOCLinEcore.g:20145:1: ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 )
-            // InternalOCLinEcore.g:20145:2: rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1
+            // InternalOCLinEcore.g:20157:1: ( rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 )
+            // InternalOCLinEcore.g:20157:2: rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1();
@@ -60178,14 +60246,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0__0"
-    // InternalOCLinEcore.g:20159:1: rule__NavigatingArgCS__Group_0__0 : rule__NavigatingArgCS__Group_0__0__Impl rule__NavigatingArgCS__Group_0__1 ;
+    // InternalOCLinEcore.g:20171:1: rule__NavigatingArgCS__Group_0__0 : rule__NavigatingArgCS__Group_0__0__Impl rule__NavigatingArgCS__Group_0__1 ;
     public final void rule__NavigatingArgCS__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20163:1: ( rule__NavigatingArgCS__Group_0__0__Impl rule__NavigatingArgCS__Group_0__1 )
-            // InternalOCLinEcore.g:20164:2: rule__NavigatingArgCS__Group_0__0__Impl rule__NavigatingArgCS__Group_0__1
+            // InternalOCLinEcore.g:20175:1: ( rule__NavigatingArgCS__Group_0__0__Impl rule__NavigatingArgCS__Group_0__1 )
+            // InternalOCLinEcore.g:20176:2: rule__NavigatingArgCS__Group_0__0__Impl rule__NavigatingArgCS__Group_0__1
             {
             pushFollow(FollowSets000.FOLLOW_112);
             rule__NavigatingArgCS__Group_0__0__Impl();
@@ -60216,23 +60284,23 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0__0__Impl"
-    // InternalOCLinEcore.g:20171:1: rule__NavigatingArgCS__Group_0__0__Impl : ( ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 ) ) ;
+    // InternalOCLinEcore.g:20183:1: rule__NavigatingArgCS__Group_0__0__Impl : ( ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 ) ) ;
     public final void rule__NavigatingArgCS__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20175:1: ( ( ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 ) ) )
-            // InternalOCLinEcore.g:20176:1: ( ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 ) )
+            // InternalOCLinEcore.g:20187:1: ( ( ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 ) ) )
+            // InternalOCLinEcore.g:20188:1: ( ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 ) )
             {
-            // InternalOCLinEcore.g:20176:1: ( ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 ) )
-            // InternalOCLinEcore.g:20177:1: ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 )
+            // InternalOCLinEcore.g:20188:1: ( ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 ) )
+            // InternalOCLinEcore.g:20189:1: ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedNameExpressionAssignment_0_0()); 
             }
-            // InternalOCLinEcore.g:20178:1: ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 )
-            // InternalOCLinEcore.g:20178:2: rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0
+            // InternalOCLinEcore.g:20190:1: ( rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 )
+            // InternalOCLinEcore.g:20190:2: rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0();
@@ -60267,14 +60335,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0__1"
-    // InternalOCLinEcore.g:20188:1: rule__NavigatingArgCS__Group_0__1 : rule__NavigatingArgCS__Group_0__1__Impl ;
+    // InternalOCLinEcore.g:20200:1: rule__NavigatingArgCS__Group_0__1 : rule__NavigatingArgCS__Group_0__1__Impl ;
     public final void rule__NavigatingArgCS__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20192:1: ( rule__NavigatingArgCS__Group_0__1__Impl )
-            // InternalOCLinEcore.g:20193:2: rule__NavigatingArgCS__Group_0__1__Impl
+            // InternalOCLinEcore.g:20204:1: ( rule__NavigatingArgCS__Group_0__1__Impl )
+            // InternalOCLinEcore.g:20205:2: rule__NavigatingArgCS__Group_0__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__Group_0__1__Impl();
@@ -60300,22 +60368,22 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0__1__Impl"
-    // InternalOCLinEcore.g:20199:1: rule__NavigatingArgCS__Group_0__1__Impl : ( ( rule__NavigatingArgCS__Alternatives_0_1 )? ) ;
+    // InternalOCLinEcore.g:20211:1: rule__NavigatingArgCS__Group_0__1__Impl : ( ( rule__NavigatingArgCS__Alternatives_0_1 )? ) ;
     public final void rule__NavigatingArgCS__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20203:1: ( ( ( rule__NavigatingArgCS__Alternatives_0_1 )? ) )
-            // InternalOCLinEcore.g:20204:1: ( ( rule__NavigatingArgCS__Alternatives_0_1 )? )
+            // InternalOCLinEcore.g:20215:1: ( ( ( rule__NavigatingArgCS__Alternatives_0_1 )? ) )
+            // InternalOCLinEcore.g:20216:1: ( ( rule__NavigatingArgCS__Alternatives_0_1 )? )
             {
-            // InternalOCLinEcore.g:20204:1: ( ( rule__NavigatingArgCS__Alternatives_0_1 )? )
-            // InternalOCLinEcore.g:20205:1: ( rule__NavigatingArgCS__Alternatives_0_1 )?
+            // InternalOCLinEcore.g:20216:1: ( ( rule__NavigatingArgCS__Alternatives_0_1 )? )
+            // InternalOCLinEcore.g:20217:1: ( rule__NavigatingArgCS__Alternatives_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getAlternatives_0_1()); 
             }
-            // InternalOCLinEcore.g:20206:1: ( rule__NavigatingArgCS__Alternatives_0_1 )?
+            // InternalOCLinEcore.g:20218:1: ( rule__NavigatingArgCS__Alternatives_0_1 )?
             int alt210=2;
             int LA210_0 = input.LA(1);
 
@@ -60324,7 +60392,7 @@
             }
             switch (alt210) {
                 case 1 :
-                    // InternalOCLinEcore.g:20206:2: rule__NavigatingArgCS__Alternatives_0_1
+                    // InternalOCLinEcore.g:20218:2: rule__NavigatingArgCS__Alternatives_0_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingArgCS__Alternatives_0_1();
@@ -60362,14 +60430,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0__0"
-    // InternalOCLinEcore.g:20220:1: rule__NavigatingArgCS__Group_0_1_0__0 : rule__NavigatingArgCS__Group_0_1_0__0__Impl rule__NavigatingArgCS__Group_0_1_0__1 ;
+    // InternalOCLinEcore.g:20232:1: rule__NavigatingArgCS__Group_0_1_0__0 : rule__NavigatingArgCS__Group_0_1_0__0__Impl rule__NavigatingArgCS__Group_0_1_0__1 ;
     public final void rule__NavigatingArgCS__Group_0_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20224:1: ( rule__NavigatingArgCS__Group_0_1_0__0__Impl rule__NavigatingArgCS__Group_0_1_0__1 )
-            // InternalOCLinEcore.g:20225:2: rule__NavigatingArgCS__Group_0_1_0__0__Impl rule__NavigatingArgCS__Group_0_1_0__1
+            // InternalOCLinEcore.g:20236:1: ( rule__NavigatingArgCS__Group_0_1_0__0__Impl rule__NavigatingArgCS__Group_0_1_0__1 )
+            // InternalOCLinEcore.g:20237:2: rule__NavigatingArgCS__Group_0_1_0__0__Impl rule__NavigatingArgCS__Group_0_1_0__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__NavigatingArgCS__Group_0_1_0__0__Impl();
@@ -60400,17 +60468,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0__0__Impl"
-    // InternalOCLinEcore.g:20232:1: rule__NavigatingArgCS__Group_0_1_0__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:20244:1: rule__NavigatingArgCS__Group_0_1_0__0__Impl : ( ':' ) ;
     public final void rule__NavigatingArgCS__Group_0_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20236:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:20237:1: ( ':' )
+            // InternalOCLinEcore.g:20248:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:20249:1: ( ':' )
             {
-            // InternalOCLinEcore.g:20237:1: ( ':' )
-            // InternalOCLinEcore.g:20238:1: ':'
+            // InternalOCLinEcore.g:20249:1: ( ':' )
+            // InternalOCLinEcore.g:20250:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getColonKeyword_0_1_0_0()); 
@@ -60441,14 +60509,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0__1"
-    // InternalOCLinEcore.g:20251:1: rule__NavigatingArgCS__Group_0_1_0__1 : rule__NavigatingArgCS__Group_0_1_0__1__Impl rule__NavigatingArgCS__Group_0_1_0__2 ;
+    // InternalOCLinEcore.g:20263:1: rule__NavigatingArgCS__Group_0_1_0__1 : rule__NavigatingArgCS__Group_0_1_0__1__Impl rule__NavigatingArgCS__Group_0_1_0__2 ;
     public final void rule__NavigatingArgCS__Group_0_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20255:1: ( rule__NavigatingArgCS__Group_0_1_0__1__Impl rule__NavigatingArgCS__Group_0_1_0__2 )
-            // InternalOCLinEcore.g:20256:2: rule__NavigatingArgCS__Group_0_1_0__1__Impl rule__NavigatingArgCS__Group_0_1_0__2
+            // InternalOCLinEcore.g:20267:1: ( rule__NavigatingArgCS__Group_0_1_0__1__Impl rule__NavigatingArgCS__Group_0_1_0__2 )
+            // InternalOCLinEcore.g:20268:2: rule__NavigatingArgCS__Group_0_1_0__1__Impl rule__NavigatingArgCS__Group_0_1_0__2
             {
             pushFollow(FollowSets000.FOLLOW_40);
             rule__NavigatingArgCS__Group_0_1_0__1__Impl();
@@ -60479,23 +60547,23 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0__1__Impl"
-    // InternalOCLinEcore.g:20263:1: rule__NavigatingArgCS__Group_0_1_0__1__Impl : ( ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 ) ) ;
+    // InternalOCLinEcore.g:20275:1: rule__NavigatingArgCS__Group_0_1_0__1__Impl : ( ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 ) ) ;
     public final void rule__NavigatingArgCS__Group_0_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20267:1: ( ( ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 ) ) )
-            // InternalOCLinEcore.g:20268:1: ( ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 ) )
+            // InternalOCLinEcore.g:20279:1: ( ( ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 ) ) )
+            // InternalOCLinEcore.g:20280:1: ( ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 ) )
             {
-            // InternalOCLinEcore.g:20268:1: ( ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 ) )
-            // InternalOCLinEcore.g:20269:1: ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 )
+            // InternalOCLinEcore.g:20280:1: ( ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 ) )
+            // InternalOCLinEcore.g:20281:1: ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedTypeAssignment_0_1_0_1()); 
             }
-            // InternalOCLinEcore.g:20270:1: ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 )
-            // InternalOCLinEcore.g:20270:2: rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1
+            // InternalOCLinEcore.g:20282:1: ( rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 )
+            // InternalOCLinEcore.g:20282:2: rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1();
@@ -60530,14 +60598,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0__2"
-    // InternalOCLinEcore.g:20280:1: rule__NavigatingArgCS__Group_0_1_0__2 : rule__NavigatingArgCS__Group_0_1_0__2__Impl ;
+    // InternalOCLinEcore.g:20292:1: rule__NavigatingArgCS__Group_0_1_0__2 : rule__NavigatingArgCS__Group_0_1_0__2__Impl ;
     public final void rule__NavigatingArgCS__Group_0_1_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20284:1: ( rule__NavigatingArgCS__Group_0_1_0__2__Impl )
-            // InternalOCLinEcore.g:20285:2: rule__NavigatingArgCS__Group_0_1_0__2__Impl
+            // InternalOCLinEcore.g:20296:1: ( rule__NavigatingArgCS__Group_0_1_0__2__Impl )
+            // InternalOCLinEcore.g:20297:2: rule__NavigatingArgCS__Group_0_1_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__Group_0_1_0__2__Impl();
@@ -60563,22 +60631,22 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0__2__Impl"
-    // InternalOCLinEcore.g:20291:1: rule__NavigatingArgCS__Group_0_1_0__2__Impl : ( ( rule__NavigatingArgCS__Group_0_1_0_2__0 )? ) ;
+    // InternalOCLinEcore.g:20303:1: rule__NavigatingArgCS__Group_0_1_0__2__Impl : ( ( rule__NavigatingArgCS__Group_0_1_0_2__0 )? ) ;
     public final void rule__NavigatingArgCS__Group_0_1_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20295:1: ( ( ( rule__NavigatingArgCS__Group_0_1_0_2__0 )? ) )
-            // InternalOCLinEcore.g:20296:1: ( ( rule__NavigatingArgCS__Group_0_1_0_2__0 )? )
+            // InternalOCLinEcore.g:20307:1: ( ( ( rule__NavigatingArgCS__Group_0_1_0_2__0 )? ) )
+            // InternalOCLinEcore.g:20308:1: ( ( rule__NavigatingArgCS__Group_0_1_0_2__0 )? )
             {
-            // InternalOCLinEcore.g:20296:1: ( ( rule__NavigatingArgCS__Group_0_1_0_2__0 )? )
-            // InternalOCLinEcore.g:20297:1: ( rule__NavigatingArgCS__Group_0_1_0_2__0 )?
+            // InternalOCLinEcore.g:20308:1: ( ( rule__NavigatingArgCS__Group_0_1_0_2__0 )? )
+            // InternalOCLinEcore.g:20309:1: ( rule__NavigatingArgCS__Group_0_1_0_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getGroup_0_1_0_2()); 
             }
-            // InternalOCLinEcore.g:20298:1: ( rule__NavigatingArgCS__Group_0_1_0_2__0 )?
+            // InternalOCLinEcore.g:20310:1: ( rule__NavigatingArgCS__Group_0_1_0_2__0 )?
             int alt211=2;
             int LA211_0 = input.LA(1);
 
@@ -60587,7 +60655,7 @@
             }
             switch (alt211) {
                 case 1 :
-                    // InternalOCLinEcore.g:20298:2: rule__NavigatingArgCS__Group_0_1_0_2__0
+                    // InternalOCLinEcore.g:20310:2: rule__NavigatingArgCS__Group_0_1_0_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingArgCS__Group_0_1_0_2__0();
@@ -60625,14 +60693,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0_2__0"
-    // InternalOCLinEcore.g:20314:1: rule__NavigatingArgCS__Group_0_1_0_2__0 : rule__NavigatingArgCS__Group_0_1_0_2__0__Impl rule__NavigatingArgCS__Group_0_1_0_2__1 ;
+    // InternalOCLinEcore.g:20326:1: rule__NavigatingArgCS__Group_0_1_0_2__0 : rule__NavigatingArgCS__Group_0_1_0_2__0__Impl rule__NavigatingArgCS__Group_0_1_0_2__1 ;
     public final void rule__NavigatingArgCS__Group_0_1_0_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20318:1: ( rule__NavigatingArgCS__Group_0_1_0_2__0__Impl rule__NavigatingArgCS__Group_0_1_0_2__1 )
-            // InternalOCLinEcore.g:20319:2: rule__NavigatingArgCS__Group_0_1_0_2__0__Impl rule__NavigatingArgCS__Group_0_1_0_2__1
+            // InternalOCLinEcore.g:20330:1: ( rule__NavigatingArgCS__Group_0_1_0_2__0__Impl rule__NavigatingArgCS__Group_0_1_0_2__1 )
+            // InternalOCLinEcore.g:20331:2: rule__NavigatingArgCS__Group_0_1_0_2__0__Impl rule__NavigatingArgCS__Group_0_1_0_2__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingArgCS__Group_0_1_0_2__0__Impl();
@@ -60663,17 +60731,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0_2__0__Impl"
-    // InternalOCLinEcore.g:20326:1: rule__NavigatingArgCS__Group_0_1_0_2__0__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:20338:1: rule__NavigatingArgCS__Group_0_1_0_2__0__Impl : ( '=' ) ;
     public final void rule__NavigatingArgCS__Group_0_1_0_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20330:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:20331:1: ( '=' )
+            // InternalOCLinEcore.g:20342:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:20343:1: ( '=' )
             {
-            // InternalOCLinEcore.g:20331:1: ( '=' )
-            // InternalOCLinEcore.g:20332:1: '='
+            // InternalOCLinEcore.g:20343:1: ( '=' )
+            // InternalOCLinEcore.g:20344:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getEqualsSignKeyword_0_1_0_2_0()); 
@@ -60704,14 +60772,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0_2__1"
-    // InternalOCLinEcore.g:20345:1: rule__NavigatingArgCS__Group_0_1_0_2__1 : rule__NavigatingArgCS__Group_0_1_0_2__1__Impl ;
+    // InternalOCLinEcore.g:20357:1: rule__NavigatingArgCS__Group_0_1_0_2__1 : rule__NavigatingArgCS__Group_0_1_0_2__1__Impl ;
     public final void rule__NavigatingArgCS__Group_0_1_0_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20349:1: ( rule__NavigatingArgCS__Group_0_1_0_2__1__Impl )
-            // InternalOCLinEcore.g:20350:2: rule__NavigatingArgCS__Group_0_1_0_2__1__Impl
+            // InternalOCLinEcore.g:20361:1: ( rule__NavigatingArgCS__Group_0_1_0_2__1__Impl )
+            // InternalOCLinEcore.g:20362:2: rule__NavigatingArgCS__Group_0_1_0_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__Group_0_1_0_2__1__Impl();
@@ -60737,23 +60805,23 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_0_2__1__Impl"
-    // InternalOCLinEcore.g:20356:1: rule__NavigatingArgCS__Group_0_1_0_2__1__Impl : ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 ) ) ;
+    // InternalOCLinEcore.g:20368:1: rule__NavigatingArgCS__Group_0_1_0_2__1__Impl : ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 ) ) ;
     public final void rule__NavigatingArgCS__Group_0_1_0_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20360:1: ( ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 ) ) )
-            // InternalOCLinEcore.g:20361:1: ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 ) )
+            // InternalOCLinEcore.g:20372:1: ( ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 ) ) )
+            // InternalOCLinEcore.g:20373:1: ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 ) )
             {
-            // InternalOCLinEcore.g:20361:1: ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 ) )
-            // InternalOCLinEcore.g:20362:1: ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 )
+            // InternalOCLinEcore.g:20373:1: ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 ) )
+            // InternalOCLinEcore.g:20374:1: ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedInitExpressionAssignment_0_1_0_2_1()); 
             }
-            // InternalOCLinEcore.g:20363:1: ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 )
-            // InternalOCLinEcore.g:20363:2: rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1
+            // InternalOCLinEcore.g:20375:1: ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 )
+            // InternalOCLinEcore.g:20375:2: rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1();
@@ -60788,14 +60856,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_1__0"
-    // InternalOCLinEcore.g:20377:1: rule__NavigatingArgCS__Group_0_1_1__0 : rule__NavigatingArgCS__Group_0_1_1__0__Impl rule__NavigatingArgCS__Group_0_1_1__1 ;
+    // InternalOCLinEcore.g:20389:1: rule__NavigatingArgCS__Group_0_1_1__0 : rule__NavigatingArgCS__Group_0_1_1__0__Impl rule__NavigatingArgCS__Group_0_1_1__1 ;
     public final void rule__NavigatingArgCS__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20381:1: ( rule__NavigatingArgCS__Group_0_1_1__0__Impl rule__NavigatingArgCS__Group_0_1_1__1 )
-            // InternalOCLinEcore.g:20382:2: rule__NavigatingArgCS__Group_0_1_1__0__Impl rule__NavigatingArgCS__Group_0_1_1__1
+            // InternalOCLinEcore.g:20393:1: ( rule__NavigatingArgCS__Group_0_1_1__0__Impl rule__NavigatingArgCS__Group_0_1_1__1 )
+            // InternalOCLinEcore.g:20394:2: rule__NavigatingArgCS__Group_0_1_1__0__Impl rule__NavigatingArgCS__Group_0_1_1__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingArgCS__Group_0_1_1__0__Impl();
@@ -60826,17 +60894,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_1__0__Impl"
-    // InternalOCLinEcore.g:20389:1: rule__NavigatingArgCS__Group_0_1_1__0__Impl : ( 'in' ) ;
+    // InternalOCLinEcore.g:20401:1: rule__NavigatingArgCS__Group_0_1_1__0__Impl : ( 'in' ) ;
     public final void rule__NavigatingArgCS__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20393:1: ( ( 'in' ) )
-            // InternalOCLinEcore.g:20394:1: ( 'in' )
+            // InternalOCLinEcore.g:20405:1: ( ( 'in' ) )
+            // InternalOCLinEcore.g:20406:1: ( 'in' )
             {
-            // InternalOCLinEcore.g:20394:1: ( 'in' )
-            // InternalOCLinEcore.g:20395:1: 'in'
+            // InternalOCLinEcore.g:20406:1: ( 'in' )
+            // InternalOCLinEcore.g:20407:1: 'in'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getInKeyword_0_1_1_0()); 
@@ -60867,14 +60935,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_1__1"
-    // InternalOCLinEcore.g:20408:1: rule__NavigatingArgCS__Group_0_1_1__1 : rule__NavigatingArgCS__Group_0_1_1__1__Impl ;
+    // InternalOCLinEcore.g:20420:1: rule__NavigatingArgCS__Group_0_1_1__1 : rule__NavigatingArgCS__Group_0_1_1__1__Impl ;
     public final void rule__NavigatingArgCS__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20412:1: ( rule__NavigatingArgCS__Group_0_1_1__1__Impl )
-            // InternalOCLinEcore.g:20413:2: rule__NavigatingArgCS__Group_0_1_1__1__Impl
+            // InternalOCLinEcore.g:20424:1: ( rule__NavigatingArgCS__Group_0_1_1__1__Impl )
+            // InternalOCLinEcore.g:20425:2: rule__NavigatingArgCS__Group_0_1_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__Group_0_1_1__1__Impl();
@@ -60900,23 +60968,23 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_0_1_1__1__Impl"
-    // InternalOCLinEcore.g:20419:1: rule__NavigatingArgCS__Group_0_1_1__1__Impl : ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 ) ) ;
+    // InternalOCLinEcore.g:20431:1: rule__NavigatingArgCS__Group_0_1_1__1__Impl : ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 ) ) ;
     public final void rule__NavigatingArgCS__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20423:1: ( ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 ) ) )
-            // InternalOCLinEcore.g:20424:1: ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 ) )
+            // InternalOCLinEcore.g:20435:1: ( ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 ) ) )
+            // InternalOCLinEcore.g:20436:1: ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 ) )
             {
-            // InternalOCLinEcore.g:20424:1: ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 ) )
-            // InternalOCLinEcore.g:20425:1: ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 )
+            // InternalOCLinEcore.g:20436:1: ( ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 ) )
+            // InternalOCLinEcore.g:20437:1: ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedInitExpressionAssignment_0_1_1_1()); 
             }
-            // InternalOCLinEcore.g:20426:1: ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 )
-            // InternalOCLinEcore.g:20426:2: rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1
+            // InternalOCLinEcore.g:20438:1: ( rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 )
+            // InternalOCLinEcore.g:20438:2: rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1();
@@ -60951,14 +61019,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_1__0"
-    // InternalOCLinEcore.g:20440:1: rule__NavigatingArgCS__Group_1__0 : rule__NavigatingArgCS__Group_1__0__Impl rule__NavigatingArgCS__Group_1__1 ;
+    // InternalOCLinEcore.g:20452:1: rule__NavigatingArgCS__Group_1__0 : rule__NavigatingArgCS__Group_1__0__Impl rule__NavigatingArgCS__Group_1__1 ;
     public final void rule__NavigatingArgCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20444:1: ( rule__NavigatingArgCS__Group_1__0__Impl rule__NavigatingArgCS__Group_1__1 )
-            // InternalOCLinEcore.g:20445:2: rule__NavigatingArgCS__Group_1__0__Impl rule__NavigatingArgCS__Group_1__1
+            // InternalOCLinEcore.g:20456:1: ( rule__NavigatingArgCS__Group_1__0__Impl rule__NavigatingArgCS__Group_1__1 )
+            // InternalOCLinEcore.g:20457:2: rule__NavigatingArgCS__Group_1__0__Impl rule__NavigatingArgCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__NavigatingArgCS__Group_1__0__Impl();
@@ -60989,17 +61057,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:20452:1: rule__NavigatingArgCS__Group_1__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:20464:1: rule__NavigatingArgCS__Group_1__0__Impl : ( ':' ) ;
     public final void rule__NavigatingArgCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20456:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:20457:1: ( ':' )
+            // InternalOCLinEcore.g:20468:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:20469:1: ( ':' )
             {
-            // InternalOCLinEcore.g:20457:1: ( ':' )
-            // InternalOCLinEcore.g:20458:1: ':'
+            // InternalOCLinEcore.g:20469:1: ( ':' )
+            // InternalOCLinEcore.g:20470:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getColonKeyword_1_0()); 
@@ -61030,14 +61098,14 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_1__1"
-    // InternalOCLinEcore.g:20471:1: rule__NavigatingArgCS__Group_1__1 : rule__NavigatingArgCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:20483:1: rule__NavigatingArgCS__Group_1__1 : rule__NavigatingArgCS__Group_1__1__Impl ;
     public final void rule__NavigatingArgCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20475:1: ( rule__NavigatingArgCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:20476:2: rule__NavigatingArgCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:20487:1: ( rule__NavigatingArgCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:20488:2: rule__NavigatingArgCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__Group_1__1__Impl();
@@ -61063,23 +61131,23 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:20482:1: rule__NavigatingArgCS__Group_1__1__Impl : ( ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:20494:1: rule__NavigatingArgCS__Group_1__1__Impl : ( ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 ) ) ;
     public final void rule__NavigatingArgCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20486:1: ( ( ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:20487:1: ( ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:20498:1: ( ( ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:20499:1: ( ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:20487:1: ( ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 ) )
-            // InternalOCLinEcore.g:20488:1: ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:20499:1: ( ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 ) )
+            // InternalOCLinEcore.g:20500:1: ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedTypeAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:20489:1: ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 )
-            // InternalOCLinEcore.g:20489:2: rule__NavigatingArgCS__OwnedTypeAssignment_1_1
+            // InternalOCLinEcore.g:20501:1: ( rule__NavigatingArgCS__OwnedTypeAssignment_1_1 )
+            // InternalOCLinEcore.g:20501:2: rule__NavigatingArgCS__OwnedTypeAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingArgCS__OwnedTypeAssignment_1_1();
@@ -61114,14 +61182,14 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group__0"
-    // InternalOCLinEcore.g:20503:1: rule__NavigatingBarArgCS__Group__0 : rule__NavigatingBarArgCS__Group__0__Impl rule__NavigatingBarArgCS__Group__1 ;
+    // InternalOCLinEcore.g:20515:1: rule__NavigatingBarArgCS__Group__0 : rule__NavigatingBarArgCS__Group__0__Impl rule__NavigatingBarArgCS__Group__1 ;
     public final void rule__NavigatingBarArgCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20507:1: ( rule__NavigatingBarArgCS__Group__0__Impl rule__NavigatingBarArgCS__Group__1 )
-            // InternalOCLinEcore.g:20508:2: rule__NavigatingBarArgCS__Group__0__Impl rule__NavigatingBarArgCS__Group__1
+            // InternalOCLinEcore.g:20519:1: ( rule__NavigatingBarArgCS__Group__0__Impl rule__NavigatingBarArgCS__Group__1 )
+            // InternalOCLinEcore.g:20520:2: rule__NavigatingBarArgCS__Group__0__Impl rule__NavigatingBarArgCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingBarArgCS__Group__0__Impl();
@@ -61152,23 +61220,23 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group__0__Impl"
-    // InternalOCLinEcore.g:20515:1: rule__NavigatingBarArgCS__Group__0__Impl : ( ( rule__NavigatingBarArgCS__PrefixAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:20527:1: rule__NavigatingBarArgCS__Group__0__Impl : ( ( rule__NavigatingBarArgCS__PrefixAssignment_0 ) ) ;
     public final void rule__NavigatingBarArgCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20519:1: ( ( ( rule__NavigatingBarArgCS__PrefixAssignment_0 ) ) )
-            // InternalOCLinEcore.g:20520:1: ( ( rule__NavigatingBarArgCS__PrefixAssignment_0 ) )
+            // InternalOCLinEcore.g:20531:1: ( ( ( rule__NavigatingBarArgCS__PrefixAssignment_0 ) ) )
+            // InternalOCLinEcore.g:20532:1: ( ( rule__NavigatingBarArgCS__PrefixAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:20520:1: ( ( rule__NavigatingBarArgCS__PrefixAssignment_0 ) )
-            // InternalOCLinEcore.g:20521:1: ( rule__NavigatingBarArgCS__PrefixAssignment_0 )
+            // InternalOCLinEcore.g:20532:1: ( ( rule__NavigatingBarArgCS__PrefixAssignment_0 ) )
+            // InternalOCLinEcore.g:20533:1: ( rule__NavigatingBarArgCS__PrefixAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getPrefixAssignment_0()); 
             }
-            // InternalOCLinEcore.g:20522:1: ( rule__NavigatingBarArgCS__PrefixAssignment_0 )
-            // InternalOCLinEcore.g:20522:2: rule__NavigatingBarArgCS__PrefixAssignment_0
+            // InternalOCLinEcore.g:20534:1: ( rule__NavigatingBarArgCS__PrefixAssignment_0 )
+            // InternalOCLinEcore.g:20534:2: rule__NavigatingBarArgCS__PrefixAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingBarArgCS__PrefixAssignment_0();
@@ -61203,14 +61271,14 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group__1"
-    // InternalOCLinEcore.g:20532:1: rule__NavigatingBarArgCS__Group__1 : rule__NavigatingBarArgCS__Group__1__Impl rule__NavigatingBarArgCS__Group__2 ;
+    // InternalOCLinEcore.g:20544:1: rule__NavigatingBarArgCS__Group__1 : rule__NavigatingBarArgCS__Group__1__Impl rule__NavigatingBarArgCS__Group__2 ;
     public final void rule__NavigatingBarArgCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20536:1: ( rule__NavigatingBarArgCS__Group__1__Impl rule__NavigatingBarArgCS__Group__2 )
-            // InternalOCLinEcore.g:20537:2: rule__NavigatingBarArgCS__Group__1__Impl rule__NavigatingBarArgCS__Group__2
+            // InternalOCLinEcore.g:20548:1: ( rule__NavigatingBarArgCS__Group__1__Impl rule__NavigatingBarArgCS__Group__2 )
+            // InternalOCLinEcore.g:20549:2: rule__NavigatingBarArgCS__Group__1__Impl rule__NavigatingBarArgCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_52);
             rule__NavigatingBarArgCS__Group__1__Impl();
@@ -61241,23 +61309,23 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group__1__Impl"
-    // InternalOCLinEcore.g:20544:1: rule__NavigatingBarArgCS__Group__1__Impl : ( ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:20556:1: rule__NavigatingBarArgCS__Group__1__Impl : ( ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 ) ) ;
     public final void rule__NavigatingBarArgCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20548:1: ( ( ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 ) ) )
-            // InternalOCLinEcore.g:20549:1: ( ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 ) )
+            // InternalOCLinEcore.g:20560:1: ( ( ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 ) ) )
+            // InternalOCLinEcore.g:20561:1: ( ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:20549:1: ( ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 ) )
-            // InternalOCLinEcore.g:20550:1: ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 )
+            // InternalOCLinEcore.g:20561:1: ( ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 ) )
+            // InternalOCLinEcore.g:20562:1: ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getOwnedNameExpressionAssignment_1()); 
             }
-            // InternalOCLinEcore.g:20551:1: ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 )
-            // InternalOCLinEcore.g:20551:2: rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1
+            // InternalOCLinEcore.g:20563:1: ( rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 )
+            // InternalOCLinEcore.g:20563:2: rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1();
@@ -61292,14 +61360,14 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group__2"
-    // InternalOCLinEcore.g:20561:1: rule__NavigatingBarArgCS__Group__2 : rule__NavigatingBarArgCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:20573:1: rule__NavigatingBarArgCS__Group__2 : rule__NavigatingBarArgCS__Group__2__Impl ;
     public final void rule__NavigatingBarArgCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20565:1: ( rule__NavigatingBarArgCS__Group__2__Impl )
-            // InternalOCLinEcore.g:20566:2: rule__NavigatingBarArgCS__Group__2__Impl
+            // InternalOCLinEcore.g:20577:1: ( rule__NavigatingBarArgCS__Group__2__Impl )
+            // InternalOCLinEcore.g:20578:2: rule__NavigatingBarArgCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingBarArgCS__Group__2__Impl();
@@ -61325,22 +61393,22 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group__2__Impl"
-    // InternalOCLinEcore.g:20572:1: rule__NavigatingBarArgCS__Group__2__Impl : ( ( rule__NavigatingBarArgCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:20584:1: rule__NavigatingBarArgCS__Group__2__Impl : ( ( rule__NavigatingBarArgCS__Group_2__0 )? ) ;
     public final void rule__NavigatingBarArgCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20576:1: ( ( ( rule__NavigatingBarArgCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:20577:1: ( ( rule__NavigatingBarArgCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:20588:1: ( ( ( rule__NavigatingBarArgCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:20589:1: ( ( rule__NavigatingBarArgCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:20577:1: ( ( rule__NavigatingBarArgCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:20578:1: ( rule__NavigatingBarArgCS__Group_2__0 )?
+            // InternalOCLinEcore.g:20589:1: ( ( rule__NavigatingBarArgCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:20590:1: ( rule__NavigatingBarArgCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:20579:1: ( rule__NavigatingBarArgCS__Group_2__0 )?
+            // InternalOCLinEcore.g:20591:1: ( rule__NavigatingBarArgCS__Group_2__0 )?
             int alt212=2;
             int LA212_0 = input.LA(1);
 
@@ -61349,7 +61417,7 @@
             }
             switch (alt212) {
                 case 1 :
-                    // InternalOCLinEcore.g:20579:2: rule__NavigatingBarArgCS__Group_2__0
+                    // InternalOCLinEcore.g:20591:2: rule__NavigatingBarArgCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingBarArgCS__Group_2__0();
@@ -61387,14 +61455,14 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2__0"
-    // InternalOCLinEcore.g:20595:1: rule__NavigatingBarArgCS__Group_2__0 : rule__NavigatingBarArgCS__Group_2__0__Impl rule__NavigatingBarArgCS__Group_2__1 ;
+    // InternalOCLinEcore.g:20607:1: rule__NavigatingBarArgCS__Group_2__0 : rule__NavigatingBarArgCS__Group_2__0__Impl rule__NavigatingBarArgCS__Group_2__1 ;
     public final void rule__NavigatingBarArgCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20599:1: ( rule__NavigatingBarArgCS__Group_2__0__Impl rule__NavigatingBarArgCS__Group_2__1 )
-            // InternalOCLinEcore.g:20600:2: rule__NavigatingBarArgCS__Group_2__0__Impl rule__NavigatingBarArgCS__Group_2__1
+            // InternalOCLinEcore.g:20611:1: ( rule__NavigatingBarArgCS__Group_2__0__Impl rule__NavigatingBarArgCS__Group_2__1 )
+            // InternalOCLinEcore.g:20612:2: rule__NavigatingBarArgCS__Group_2__0__Impl rule__NavigatingBarArgCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__NavigatingBarArgCS__Group_2__0__Impl();
@@ -61425,17 +61493,17 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:20607:1: rule__NavigatingBarArgCS__Group_2__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:20619:1: rule__NavigatingBarArgCS__Group_2__0__Impl : ( ':' ) ;
     public final void rule__NavigatingBarArgCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20611:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:20612:1: ( ':' )
+            // InternalOCLinEcore.g:20623:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:20624:1: ( ':' )
             {
-            // InternalOCLinEcore.g:20612:1: ( ':' )
-            // InternalOCLinEcore.g:20613:1: ':'
+            // InternalOCLinEcore.g:20624:1: ( ':' )
+            // InternalOCLinEcore.g:20625:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getColonKeyword_2_0()); 
@@ -61466,14 +61534,14 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2__1"
-    // InternalOCLinEcore.g:20626:1: rule__NavigatingBarArgCS__Group_2__1 : rule__NavigatingBarArgCS__Group_2__1__Impl rule__NavigatingBarArgCS__Group_2__2 ;
+    // InternalOCLinEcore.g:20638:1: rule__NavigatingBarArgCS__Group_2__1 : rule__NavigatingBarArgCS__Group_2__1__Impl rule__NavigatingBarArgCS__Group_2__2 ;
     public final void rule__NavigatingBarArgCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20630:1: ( rule__NavigatingBarArgCS__Group_2__1__Impl rule__NavigatingBarArgCS__Group_2__2 )
-            // InternalOCLinEcore.g:20631:2: rule__NavigatingBarArgCS__Group_2__1__Impl rule__NavigatingBarArgCS__Group_2__2
+            // InternalOCLinEcore.g:20642:1: ( rule__NavigatingBarArgCS__Group_2__1__Impl rule__NavigatingBarArgCS__Group_2__2 )
+            // InternalOCLinEcore.g:20643:2: rule__NavigatingBarArgCS__Group_2__1__Impl rule__NavigatingBarArgCS__Group_2__2
             {
             pushFollow(FollowSets000.FOLLOW_40);
             rule__NavigatingBarArgCS__Group_2__1__Impl();
@@ -61504,23 +61572,23 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:20638:1: rule__NavigatingBarArgCS__Group_2__1__Impl : ( ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 ) ) ;
+    // InternalOCLinEcore.g:20650:1: rule__NavigatingBarArgCS__Group_2__1__Impl : ( ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 ) ) ;
     public final void rule__NavigatingBarArgCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20642:1: ( ( ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 ) ) )
-            // InternalOCLinEcore.g:20643:1: ( ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 ) )
+            // InternalOCLinEcore.g:20654:1: ( ( ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:20655:1: ( ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 ) )
             {
-            // InternalOCLinEcore.g:20643:1: ( ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 ) )
-            // InternalOCLinEcore.g:20644:1: ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 )
+            // InternalOCLinEcore.g:20655:1: ( ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 ) )
+            // InternalOCLinEcore.g:20656:1: ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getOwnedTypeAssignment_2_1()); 
             }
-            // InternalOCLinEcore.g:20645:1: ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 )
-            // InternalOCLinEcore.g:20645:2: rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1
+            // InternalOCLinEcore.g:20657:1: ( rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 )
+            // InternalOCLinEcore.g:20657:2: rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1();
@@ -61555,14 +61623,14 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2__2"
-    // InternalOCLinEcore.g:20655:1: rule__NavigatingBarArgCS__Group_2__2 : rule__NavigatingBarArgCS__Group_2__2__Impl ;
+    // InternalOCLinEcore.g:20667:1: rule__NavigatingBarArgCS__Group_2__2 : rule__NavigatingBarArgCS__Group_2__2__Impl ;
     public final void rule__NavigatingBarArgCS__Group_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20659:1: ( rule__NavigatingBarArgCS__Group_2__2__Impl )
-            // InternalOCLinEcore.g:20660:2: rule__NavigatingBarArgCS__Group_2__2__Impl
+            // InternalOCLinEcore.g:20671:1: ( rule__NavigatingBarArgCS__Group_2__2__Impl )
+            // InternalOCLinEcore.g:20672:2: rule__NavigatingBarArgCS__Group_2__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingBarArgCS__Group_2__2__Impl();
@@ -61588,22 +61656,22 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2__2__Impl"
-    // InternalOCLinEcore.g:20666:1: rule__NavigatingBarArgCS__Group_2__2__Impl : ( ( rule__NavigatingBarArgCS__Group_2_2__0 )? ) ;
+    // InternalOCLinEcore.g:20678:1: rule__NavigatingBarArgCS__Group_2__2__Impl : ( ( rule__NavigatingBarArgCS__Group_2_2__0 )? ) ;
     public final void rule__NavigatingBarArgCS__Group_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20670:1: ( ( ( rule__NavigatingBarArgCS__Group_2_2__0 )? ) )
-            // InternalOCLinEcore.g:20671:1: ( ( rule__NavigatingBarArgCS__Group_2_2__0 )? )
+            // InternalOCLinEcore.g:20682:1: ( ( ( rule__NavigatingBarArgCS__Group_2_2__0 )? ) )
+            // InternalOCLinEcore.g:20683:1: ( ( rule__NavigatingBarArgCS__Group_2_2__0 )? )
             {
-            // InternalOCLinEcore.g:20671:1: ( ( rule__NavigatingBarArgCS__Group_2_2__0 )? )
-            // InternalOCLinEcore.g:20672:1: ( rule__NavigatingBarArgCS__Group_2_2__0 )?
+            // InternalOCLinEcore.g:20683:1: ( ( rule__NavigatingBarArgCS__Group_2_2__0 )? )
+            // InternalOCLinEcore.g:20684:1: ( rule__NavigatingBarArgCS__Group_2_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getGroup_2_2()); 
             }
-            // InternalOCLinEcore.g:20673:1: ( rule__NavigatingBarArgCS__Group_2_2__0 )?
+            // InternalOCLinEcore.g:20685:1: ( rule__NavigatingBarArgCS__Group_2_2__0 )?
             int alt213=2;
             int LA213_0 = input.LA(1);
 
@@ -61612,7 +61680,7 @@
             }
             switch (alt213) {
                 case 1 :
-                    // InternalOCLinEcore.g:20673:2: rule__NavigatingBarArgCS__Group_2_2__0
+                    // InternalOCLinEcore.g:20685:2: rule__NavigatingBarArgCS__Group_2_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingBarArgCS__Group_2_2__0();
@@ -61650,14 +61718,14 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2_2__0"
-    // InternalOCLinEcore.g:20689:1: rule__NavigatingBarArgCS__Group_2_2__0 : rule__NavigatingBarArgCS__Group_2_2__0__Impl rule__NavigatingBarArgCS__Group_2_2__1 ;
+    // InternalOCLinEcore.g:20701:1: rule__NavigatingBarArgCS__Group_2_2__0 : rule__NavigatingBarArgCS__Group_2_2__0__Impl rule__NavigatingBarArgCS__Group_2_2__1 ;
     public final void rule__NavigatingBarArgCS__Group_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20693:1: ( rule__NavigatingBarArgCS__Group_2_2__0__Impl rule__NavigatingBarArgCS__Group_2_2__1 )
-            // InternalOCLinEcore.g:20694:2: rule__NavigatingBarArgCS__Group_2_2__0__Impl rule__NavigatingBarArgCS__Group_2_2__1
+            // InternalOCLinEcore.g:20705:1: ( rule__NavigatingBarArgCS__Group_2_2__0__Impl rule__NavigatingBarArgCS__Group_2_2__1 )
+            // InternalOCLinEcore.g:20706:2: rule__NavigatingBarArgCS__Group_2_2__0__Impl rule__NavigatingBarArgCS__Group_2_2__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingBarArgCS__Group_2_2__0__Impl();
@@ -61688,17 +61756,17 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2_2__0__Impl"
-    // InternalOCLinEcore.g:20701:1: rule__NavigatingBarArgCS__Group_2_2__0__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:20713:1: rule__NavigatingBarArgCS__Group_2_2__0__Impl : ( '=' ) ;
     public final void rule__NavigatingBarArgCS__Group_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20705:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:20706:1: ( '=' )
+            // InternalOCLinEcore.g:20717:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:20718:1: ( '=' )
             {
-            // InternalOCLinEcore.g:20706:1: ( '=' )
-            // InternalOCLinEcore.g:20707:1: '='
+            // InternalOCLinEcore.g:20718:1: ( '=' )
+            // InternalOCLinEcore.g:20719:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getEqualsSignKeyword_2_2_0()); 
@@ -61729,14 +61797,14 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2_2__1"
-    // InternalOCLinEcore.g:20720:1: rule__NavigatingBarArgCS__Group_2_2__1 : rule__NavigatingBarArgCS__Group_2_2__1__Impl ;
+    // InternalOCLinEcore.g:20732:1: rule__NavigatingBarArgCS__Group_2_2__1 : rule__NavigatingBarArgCS__Group_2_2__1__Impl ;
     public final void rule__NavigatingBarArgCS__Group_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20724:1: ( rule__NavigatingBarArgCS__Group_2_2__1__Impl )
-            // InternalOCLinEcore.g:20725:2: rule__NavigatingBarArgCS__Group_2_2__1__Impl
+            // InternalOCLinEcore.g:20736:1: ( rule__NavigatingBarArgCS__Group_2_2__1__Impl )
+            // InternalOCLinEcore.g:20737:2: rule__NavigatingBarArgCS__Group_2_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingBarArgCS__Group_2_2__1__Impl();
@@ -61762,23 +61830,23 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__Group_2_2__1__Impl"
-    // InternalOCLinEcore.g:20731:1: rule__NavigatingBarArgCS__Group_2_2__1__Impl : ( ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 ) ) ;
+    // InternalOCLinEcore.g:20743:1: rule__NavigatingBarArgCS__Group_2_2__1__Impl : ( ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 ) ) ;
     public final void rule__NavigatingBarArgCS__Group_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20735:1: ( ( ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 ) ) )
-            // InternalOCLinEcore.g:20736:1: ( ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 ) )
+            // InternalOCLinEcore.g:20747:1: ( ( ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 ) ) )
+            // InternalOCLinEcore.g:20748:1: ( ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 ) )
             {
-            // InternalOCLinEcore.g:20736:1: ( ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 ) )
-            // InternalOCLinEcore.g:20737:1: ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 )
+            // InternalOCLinEcore.g:20748:1: ( ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 ) )
+            // InternalOCLinEcore.g:20749:1: ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getOwnedInitExpressionAssignment_2_2_1()); 
             }
-            // InternalOCLinEcore.g:20738:1: ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 )
-            // InternalOCLinEcore.g:20738:2: rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1
+            // InternalOCLinEcore.g:20750:1: ( rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 )
+            // InternalOCLinEcore.g:20750:2: rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1();
@@ -61813,14 +61881,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group__0"
-    // InternalOCLinEcore.g:20752:1: rule__NavigatingCommaArgCS__Group__0 : rule__NavigatingCommaArgCS__Group__0__Impl rule__NavigatingCommaArgCS__Group__1 ;
+    // InternalOCLinEcore.g:20764:1: rule__NavigatingCommaArgCS__Group__0 : rule__NavigatingCommaArgCS__Group__0__Impl rule__NavigatingCommaArgCS__Group__1 ;
     public final void rule__NavigatingCommaArgCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20756:1: ( rule__NavigatingCommaArgCS__Group__0__Impl rule__NavigatingCommaArgCS__Group__1 )
-            // InternalOCLinEcore.g:20757:2: rule__NavigatingCommaArgCS__Group__0__Impl rule__NavigatingCommaArgCS__Group__1
+            // InternalOCLinEcore.g:20768:1: ( rule__NavigatingCommaArgCS__Group__0__Impl rule__NavigatingCommaArgCS__Group__1 )
+            // InternalOCLinEcore.g:20769:2: rule__NavigatingCommaArgCS__Group__0__Impl rule__NavigatingCommaArgCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingCommaArgCS__Group__0__Impl();
@@ -61851,23 +61919,23 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group__0__Impl"
-    // InternalOCLinEcore.g:20764:1: rule__NavigatingCommaArgCS__Group__0__Impl : ( ( rule__NavigatingCommaArgCS__PrefixAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:20776:1: rule__NavigatingCommaArgCS__Group__0__Impl : ( ( rule__NavigatingCommaArgCS__PrefixAssignment_0 ) ) ;
     public final void rule__NavigatingCommaArgCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20768:1: ( ( ( rule__NavigatingCommaArgCS__PrefixAssignment_0 ) ) )
-            // InternalOCLinEcore.g:20769:1: ( ( rule__NavigatingCommaArgCS__PrefixAssignment_0 ) )
+            // InternalOCLinEcore.g:20780:1: ( ( ( rule__NavigatingCommaArgCS__PrefixAssignment_0 ) ) )
+            // InternalOCLinEcore.g:20781:1: ( ( rule__NavigatingCommaArgCS__PrefixAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:20769:1: ( ( rule__NavigatingCommaArgCS__PrefixAssignment_0 ) )
-            // InternalOCLinEcore.g:20770:1: ( rule__NavigatingCommaArgCS__PrefixAssignment_0 )
+            // InternalOCLinEcore.g:20781:1: ( ( rule__NavigatingCommaArgCS__PrefixAssignment_0 ) )
+            // InternalOCLinEcore.g:20782:1: ( rule__NavigatingCommaArgCS__PrefixAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getPrefixAssignment_0()); 
             }
-            // InternalOCLinEcore.g:20771:1: ( rule__NavigatingCommaArgCS__PrefixAssignment_0 )
-            // InternalOCLinEcore.g:20771:2: rule__NavigatingCommaArgCS__PrefixAssignment_0
+            // InternalOCLinEcore.g:20783:1: ( rule__NavigatingCommaArgCS__PrefixAssignment_0 )
+            // InternalOCLinEcore.g:20783:2: rule__NavigatingCommaArgCS__PrefixAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__PrefixAssignment_0();
@@ -61902,14 +61970,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group__1"
-    // InternalOCLinEcore.g:20781:1: rule__NavigatingCommaArgCS__Group__1 : rule__NavigatingCommaArgCS__Group__1__Impl rule__NavigatingCommaArgCS__Group__2 ;
+    // InternalOCLinEcore.g:20793:1: rule__NavigatingCommaArgCS__Group__1 : rule__NavigatingCommaArgCS__Group__1__Impl rule__NavigatingCommaArgCS__Group__2 ;
     public final void rule__NavigatingCommaArgCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20785:1: ( rule__NavigatingCommaArgCS__Group__1__Impl rule__NavigatingCommaArgCS__Group__2 )
-            // InternalOCLinEcore.g:20786:2: rule__NavigatingCommaArgCS__Group__1__Impl rule__NavigatingCommaArgCS__Group__2
+            // InternalOCLinEcore.g:20797:1: ( rule__NavigatingCommaArgCS__Group__1__Impl rule__NavigatingCommaArgCS__Group__2 )
+            // InternalOCLinEcore.g:20798:2: rule__NavigatingCommaArgCS__Group__1__Impl rule__NavigatingCommaArgCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_112);
             rule__NavigatingCommaArgCS__Group__1__Impl();
@@ -61940,23 +62008,23 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group__1__Impl"
-    // InternalOCLinEcore.g:20793:1: rule__NavigatingCommaArgCS__Group__1__Impl : ( ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:20805:1: rule__NavigatingCommaArgCS__Group__1__Impl : ( ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 ) ) ;
     public final void rule__NavigatingCommaArgCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20797:1: ( ( ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 ) ) )
-            // InternalOCLinEcore.g:20798:1: ( ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 ) )
+            // InternalOCLinEcore.g:20809:1: ( ( ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 ) ) )
+            // InternalOCLinEcore.g:20810:1: ( ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:20798:1: ( ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 ) )
-            // InternalOCLinEcore.g:20799:1: ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 )
+            // InternalOCLinEcore.g:20810:1: ( ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 ) )
+            // InternalOCLinEcore.g:20811:1: ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getOwnedNameExpressionAssignment_1()); 
             }
-            // InternalOCLinEcore.g:20800:1: ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 )
-            // InternalOCLinEcore.g:20800:2: rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1
+            // InternalOCLinEcore.g:20812:1: ( rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 )
+            // InternalOCLinEcore.g:20812:2: rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1();
@@ -61991,14 +62059,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group__2"
-    // InternalOCLinEcore.g:20810:1: rule__NavigatingCommaArgCS__Group__2 : rule__NavigatingCommaArgCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:20822:1: rule__NavigatingCommaArgCS__Group__2 : rule__NavigatingCommaArgCS__Group__2__Impl ;
     public final void rule__NavigatingCommaArgCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20814:1: ( rule__NavigatingCommaArgCS__Group__2__Impl )
-            // InternalOCLinEcore.g:20815:2: rule__NavigatingCommaArgCS__Group__2__Impl
+            // InternalOCLinEcore.g:20826:1: ( rule__NavigatingCommaArgCS__Group__2__Impl )
+            // InternalOCLinEcore.g:20827:2: rule__NavigatingCommaArgCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__Group__2__Impl();
@@ -62024,22 +62092,22 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group__2__Impl"
-    // InternalOCLinEcore.g:20821:1: rule__NavigatingCommaArgCS__Group__2__Impl : ( ( rule__NavigatingCommaArgCS__Alternatives_2 )? ) ;
+    // InternalOCLinEcore.g:20833:1: rule__NavigatingCommaArgCS__Group__2__Impl : ( ( rule__NavigatingCommaArgCS__Alternatives_2 )? ) ;
     public final void rule__NavigatingCommaArgCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20825:1: ( ( ( rule__NavigatingCommaArgCS__Alternatives_2 )? ) )
-            // InternalOCLinEcore.g:20826:1: ( ( rule__NavigatingCommaArgCS__Alternatives_2 )? )
+            // InternalOCLinEcore.g:20837:1: ( ( ( rule__NavigatingCommaArgCS__Alternatives_2 )? ) )
+            // InternalOCLinEcore.g:20838:1: ( ( rule__NavigatingCommaArgCS__Alternatives_2 )? )
             {
-            // InternalOCLinEcore.g:20826:1: ( ( rule__NavigatingCommaArgCS__Alternatives_2 )? )
-            // InternalOCLinEcore.g:20827:1: ( rule__NavigatingCommaArgCS__Alternatives_2 )?
+            // InternalOCLinEcore.g:20838:1: ( ( rule__NavigatingCommaArgCS__Alternatives_2 )? )
+            // InternalOCLinEcore.g:20839:1: ( rule__NavigatingCommaArgCS__Alternatives_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getAlternatives_2()); 
             }
-            // InternalOCLinEcore.g:20828:1: ( rule__NavigatingCommaArgCS__Alternatives_2 )?
+            // InternalOCLinEcore.g:20840:1: ( rule__NavigatingCommaArgCS__Alternatives_2 )?
             int alt214=2;
             int LA214_0 = input.LA(1);
 
@@ -62048,7 +62116,7 @@
             }
             switch (alt214) {
                 case 1 :
-                    // InternalOCLinEcore.g:20828:2: rule__NavigatingCommaArgCS__Alternatives_2
+                    // InternalOCLinEcore.g:20840:2: rule__NavigatingCommaArgCS__Alternatives_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingCommaArgCS__Alternatives_2();
@@ -62086,14 +62154,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0__0"
-    // InternalOCLinEcore.g:20844:1: rule__NavigatingCommaArgCS__Group_2_0__0 : rule__NavigatingCommaArgCS__Group_2_0__0__Impl rule__NavigatingCommaArgCS__Group_2_0__1 ;
+    // InternalOCLinEcore.g:20856:1: rule__NavigatingCommaArgCS__Group_2_0__0 : rule__NavigatingCommaArgCS__Group_2_0__0__Impl rule__NavigatingCommaArgCS__Group_2_0__1 ;
     public final void rule__NavigatingCommaArgCS__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20848:1: ( rule__NavigatingCommaArgCS__Group_2_0__0__Impl rule__NavigatingCommaArgCS__Group_2_0__1 )
-            // InternalOCLinEcore.g:20849:2: rule__NavigatingCommaArgCS__Group_2_0__0__Impl rule__NavigatingCommaArgCS__Group_2_0__1
+            // InternalOCLinEcore.g:20860:1: ( rule__NavigatingCommaArgCS__Group_2_0__0__Impl rule__NavigatingCommaArgCS__Group_2_0__1 )
+            // InternalOCLinEcore.g:20861:2: rule__NavigatingCommaArgCS__Group_2_0__0__Impl rule__NavigatingCommaArgCS__Group_2_0__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__NavigatingCommaArgCS__Group_2_0__0__Impl();
@@ -62124,17 +62192,17 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0__0__Impl"
-    // InternalOCLinEcore.g:20856:1: rule__NavigatingCommaArgCS__Group_2_0__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:20868:1: rule__NavigatingCommaArgCS__Group_2_0__0__Impl : ( ':' ) ;
     public final void rule__NavigatingCommaArgCS__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20860:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:20861:1: ( ':' )
+            // InternalOCLinEcore.g:20872:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:20873:1: ( ':' )
             {
-            // InternalOCLinEcore.g:20861:1: ( ':' )
-            // InternalOCLinEcore.g:20862:1: ':'
+            // InternalOCLinEcore.g:20873:1: ( ':' )
+            // InternalOCLinEcore.g:20874:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getColonKeyword_2_0_0()); 
@@ -62165,14 +62233,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0__1"
-    // InternalOCLinEcore.g:20875:1: rule__NavigatingCommaArgCS__Group_2_0__1 : rule__NavigatingCommaArgCS__Group_2_0__1__Impl rule__NavigatingCommaArgCS__Group_2_0__2 ;
+    // InternalOCLinEcore.g:20887:1: rule__NavigatingCommaArgCS__Group_2_0__1 : rule__NavigatingCommaArgCS__Group_2_0__1__Impl rule__NavigatingCommaArgCS__Group_2_0__2 ;
     public final void rule__NavigatingCommaArgCS__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20879:1: ( rule__NavigatingCommaArgCS__Group_2_0__1__Impl rule__NavigatingCommaArgCS__Group_2_0__2 )
-            // InternalOCLinEcore.g:20880:2: rule__NavigatingCommaArgCS__Group_2_0__1__Impl rule__NavigatingCommaArgCS__Group_2_0__2
+            // InternalOCLinEcore.g:20891:1: ( rule__NavigatingCommaArgCS__Group_2_0__1__Impl rule__NavigatingCommaArgCS__Group_2_0__2 )
+            // InternalOCLinEcore.g:20892:2: rule__NavigatingCommaArgCS__Group_2_0__1__Impl rule__NavigatingCommaArgCS__Group_2_0__2
             {
             pushFollow(FollowSets000.FOLLOW_40);
             rule__NavigatingCommaArgCS__Group_2_0__1__Impl();
@@ -62203,23 +62271,23 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0__1__Impl"
-    // InternalOCLinEcore.g:20887:1: rule__NavigatingCommaArgCS__Group_2_0__1__Impl : ( ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 ) ) ;
+    // InternalOCLinEcore.g:20899:1: rule__NavigatingCommaArgCS__Group_2_0__1__Impl : ( ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 ) ) ;
     public final void rule__NavigatingCommaArgCS__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20891:1: ( ( ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 ) ) )
-            // InternalOCLinEcore.g:20892:1: ( ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 ) )
+            // InternalOCLinEcore.g:20903:1: ( ( ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 ) ) )
+            // InternalOCLinEcore.g:20904:1: ( ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 ) )
             {
-            // InternalOCLinEcore.g:20892:1: ( ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 ) )
-            // InternalOCLinEcore.g:20893:1: ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 )
+            // InternalOCLinEcore.g:20904:1: ( ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 ) )
+            // InternalOCLinEcore.g:20905:1: ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getOwnedTypeAssignment_2_0_1()); 
             }
-            // InternalOCLinEcore.g:20894:1: ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 )
-            // InternalOCLinEcore.g:20894:2: rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1
+            // InternalOCLinEcore.g:20906:1: ( rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 )
+            // InternalOCLinEcore.g:20906:2: rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1();
@@ -62254,14 +62322,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0__2"
-    // InternalOCLinEcore.g:20904:1: rule__NavigatingCommaArgCS__Group_2_0__2 : rule__NavigatingCommaArgCS__Group_2_0__2__Impl ;
+    // InternalOCLinEcore.g:20916:1: rule__NavigatingCommaArgCS__Group_2_0__2 : rule__NavigatingCommaArgCS__Group_2_0__2__Impl ;
     public final void rule__NavigatingCommaArgCS__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20908:1: ( rule__NavigatingCommaArgCS__Group_2_0__2__Impl )
-            // InternalOCLinEcore.g:20909:2: rule__NavigatingCommaArgCS__Group_2_0__2__Impl
+            // InternalOCLinEcore.g:20920:1: ( rule__NavigatingCommaArgCS__Group_2_0__2__Impl )
+            // InternalOCLinEcore.g:20921:2: rule__NavigatingCommaArgCS__Group_2_0__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__Group_2_0__2__Impl();
@@ -62287,22 +62355,22 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0__2__Impl"
-    // InternalOCLinEcore.g:20915:1: rule__NavigatingCommaArgCS__Group_2_0__2__Impl : ( ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )? ) ;
+    // InternalOCLinEcore.g:20927:1: rule__NavigatingCommaArgCS__Group_2_0__2__Impl : ( ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )? ) ;
     public final void rule__NavigatingCommaArgCS__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20919:1: ( ( ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )? ) )
-            // InternalOCLinEcore.g:20920:1: ( ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )? )
+            // InternalOCLinEcore.g:20931:1: ( ( ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )? ) )
+            // InternalOCLinEcore.g:20932:1: ( ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )? )
             {
-            // InternalOCLinEcore.g:20920:1: ( ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )? )
-            // InternalOCLinEcore.g:20921:1: ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )?
+            // InternalOCLinEcore.g:20932:1: ( ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )? )
+            // InternalOCLinEcore.g:20933:1: ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getGroup_2_0_2()); 
             }
-            // InternalOCLinEcore.g:20922:1: ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )?
+            // InternalOCLinEcore.g:20934:1: ( rule__NavigatingCommaArgCS__Group_2_0_2__0 )?
             int alt215=2;
             int LA215_0 = input.LA(1);
 
@@ -62311,7 +62379,7 @@
             }
             switch (alt215) {
                 case 1 :
-                    // InternalOCLinEcore.g:20922:2: rule__NavigatingCommaArgCS__Group_2_0_2__0
+                    // InternalOCLinEcore.g:20934:2: rule__NavigatingCommaArgCS__Group_2_0_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingCommaArgCS__Group_2_0_2__0();
@@ -62349,14 +62417,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0_2__0"
-    // InternalOCLinEcore.g:20938:1: rule__NavigatingCommaArgCS__Group_2_0_2__0 : rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl rule__NavigatingCommaArgCS__Group_2_0_2__1 ;
+    // InternalOCLinEcore.g:20950:1: rule__NavigatingCommaArgCS__Group_2_0_2__0 : rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl rule__NavigatingCommaArgCS__Group_2_0_2__1 ;
     public final void rule__NavigatingCommaArgCS__Group_2_0_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20942:1: ( rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl rule__NavigatingCommaArgCS__Group_2_0_2__1 )
-            // InternalOCLinEcore.g:20943:2: rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl rule__NavigatingCommaArgCS__Group_2_0_2__1
+            // InternalOCLinEcore.g:20954:1: ( rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl rule__NavigatingCommaArgCS__Group_2_0_2__1 )
+            // InternalOCLinEcore.g:20955:2: rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl rule__NavigatingCommaArgCS__Group_2_0_2__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl();
@@ -62387,17 +62455,17 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl"
-    // InternalOCLinEcore.g:20950:1: rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:20962:1: rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl : ( '=' ) ;
     public final void rule__NavigatingCommaArgCS__Group_2_0_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20954:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:20955:1: ( '=' )
+            // InternalOCLinEcore.g:20966:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:20967:1: ( '=' )
             {
-            // InternalOCLinEcore.g:20955:1: ( '=' )
-            // InternalOCLinEcore.g:20956:1: '='
+            // InternalOCLinEcore.g:20967:1: ( '=' )
+            // InternalOCLinEcore.g:20968:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getEqualsSignKeyword_2_0_2_0()); 
@@ -62428,14 +62496,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0_2__1"
-    // InternalOCLinEcore.g:20969:1: rule__NavigatingCommaArgCS__Group_2_0_2__1 : rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl ;
+    // InternalOCLinEcore.g:20981:1: rule__NavigatingCommaArgCS__Group_2_0_2__1 : rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl ;
     public final void rule__NavigatingCommaArgCS__Group_2_0_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20973:1: ( rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl )
-            // InternalOCLinEcore.g:20974:2: rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl
+            // InternalOCLinEcore.g:20985:1: ( rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl )
+            // InternalOCLinEcore.g:20986:2: rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl();
@@ -62461,23 +62529,23 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl"
-    // InternalOCLinEcore.g:20980:1: rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl : ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 ) ) ;
+    // InternalOCLinEcore.g:20992:1: rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl : ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 ) ) ;
     public final void rule__NavigatingCommaArgCS__Group_2_0_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:20984:1: ( ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 ) ) )
-            // InternalOCLinEcore.g:20985:1: ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 ) )
+            // InternalOCLinEcore.g:20996:1: ( ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 ) ) )
+            // InternalOCLinEcore.g:20997:1: ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 ) )
             {
-            // InternalOCLinEcore.g:20985:1: ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 ) )
-            // InternalOCLinEcore.g:20986:1: ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 )
+            // InternalOCLinEcore.g:20997:1: ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 ) )
+            // InternalOCLinEcore.g:20998:1: ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getOwnedInitExpressionAssignment_2_0_2_1()); 
             }
-            // InternalOCLinEcore.g:20987:1: ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 )
-            // InternalOCLinEcore.g:20987:2: rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1
+            // InternalOCLinEcore.g:20999:1: ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 )
+            // InternalOCLinEcore.g:20999:2: rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1();
@@ -62512,14 +62580,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_1__0"
-    // InternalOCLinEcore.g:21001:1: rule__NavigatingCommaArgCS__Group_2_1__0 : rule__NavigatingCommaArgCS__Group_2_1__0__Impl rule__NavigatingCommaArgCS__Group_2_1__1 ;
+    // InternalOCLinEcore.g:21013:1: rule__NavigatingCommaArgCS__Group_2_1__0 : rule__NavigatingCommaArgCS__Group_2_1__0__Impl rule__NavigatingCommaArgCS__Group_2_1__1 ;
     public final void rule__NavigatingCommaArgCS__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21005:1: ( rule__NavigatingCommaArgCS__Group_2_1__0__Impl rule__NavigatingCommaArgCS__Group_2_1__1 )
-            // InternalOCLinEcore.g:21006:2: rule__NavigatingCommaArgCS__Group_2_1__0__Impl rule__NavigatingCommaArgCS__Group_2_1__1
+            // InternalOCLinEcore.g:21017:1: ( rule__NavigatingCommaArgCS__Group_2_1__0__Impl rule__NavigatingCommaArgCS__Group_2_1__1 )
+            // InternalOCLinEcore.g:21018:2: rule__NavigatingCommaArgCS__Group_2_1__0__Impl rule__NavigatingCommaArgCS__Group_2_1__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingCommaArgCS__Group_2_1__0__Impl();
@@ -62550,17 +62618,17 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_1__0__Impl"
-    // InternalOCLinEcore.g:21013:1: rule__NavigatingCommaArgCS__Group_2_1__0__Impl : ( 'in' ) ;
+    // InternalOCLinEcore.g:21025:1: rule__NavigatingCommaArgCS__Group_2_1__0__Impl : ( 'in' ) ;
     public final void rule__NavigatingCommaArgCS__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21017:1: ( ( 'in' ) )
-            // InternalOCLinEcore.g:21018:1: ( 'in' )
+            // InternalOCLinEcore.g:21029:1: ( ( 'in' ) )
+            // InternalOCLinEcore.g:21030:1: ( 'in' )
             {
-            // InternalOCLinEcore.g:21018:1: ( 'in' )
-            // InternalOCLinEcore.g:21019:1: 'in'
+            // InternalOCLinEcore.g:21030:1: ( 'in' )
+            // InternalOCLinEcore.g:21031:1: 'in'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getInKeyword_2_1_0()); 
@@ -62591,14 +62659,14 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_1__1"
-    // InternalOCLinEcore.g:21032:1: rule__NavigatingCommaArgCS__Group_2_1__1 : rule__NavigatingCommaArgCS__Group_2_1__1__Impl ;
+    // InternalOCLinEcore.g:21044:1: rule__NavigatingCommaArgCS__Group_2_1__1 : rule__NavigatingCommaArgCS__Group_2_1__1__Impl ;
     public final void rule__NavigatingCommaArgCS__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21036:1: ( rule__NavigatingCommaArgCS__Group_2_1__1__Impl )
-            // InternalOCLinEcore.g:21037:2: rule__NavigatingCommaArgCS__Group_2_1__1__Impl
+            // InternalOCLinEcore.g:21048:1: ( rule__NavigatingCommaArgCS__Group_2_1__1__Impl )
+            // InternalOCLinEcore.g:21049:2: rule__NavigatingCommaArgCS__Group_2_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__Group_2_1__1__Impl();
@@ -62624,23 +62692,23 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__Group_2_1__1__Impl"
-    // InternalOCLinEcore.g:21043:1: rule__NavigatingCommaArgCS__Group_2_1__1__Impl : ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 ) ) ;
+    // InternalOCLinEcore.g:21055:1: rule__NavigatingCommaArgCS__Group_2_1__1__Impl : ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 ) ) ;
     public final void rule__NavigatingCommaArgCS__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21047:1: ( ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 ) ) )
-            // InternalOCLinEcore.g:21048:1: ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:21059:1: ( ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 ) ) )
+            // InternalOCLinEcore.g:21060:1: ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 ) )
             {
-            // InternalOCLinEcore.g:21048:1: ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 ) )
-            // InternalOCLinEcore.g:21049:1: ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 )
+            // InternalOCLinEcore.g:21060:1: ( ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 ) )
+            // InternalOCLinEcore.g:21061:1: ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getOwnedInitExpressionAssignment_2_1_1()); 
             }
-            // InternalOCLinEcore.g:21050:1: ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 )
-            // InternalOCLinEcore.g:21050:2: rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1
+            // InternalOCLinEcore.g:21062:1: ( rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 )
+            // InternalOCLinEcore.g:21062:2: rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1();
@@ -62675,14 +62743,14 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group__0"
-    // InternalOCLinEcore.g:21064:1: rule__NavigatingSemiArgCS__Group__0 : rule__NavigatingSemiArgCS__Group__0__Impl rule__NavigatingSemiArgCS__Group__1 ;
+    // InternalOCLinEcore.g:21076:1: rule__NavigatingSemiArgCS__Group__0 : rule__NavigatingSemiArgCS__Group__0__Impl rule__NavigatingSemiArgCS__Group__1 ;
     public final void rule__NavigatingSemiArgCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21068:1: ( rule__NavigatingSemiArgCS__Group__0__Impl rule__NavigatingSemiArgCS__Group__1 )
-            // InternalOCLinEcore.g:21069:2: rule__NavigatingSemiArgCS__Group__0__Impl rule__NavigatingSemiArgCS__Group__1
+            // InternalOCLinEcore.g:21080:1: ( rule__NavigatingSemiArgCS__Group__0__Impl rule__NavigatingSemiArgCS__Group__1 )
+            // InternalOCLinEcore.g:21081:2: rule__NavigatingSemiArgCS__Group__0__Impl rule__NavigatingSemiArgCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingSemiArgCS__Group__0__Impl();
@@ -62713,23 +62781,23 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group__0__Impl"
-    // InternalOCLinEcore.g:21076:1: rule__NavigatingSemiArgCS__Group__0__Impl : ( ( rule__NavigatingSemiArgCS__PrefixAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:21088:1: rule__NavigatingSemiArgCS__Group__0__Impl : ( ( rule__NavigatingSemiArgCS__PrefixAssignment_0 ) ) ;
     public final void rule__NavigatingSemiArgCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21080:1: ( ( ( rule__NavigatingSemiArgCS__PrefixAssignment_0 ) ) )
-            // InternalOCLinEcore.g:21081:1: ( ( rule__NavigatingSemiArgCS__PrefixAssignment_0 ) )
+            // InternalOCLinEcore.g:21092:1: ( ( ( rule__NavigatingSemiArgCS__PrefixAssignment_0 ) ) )
+            // InternalOCLinEcore.g:21093:1: ( ( rule__NavigatingSemiArgCS__PrefixAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:21081:1: ( ( rule__NavigatingSemiArgCS__PrefixAssignment_0 ) )
-            // InternalOCLinEcore.g:21082:1: ( rule__NavigatingSemiArgCS__PrefixAssignment_0 )
+            // InternalOCLinEcore.g:21093:1: ( ( rule__NavigatingSemiArgCS__PrefixAssignment_0 ) )
+            // InternalOCLinEcore.g:21094:1: ( rule__NavigatingSemiArgCS__PrefixAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getPrefixAssignment_0()); 
             }
-            // InternalOCLinEcore.g:21083:1: ( rule__NavigatingSemiArgCS__PrefixAssignment_0 )
-            // InternalOCLinEcore.g:21083:2: rule__NavigatingSemiArgCS__PrefixAssignment_0
+            // InternalOCLinEcore.g:21095:1: ( rule__NavigatingSemiArgCS__PrefixAssignment_0 )
+            // InternalOCLinEcore.g:21095:2: rule__NavigatingSemiArgCS__PrefixAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingSemiArgCS__PrefixAssignment_0();
@@ -62764,14 +62832,14 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group__1"
-    // InternalOCLinEcore.g:21093:1: rule__NavigatingSemiArgCS__Group__1 : rule__NavigatingSemiArgCS__Group__1__Impl rule__NavigatingSemiArgCS__Group__2 ;
+    // InternalOCLinEcore.g:21105:1: rule__NavigatingSemiArgCS__Group__1 : rule__NavigatingSemiArgCS__Group__1__Impl rule__NavigatingSemiArgCS__Group__2 ;
     public final void rule__NavigatingSemiArgCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21097:1: ( rule__NavigatingSemiArgCS__Group__1__Impl rule__NavigatingSemiArgCS__Group__2 )
-            // InternalOCLinEcore.g:21098:2: rule__NavigatingSemiArgCS__Group__1__Impl rule__NavigatingSemiArgCS__Group__2
+            // InternalOCLinEcore.g:21109:1: ( rule__NavigatingSemiArgCS__Group__1__Impl rule__NavigatingSemiArgCS__Group__2 )
+            // InternalOCLinEcore.g:21110:2: rule__NavigatingSemiArgCS__Group__1__Impl rule__NavigatingSemiArgCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_52);
             rule__NavigatingSemiArgCS__Group__1__Impl();
@@ -62802,23 +62870,23 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group__1__Impl"
-    // InternalOCLinEcore.g:21105:1: rule__NavigatingSemiArgCS__Group__1__Impl : ( ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:21117:1: rule__NavigatingSemiArgCS__Group__1__Impl : ( ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 ) ) ;
     public final void rule__NavigatingSemiArgCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21109:1: ( ( ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 ) ) )
-            // InternalOCLinEcore.g:21110:1: ( ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 ) )
+            // InternalOCLinEcore.g:21121:1: ( ( ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 ) ) )
+            // InternalOCLinEcore.g:21122:1: ( ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:21110:1: ( ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 ) )
-            // InternalOCLinEcore.g:21111:1: ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 )
+            // InternalOCLinEcore.g:21122:1: ( ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 ) )
+            // InternalOCLinEcore.g:21123:1: ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getOwnedNameExpressionAssignment_1()); 
             }
-            // InternalOCLinEcore.g:21112:1: ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 )
-            // InternalOCLinEcore.g:21112:2: rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1
+            // InternalOCLinEcore.g:21124:1: ( rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 )
+            // InternalOCLinEcore.g:21124:2: rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1();
@@ -62853,14 +62921,14 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group__2"
-    // InternalOCLinEcore.g:21122:1: rule__NavigatingSemiArgCS__Group__2 : rule__NavigatingSemiArgCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:21134:1: rule__NavigatingSemiArgCS__Group__2 : rule__NavigatingSemiArgCS__Group__2__Impl ;
     public final void rule__NavigatingSemiArgCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21126:1: ( rule__NavigatingSemiArgCS__Group__2__Impl )
-            // InternalOCLinEcore.g:21127:2: rule__NavigatingSemiArgCS__Group__2__Impl
+            // InternalOCLinEcore.g:21138:1: ( rule__NavigatingSemiArgCS__Group__2__Impl )
+            // InternalOCLinEcore.g:21139:2: rule__NavigatingSemiArgCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingSemiArgCS__Group__2__Impl();
@@ -62886,22 +62954,22 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group__2__Impl"
-    // InternalOCLinEcore.g:21133:1: rule__NavigatingSemiArgCS__Group__2__Impl : ( ( rule__NavigatingSemiArgCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:21145:1: rule__NavigatingSemiArgCS__Group__2__Impl : ( ( rule__NavigatingSemiArgCS__Group_2__0 )? ) ;
     public final void rule__NavigatingSemiArgCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21137:1: ( ( ( rule__NavigatingSemiArgCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:21138:1: ( ( rule__NavigatingSemiArgCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:21149:1: ( ( ( rule__NavigatingSemiArgCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:21150:1: ( ( rule__NavigatingSemiArgCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:21138:1: ( ( rule__NavigatingSemiArgCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:21139:1: ( rule__NavigatingSemiArgCS__Group_2__0 )?
+            // InternalOCLinEcore.g:21150:1: ( ( rule__NavigatingSemiArgCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:21151:1: ( rule__NavigatingSemiArgCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:21140:1: ( rule__NavigatingSemiArgCS__Group_2__0 )?
+            // InternalOCLinEcore.g:21152:1: ( rule__NavigatingSemiArgCS__Group_2__0 )?
             int alt216=2;
             int LA216_0 = input.LA(1);
 
@@ -62910,7 +62978,7 @@
             }
             switch (alt216) {
                 case 1 :
-                    // InternalOCLinEcore.g:21140:2: rule__NavigatingSemiArgCS__Group_2__0
+                    // InternalOCLinEcore.g:21152:2: rule__NavigatingSemiArgCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingSemiArgCS__Group_2__0();
@@ -62948,14 +63016,14 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2__0"
-    // InternalOCLinEcore.g:21156:1: rule__NavigatingSemiArgCS__Group_2__0 : rule__NavigatingSemiArgCS__Group_2__0__Impl rule__NavigatingSemiArgCS__Group_2__1 ;
+    // InternalOCLinEcore.g:21168:1: rule__NavigatingSemiArgCS__Group_2__0 : rule__NavigatingSemiArgCS__Group_2__0__Impl rule__NavigatingSemiArgCS__Group_2__1 ;
     public final void rule__NavigatingSemiArgCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21160:1: ( rule__NavigatingSemiArgCS__Group_2__0__Impl rule__NavigatingSemiArgCS__Group_2__1 )
-            // InternalOCLinEcore.g:21161:2: rule__NavigatingSemiArgCS__Group_2__0__Impl rule__NavigatingSemiArgCS__Group_2__1
+            // InternalOCLinEcore.g:21172:1: ( rule__NavigatingSemiArgCS__Group_2__0__Impl rule__NavigatingSemiArgCS__Group_2__1 )
+            // InternalOCLinEcore.g:21173:2: rule__NavigatingSemiArgCS__Group_2__0__Impl rule__NavigatingSemiArgCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__NavigatingSemiArgCS__Group_2__0__Impl();
@@ -62986,17 +63054,17 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:21168:1: rule__NavigatingSemiArgCS__Group_2__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:21180:1: rule__NavigatingSemiArgCS__Group_2__0__Impl : ( ':' ) ;
     public final void rule__NavigatingSemiArgCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21172:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:21173:1: ( ':' )
+            // InternalOCLinEcore.g:21184:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:21185:1: ( ':' )
             {
-            // InternalOCLinEcore.g:21173:1: ( ':' )
-            // InternalOCLinEcore.g:21174:1: ':'
+            // InternalOCLinEcore.g:21185:1: ( ':' )
+            // InternalOCLinEcore.g:21186:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getColonKeyword_2_0()); 
@@ -63027,14 +63095,14 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2__1"
-    // InternalOCLinEcore.g:21187:1: rule__NavigatingSemiArgCS__Group_2__1 : rule__NavigatingSemiArgCS__Group_2__1__Impl rule__NavigatingSemiArgCS__Group_2__2 ;
+    // InternalOCLinEcore.g:21199:1: rule__NavigatingSemiArgCS__Group_2__1 : rule__NavigatingSemiArgCS__Group_2__1__Impl rule__NavigatingSemiArgCS__Group_2__2 ;
     public final void rule__NavigatingSemiArgCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21191:1: ( rule__NavigatingSemiArgCS__Group_2__1__Impl rule__NavigatingSemiArgCS__Group_2__2 )
-            // InternalOCLinEcore.g:21192:2: rule__NavigatingSemiArgCS__Group_2__1__Impl rule__NavigatingSemiArgCS__Group_2__2
+            // InternalOCLinEcore.g:21203:1: ( rule__NavigatingSemiArgCS__Group_2__1__Impl rule__NavigatingSemiArgCS__Group_2__2 )
+            // InternalOCLinEcore.g:21204:2: rule__NavigatingSemiArgCS__Group_2__1__Impl rule__NavigatingSemiArgCS__Group_2__2
             {
             pushFollow(FollowSets000.FOLLOW_40);
             rule__NavigatingSemiArgCS__Group_2__1__Impl();
@@ -63065,23 +63133,23 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:21199:1: rule__NavigatingSemiArgCS__Group_2__1__Impl : ( ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 ) ) ;
+    // InternalOCLinEcore.g:21211:1: rule__NavigatingSemiArgCS__Group_2__1__Impl : ( ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 ) ) ;
     public final void rule__NavigatingSemiArgCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21203:1: ( ( ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 ) ) )
-            // InternalOCLinEcore.g:21204:1: ( ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 ) )
+            // InternalOCLinEcore.g:21215:1: ( ( ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:21216:1: ( ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 ) )
             {
-            // InternalOCLinEcore.g:21204:1: ( ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 ) )
-            // InternalOCLinEcore.g:21205:1: ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 )
+            // InternalOCLinEcore.g:21216:1: ( ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 ) )
+            // InternalOCLinEcore.g:21217:1: ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getOwnedTypeAssignment_2_1()); 
             }
-            // InternalOCLinEcore.g:21206:1: ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 )
-            // InternalOCLinEcore.g:21206:2: rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1
+            // InternalOCLinEcore.g:21218:1: ( rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 )
+            // InternalOCLinEcore.g:21218:2: rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1();
@@ -63116,14 +63184,14 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2__2"
-    // InternalOCLinEcore.g:21216:1: rule__NavigatingSemiArgCS__Group_2__2 : rule__NavigatingSemiArgCS__Group_2__2__Impl ;
+    // InternalOCLinEcore.g:21228:1: rule__NavigatingSemiArgCS__Group_2__2 : rule__NavigatingSemiArgCS__Group_2__2__Impl ;
     public final void rule__NavigatingSemiArgCS__Group_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21220:1: ( rule__NavigatingSemiArgCS__Group_2__2__Impl )
-            // InternalOCLinEcore.g:21221:2: rule__NavigatingSemiArgCS__Group_2__2__Impl
+            // InternalOCLinEcore.g:21232:1: ( rule__NavigatingSemiArgCS__Group_2__2__Impl )
+            // InternalOCLinEcore.g:21233:2: rule__NavigatingSemiArgCS__Group_2__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingSemiArgCS__Group_2__2__Impl();
@@ -63149,22 +63217,22 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2__2__Impl"
-    // InternalOCLinEcore.g:21227:1: rule__NavigatingSemiArgCS__Group_2__2__Impl : ( ( rule__NavigatingSemiArgCS__Group_2_2__0 )? ) ;
+    // InternalOCLinEcore.g:21239:1: rule__NavigatingSemiArgCS__Group_2__2__Impl : ( ( rule__NavigatingSemiArgCS__Group_2_2__0 )? ) ;
     public final void rule__NavigatingSemiArgCS__Group_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21231:1: ( ( ( rule__NavigatingSemiArgCS__Group_2_2__0 )? ) )
-            // InternalOCLinEcore.g:21232:1: ( ( rule__NavigatingSemiArgCS__Group_2_2__0 )? )
+            // InternalOCLinEcore.g:21243:1: ( ( ( rule__NavigatingSemiArgCS__Group_2_2__0 )? ) )
+            // InternalOCLinEcore.g:21244:1: ( ( rule__NavigatingSemiArgCS__Group_2_2__0 )? )
             {
-            // InternalOCLinEcore.g:21232:1: ( ( rule__NavigatingSemiArgCS__Group_2_2__0 )? )
-            // InternalOCLinEcore.g:21233:1: ( rule__NavigatingSemiArgCS__Group_2_2__0 )?
+            // InternalOCLinEcore.g:21244:1: ( ( rule__NavigatingSemiArgCS__Group_2_2__0 )? )
+            // InternalOCLinEcore.g:21245:1: ( rule__NavigatingSemiArgCS__Group_2_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getGroup_2_2()); 
             }
-            // InternalOCLinEcore.g:21234:1: ( rule__NavigatingSemiArgCS__Group_2_2__0 )?
+            // InternalOCLinEcore.g:21246:1: ( rule__NavigatingSemiArgCS__Group_2_2__0 )?
             int alt217=2;
             int LA217_0 = input.LA(1);
 
@@ -63173,7 +63241,7 @@
             }
             switch (alt217) {
                 case 1 :
-                    // InternalOCLinEcore.g:21234:2: rule__NavigatingSemiArgCS__Group_2_2__0
+                    // InternalOCLinEcore.g:21246:2: rule__NavigatingSemiArgCS__Group_2_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__NavigatingSemiArgCS__Group_2_2__0();
@@ -63211,14 +63279,14 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2_2__0"
-    // InternalOCLinEcore.g:21250:1: rule__NavigatingSemiArgCS__Group_2_2__0 : rule__NavigatingSemiArgCS__Group_2_2__0__Impl rule__NavigatingSemiArgCS__Group_2_2__1 ;
+    // InternalOCLinEcore.g:21262:1: rule__NavigatingSemiArgCS__Group_2_2__0 : rule__NavigatingSemiArgCS__Group_2_2__0__Impl rule__NavigatingSemiArgCS__Group_2_2__1 ;
     public final void rule__NavigatingSemiArgCS__Group_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21254:1: ( rule__NavigatingSemiArgCS__Group_2_2__0__Impl rule__NavigatingSemiArgCS__Group_2_2__1 )
-            // InternalOCLinEcore.g:21255:2: rule__NavigatingSemiArgCS__Group_2_2__0__Impl rule__NavigatingSemiArgCS__Group_2_2__1
+            // InternalOCLinEcore.g:21266:1: ( rule__NavigatingSemiArgCS__Group_2_2__0__Impl rule__NavigatingSemiArgCS__Group_2_2__1 )
+            // InternalOCLinEcore.g:21267:2: rule__NavigatingSemiArgCS__Group_2_2__0__Impl rule__NavigatingSemiArgCS__Group_2_2__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NavigatingSemiArgCS__Group_2_2__0__Impl();
@@ -63249,17 +63317,17 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2_2__0__Impl"
-    // InternalOCLinEcore.g:21262:1: rule__NavigatingSemiArgCS__Group_2_2__0__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:21274:1: rule__NavigatingSemiArgCS__Group_2_2__0__Impl : ( '=' ) ;
     public final void rule__NavigatingSemiArgCS__Group_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21266:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:21267:1: ( '=' )
+            // InternalOCLinEcore.g:21278:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:21279:1: ( '=' )
             {
-            // InternalOCLinEcore.g:21267:1: ( '=' )
-            // InternalOCLinEcore.g:21268:1: '='
+            // InternalOCLinEcore.g:21279:1: ( '=' )
+            // InternalOCLinEcore.g:21280:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getEqualsSignKeyword_2_2_0()); 
@@ -63290,14 +63358,14 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2_2__1"
-    // InternalOCLinEcore.g:21281:1: rule__NavigatingSemiArgCS__Group_2_2__1 : rule__NavigatingSemiArgCS__Group_2_2__1__Impl ;
+    // InternalOCLinEcore.g:21293:1: rule__NavigatingSemiArgCS__Group_2_2__1 : rule__NavigatingSemiArgCS__Group_2_2__1__Impl ;
     public final void rule__NavigatingSemiArgCS__Group_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21285:1: ( rule__NavigatingSemiArgCS__Group_2_2__1__Impl )
-            // InternalOCLinEcore.g:21286:2: rule__NavigatingSemiArgCS__Group_2_2__1__Impl
+            // InternalOCLinEcore.g:21297:1: ( rule__NavigatingSemiArgCS__Group_2_2__1__Impl )
+            // InternalOCLinEcore.g:21298:2: rule__NavigatingSemiArgCS__Group_2_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingSemiArgCS__Group_2_2__1__Impl();
@@ -63323,23 +63391,23 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__Group_2_2__1__Impl"
-    // InternalOCLinEcore.g:21292:1: rule__NavigatingSemiArgCS__Group_2_2__1__Impl : ( ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 ) ) ;
+    // InternalOCLinEcore.g:21304:1: rule__NavigatingSemiArgCS__Group_2_2__1__Impl : ( ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 ) ) ;
     public final void rule__NavigatingSemiArgCS__Group_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21296:1: ( ( ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 ) ) )
-            // InternalOCLinEcore.g:21297:1: ( ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 ) )
+            // InternalOCLinEcore.g:21308:1: ( ( ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 ) ) )
+            // InternalOCLinEcore.g:21309:1: ( ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 ) )
             {
-            // InternalOCLinEcore.g:21297:1: ( ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 ) )
-            // InternalOCLinEcore.g:21298:1: ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 )
+            // InternalOCLinEcore.g:21309:1: ( ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 ) )
+            // InternalOCLinEcore.g:21310:1: ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getOwnedInitExpressionAssignment_2_2_1()); 
             }
-            // InternalOCLinEcore.g:21299:1: ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 )
-            // InternalOCLinEcore.g:21299:2: rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1
+            // InternalOCLinEcore.g:21311:1: ( rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 )
+            // InternalOCLinEcore.g:21311:2: rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1();
@@ -63374,14 +63442,14 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__0"
-    // InternalOCLinEcore.g:21313:1: rule__IfExpCS__Group__0 : rule__IfExpCS__Group__0__Impl rule__IfExpCS__Group__1 ;
+    // InternalOCLinEcore.g:21325:1: rule__IfExpCS__Group__0 : rule__IfExpCS__Group__0__Impl rule__IfExpCS__Group__1 ;
     public final void rule__IfExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21317:1: ( rule__IfExpCS__Group__0__Impl rule__IfExpCS__Group__1 )
-            // InternalOCLinEcore.g:21318:2: rule__IfExpCS__Group__0__Impl rule__IfExpCS__Group__1
+            // InternalOCLinEcore.g:21329:1: ( rule__IfExpCS__Group__0__Impl rule__IfExpCS__Group__1 )
+            // InternalOCLinEcore.g:21330:2: rule__IfExpCS__Group__0__Impl rule__IfExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_91);
             rule__IfExpCS__Group__0__Impl();
@@ -63412,17 +63480,17 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:21325:1: rule__IfExpCS__Group__0__Impl : ( 'if' ) ;
+    // InternalOCLinEcore.g:21337:1: rule__IfExpCS__Group__0__Impl : ( 'if' ) ;
     public final void rule__IfExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21329:1: ( ( 'if' ) )
-            // InternalOCLinEcore.g:21330:1: ( 'if' )
+            // InternalOCLinEcore.g:21341:1: ( ( 'if' ) )
+            // InternalOCLinEcore.g:21342:1: ( 'if' )
             {
-            // InternalOCLinEcore.g:21330:1: ( 'if' )
-            // InternalOCLinEcore.g:21331:1: 'if'
+            // InternalOCLinEcore.g:21342:1: ( 'if' )
+            // InternalOCLinEcore.g:21343:1: 'if'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getIfKeyword_0()); 
@@ -63453,14 +63521,14 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__1"
-    // InternalOCLinEcore.g:21344:1: rule__IfExpCS__Group__1 : rule__IfExpCS__Group__1__Impl rule__IfExpCS__Group__2 ;
+    // InternalOCLinEcore.g:21356:1: rule__IfExpCS__Group__1 : rule__IfExpCS__Group__1__Impl rule__IfExpCS__Group__2 ;
     public final void rule__IfExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21348:1: ( rule__IfExpCS__Group__1__Impl rule__IfExpCS__Group__2 )
-            // InternalOCLinEcore.g:21349:2: rule__IfExpCS__Group__1__Impl rule__IfExpCS__Group__2
+            // InternalOCLinEcore.g:21360:1: ( rule__IfExpCS__Group__1__Impl rule__IfExpCS__Group__2 )
+            // InternalOCLinEcore.g:21361:2: rule__IfExpCS__Group__1__Impl rule__IfExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_113);
             rule__IfExpCS__Group__1__Impl();
@@ -63491,23 +63559,23 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:21356:1: rule__IfExpCS__Group__1__Impl : ( ( rule__IfExpCS__OwnedConditionAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:21368:1: rule__IfExpCS__Group__1__Impl : ( ( rule__IfExpCS__OwnedConditionAssignment_1 ) ) ;
     public final void rule__IfExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21360:1: ( ( ( rule__IfExpCS__OwnedConditionAssignment_1 ) ) )
-            // InternalOCLinEcore.g:21361:1: ( ( rule__IfExpCS__OwnedConditionAssignment_1 ) )
+            // InternalOCLinEcore.g:21372:1: ( ( ( rule__IfExpCS__OwnedConditionAssignment_1 ) ) )
+            // InternalOCLinEcore.g:21373:1: ( ( rule__IfExpCS__OwnedConditionAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:21361:1: ( ( rule__IfExpCS__OwnedConditionAssignment_1 ) )
-            // InternalOCLinEcore.g:21362:1: ( rule__IfExpCS__OwnedConditionAssignment_1 )
+            // InternalOCLinEcore.g:21373:1: ( ( rule__IfExpCS__OwnedConditionAssignment_1 ) )
+            // InternalOCLinEcore.g:21374:1: ( rule__IfExpCS__OwnedConditionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getOwnedConditionAssignment_1()); 
             }
-            // InternalOCLinEcore.g:21363:1: ( rule__IfExpCS__OwnedConditionAssignment_1 )
-            // InternalOCLinEcore.g:21363:2: rule__IfExpCS__OwnedConditionAssignment_1
+            // InternalOCLinEcore.g:21375:1: ( rule__IfExpCS__OwnedConditionAssignment_1 )
+            // InternalOCLinEcore.g:21375:2: rule__IfExpCS__OwnedConditionAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__IfExpCS__OwnedConditionAssignment_1();
@@ -63542,14 +63610,14 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__2"
-    // InternalOCLinEcore.g:21373:1: rule__IfExpCS__Group__2 : rule__IfExpCS__Group__2__Impl rule__IfExpCS__Group__3 ;
+    // InternalOCLinEcore.g:21385:1: rule__IfExpCS__Group__2 : rule__IfExpCS__Group__2__Impl rule__IfExpCS__Group__3 ;
     public final void rule__IfExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21377:1: ( rule__IfExpCS__Group__2__Impl rule__IfExpCS__Group__3 )
-            // InternalOCLinEcore.g:21378:2: rule__IfExpCS__Group__2__Impl rule__IfExpCS__Group__3
+            // InternalOCLinEcore.g:21389:1: ( rule__IfExpCS__Group__2__Impl rule__IfExpCS__Group__3 )
+            // InternalOCLinEcore.g:21390:2: rule__IfExpCS__Group__2__Impl rule__IfExpCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__IfExpCS__Group__2__Impl();
@@ -63580,17 +63648,17 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:21385:1: rule__IfExpCS__Group__2__Impl : ( 'then' ) ;
+    // InternalOCLinEcore.g:21397:1: rule__IfExpCS__Group__2__Impl : ( 'then' ) ;
     public final void rule__IfExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21389:1: ( ( 'then' ) )
-            // InternalOCLinEcore.g:21390:1: ( 'then' )
+            // InternalOCLinEcore.g:21401:1: ( ( 'then' ) )
+            // InternalOCLinEcore.g:21402:1: ( 'then' )
             {
-            // InternalOCLinEcore.g:21390:1: ( 'then' )
-            // InternalOCLinEcore.g:21391:1: 'then'
+            // InternalOCLinEcore.g:21402:1: ( 'then' )
+            // InternalOCLinEcore.g:21403:1: 'then'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getThenKeyword_2()); 
@@ -63621,14 +63689,14 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__3"
-    // InternalOCLinEcore.g:21404:1: rule__IfExpCS__Group__3 : rule__IfExpCS__Group__3__Impl rule__IfExpCS__Group__4 ;
+    // InternalOCLinEcore.g:21416:1: rule__IfExpCS__Group__3 : rule__IfExpCS__Group__3__Impl rule__IfExpCS__Group__4 ;
     public final void rule__IfExpCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21408:1: ( rule__IfExpCS__Group__3__Impl rule__IfExpCS__Group__4 )
-            // InternalOCLinEcore.g:21409:2: rule__IfExpCS__Group__3__Impl rule__IfExpCS__Group__4
+            // InternalOCLinEcore.g:21420:1: ( rule__IfExpCS__Group__3__Impl rule__IfExpCS__Group__4 )
+            // InternalOCLinEcore.g:21421:2: rule__IfExpCS__Group__3__Impl rule__IfExpCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_114);
             rule__IfExpCS__Group__3__Impl();
@@ -63659,23 +63727,23 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__3__Impl"
-    // InternalOCLinEcore.g:21416:1: rule__IfExpCS__Group__3__Impl : ( ( rule__IfExpCS__OwnedThenExpressionAssignment_3 ) ) ;
+    // InternalOCLinEcore.g:21428:1: rule__IfExpCS__Group__3__Impl : ( ( rule__IfExpCS__OwnedThenExpressionAssignment_3 ) ) ;
     public final void rule__IfExpCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21420:1: ( ( ( rule__IfExpCS__OwnedThenExpressionAssignment_3 ) ) )
-            // InternalOCLinEcore.g:21421:1: ( ( rule__IfExpCS__OwnedThenExpressionAssignment_3 ) )
+            // InternalOCLinEcore.g:21432:1: ( ( ( rule__IfExpCS__OwnedThenExpressionAssignment_3 ) ) )
+            // InternalOCLinEcore.g:21433:1: ( ( rule__IfExpCS__OwnedThenExpressionAssignment_3 ) )
             {
-            // InternalOCLinEcore.g:21421:1: ( ( rule__IfExpCS__OwnedThenExpressionAssignment_3 ) )
-            // InternalOCLinEcore.g:21422:1: ( rule__IfExpCS__OwnedThenExpressionAssignment_3 )
+            // InternalOCLinEcore.g:21433:1: ( ( rule__IfExpCS__OwnedThenExpressionAssignment_3 ) )
+            // InternalOCLinEcore.g:21434:1: ( rule__IfExpCS__OwnedThenExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getOwnedThenExpressionAssignment_3()); 
             }
-            // InternalOCLinEcore.g:21423:1: ( rule__IfExpCS__OwnedThenExpressionAssignment_3 )
-            // InternalOCLinEcore.g:21423:2: rule__IfExpCS__OwnedThenExpressionAssignment_3
+            // InternalOCLinEcore.g:21435:1: ( rule__IfExpCS__OwnedThenExpressionAssignment_3 )
+            // InternalOCLinEcore.g:21435:2: rule__IfExpCS__OwnedThenExpressionAssignment_3
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__IfExpCS__OwnedThenExpressionAssignment_3();
@@ -63710,14 +63778,14 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__4"
-    // InternalOCLinEcore.g:21433:1: rule__IfExpCS__Group__4 : rule__IfExpCS__Group__4__Impl rule__IfExpCS__Group__5 ;
+    // InternalOCLinEcore.g:21445:1: rule__IfExpCS__Group__4 : rule__IfExpCS__Group__4__Impl rule__IfExpCS__Group__5 ;
     public final void rule__IfExpCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21437:1: ( rule__IfExpCS__Group__4__Impl rule__IfExpCS__Group__5 )
-            // InternalOCLinEcore.g:21438:2: rule__IfExpCS__Group__4__Impl rule__IfExpCS__Group__5
+            // InternalOCLinEcore.g:21449:1: ( rule__IfExpCS__Group__4__Impl rule__IfExpCS__Group__5 )
+            // InternalOCLinEcore.g:21450:2: rule__IfExpCS__Group__4__Impl rule__IfExpCS__Group__5
             {
             pushFollow(FollowSets000.FOLLOW_114);
             rule__IfExpCS__Group__4__Impl();
@@ -63748,22 +63816,22 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__4__Impl"
-    // InternalOCLinEcore.g:21445:1: rule__IfExpCS__Group__4__Impl : ( ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )* ) ;
+    // InternalOCLinEcore.g:21457:1: rule__IfExpCS__Group__4__Impl : ( ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )* ) ;
     public final void rule__IfExpCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21449:1: ( ( ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )* ) )
-            // InternalOCLinEcore.g:21450:1: ( ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )* )
+            // InternalOCLinEcore.g:21461:1: ( ( ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )* ) )
+            // InternalOCLinEcore.g:21462:1: ( ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )* )
             {
-            // InternalOCLinEcore.g:21450:1: ( ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )* )
-            // InternalOCLinEcore.g:21451:1: ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )*
+            // InternalOCLinEcore.g:21462:1: ( ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )* )
+            // InternalOCLinEcore.g:21463:1: ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getOwnedIfThenExpressionsAssignment_4()); 
             }
-            // InternalOCLinEcore.g:21452:1: ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )*
+            // InternalOCLinEcore.g:21464:1: ( rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 )*
             loop218:
             do {
                 int alt218=2;
@@ -63776,7 +63844,7 @@
 
                 switch (alt218) {
             	case 1 :
-            	    // InternalOCLinEcore.g:21452:2: rule__IfExpCS__OwnedIfThenExpressionsAssignment_4
+            	    // InternalOCLinEcore.g:21464:2: rule__IfExpCS__OwnedIfThenExpressionsAssignment_4
             	    {
             	    pushFollow(FollowSets000.FOLLOW_115);
             	    rule__IfExpCS__OwnedIfThenExpressionsAssignment_4();
@@ -63817,14 +63885,14 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__5"
-    // InternalOCLinEcore.g:21462:1: rule__IfExpCS__Group__5 : rule__IfExpCS__Group__5__Impl rule__IfExpCS__Group__6 ;
+    // InternalOCLinEcore.g:21474:1: rule__IfExpCS__Group__5 : rule__IfExpCS__Group__5__Impl rule__IfExpCS__Group__6 ;
     public final void rule__IfExpCS__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21466:1: ( rule__IfExpCS__Group__5__Impl rule__IfExpCS__Group__6 )
-            // InternalOCLinEcore.g:21467:2: rule__IfExpCS__Group__5__Impl rule__IfExpCS__Group__6
+            // InternalOCLinEcore.g:21478:1: ( rule__IfExpCS__Group__5__Impl rule__IfExpCS__Group__6 )
+            // InternalOCLinEcore.g:21479:2: rule__IfExpCS__Group__5__Impl rule__IfExpCS__Group__6
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__IfExpCS__Group__5__Impl();
@@ -63855,17 +63923,17 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__5__Impl"
-    // InternalOCLinEcore.g:21474:1: rule__IfExpCS__Group__5__Impl : ( 'else' ) ;
+    // InternalOCLinEcore.g:21486:1: rule__IfExpCS__Group__5__Impl : ( 'else' ) ;
     public final void rule__IfExpCS__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21478:1: ( ( 'else' ) )
-            // InternalOCLinEcore.g:21479:1: ( 'else' )
+            // InternalOCLinEcore.g:21490:1: ( ( 'else' ) )
+            // InternalOCLinEcore.g:21491:1: ( 'else' )
             {
-            // InternalOCLinEcore.g:21479:1: ( 'else' )
-            // InternalOCLinEcore.g:21480:1: 'else'
+            // InternalOCLinEcore.g:21491:1: ( 'else' )
+            // InternalOCLinEcore.g:21492:1: 'else'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getElseKeyword_5()); 
@@ -63896,14 +63964,14 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__6"
-    // InternalOCLinEcore.g:21493:1: rule__IfExpCS__Group__6 : rule__IfExpCS__Group__6__Impl rule__IfExpCS__Group__7 ;
+    // InternalOCLinEcore.g:21505:1: rule__IfExpCS__Group__6 : rule__IfExpCS__Group__6__Impl rule__IfExpCS__Group__7 ;
     public final void rule__IfExpCS__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21497:1: ( rule__IfExpCS__Group__6__Impl rule__IfExpCS__Group__7 )
-            // InternalOCLinEcore.g:21498:2: rule__IfExpCS__Group__6__Impl rule__IfExpCS__Group__7
+            // InternalOCLinEcore.g:21509:1: ( rule__IfExpCS__Group__6__Impl rule__IfExpCS__Group__7 )
+            // InternalOCLinEcore.g:21510:2: rule__IfExpCS__Group__6__Impl rule__IfExpCS__Group__7
             {
             pushFollow(FollowSets000.FOLLOW_116);
             rule__IfExpCS__Group__6__Impl();
@@ -63934,23 +64002,23 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__6__Impl"
-    // InternalOCLinEcore.g:21505:1: rule__IfExpCS__Group__6__Impl : ( ( rule__IfExpCS__OwnedElseExpressionAssignment_6 ) ) ;
+    // InternalOCLinEcore.g:21517:1: rule__IfExpCS__Group__6__Impl : ( ( rule__IfExpCS__OwnedElseExpressionAssignment_6 ) ) ;
     public final void rule__IfExpCS__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21509:1: ( ( ( rule__IfExpCS__OwnedElseExpressionAssignment_6 ) ) )
-            // InternalOCLinEcore.g:21510:1: ( ( rule__IfExpCS__OwnedElseExpressionAssignment_6 ) )
+            // InternalOCLinEcore.g:21521:1: ( ( ( rule__IfExpCS__OwnedElseExpressionAssignment_6 ) ) )
+            // InternalOCLinEcore.g:21522:1: ( ( rule__IfExpCS__OwnedElseExpressionAssignment_6 ) )
             {
-            // InternalOCLinEcore.g:21510:1: ( ( rule__IfExpCS__OwnedElseExpressionAssignment_6 ) )
-            // InternalOCLinEcore.g:21511:1: ( rule__IfExpCS__OwnedElseExpressionAssignment_6 )
+            // InternalOCLinEcore.g:21522:1: ( ( rule__IfExpCS__OwnedElseExpressionAssignment_6 ) )
+            // InternalOCLinEcore.g:21523:1: ( rule__IfExpCS__OwnedElseExpressionAssignment_6 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getOwnedElseExpressionAssignment_6()); 
             }
-            // InternalOCLinEcore.g:21512:1: ( rule__IfExpCS__OwnedElseExpressionAssignment_6 )
-            // InternalOCLinEcore.g:21512:2: rule__IfExpCS__OwnedElseExpressionAssignment_6
+            // InternalOCLinEcore.g:21524:1: ( rule__IfExpCS__OwnedElseExpressionAssignment_6 )
+            // InternalOCLinEcore.g:21524:2: rule__IfExpCS__OwnedElseExpressionAssignment_6
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__IfExpCS__OwnedElseExpressionAssignment_6();
@@ -63985,14 +64053,14 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__7"
-    // InternalOCLinEcore.g:21522:1: rule__IfExpCS__Group__7 : rule__IfExpCS__Group__7__Impl ;
+    // InternalOCLinEcore.g:21534:1: rule__IfExpCS__Group__7 : rule__IfExpCS__Group__7__Impl ;
     public final void rule__IfExpCS__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21526:1: ( rule__IfExpCS__Group__7__Impl )
-            // InternalOCLinEcore.g:21527:2: rule__IfExpCS__Group__7__Impl
+            // InternalOCLinEcore.g:21538:1: ( rule__IfExpCS__Group__7__Impl )
+            // InternalOCLinEcore.g:21539:2: rule__IfExpCS__Group__7__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__IfExpCS__Group__7__Impl();
@@ -64018,17 +64086,17 @@
 
 
     // $ANTLR start "rule__IfExpCS__Group__7__Impl"
-    // InternalOCLinEcore.g:21533:1: rule__IfExpCS__Group__7__Impl : ( 'endif' ) ;
+    // InternalOCLinEcore.g:21545:1: rule__IfExpCS__Group__7__Impl : ( 'endif' ) ;
     public final void rule__IfExpCS__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21537:1: ( ( 'endif' ) )
-            // InternalOCLinEcore.g:21538:1: ( 'endif' )
+            // InternalOCLinEcore.g:21549:1: ( ( 'endif' ) )
+            // InternalOCLinEcore.g:21550:1: ( 'endif' )
             {
-            // InternalOCLinEcore.g:21538:1: ( 'endif' )
-            // InternalOCLinEcore.g:21539:1: 'endif'
+            // InternalOCLinEcore.g:21550:1: ( 'endif' )
+            // InternalOCLinEcore.g:21551:1: 'endif'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getEndifKeyword_7()); 
@@ -64059,14 +64127,14 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__Group__0"
-    // InternalOCLinEcore.g:21568:1: rule__ElseIfThenExpCS__Group__0 : rule__ElseIfThenExpCS__Group__0__Impl rule__ElseIfThenExpCS__Group__1 ;
+    // InternalOCLinEcore.g:21580:1: rule__ElseIfThenExpCS__Group__0 : rule__ElseIfThenExpCS__Group__0__Impl rule__ElseIfThenExpCS__Group__1 ;
     public final void rule__ElseIfThenExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21572:1: ( rule__ElseIfThenExpCS__Group__0__Impl rule__ElseIfThenExpCS__Group__1 )
-            // InternalOCLinEcore.g:21573:2: rule__ElseIfThenExpCS__Group__0__Impl rule__ElseIfThenExpCS__Group__1
+            // InternalOCLinEcore.g:21584:1: ( rule__ElseIfThenExpCS__Group__0__Impl rule__ElseIfThenExpCS__Group__1 )
+            // InternalOCLinEcore.g:21585:2: rule__ElseIfThenExpCS__Group__0__Impl rule__ElseIfThenExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__ElseIfThenExpCS__Group__0__Impl();
@@ -64097,17 +64165,17 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:21580:1: rule__ElseIfThenExpCS__Group__0__Impl : ( 'elseif' ) ;
+    // InternalOCLinEcore.g:21592:1: rule__ElseIfThenExpCS__Group__0__Impl : ( 'elseif' ) ;
     public final void rule__ElseIfThenExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21584:1: ( ( 'elseif' ) )
-            // InternalOCLinEcore.g:21585:1: ( 'elseif' )
+            // InternalOCLinEcore.g:21596:1: ( ( 'elseif' ) )
+            // InternalOCLinEcore.g:21597:1: ( 'elseif' )
             {
-            // InternalOCLinEcore.g:21585:1: ( 'elseif' )
-            // InternalOCLinEcore.g:21586:1: 'elseif'
+            // InternalOCLinEcore.g:21597:1: ( 'elseif' )
+            // InternalOCLinEcore.g:21598:1: 'elseif'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getElseIfThenExpCSAccess().getElseifKeyword_0()); 
@@ -64138,14 +64206,14 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__Group__1"
-    // InternalOCLinEcore.g:21599:1: rule__ElseIfThenExpCS__Group__1 : rule__ElseIfThenExpCS__Group__1__Impl rule__ElseIfThenExpCS__Group__2 ;
+    // InternalOCLinEcore.g:21611:1: rule__ElseIfThenExpCS__Group__1 : rule__ElseIfThenExpCS__Group__1__Impl rule__ElseIfThenExpCS__Group__2 ;
     public final void rule__ElseIfThenExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21603:1: ( rule__ElseIfThenExpCS__Group__1__Impl rule__ElseIfThenExpCS__Group__2 )
-            // InternalOCLinEcore.g:21604:2: rule__ElseIfThenExpCS__Group__1__Impl rule__ElseIfThenExpCS__Group__2
+            // InternalOCLinEcore.g:21615:1: ( rule__ElseIfThenExpCS__Group__1__Impl rule__ElseIfThenExpCS__Group__2 )
+            // InternalOCLinEcore.g:21616:2: rule__ElseIfThenExpCS__Group__1__Impl rule__ElseIfThenExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_113);
             rule__ElseIfThenExpCS__Group__1__Impl();
@@ -64176,23 +64244,23 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:21611:1: rule__ElseIfThenExpCS__Group__1__Impl : ( ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:21623:1: rule__ElseIfThenExpCS__Group__1__Impl : ( ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 ) ) ;
     public final void rule__ElseIfThenExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21615:1: ( ( ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 ) ) )
-            // InternalOCLinEcore.g:21616:1: ( ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 ) )
+            // InternalOCLinEcore.g:21627:1: ( ( ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 ) ) )
+            // InternalOCLinEcore.g:21628:1: ( ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:21616:1: ( ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 ) )
-            // InternalOCLinEcore.g:21617:1: ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 )
+            // InternalOCLinEcore.g:21628:1: ( ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 ) )
+            // InternalOCLinEcore.g:21629:1: ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getElseIfThenExpCSAccess().getOwnedConditionAssignment_1()); 
             }
-            // InternalOCLinEcore.g:21618:1: ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 )
-            // InternalOCLinEcore.g:21618:2: rule__ElseIfThenExpCS__OwnedConditionAssignment_1
+            // InternalOCLinEcore.g:21630:1: ( rule__ElseIfThenExpCS__OwnedConditionAssignment_1 )
+            // InternalOCLinEcore.g:21630:2: rule__ElseIfThenExpCS__OwnedConditionAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ElseIfThenExpCS__OwnedConditionAssignment_1();
@@ -64227,14 +64295,14 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__Group__2"
-    // InternalOCLinEcore.g:21628:1: rule__ElseIfThenExpCS__Group__2 : rule__ElseIfThenExpCS__Group__2__Impl rule__ElseIfThenExpCS__Group__3 ;
+    // InternalOCLinEcore.g:21640:1: rule__ElseIfThenExpCS__Group__2 : rule__ElseIfThenExpCS__Group__2__Impl rule__ElseIfThenExpCS__Group__3 ;
     public final void rule__ElseIfThenExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21632:1: ( rule__ElseIfThenExpCS__Group__2__Impl rule__ElseIfThenExpCS__Group__3 )
-            // InternalOCLinEcore.g:21633:2: rule__ElseIfThenExpCS__Group__2__Impl rule__ElseIfThenExpCS__Group__3
+            // InternalOCLinEcore.g:21644:1: ( rule__ElseIfThenExpCS__Group__2__Impl rule__ElseIfThenExpCS__Group__3 )
+            // InternalOCLinEcore.g:21645:2: rule__ElseIfThenExpCS__Group__2__Impl rule__ElseIfThenExpCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__ElseIfThenExpCS__Group__2__Impl();
@@ -64265,17 +64333,17 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:21640:1: rule__ElseIfThenExpCS__Group__2__Impl : ( 'then' ) ;
+    // InternalOCLinEcore.g:21652:1: rule__ElseIfThenExpCS__Group__2__Impl : ( 'then' ) ;
     public final void rule__ElseIfThenExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21644:1: ( ( 'then' ) )
-            // InternalOCLinEcore.g:21645:1: ( 'then' )
+            // InternalOCLinEcore.g:21656:1: ( ( 'then' ) )
+            // InternalOCLinEcore.g:21657:1: ( 'then' )
             {
-            // InternalOCLinEcore.g:21645:1: ( 'then' )
-            // InternalOCLinEcore.g:21646:1: 'then'
+            // InternalOCLinEcore.g:21657:1: ( 'then' )
+            // InternalOCLinEcore.g:21658:1: 'then'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getElseIfThenExpCSAccess().getThenKeyword_2()); 
@@ -64306,14 +64374,14 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__Group__3"
-    // InternalOCLinEcore.g:21659:1: rule__ElseIfThenExpCS__Group__3 : rule__ElseIfThenExpCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:21671:1: rule__ElseIfThenExpCS__Group__3 : rule__ElseIfThenExpCS__Group__3__Impl ;
     public final void rule__ElseIfThenExpCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21663:1: ( rule__ElseIfThenExpCS__Group__3__Impl )
-            // InternalOCLinEcore.g:21664:2: rule__ElseIfThenExpCS__Group__3__Impl
+            // InternalOCLinEcore.g:21675:1: ( rule__ElseIfThenExpCS__Group__3__Impl )
+            // InternalOCLinEcore.g:21676:2: rule__ElseIfThenExpCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ElseIfThenExpCS__Group__3__Impl();
@@ -64339,23 +64407,23 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__Group__3__Impl"
-    // InternalOCLinEcore.g:21670:1: rule__ElseIfThenExpCS__Group__3__Impl : ( ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 ) ) ;
+    // InternalOCLinEcore.g:21682:1: rule__ElseIfThenExpCS__Group__3__Impl : ( ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 ) ) ;
     public final void rule__ElseIfThenExpCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21674:1: ( ( ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 ) ) )
-            // InternalOCLinEcore.g:21675:1: ( ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 ) )
+            // InternalOCLinEcore.g:21686:1: ( ( ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 ) ) )
+            // InternalOCLinEcore.g:21687:1: ( ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 ) )
             {
-            // InternalOCLinEcore.g:21675:1: ( ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 ) )
-            // InternalOCLinEcore.g:21676:1: ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 )
+            // InternalOCLinEcore.g:21687:1: ( ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 ) )
+            // InternalOCLinEcore.g:21688:1: ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getElseIfThenExpCSAccess().getOwnedThenExpressionAssignment_3()); 
             }
-            // InternalOCLinEcore.g:21677:1: ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 )
-            // InternalOCLinEcore.g:21677:2: rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3
+            // InternalOCLinEcore.g:21689:1: ( rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 )
+            // InternalOCLinEcore.g:21689:2: rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3();
@@ -64390,14 +64458,14 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__0"
-    // InternalOCLinEcore.g:21695:1: rule__LetExpCS__Group__0 : rule__LetExpCS__Group__0__Impl rule__LetExpCS__Group__1 ;
+    // InternalOCLinEcore.g:21707:1: rule__LetExpCS__Group__0 : rule__LetExpCS__Group__0__Impl rule__LetExpCS__Group__1 ;
     public final void rule__LetExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21699:1: ( rule__LetExpCS__Group__0__Impl rule__LetExpCS__Group__1 )
-            // InternalOCLinEcore.g:21700:2: rule__LetExpCS__Group__0__Impl rule__LetExpCS__Group__1
+            // InternalOCLinEcore.g:21711:1: ( rule__LetExpCS__Group__0__Impl rule__LetExpCS__Group__1 )
+            // InternalOCLinEcore.g:21712:2: rule__LetExpCS__Group__0__Impl rule__LetExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__LetExpCS__Group__0__Impl();
@@ -64428,17 +64496,17 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:21707:1: rule__LetExpCS__Group__0__Impl : ( 'let' ) ;
+    // InternalOCLinEcore.g:21719:1: rule__LetExpCS__Group__0__Impl : ( 'let' ) ;
     public final void rule__LetExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21711:1: ( ( 'let' ) )
-            // InternalOCLinEcore.g:21712:1: ( 'let' )
+            // InternalOCLinEcore.g:21723:1: ( ( 'let' ) )
+            // InternalOCLinEcore.g:21724:1: ( 'let' )
             {
-            // InternalOCLinEcore.g:21712:1: ( 'let' )
-            // InternalOCLinEcore.g:21713:1: 'let'
+            // InternalOCLinEcore.g:21724:1: ( 'let' )
+            // InternalOCLinEcore.g:21725:1: 'let'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getLetKeyword_0()); 
@@ -64469,14 +64537,14 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__1"
-    // InternalOCLinEcore.g:21726:1: rule__LetExpCS__Group__1 : rule__LetExpCS__Group__1__Impl rule__LetExpCS__Group__2 ;
+    // InternalOCLinEcore.g:21738:1: rule__LetExpCS__Group__1 : rule__LetExpCS__Group__1__Impl rule__LetExpCS__Group__2 ;
     public final void rule__LetExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21730:1: ( rule__LetExpCS__Group__1__Impl rule__LetExpCS__Group__2 )
-            // InternalOCLinEcore.g:21731:2: rule__LetExpCS__Group__1__Impl rule__LetExpCS__Group__2
+            // InternalOCLinEcore.g:21742:1: ( rule__LetExpCS__Group__1__Impl rule__LetExpCS__Group__2 )
+            // InternalOCLinEcore.g:21743:2: rule__LetExpCS__Group__1__Impl rule__LetExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_117);
             rule__LetExpCS__Group__1__Impl();
@@ -64507,23 +64575,23 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:21738:1: rule__LetExpCS__Group__1__Impl : ( ( rule__LetExpCS__OwnedVariablesAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:21750:1: rule__LetExpCS__Group__1__Impl : ( ( rule__LetExpCS__OwnedVariablesAssignment_1 ) ) ;
     public final void rule__LetExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21742:1: ( ( ( rule__LetExpCS__OwnedVariablesAssignment_1 ) ) )
-            // InternalOCLinEcore.g:21743:1: ( ( rule__LetExpCS__OwnedVariablesAssignment_1 ) )
+            // InternalOCLinEcore.g:21754:1: ( ( ( rule__LetExpCS__OwnedVariablesAssignment_1 ) ) )
+            // InternalOCLinEcore.g:21755:1: ( ( rule__LetExpCS__OwnedVariablesAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:21743:1: ( ( rule__LetExpCS__OwnedVariablesAssignment_1 ) )
-            // InternalOCLinEcore.g:21744:1: ( rule__LetExpCS__OwnedVariablesAssignment_1 )
+            // InternalOCLinEcore.g:21755:1: ( ( rule__LetExpCS__OwnedVariablesAssignment_1 ) )
+            // InternalOCLinEcore.g:21756:1: ( rule__LetExpCS__OwnedVariablesAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getOwnedVariablesAssignment_1()); 
             }
-            // InternalOCLinEcore.g:21745:1: ( rule__LetExpCS__OwnedVariablesAssignment_1 )
-            // InternalOCLinEcore.g:21745:2: rule__LetExpCS__OwnedVariablesAssignment_1
+            // InternalOCLinEcore.g:21757:1: ( rule__LetExpCS__OwnedVariablesAssignment_1 )
+            // InternalOCLinEcore.g:21757:2: rule__LetExpCS__OwnedVariablesAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetExpCS__OwnedVariablesAssignment_1();
@@ -64558,14 +64626,14 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__2"
-    // InternalOCLinEcore.g:21755:1: rule__LetExpCS__Group__2 : rule__LetExpCS__Group__2__Impl rule__LetExpCS__Group__3 ;
+    // InternalOCLinEcore.g:21767:1: rule__LetExpCS__Group__2 : rule__LetExpCS__Group__2__Impl rule__LetExpCS__Group__3 ;
     public final void rule__LetExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21759:1: ( rule__LetExpCS__Group__2__Impl rule__LetExpCS__Group__3 )
-            // InternalOCLinEcore.g:21760:2: rule__LetExpCS__Group__2__Impl rule__LetExpCS__Group__3
+            // InternalOCLinEcore.g:21771:1: ( rule__LetExpCS__Group__2__Impl rule__LetExpCS__Group__3 )
+            // InternalOCLinEcore.g:21772:2: rule__LetExpCS__Group__2__Impl rule__LetExpCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_117);
             rule__LetExpCS__Group__2__Impl();
@@ -64596,22 +64664,22 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:21767:1: rule__LetExpCS__Group__2__Impl : ( ( rule__LetExpCS__Group_2__0 )* ) ;
+    // InternalOCLinEcore.g:21779:1: rule__LetExpCS__Group__2__Impl : ( ( rule__LetExpCS__Group_2__0 )* ) ;
     public final void rule__LetExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21771:1: ( ( ( rule__LetExpCS__Group_2__0 )* ) )
-            // InternalOCLinEcore.g:21772:1: ( ( rule__LetExpCS__Group_2__0 )* )
+            // InternalOCLinEcore.g:21783:1: ( ( ( rule__LetExpCS__Group_2__0 )* ) )
+            // InternalOCLinEcore.g:21784:1: ( ( rule__LetExpCS__Group_2__0 )* )
             {
-            // InternalOCLinEcore.g:21772:1: ( ( rule__LetExpCS__Group_2__0 )* )
-            // InternalOCLinEcore.g:21773:1: ( rule__LetExpCS__Group_2__0 )*
+            // InternalOCLinEcore.g:21784:1: ( ( rule__LetExpCS__Group_2__0 )* )
+            // InternalOCLinEcore.g:21785:1: ( rule__LetExpCS__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:21774:1: ( rule__LetExpCS__Group_2__0 )*
+            // InternalOCLinEcore.g:21786:1: ( rule__LetExpCS__Group_2__0 )*
             loop219:
             do {
                 int alt219=2;
@@ -64624,7 +64692,7 @@
 
                 switch (alt219) {
             	case 1 :
-            	    // InternalOCLinEcore.g:21774:2: rule__LetExpCS__Group_2__0
+            	    // InternalOCLinEcore.g:21786:2: rule__LetExpCS__Group_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__LetExpCS__Group_2__0();
@@ -64665,14 +64733,14 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__3"
-    // InternalOCLinEcore.g:21784:1: rule__LetExpCS__Group__3 : rule__LetExpCS__Group__3__Impl rule__LetExpCS__Group__4 ;
+    // InternalOCLinEcore.g:21796:1: rule__LetExpCS__Group__3 : rule__LetExpCS__Group__3__Impl rule__LetExpCS__Group__4 ;
     public final void rule__LetExpCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21788:1: ( rule__LetExpCS__Group__3__Impl rule__LetExpCS__Group__4 )
-            // InternalOCLinEcore.g:21789:2: rule__LetExpCS__Group__3__Impl rule__LetExpCS__Group__4
+            // InternalOCLinEcore.g:21800:1: ( rule__LetExpCS__Group__3__Impl rule__LetExpCS__Group__4 )
+            // InternalOCLinEcore.g:21801:2: rule__LetExpCS__Group__3__Impl rule__LetExpCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__LetExpCS__Group__3__Impl();
@@ -64703,17 +64771,17 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__3__Impl"
-    // InternalOCLinEcore.g:21796:1: rule__LetExpCS__Group__3__Impl : ( 'in' ) ;
+    // InternalOCLinEcore.g:21808:1: rule__LetExpCS__Group__3__Impl : ( 'in' ) ;
     public final void rule__LetExpCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21800:1: ( ( 'in' ) )
-            // InternalOCLinEcore.g:21801:1: ( 'in' )
+            // InternalOCLinEcore.g:21812:1: ( ( 'in' ) )
+            // InternalOCLinEcore.g:21813:1: ( 'in' )
             {
-            // InternalOCLinEcore.g:21801:1: ( 'in' )
-            // InternalOCLinEcore.g:21802:1: 'in'
+            // InternalOCLinEcore.g:21813:1: ( 'in' )
+            // InternalOCLinEcore.g:21814:1: 'in'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getInKeyword_3()); 
@@ -64744,14 +64812,14 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__4"
-    // InternalOCLinEcore.g:21815:1: rule__LetExpCS__Group__4 : rule__LetExpCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:21827:1: rule__LetExpCS__Group__4 : rule__LetExpCS__Group__4__Impl ;
     public final void rule__LetExpCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21819:1: ( rule__LetExpCS__Group__4__Impl )
-            // InternalOCLinEcore.g:21820:2: rule__LetExpCS__Group__4__Impl
+            // InternalOCLinEcore.g:21831:1: ( rule__LetExpCS__Group__4__Impl )
+            // InternalOCLinEcore.g:21832:2: rule__LetExpCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetExpCS__Group__4__Impl();
@@ -64777,23 +64845,23 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group__4__Impl"
-    // InternalOCLinEcore.g:21826:1: rule__LetExpCS__Group__4__Impl : ( ( rule__LetExpCS__OwnedInExpressionAssignment_4 ) ) ;
+    // InternalOCLinEcore.g:21838:1: rule__LetExpCS__Group__4__Impl : ( ( rule__LetExpCS__OwnedInExpressionAssignment_4 ) ) ;
     public final void rule__LetExpCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21830:1: ( ( ( rule__LetExpCS__OwnedInExpressionAssignment_4 ) ) )
-            // InternalOCLinEcore.g:21831:1: ( ( rule__LetExpCS__OwnedInExpressionAssignment_4 ) )
+            // InternalOCLinEcore.g:21842:1: ( ( ( rule__LetExpCS__OwnedInExpressionAssignment_4 ) ) )
+            // InternalOCLinEcore.g:21843:1: ( ( rule__LetExpCS__OwnedInExpressionAssignment_4 ) )
             {
-            // InternalOCLinEcore.g:21831:1: ( ( rule__LetExpCS__OwnedInExpressionAssignment_4 ) )
-            // InternalOCLinEcore.g:21832:1: ( rule__LetExpCS__OwnedInExpressionAssignment_4 )
+            // InternalOCLinEcore.g:21843:1: ( ( rule__LetExpCS__OwnedInExpressionAssignment_4 ) )
+            // InternalOCLinEcore.g:21844:1: ( rule__LetExpCS__OwnedInExpressionAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getOwnedInExpressionAssignment_4()); 
             }
-            // InternalOCLinEcore.g:21833:1: ( rule__LetExpCS__OwnedInExpressionAssignment_4 )
-            // InternalOCLinEcore.g:21833:2: rule__LetExpCS__OwnedInExpressionAssignment_4
+            // InternalOCLinEcore.g:21845:1: ( rule__LetExpCS__OwnedInExpressionAssignment_4 )
+            // InternalOCLinEcore.g:21845:2: rule__LetExpCS__OwnedInExpressionAssignment_4
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetExpCS__OwnedInExpressionAssignment_4();
@@ -64828,14 +64896,14 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group_2__0"
-    // InternalOCLinEcore.g:21853:1: rule__LetExpCS__Group_2__0 : rule__LetExpCS__Group_2__0__Impl rule__LetExpCS__Group_2__1 ;
+    // InternalOCLinEcore.g:21865:1: rule__LetExpCS__Group_2__0 : rule__LetExpCS__Group_2__0__Impl rule__LetExpCS__Group_2__1 ;
     public final void rule__LetExpCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21857:1: ( rule__LetExpCS__Group_2__0__Impl rule__LetExpCS__Group_2__1 )
-            // InternalOCLinEcore.g:21858:2: rule__LetExpCS__Group_2__0__Impl rule__LetExpCS__Group_2__1
+            // InternalOCLinEcore.g:21869:1: ( rule__LetExpCS__Group_2__0__Impl rule__LetExpCS__Group_2__1 )
+            // InternalOCLinEcore.g:21870:2: rule__LetExpCS__Group_2__0__Impl rule__LetExpCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_7);
             rule__LetExpCS__Group_2__0__Impl();
@@ -64866,17 +64934,17 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:21865:1: rule__LetExpCS__Group_2__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:21877:1: rule__LetExpCS__Group_2__0__Impl : ( ',' ) ;
     public final void rule__LetExpCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21869:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:21870:1: ( ',' )
+            // InternalOCLinEcore.g:21881:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:21882:1: ( ',' )
             {
-            // InternalOCLinEcore.g:21870:1: ( ',' )
-            // InternalOCLinEcore.g:21871:1: ','
+            // InternalOCLinEcore.g:21882:1: ( ',' )
+            // InternalOCLinEcore.g:21883:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getCommaKeyword_2_0()); 
@@ -64907,14 +64975,14 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group_2__1"
-    // InternalOCLinEcore.g:21884:1: rule__LetExpCS__Group_2__1 : rule__LetExpCS__Group_2__1__Impl ;
+    // InternalOCLinEcore.g:21896:1: rule__LetExpCS__Group_2__1 : rule__LetExpCS__Group_2__1__Impl ;
     public final void rule__LetExpCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21888:1: ( rule__LetExpCS__Group_2__1__Impl )
-            // InternalOCLinEcore.g:21889:2: rule__LetExpCS__Group_2__1__Impl
+            // InternalOCLinEcore.g:21900:1: ( rule__LetExpCS__Group_2__1__Impl )
+            // InternalOCLinEcore.g:21901:2: rule__LetExpCS__Group_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetExpCS__Group_2__1__Impl();
@@ -64940,23 +65008,23 @@
 
 
     // $ANTLR start "rule__LetExpCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:21895:1: rule__LetExpCS__Group_2__1__Impl : ( ( rule__LetExpCS__OwnedVariablesAssignment_2_1 ) ) ;
+    // InternalOCLinEcore.g:21907:1: rule__LetExpCS__Group_2__1__Impl : ( ( rule__LetExpCS__OwnedVariablesAssignment_2_1 ) ) ;
     public final void rule__LetExpCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21899:1: ( ( ( rule__LetExpCS__OwnedVariablesAssignment_2_1 ) ) )
-            // InternalOCLinEcore.g:21900:1: ( ( rule__LetExpCS__OwnedVariablesAssignment_2_1 ) )
+            // InternalOCLinEcore.g:21911:1: ( ( ( rule__LetExpCS__OwnedVariablesAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:21912:1: ( ( rule__LetExpCS__OwnedVariablesAssignment_2_1 ) )
             {
-            // InternalOCLinEcore.g:21900:1: ( ( rule__LetExpCS__OwnedVariablesAssignment_2_1 ) )
-            // InternalOCLinEcore.g:21901:1: ( rule__LetExpCS__OwnedVariablesAssignment_2_1 )
+            // InternalOCLinEcore.g:21912:1: ( ( rule__LetExpCS__OwnedVariablesAssignment_2_1 ) )
+            // InternalOCLinEcore.g:21913:1: ( rule__LetExpCS__OwnedVariablesAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getOwnedVariablesAssignment_2_1()); 
             }
-            // InternalOCLinEcore.g:21902:1: ( rule__LetExpCS__OwnedVariablesAssignment_2_1 )
-            // InternalOCLinEcore.g:21902:2: rule__LetExpCS__OwnedVariablesAssignment_2_1
+            // InternalOCLinEcore.g:21914:1: ( rule__LetExpCS__OwnedVariablesAssignment_2_1 )
+            // InternalOCLinEcore.g:21914:2: rule__LetExpCS__OwnedVariablesAssignment_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetExpCS__OwnedVariablesAssignment_2_1();
@@ -64991,14 +65059,14 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__0"
-    // InternalOCLinEcore.g:21916:1: rule__LetVariableCS__Group__0 : rule__LetVariableCS__Group__0__Impl rule__LetVariableCS__Group__1 ;
+    // InternalOCLinEcore.g:21928:1: rule__LetVariableCS__Group__0 : rule__LetVariableCS__Group__0__Impl rule__LetVariableCS__Group__1 ;
     public final void rule__LetVariableCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21920:1: ( rule__LetVariableCS__Group__0__Impl rule__LetVariableCS__Group__1 )
-            // InternalOCLinEcore.g:21921:2: rule__LetVariableCS__Group__0__Impl rule__LetVariableCS__Group__1
+            // InternalOCLinEcore.g:21932:1: ( rule__LetVariableCS__Group__0__Impl rule__LetVariableCS__Group__1 )
+            // InternalOCLinEcore.g:21933:2: rule__LetVariableCS__Group__0__Impl rule__LetVariableCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_118);
             rule__LetVariableCS__Group__0__Impl();
@@ -65029,23 +65097,23 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__0__Impl"
-    // InternalOCLinEcore.g:21928:1: rule__LetVariableCS__Group__0__Impl : ( ( rule__LetVariableCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:21940:1: rule__LetVariableCS__Group__0__Impl : ( ( rule__LetVariableCS__NameAssignment_0 ) ) ;
     public final void rule__LetVariableCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21932:1: ( ( ( rule__LetVariableCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:21933:1: ( ( rule__LetVariableCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:21944:1: ( ( ( rule__LetVariableCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:21945:1: ( ( rule__LetVariableCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:21933:1: ( ( rule__LetVariableCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:21934:1: ( rule__LetVariableCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:21945:1: ( ( rule__LetVariableCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:21946:1: ( rule__LetVariableCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:21935:1: ( rule__LetVariableCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:21935:2: rule__LetVariableCS__NameAssignment_0
+            // InternalOCLinEcore.g:21947:1: ( rule__LetVariableCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:21947:2: rule__LetVariableCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetVariableCS__NameAssignment_0();
@@ -65080,14 +65148,14 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__1"
-    // InternalOCLinEcore.g:21945:1: rule__LetVariableCS__Group__1 : rule__LetVariableCS__Group__1__Impl rule__LetVariableCS__Group__2 ;
+    // InternalOCLinEcore.g:21957:1: rule__LetVariableCS__Group__1 : rule__LetVariableCS__Group__1__Impl rule__LetVariableCS__Group__2 ;
     public final void rule__LetVariableCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21949:1: ( rule__LetVariableCS__Group__1__Impl rule__LetVariableCS__Group__2 )
-            // InternalOCLinEcore.g:21950:2: rule__LetVariableCS__Group__1__Impl rule__LetVariableCS__Group__2
+            // InternalOCLinEcore.g:21961:1: ( rule__LetVariableCS__Group__1__Impl rule__LetVariableCS__Group__2 )
+            // InternalOCLinEcore.g:21962:2: rule__LetVariableCS__Group__1__Impl rule__LetVariableCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_118);
             rule__LetVariableCS__Group__1__Impl();
@@ -65118,22 +65186,22 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__1__Impl"
-    // InternalOCLinEcore.g:21957:1: rule__LetVariableCS__Group__1__Impl : ( ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )? ) ;
+    // InternalOCLinEcore.g:21969:1: rule__LetVariableCS__Group__1__Impl : ( ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )? ) ;
     public final void rule__LetVariableCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21961:1: ( ( ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )? ) )
-            // InternalOCLinEcore.g:21962:1: ( ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )? )
+            // InternalOCLinEcore.g:21973:1: ( ( ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )? ) )
+            // InternalOCLinEcore.g:21974:1: ( ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )? )
             {
-            // InternalOCLinEcore.g:21962:1: ( ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )? )
-            // InternalOCLinEcore.g:21963:1: ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )?
+            // InternalOCLinEcore.g:21974:1: ( ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )? )
+            // InternalOCLinEcore.g:21975:1: ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getOwnedRoundBracketedClauseAssignment_1()); 
             }
-            // InternalOCLinEcore.g:21964:1: ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )?
+            // InternalOCLinEcore.g:21976:1: ( rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 )?
             int alt220=2;
             int LA220_0 = input.LA(1);
 
@@ -65142,7 +65210,7 @@
             }
             switch (alt220) {
                 case 1 :
-                    // InternalOCLinEcore.g:21964:2: rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1
+                    // InternalOCLinEcore.g:21976:2: rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1();
@@ -65180,14 +65248,14 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__2"
-    // InternalOCLinEcore.g:21974:1: rule__LetVariableCS__Group__2 : rule__LetVariableCS__Group__2__Impl rule__LetVariableCS__Group__3 ;
+    // InternalOCLinEcore.g:21986:1: rule__LetVariableCS__Group__2 : rule__LetVariableCS__Group__2__Impl rule__LetVariableCS__Group__3 ;
     public final void rule__LetVariableCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21978:1: ( rule__LetVariableCS__Group__2__Impl rule__LetVariableCS__Group__3 )
-            // InternalOCLinEcore.g:21979:2: rule__LetVariableCS__Group__2__Impl rule__LetVariableCS__Group__3
+            // InternalOCLinEcore.g:21990:1: ( rule__LetVariableCS__Group__2__Impl rule__LetVariableCS__Group__3 )
+            // InternalOCLinEcore.g:21991:2: rule__LetVariableCS__Group__2__Impl rule__LetVariableCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_118);
             rule__LetVariableCS__Group__2__Impl();
@@ -65218,22 +65286,22 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__2__Impl"
-    // InternalOCLinEcore.g:21986:1: rule__LetVariableCS__Group__2__Impl : ( ( rule__LetVariableCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:21998:1: rule__LetVariableCS__Group__2__Impl : ( ( rule__LetVariableCS__Group_2__0 )? ) ;
     public final void rule__LetVariableCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:21990:1: ( ( ( rule__LetVariableCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:21991:1: ( ( rule__LetVariableCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:22002:1: ( ( ( rule__LetVariableCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:22003:1: ( ( rule__LetVariableCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:21991:1: ( ( rule__LetVariableCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:21992:1: ( rule__LetVariableCS__Group_2__0 )?
+            // InternalOCLinEcore.g:22003:1: ( ( rule__LetVariableCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:22004:1: ( rule__LetVariableCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:21993:1: ( rule__LetVariableCS__Group_2__0 )?
+            // InternalOCLinEcore.g:22005:1: ( rule__LetVariableCS__Group_2__0 )?
             int alt221=2;
             int LA221_0 = input.LA(1);
 
@@ -65242,7 +65310,7 @@
             }
             switch (alt221) {
                 case 1 :
-                    // InternalOCLinEcore.g:21993:2: rule__LetVariableCS__Group_2__0
+                    // InternalOCLinEcore.g:22005:2: rule__LetVariableCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__LetVariableCS__Group_2__0();
@@ -65280,14 +65348,14 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__3"
-    // InternalOCLinEcore.g:22003:1: rule__LetVariableCS__Group__3 : rule__LetVariableCS__Group__3__Impl rule__LetVariableCS__Group__4 ;
+    // InternalOCLinEcore.g:22015:1: rule__LetVariableCS__Group__3 : rule__LetVariableCS__Group__3__Impl rule__LetVariableCS__Group__4 ;
     public final void rule__LetVariableCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22007:1: ( rule__LetVariableCS__Group__3__Impl rule__LetVariableCS__Group__4 )
-            // InternalOCLinEcore.g:22008:2: rule__LetVariableCS__Group__3__Impl rule__LetVariableCS__Group__4
+            // InternalOCLinEcore.g:22019:1: ( rule__LetVariableCS__Group__3__Impl rule__LetVariableCS__Group__4 )
+            // InternalOCLinEcore.g:22020:2: rule__LetVariableCS__Group__3__Impl rule__LetVariableCS__Group__4
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__LetVariableCS__Group__3__Impl();
@@ -65318,17 +65386,17 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__3__Impl"
-    // InternalOCLinEcore.g:22015:1: rule__LetVariableCS__Group__3__Impl : ( '=' ) ;
+    // InternalOCLinEcore.g:22027:1: rule__LetVariableCS__Group__3__Impl : ( '=' ) ;
     public final void rule__LetVariableCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22019:1: ( ( '=' ) )
-            // InternalOCLinEcore.g:22020:1: ( '=' )
+            // InternalOCLinEcore.g:22031:1: ( ( '=' ) )
+            // InternalOCLinEcore.g:22032:1: ( '=' )
             {
-            // InternalOCLinEcore.g:22020:1: ( '=' )
-            // InternalOCLinEcore.g:22021:1: '='
+            // InternalOCLinEcore.g:22032:1: ( '=' )
+            // InternalOCLinEcore.g:22033:1: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getEqualsSignKeyword_3()); 
@@ -65359,14 +65427,14 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__4"
-    // InternalOCLinEcore.g:22034:1: rule__LetVariableCS__Group__4 : rule__LetVariableCS__Group__4__Impl ;
+    // InternalOCLinEcore.g:22046:1: rule__LetVariableCS__Group__4 : rule__LetVariableCS__Group__4__Impl ;
     public final void rule__LetVariableCS__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22038:1: ( rule__LetVariableCS__Group__4__Impl )
-            // InternalOCLinEcore.g:22039:2: rule__LetVariableCS__Group__4__Impl
+            // InternalOCLinEcore.g:22050:1: ( rule__LetVariableCS__Group__4__Impl )
+            // InternalOCLinEcore.g:22051:2: rule__LetVariableCS__Group__4__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetVariableCS__Group__4__Impl();
@@ -65392,23 +65460,23 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group__4__Impl"
-    // InternalOCLinEcore.g:22045:1: rule__LetVariableCS__Group__4__Impl : ( ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 ) ) ;
+    // InternalOCLinEcore.g:22057:1: rule__LetVariableCS__Group__4__Impl : ( ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 ) ) ;
     public final void rule__LetVariableCS__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22049:1: ( ( ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 ) ) )
-            // InternalOCLinEcore.g:22050:1: ( ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 ) )
+            // InternalOCLinEcore.g:22061:1: ( ( ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 ) ) )
+            // InternalOCLinEcore.g:22062:1: ( ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 ) )
             {
-            // InternalOCLinEcore.g:22050:1: ( ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 ) )
-            // InternalOCLinEcore.g:22051:1: ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 )
+            // InternalOCLinEcore.g:22062:1: ( ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 ) )
+            // InternalOCLinEcore.g:22063:1: ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getOwnedInitExpressionAssignment_4()); 
             }
-            // InternalOCLinEcore.g:22052:1: ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 )
-            // InternalOCLinEcore.g:22052:2: rule__LetVariableCS__OwnedInitExpressionAssignment_4
+            // InternalOCLinEcore.g:22064:1: ( rule__LetVariableCS__OwnedInitExpressionAssignment_4 )
+            // InternalOCLinEcore.g:22064:2: rule__LetVariableCS__OwnedInitExpressionAssignment_4
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetVariableCS__OwnedInitExpressionAssignment_4();
@@ -65443,14 +65511,14 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group_2__0"
-    // InternalOCLinEcore.g:22072:1: rule__LetVariableCS__Group_2__0 : rule__LetVariableCS__Group_2__0__Impl rule__LetVariableCS__Group_2__1 ;
+    // InternalOCLinEcore.g:22084:1: rule__LetVariableCS__Group_2__0 : rule__LetVariableCS__Group_2__0__Impl rule__LetVariableCS__Group_2__1 ;
     public final void rule__LetVariableCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22076:1: ( rule__LetVariableCS__Group_2__0__Impl rule__LetVariableCS__Group_2__1 )
-            // InternalOCLinEcore.g:22077:2: rule__LetVariableCS__Group_2__0__Impl rule__LetVariableCS__Group_2__1
+            // InternalOCLinEcore.g:22088:1: ( rule__LetVariableCS__Group_2__0__Impl rule__LetVariableCS__Group_2__1 )
+            // InternalOCLinEcore.g:22089:2: rule__LetVariableCS__Group_2__0__Impl rule__LetVariableCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__LetVariableCS__Group_2__0__Impl();
@@ -65481,17 +65549,17 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:22084:1: rule__LetVariableCS__Group_2__0__Impl : ( ':' ) ;
+    // InternalOCLinEcore.g:22096:1: rule__LetVariableCS__Group_2__0__Impl : ( ':' ) ;
     public final void rule__LetVariableCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22088:1: ( ( ':' ) )
-            // InternalOCLinEcore.g:22089:1: ( ':' )
+            // InternalOCLinEcore.g:22100:1: ( ( ':' ) )
+            // InternalOCLinEcore.g:22101:1: ( ':' )
             {
-            // InternalOCLinEcore.g:22089:1: ( ':' )
-            // InternalOCLinEcore.g:22090:1: ':'
+            // InternalOCLinEcore.g:22101:1: ( ':' )
+            // InternalOCLinEcore.g:22102:1: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getColonKeyword_2_0()); 
@@ -65522,14 +65590,14 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group_2__1"
-    // InternalOCLinEcore.g:22103:1: rule__LetVariableCS__Group_2__1 : rule__LetVariableCS__Group_2__1__Impl ;
+    // InternalOCLinEcore.g:22115:1: rule__LetVariableCS__Group_2__1 : rule__LetVariableCS__Group_2__1__Impl ;
     public final void rule__LetVariableCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22107:1: ( rule__LetVariableCS__Group_2__1__Impl )
-            // InternalOCLinEcore.g:22108:2: rule__LetVariableCS__Group_2__1__Impl
+            // InternalOCLinEcore.g:22119:1: ( rule__LetVariableCS__Group_2__1__Impl )
+            // InternalOCLinEcore.g:22120:2: rule__LetVariableCS__Group_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetVariableCS__Group_2__1__Impl();
@@ -65555,23 +65623,23 @@
 
 
     // $ANTLR start "rule__LetVariableCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:22114:1: rule__LetVariableCS__Group_2__1__Impl : ( ( rule__LetVariableCS__OwnedTypeAssignment_2_1 ) ) ;
+    // InternalOCLinEcore.g:22126:1: rule__LetVariableCS__Group_2__1__Impl : ( ( rule__LetVariableCS__OwnedTypeAssignment_2_1 ) ) ;
     public final void rule__LetVariableCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22118:1: ( ( ( rule__LetVariableCS__OwnedTypeAssignment_2_1 ) ) )
-            // InternalOCLinEcore.g:22119:1: ( ( rule__LetVariableCS__OwnedTypeAssignment_2_1 ) )
+            // InternalOCLinEcore.g:22130:1: ( ( ( rule__LetVariableCS__OwnedTypeAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:22131:1: ( ( rule__LetVariableCS__OwnedTypeAssignment_2_1 ) )
             {
-            // InternalOCLinEcore.g:22119:1: ( ( rule__LetVariableCS__OwnedTypeAssignment_2_1 ) )
-            // InternalOCLinEcore.g:22120:1: ( rule__LetVariableCS__OwnedTypeAssignment_2_1 )
+            // InternalOCLinEcore.g:22131:1: ( ( rule__LetVariableCS__OwnedTypeAssignment_2_1 ) )
+            // InternalOCLinEcore.g:22132:1: ( rule__LetVariableCS__OwnedTypeAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getOwnedTypeAssignment_2_1()); 
             }
-            // InternalOCLinEcore.g:22121:1: ( rule__LetVariableCS__OwnedTypeAssignment_2_1 )
-            // InternalOCLinEcore.g:22121:2: rule__LetVariableCS__OwnedTypeAssignment_2_1
+            // InternalOCLinEcore.g:22133:1: ( rule__LetVariableCS__OwnedTypeAssignment_2_1 )
+            // InternalOCLinEcore.g:22133:2: rule__LetVariableCS__OwnedTypeAssignment_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__LetVariableCS__OwnedTypeAssignment_2_1();
@@ -65606,14 +65674,14 @@
 
 
     // $ANTLR start "rule__NestedExpCS__Group__0"
-    // InternalOCLinEcore.g:22135:1: rule__NestedExpCS__Group__0 : rule__NestedExpCS__Group__0__Impl rule__NestedExpCS__Group__1 ;
+    // InternalOCLinEcore.g:22147:1: rule__NestedExpCS__Group__0 : rule__NestedExpCS__Group__0__Impl rule__NestedExpCS__Group__1 ;
     public final void rule__NestedExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22139:1: ( rule__NestedExpCS__Group__0__Impl rule__NestedExpCS__Group__1 )
-            // InternalOCLinEcore.g:22140:2: rule__NestedExpCS__Group__0__Impl rule__NestedExpCS__Group__1
+            // InternalOCLinEcore.g:22151:1: ( rule__NestedExpCS__Group__0__Impl rule__NestedExpCS__Group__1 )
+            // InternalOCLinEcore.g:22152:2: rule__NestedExpCS__Group__0__Impl rule__NestedExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_93);
             rule__NestedExpCS__Group__0__Impl();
@@ -65644,17 +65712,17 @@
 
 
     // $ANTLR start "rule__NestedExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:22147:1: rule__NestedExpCS__Group__0__Impl : ( '(' ) ;
+    // InternalOCLinEcore.g:22159:1: rule__NestedExpCS__Group__0__Impl : ( '(' ) ;
     public final void rule__NestedExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22151:1: ( ( '(' ) )
-            // InternalOCLinEcore.g:22152:1: ( '(' )
+            // InternalOCLinEcore.g:22163:1: ( ( '(' ) )
+            // InternalOCLinEcore.g:22164:1: ( '(' )
             {
-            // InternalOCLinEcore.g:22152:1: ( '(' )
-            // InternalOCLinEcore.g:22153:1: '('
+            // InternalOCLinEcore.g:22164:1: ( '(' )
+            // InternalOCLinEcore.g:22165:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNestedExpCSAccess().getLeftParenthesisKeyword_0()); 
@@ -65685,14 +65753,14 @@
 
 
     // $ANTLR start "rule__NestedExpCS__Group__1"
-    // InternalOCLinEcore.g:22166:1: rule__NestedExpCS__Group__1 : rule__NestedExpCS__Group__1__Impl rule__NestedExpCS__Group__2 ;
+    // InternalOCLinEcore.g:22178:1: rule__NestedExpCS__Group__1 : rule__NestedExpCS__Group__1__Impl rule__NestedExpCS__Group__2 ;
     public final void rule__NestedExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22170:1: ( rule__NestedExpCS__Group__1__Impl rule__NestedExpCS__Group__2 )
-            // InternalOCLinEcore.g:22171:2: rule__NestedExpCS__Group__1__Impl rule__NestedExpCS__Group__2
+            // InternalOCLinEcore.g:22182:1: ( rule__NestedExpCS__Group__1__Impl rule__NestedExpCS__Group__2 )
+            // InternalOCLinEcore.g:22183:2: rule__NestedExpCS__Group__1__Impl rule__NestedExpCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_13);
             rule__NestedExpCS__Group__1__Impl();
@@ -65723,23 +65791,23 @@
 
 
     // $ANTLR start "rule__NestedExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:22178:1: rule__NestedExpCS__Group__1__Impl : ( ( rule__NestedExpCS__OwnedExpressionAssignment_1 ) ) ;
+    // InternalOCLinEcore.g:22190:1: rule__NestedExpCS__Group__1__Impl : ( ( rule__NestedExpCS__OwnedExpressionAssignment_1 ) ) ;
     public final void rule__NestedExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22182:1: ( ( ( rule__NestedExpCS__OwnedExpressionAssignment_1 ) ) )
-            // InternalOCLinEcore.g:22183:1: ( ( rule__NestedExpCS__OwnedExpressionAssignment_1 ) )
+            // InternalOCLinEcore.g:22194:1: ( ( ( rule__NestedExpCS__OwnedExpressionAssignment_1 ) ) )
+            // InternalOCLinEcore.g:22195:1: ( ( rule__NestedExpCS__OwnedExpressionAssignment_1 ) )
             {
-            // InternalOCLinEcore.g:22183:1: ( ( rule__NestedExpCS__OwnedExpressionAssignment_1 ) )
-            // InternalOCLinEcore.g:22184:1: ( rule__NestedExpCS__OwnedExpressionAssignment_1 )
+            // InternalOCLinEcore.g:22195:1: ( ( rule__NestedExpCS__OwnedExpressionAssignment_1 ) )
+            // InternalOCLinEcore.g:22196:1: ( rule__NestedExpCS__OwnedExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNestedExpCSAccess().getOwnedExpressionAssignment_1()); 
             }
-            // InternalOCLinEcore.g:22185:1: ( rule__NestedExpCS__OwnedExpressionAssignment_1 )
-            // InternalOCLinEcore.g:22185:2: rule__NestedExpCS__OwnedExpressionAssignment_1
+            // InternalOCLinEcore.g:22197:1: ( rule__NestedExpCS__OwnedExpressionAssignment_1 )
+            // InternalOCLinEcore.g:22197:2: rule__NestedExpCS__OwnedExpressionAssignment_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NestedExpCS__OwnedExpressionAssignment_1();
@@ -65774,14 +65842,14 @@
 
 
     // $ANTLR start "rule__NestedExpCS__Group__2"
-    // InternalOCLinEcore.g:22195:1: rule__NestedExpCS__Group__2 : rule__NestedExpCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:22207:1: rule__NestedExpCS__Group__2 : rule__NestedExpCS__Group__2__Impl ;
     public final void rule__NestedExpCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22199:1: ( rule__NestedExpCS__Group__2__Impl )
-            // InternalOCLinEcore.g:22200:2: rule__NestedExpCS__Group__2__Impl
+            // InternalOCLinEcore.g:22211:1: ( rule__NestedExpCS__Group__2__Impl )
+            // InternalOCLinEcore.g:22212:2: rule__NestedExpCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__NestedExpCS__Group__2__Impl();
@@ -65807,17 +65875,17 @@
 
 
     // $ANTLR start "rule__NestedExpCS__Group__2__Impl"
-    // InternalOCLinEcore.g:22206:1: rule__NestedExpCS__Group__2__Impl : ( ')' ) ;
+    // InternalOCLinEcore.g:22218:1: rule__NestedExpCS__Group__2__Impl : ( ')' ) ;
     public final void rule__NestedExpCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22210:1: ( ( ')' ) )
-            // InternalOCLinEcore.g:22211:1: ( ')' )
+            // InternalOCLinEcore.g:22222:1: ( ( ')' ) )
+            // InternalOCLinEcore.g:22223:1: ( ')' )
             {
-            // InternalOCLinEcore.g:22211:1: ( ')' )
-            // InternalOCLinEcore.g:22212:1: ')'
+            // InternalOCLinEcore.g:22223:1: ( ')' )
+            // InternalOCLinEcore.g:22224:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNestedExpCSAccess().getRightParenthesisKeyword_2()); 
@@ -65848,14 +65916,14 @@
 
 
     // $ANTLR start "rule__SelfExpCS__Group__0"
-    // InternalOCLinEcore.g:22231:1: rule__SelfExpCS__Group__0 : rule__SelfExpCS__Group__0__Impl rule__SelfExpCS__Group__1 ;
+    // InternalOCLinEcore.g:22243:1: rule__SelfExpCS__Group__0 : rule__SelfExpCS__Group__0__Impl rule__SelfExpCS__Group__1 ;
     public final void rule__SelfExpCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22235:1: ( rule__SelfExpCS__Group__0__Impl rule__SelfExpCS__Group__1 )
-            // InternalOCLinEcore.g:22236:2: rule__SelfExpCS__Group__0__Impl rule__SelfExpCS__Group__1
+            // InternalOCLinEcore.g:22247:1: ( rule__SelfExpCS__Group__0__Impl rule__SelfExpCS__Group__1 )
+            // InternalOCLinEcore.g:22248:2: rule__SelfExpCS__Group__0__Impl rule__SelfExpCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_119);
             rule__SelfExpCS__Group__0__Impl();
@@ -65886,23 +65954,23 @@
 
 
     // $ANTLR start "rule__SelfExpCS__Group__0__Impl"
-    // InternalOCLinEcore.g:22243:1: rule__SelfExpCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:22255:1: rule__SelfExpCS__Group__0__Impl : ( () ) ;
     public final void rule__SelfExpCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22247:1: ( ( () ) )
-            // InternalOCLinEcore.g:22248:1: ( () )
+            // InternalOCLinEcore.g:22259:1: ( ( () ) )
+            // InternalOCLinEcore.g:22260:1: ( () )
             {
-            // InternalOCLinEcore.g:22248:1: ( () )
-            // InternalOCLinEcore.g:22249:1: ()
+            // InternalOCLinEcore.g:22260:1: ( () )
+            // InternalOCLinEcore.g:22261:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSelfExpCSAccess().getSelfExpCSAction_0()); 
             }
-            // InternalOCLinEcore.g:22250:1: ()
-            // InternalOCLinEcore.g:22252:1: 
+            // InternalOCLinEcore.g:22262:1: ()
+            // InternalOCLinEcore.g:22264:1: 
             {
             }
 
@@ -65927,14 +65995,14 @@
 
 
     // $ANTLR start "rule__SelfExpCS__Group__1"
-    // InternalOCLinEcore.g:22262:1: rule__SelfExpCS__Group__1 : rule__SelfExpCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:22274:1: rule__SelfExpCS__Group__1 : rule__SelfExpCS__Group__1__Impl ;
     public final void rule__SelfExpCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22266:1: ( rule__SelfExpCS__Group__1__Impl )
-            // InternalOCLinEcore.g:22267:2: rule__SelfExpCS__Group__1__Impl
+            // InternalOCLinEcore.g:22278:1: ( rule__SelfExpCS__Group__1__Impl )
+            // InternalOCLinEcore.g:22279:2: rule__SelfExpCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__SelfExpCS__Group__1__Impl();
@@ -65960,17 +66028,17 @@
 
 
     // $ANTLR start "rule__SelfExpCS__Group__1__Impl"
-    // InternalOCLinEcore.g:22273:1: rule__SelfExpCS__Group__1__Impl : ( 'self' ) ;
+    // InternalOCLinEcore.g:22285:1: rule__SelfExpCS__Group__1__Impl : ( 'self' ) ;
     public final void rule__SelfExpCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22277:1: ( ( 'self' ) )
-            // InternalOCLinEcore.g:22278:1: ( 'self' )
+            // InternalOCLinEcore.g:22289:1: ( ( 'self' ) )
+            // InternalOCLinEcore.g:22290:1: ( 'self' )
             {
-            // InternalOCLinEcore.g:22278:1: ( 'self' )
-            // InternalOCLinEcore.g:22279:1: 'self'
+            // InternalOCLinEcore.g:22290:1: ( 'self' )
+            // InternalOCLinEcore.g:22291:1: 'self'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSelfExpCSAccess().getSelfKeyword_1()); 
@@ -66001,14 +66069,14 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__Group__0"
-    // InternalOCLinEcore.g:22296:1: rule__MultiplicityBoundsCS__Group__0 : rule__MultiplicityBoundsCS__Group__0__Impl rule__MultiplicityBoundsCS__Group__1 ;
+    // InternalOCLinEcore.g:22308:1: rule__MultiplicityBoundsCS__Group__0 : rule__MultiplicityBoundsCS__Group__0__Impl rule__MultiplicityBoundsCS__Group__1 ;
     public final void rule__MultiplicityBoundsCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22300:1: ( rule__MultiplicityBoundsCS__Group__0__Impl rule__MultiplicityBoundsCS__Group__1 )
-            // InternalOCLinEcore.g:22301:2: rule__MultiplicityBoundsCS__Group__0__Impl rule__MultiplicityBoundsCS__Group__1
+            // InternalOCLinEcore.g:22312:1: ( rule__MultiplicityBoundsCS__Group__0__Impl rule__MultiplicityBoundsCS__Group__1 )
+            // InternalOCLinEcore.g:22313:2: rule__MultiplicityBoundsCS__Group__0__Impl rule__MultiplicityBoundsCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_92);
             rule__MultiplicityBoundsCS__Group__0__Impl();
@@ -66039,23 +66107,23 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__Group__0__Impl"
-    // InternalOCLinEcore.g:22308:1: rule__MultiplicityBoundsCS__Group__0__Impl : ( ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:22320:1: rule__MultiplicityBoundsCS__Group__0__Impl : ( ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 ) ) ;
     public final void rule__MultiplicityBoundsCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22312:1: ( ( ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 ) ) )
-            // InternalOCLinEcore.g:22313:1: ( ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 ) )
+            // InternalOCLinEcore.g:22324:1: ( ( ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 ) ) )
+            // InternalOCLinEcore.g:22325:1: ( ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:22313:1: ( ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 ) )
-            // InternalOCLinEcore.g:22314:1: ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 )
+            // InternalOCLinEcore.g:22325:1: ( ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 ) )
+            // InternalOCLinEcore.g:22326:1: ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityBoundsCSAccess().getLowerBoundAssignment_0()); 
             }
-            // InternalOCLinEcore.g:22315:1: ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 )
-            // InternalOCLinEcore.g:22315:2: rule__MultiplicityBoundsCS__LowerBoundAssignment_0
+            // InternalOCLinEcore.g:22327:1: ( rule__MultiplicityBoundsCS__LowerBoundAssignment_0 )
+            // InternalOCLinEcore.g:22327:2: rule__MultiplicityBoundsCS__LowerBoundAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MultiplicityBoundsCS__LowerBoundAssignment_0();
@@ -66090,14 +66158,14 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__Group__1"
-    // InternalOCLinEcore.g:22325:1: rule__MultiplicityBoundsCS__Group__1 : rule__MultiplicityBoundsCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:22337:1: rule__MultiplicityBoundsCS__Group__1 : rule__MultiplicityBoundsCS__Group__1__Impl ;
     public final void rule__MultiplicityBoundsCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22329:1: ( rule__MultiplicityBoundsCS__Group__1__Impl )
-            // InternalOCLinEcore.g:22330:2: rule__MultiplicityBoundsCS__Group__1__Impl
+            // InternalOCLinEcore.g:22341:1: ( rule__MultiplicityBoundsCS__Group__1__Impl )
+            // InternalOCLinEcore.g:22342:2: rule__MultiplicityBoundsCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MultiplicityBoundsCS__Group__1__Impl();
@@ -66123,22 +66191,22 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__Group__1__Impl"
-    // InternalOCLinEcore.g:22336:1: rule__MultiplicityBoundsCS__Group__1__Impl : ( ( rule__MultiplicityBoundsCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:22348:1: rule__MultiplicityBoundsCS__Group__1__Impl : ( ( rule__MultiplicityBoundsCS__Group_1__0 )? ) ;
     public final void rule__MultiplicityBoundsCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22340:1: ( ( ( rule__MultiplicityBoundsCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:22341:1: ( ( rule__MultiplicityBoundsCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:22352:1: ( ( ( rule__MultiplicityBoundsCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:22353:1: ( ( rule__MultiplicityBoundsCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:22341:1: ( ( rule__MultiplicityBoundsCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:22342:1: ( rule__MultiplicityBoundsCS__Group_1__0 )?
+            // InternalOCLinEcore.g:22353:1: ( ( rule__MultiplicityBoundsCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:22354:1: ( rule__MultiplicityBoundsCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityBoundsCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:22343:1: ( rule__MultiplicityBoundsCS__Group_1__0 )?
+            // InternalOCLinEcore.g:22355:1: ( rule__MultiplicityBoundsCS__Group_1__0 )?
             int alt222=2;
             int LA222_0 = input.LA(1);
 
@@ -66147,7 +66215,7 @@
             }
             switch (alt222) {
                 case 1 :
-                    // InternalOCLinEcore.g:22343:2: rule__MultiplicityBoundsCS__Group_1__0
+                    // InternalOCLinEcore.g:22355:2: rule__MultiplicityBoundsCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__MultiplicityBoundsCS__Group_1__0();
@@ -66185,14 +66253,14 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__Group_1__0"
-    // InternalOCLinEcore.g:22357:1: rule__MultiplicityBoundsCS__Group_1__0 : rule__MultiplicityBoundsCS__Group_1__0__Impl rule__MultiplicityBoundsCS__Group_1__1 ;
+    // InternalOCLinEcore.g:22369:1: rule__MultiplicityBoundsCS__Group_1__0 : rule__MultiplicityBoundsCS__Group_1__0__Impl rule__MultiplicityBoundsCS__Group_1__1 ;
     public final void rule__MultiplicityBoundsCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22361:1: ( rule__MultiplicityBoundsCS__Group_1__0__Impl rule__MultiplicityBoundsCS__Group_1__1 )
-            // InternalOCLinEcore.g:22362:2: rule__MultiplicityBoundsCS__Group_1__0__Impl rule__MultiplicityBoundsCS__Group_1__1
+            // InternalOCLinEcore.g:22373:1: ( rule__MultiplicityBoundsCS__Group_1__0__Impl rule__MultiplicityBoundsCS__Group_1__1 )
+            // InternalOCLinEcore.g:22374:2: rule__MultiplicityBoundsCS__Group_1__0__Impl rule__MultiplicityBoundsCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_120);
             rule__MultiplicityBoundsCS__Group_1__0__Impl();
@@ -66223,17 +66291,17 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:22369:1: rule__MultiplicityBoundsCS__Group_1__0__Impl : ( '..' ) ;
+    // InternalOCLinEcore.g:22381:1: rule__MultiplicityBoundsCS__Group_1__0__Impl : ( '..' ) ;
     public final void rule__MultiplicityBoundsCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22373:1: ( ( '..' ) )
-            // InternalOCLinEcore.g:22374:1: ( '..' )
+            // InternalOCLinEcore.g:22385:1: ( ( '..' ) )
+            // InternalOCLinEcore.g:22386:1: ( '..' )
             {
-            // InternalOCLinEcore.g:22374:1: ( '..' )
-            // InternalOCLinEcore.g:22375:1: '..'
+            // InternalOCLinEcore.g:22386:1: ( '..' )
+            // InternalOCLinEcore.g:22387:1: '..'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityBoundsCSAccess().getFullStopFullStopKeyword_1_0()); 
@@ -66264,14 +66332,14 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__Group_1__1"
-    // InternalOCLinEcore.g:22388:1: rule__MultiplicityBoundsCS__Group_1__1 : rule__MultiplicityBoundsCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:22400:1: rule__MultiplicityBoundsCS__Group_1__1 : rule__MultiplicityBoundsCS__Group_1__1__Impl ;
     public final void rule__MultiplicityBoundsCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22392:1: ( rule__MultiplicityBoundsCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:22393:2: rule__MultiplicityBoundsCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:22404:1: ( rule__MultiplicityBoundsCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:22405:2: rule__MultiplicityBoundsCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MultiplicityBoundsCS__Group_1__1__Impl();
@@ -66297,23 +66365,23 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:22399:1: rule__MultiplicityBoundsCS__Group_1__1__Impl : ( ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:22411:1: rule__MultiplicityBoundsCS__Group_1__1__Impl : ( ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 ) ) ;
     public final void rule__MultiplicityBoundsCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22403:1: ( ( ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:22404:1: ( ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 ) )
+            // InternalOCLinEcore.g:22415:1: ( ( ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:22416:1: ( ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:22404:1: ( ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 ) )
-            // InternalOCLinEcore.g:22405:1: ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 )
+            // InternalOCLinEcore.g:22416:1: ( ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 ) )
+            // InternalOCLinEcore.g:22417:1: ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityBoundsCSAccess().getUpperBoundAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:22406:1: ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 )
-            // InternalOCLinEcore.g:22406:2: rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1
+            // InternalOCLinEcore.g:22418:1: ( rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 )
+            // InternalOCLinEcore.g:22418:2: rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1();
@@ -66348,14 +66416,14 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Group__0"
-    // InternalOCLinEcore.g:22420:1: rule__MultiplicityCS__Group__0 : rule__MultiplicityCS__Group__0__Impl rule__MultiplicityCS__Group__1 ;
+    // InternalOCLinEcore.g:22432:1: rule__MultiplicityCS__Group__0 : rule__MultiplicityCS__Group__0__Impl rule__MultiplicityCS__Group__1 ;
     public final void rule__MultiplicityCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22424:1: ( rule__MultiplicityCS__Group__0__Impl rule__MultiplicityCS__Group__1 )
-            // InternalOCLinEcore.g:22425:2: rule__MultiplicityCS__Group__0__Impl rule__MultiplicityCS__Group__1
+            // InternalOCLinEcore.g:22436:1: ( rule__MultiplicityCS__Group__0__Impl rule__MultiplicityCS__Group__1 )
+            // InternalOCLinEcore.g:22437:2: rule__MultiplicityCS__Group__0__Impl rule__MultiplicityCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_121);
             rule__MultiplicityCS__Group__0__Impl();
@@ -66386,17 +66454,17 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Group__0__Impl"
-    // InternalOCLinEcore.g:22432:1: rule__MultiplicityCS__Group__0__Impl : ( '[' ) ;
+    // InternalOCLinEcore.g:22444:1: rule__MultiplicityCS__Group__0__Impl : ( '[' ) ;
     public final void rule__MultiplicityCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22436:1: ( ( '[' ) )
-            // InternalOCLinEcore.g:22437:1: ( '[' )
+            // InternalOCLinEcore.g:22448:1: ( ( '[' ) )
+            // InternalOCLinEcore.g:22449:1: ( '[' )
             {
-            // InternalOCLinEcore.g:22437:1: ( '[' )
-            // InternalOCLinEcore.g:22438:1: '['
+            // InternalOCLinEcore.g:22449:1: ( '[' )
+            // InternalOCLinEcore.g:22450:1: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityCSAccess().getLeftSquareBracketKeyword_0()); 
@@ -66427,14 +66495,14 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Group__1"
-    // InternalOCLinEcore.g:22451:1: rule__MultiplicityCS__Group__1 : rule__MultiplicityCS__Group__1__Impl rule__MultiplicityCS__Group__2 ;
+    // InternalOCLinEcore.g:22463:1: rule__MultiplicityCS__Group__1 : rule__MultiplicityCS__Group__1__Impl rule__MultiplicityCS__Group__2 ;
     public final void rule__MultiplicityCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22455:1: ( rule__MultiplicityCS__Group__1__Impl rule__MultiplicityCS__Group__2 )
-            // InternalOCLinEcore.g:22456:2: rule__MultiplicityCS__Group__1__Impl rule__MultiplicityCS__Group__2
+            // InternalOCLinEcore.g:22467:1: ( rule__MultiplicityCS__Group__1__Impl rule__MultiplicityCS__Group__2 )
+            // InternalOCLinEcore.g:22468:2: rule__MultiplicityCS__Group__1__Impl rule__MultiplicityCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_122);
             rule__MultiplicityCS__Group__1__Impl();
@@ -66465,23 +66533,23 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Group__1__Impl"
-    // InternalOCLinEcore.g:22463:1: rule__MultiplicityCS__Group__1__Impl : ( ( rule__MultiplicityCS__Alternatives_1 ) ) ;
+    // InternalOCLinEcore.g:22475:1: rule__MultiplicityCS__Group__1__Impl : ( ( rule__MultiplicityCS__Alternatives_1 ) ) ;
     public final void rule__MultiplicityCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22467:1: ( ( ( rule__MultiplicityCS__Alternatives_1 ) ) )
-            // InternalOCLinEcore.g:22468:1: ( ( rule__MultiplicityCS__Alternatives_1 ) )
+            // InternalOCLinEcore.g:22479:1: ( ( ( rule__MultiplicityCS__Alternatives_1 ) ) )
+            // InternalOCLinEcore.g:22480:1: ( ( rule__MultiplicityCS__Alternatives_1 ) )
             {
-            // InternalOCLinEcore.g:22468:1: ( ( rule__MultiplicityCS__Alternatives_1 ) )
-            // InternalOCLinEcore.g:22469:1: ( rule__MultiplicityCS__Alternatives_1 )
+            // InternalOCLinEcore.g:22480:1: ( ( rule__MultiplicityCS__Alternatives_1 ) )
+            // InternalOCLinEcore.g:22481:1: ( rule__MultiplicityCS__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityCSAccess().getAlternatives_1()); 
             }
-            // InternalOCLinEcore.g:22470:1: ( rule__MultiplicityCS__Alternatives_1 )
-            // InternalOCLinEcore.g:22470:2: rule__MultiplicityCS__Alternatives_1
+            // InternalOCLinEcore.g:22482:1: ( rule__MultiplicityCS__Alternatives_1 )
+            // InternalOCLinEcore.g:22482:2: rule__MultiplicityCS__Alternatives_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MultiplicityCS__Alternatives_1();
@@ -66516,14 +66584,14 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Group__2"
-    // InternalOCLinEcore.g:22480:1: rule__MultiplicityCS__Group__2 : rule__MultiplicityCS__Group__2__Impl rule__MultiplicityCS__Group__3 ;
+    // InternalOCLinEcore.g:22492:1: rule__MultiplicityCS__Group__2 : rule__MultiplicityCS__Group__2__Impl rule__MultiplicityCS__Group__3 ;
     public final void rule__MultiplicityCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22484:1: ( rule__MultiplicityCS__Group__2__Impl rule__MultiplicityCS__Group__3 )
-            // InternalOCLinEcore.g:22485:2: rule__MultiplicityCS__Group__2__Impl rule__MultiplicityCS__Group__3
+            // InternalOCLinEcore.g:22496:1: ( rule__MultiplicityCS__Group__2__Impl rule__MultiplicityCS__Group__3 )
+            // InternalOCLinEcore.g:22497:2: rule__MultiplicityCS__Group__2__Impl rule__MultiplicityCS__Group__3
             {
             pushFollow(FollowSets000.FOLLOW_122);
             rule__MultiplicityCS__Group__2__Impl();
@@ -66554,22 +66622,22 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Group__2__Impl"
-    // InternalOCLinEcore.g:22492:1: rule__MultiplicityCS__Group__2__Impl : ( ( rule__MultiplicityCS__Alternatives_2 )? ) ;
+    // InternalOCLinEcore.g:22504:1: rule__MultiplicityCS__Group__2__Impl : ( ( rule__MultiplicityCS__Alternatives_2 )? ) ;
     public final void rule__MultiplicityCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22496:1: ( ( ( rule__MultiplicityCS__Alternatives_2 )? ) )
-            // InternalOCLinEcore.g:22497:1: ( ( rule__MultiplicityCS__Alternatives_2 )? )
+            // InternalOCLinEcore.g:22508:1: ( ( ( rule__MultiplicityCS__Alternatives_2 )? ) )
+            // InternalOCLinEcore.g:22509:1: ( ( rule__MultiplicityCS__Alternatives_2 )? )
             {
-            // InternalOCLinEcore.g:22497:1: ( ( rule__MultiplicityCS__Alternatives_2 )? )
-            // InternalOCLinEcore.g:22498:1: ( rule__MultiplicityCS__Alternatives_2 )?
+            // InternalOCLinEcore.g:22509:1: ( ( rule__MultiplicityCS__Alternatives_2 )? )
+            // InternalOCLinEcore.g:22510:1: ( rule__MultiplicityCS__Alternatives_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityCSAccess().getAlternatives_2()); 
             }
-            // InternalOCLinEcore.g:22499:1: ( rule__MultiplicityCS__Alternatives_2 )?
+            // InternalOCLinEcore.g:22511:1: ( rule__MultiplicityCS__Alternatives_2 )?
             int alt223=2;
             int LA223_0 = input.LA(1);
 
@@ -66578,7 +66646,7 @@
             }
             switch (alt223) {
                 case 1 :
-                    // InternalOCLinEcore.g:22499:2: rule__MultiplicityCS__Alternatives_2
+                    // InternalOCLinEcore.g:22511:2: rule__MultiplicityCS__Alternatives_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__MultiplicityCS__Alternatives_2();
@@ -66616,14 +66684,14 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Group__3"
-    // InternalOCLinEcore.g:22509:1: rule__MultiplicityCS__Group__3 : rule__MultiplicityCS__Group__3__Impl ;
+    // InternalOCLinEcore.g:22521:1: rule__MultiplicityCS__Group__3 : rule__MultiplicityCS__Group__3__Impl ;
     public final void rule__MultiplicityCS__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22513:1: ( rule__MultiplicityCS__Group__3__Impl )
-            // InternalOCLinEcore.g:22514:2: rule__MultiplicityCS__Group__3__Impl
+            // InternalOCLinEcore.g:22525:1: ( rule__MultiplicityCS__Group__3__Impl )
+            // InternalOCLinEcore.g:22526:2: rule__MultiplicityCS__Group__3__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MultiplicityCS__Group__3__Impl();
@@ -66649,17 +66717,17 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__Group__3__Impl"
-    // InternalOCLinEcore.g:22520:1: rule__MultiplicityCS__Group__3__Impl : ( ']' ) ;
+    // InternalOCLinEcore.g:22532:1: rule__MultiplicityCS__Group__3__Impl : ( ']' ) ;
     public final void rule__MultiplicityCS__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22524:1: ( ( ']' ) )
-            // InternalOCLinEcore.g:22525:1: ( ']' )
+            // InternalOCLinEcore.g:22536:1: ( ( ']' ) )
+            // InternalOCLinEcore.g:22537:1: ( ']' )
             {
-            // InternalOCLinEcore.g:22525:1: ( ']' )
-            // InternalOCLinEcore.g:22526:1: ']'
+            // InternalOCLinEcore.g:22537:1: ( ']' )
+            // InternalOCLinEcore.g:22538:1: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityCSAccess().getRightSquareBracketKeyword_3()); 
@@ -66690,14 +66758,14 @@
 
 
     // $ANTLR start "rule__PathNameCS__Group__0"
-    // InternalOCLinEcore.g:22547:1: rule__PathNameCS__Group__0 : rule__PathNameCS__Group__0__Impl rule__PathNameCS__Group__1 ;
+    // InternalOCLinEcore.g:22559:1: rule__PathNameCS__Group__0 : rule__PathNameCS__Group__0__Impl rule__PathNameCS__Group__1 ;
     public final void rule__PathNameCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22551:1: ( rule__PathNameCS__Group__0__Impl rule__PathNameCS__Group__1 )
-            // InternalOCLinEcore.g:22552:2: rule__PathNameCS__Group__0__Impl rule__PathNameCS__Group__1
+            // InternalOCLinEcore.g:22563:1: ( rule__PathNameCS__Group__0__Impl rule__PathNameCS__Group__1 )
+            // InternalOCLinEcore.g:22564:2: rule__PathNameCS__Group__0__Impl rule__PathNameCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_86);
             rule__PathNameCS__Group__0__Impl();
@@ -66728,23 +66796,23 @@
 
 
     // $ANTLR start "rule__PathNameCS__Group__0__Impl"
-    // InternalOCLinEcore.g:22559:1: rule__PathNameCS__Group__0__Impl : ( ( rule__PathNameCS__OwnedPathElementsAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:22571:1: rule__PathNameCS__Group__0__Impl : ( ( rule__PathNameCS__OwnedPathElementsAssignment_0 ) ) ;
     public final void rule__PathNameCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22563:1: ( ( ( rule__PathNameCS__OwnedPathElementsAssignment_0 ) ) )
-            // InternalOCLinEcore.g:22564:1: ( ( rule__PathNameCS__OwnedPathElementsAssignment_0 ) )
+            // InternalOCLinEcore.g:22575:1: ( ( ( rule__PathNameCS__OwnedPathElementsAssignment_0 ) ) )
+            // InternalOCLinEcore.g:22576:1: ( ( rule__PathNameCS__OwnedPathElementsAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:22564:1: ( ( rule__PathNameCS__OwnedPathElementsAssignment_0 ) )
-            // InternalOCLinEcore.g:22565:1: ( rule__PathNameCS__OwnedPathElementsAssignment_0 )
+            // InternalOCLinEcore.g:22576:1: ( ( rule__PathNameCS__OwnedPathElementsAssignment_0 ) )
+            // InternalOCLinEcore.g:22577:1: ( rule__PathNameCS__OwnedPathElementsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPathNameCSAccess().getOwnedPathElementsAssignment_0()); 
             }
-            // InternalOCLinEcore.g:22566:1: ( rule__PathNameCS__OwnedPathElementsAssignment_0 )
-            // InternalOCLinEcore.g:22566:2: rule__PathNameCS__OwnedPathElementsAssignment_0
+            // InternalOCLinEcore.g:22578:1: ( rule__PathNameCS__OwnedPathElementsAssignment_0 )
+            // InternalOCLinEcore.g:22578:2: rule__PathNameCS__OwnedPathElementsAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PathNameCS__OwnedPathElementsAssignment_0();
@@ -66779,14 +66847,14 @@
 
 
     // $ANTLR start "rule__PathNameCS__Group__1"
-    // InternalOCLinEcore.g:22576:1: rule__PathNameCS__Group__1 : rule__PathNameCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:22588:1: rule__PathNameCS__Group__1 : rule__PathNameCS__Group__1__Impl ;
     public final void rule__PathNameCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22580:1: ( rule__PathNameCS__Group__1__Impl )
-            // InternalOCLinEcore.g:22581:2: rule__PathNameCS__Group__1__Impl
+            // InternalOCLinEcore.g:22592:1: ( rule__PathNameCS__Group__1__Impl )
+            // InternalOCLinEcore.g:22593:2: rule__PathNameCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PathNameCS__Group__1__Impl();
@@ -66812,22 +66880,22 @@
 
 
     // $ANTLR start "rule__PathNameCS__Group__1__Impl"
-    // InternalOCLinEcore.g:22587:1: rule__PathNameCS__Group__1__Impl : ( ( rule__PathNameCS__Group_1__0 )* ) ;
+    // InternalOCLinEcore.g:22599:1: rule__PathNameCS__Group__1__Impl : ( ( rule__PathNameCS__Group_1__0 )* ) ;
     public final void rule__PathNameCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22591:1: ( ( ( rule__PathNameCS__Group_1__0 )* ) )
-            // InternalOCLinEcore.g:22592:1: ( ( rule__PathNameCS__Group_1__0 )* )
+            // InternalOCLinEcore.g:22603:1: ( ( ( rule__PathNameCS__Group_1__0 )* ) )
+            // InternalOCLinEcore.g:22604:1: ( ( rule__PathNameCS__Group_1__0 )* )
             {
-            // InternalOCLinEcore.g:22592:1: ( ( rule__PathNameCS__Group_1__0 )* )
-            // InternalOCLinEcore.g:22593:1: ( rule__PathNameCS__Group_1__0 )*
+            // InternalOCLinEcore.g:22604:1: ( ( rule__PathNameCS__Group_1__0 )* )
+            // InternalOCLinEcore.g:22605:1: ( rule__PathNameCS__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPathNameCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:22594:1: ( rule__PathNameCS__Group_1__0 )*
+            // InternalOCLinEcore.g:22606:1: ( rule__PathNameCS__Group_1__0 )*
             loop224:
             do {
                 int alt224=2;
@@ -66840,7 +66908,7 @@
 
                 switch (alt224) {
             	case 1 :
-            	    // InternalOCLinEcore.g:22594:2: rule__PathNameCS__Group_1__0
+            	    // InternalOCLinEcore.g:22606:2: rule__PathNameCS__Group_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_87);
             	    rule__PathNameCS__Group_1__0();
@@ -66881,14 +66949,14 @@
 
 
     // $ANTLR start "rule__PathNameCS__Group_1__0"
-    // InternalOCLinEcore.g:22608:1: rule__PathNameCS__Group_1__0 : rule__PathNameCS__Group_1__0__Impl rule__PathNameCS__Group_1__1 ;
+    // InternalOCLinEcore.g:22620:1: rule__PathNameCS__Group_1__0 : rule__PathNameCS__Group_1__0__Impl rule__PathNameCS__Group_1__1 ;
     public final void rule__PathNameCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22612:1: ( rule__PathNameCS__Group_1__0__Impl rule__PathNameCS__Group_1__1 )
-            // InternalOCLinEcore.g:22613:2: rule__PathNameCS__Group_1__0__Impl rule__PathNameCS__Group_1__1
+            // InternalOCLinEcore.g:22624:1: ( rule__PathNameCS__Group_1__0__Impl rule__PathNameCS__Group_1__1 )
+            // InternalOCLinEcore.g:22625:2: rule__PathNameCS__Group_1__0__Impl rule__PathNameCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_88);
             rule__PathNameCS__Group_1__0__Impl();
@@ -66919,17 +66987,17 @@
 
 
     // $ANTLR start "rule__PathNameCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:22620:1: rule__PathNameCS__Group_1__0__Impl : ( '::' ) ;
+    // InternalOCLinEcore.g:22632:1: rule__PathNameCS__Group_1__0__Impl : ( '::' ) ;
     public final void rule__PathNameCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22624:1: ( ( '::' ) )
-            // InternalOCLinEcore.g:22625:1: ( '::' )
+            // InternalOCLinEcore.g:22636:1: ( ( '::' ) )
+            // InternalOCLinEcore.g:22637:1: ( '::' )
             {
-            // InternalOCLinEcore.g:22625:1: ( '::' )
-            // InternalOCLinEcore.g:22626:1: '::'
+            // InternalOCLinEcore.g:22637:1: ( '::' )
+            // InternalOCLinEcore.g:22638:1: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPathNameCSAccess().getColonColonKeyword_1_0()); 
@@ -66960,14 +67028,14 @@
 
 
     // $ANTLR start "rule__PathNameCS__Group_1__1"
-    // InternalOCLinEcore.g:22639:1: rule__PathNameCS__Group_1__1 : rule__PathNameCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:22651:1: rule__PathNameCS__Group_1__1 : rule__PathNameCS__Group_1__1__Impl ;
     public final void rule__PathNameCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22643:1: ( rule__PathNameCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:22644:2: rule__PathNameCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:22655:1: ( rule__PathNameCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:22656:2: rule__PathNameCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PathNameCS__Group_1__1__Impl();
@@ -66993,23 +67061,23 @@
 
 
     // $ANTLR start "rule__PathNameCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:22650:1: rule__PathNameCS__Group_1__1__Impl : ( ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:22662:1: rule__PathNameCS__Group_1__1__Impl : ( ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 ) ) ;
     public final void rule__PathNameCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22654:1: ( ( ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:22655:1: ( ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 ) )
+            // InternalOCLinEcore.g:22666:1: ( ( ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:22667:1: ( ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:22655:1: ( ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 ) )
-            // InternalOCLinEcore.g:22656:1: ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 )
+            // InternalOCLinEcore.g:22667:1: ( ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 ) )
+            // InternalOCLinEcore.g:22668:1: ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPathNameCSAccess().getOwnedPathElementsAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:22657:1: ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 )
-            // InternalOCLinEcore.g:22657:2: rule__PathNameCS__OwnedPathElementsAssignment_1_1
+            // InternalOCLinEcore.g:22669:1: ( rule__PathNameCS__OwnedPathElementsAssignment_1_1 )
+            // InternalOCLinEcore.g:22669:2: rule__PathNameCS__OwnedPathElementsAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__PathNameCS__OwnedPathElementsAssignment_1_1();
@@ -67044,14 +67112,14 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group__0"
-    // InternalOCLinEcore.g:22671:1: rule__TemplateBindingCS__Group__0 : rule__TemplateBindingCS__Group__0__Impl rule__TemplateBindingCS__Group__1 ;
+    // InternalOCLinEcore.g:22683:1: rule__TemplateBindingCS__Group__0 : rule__TemplateBindingCS__Group__0__Impl rule__TemplateBindingCS__Group__1 ;
     public final void rule__TemplateBindingCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22675:1: ( rule__TemplateBindingCS__Group__0__Impl rule__TemplateBindingCS__Group__1 )
-            // InternalOCLinEcore.g:22676:2: rule__TemplateBindingCS__Group__0__Impl rule__TemplateBindingCS__Group__1
+            // InternalOCLinEcore.g:22687:1: ( rule__TemplateBindingCS__Group__0__Impl rule__TemplateBindingCS__Group__1 )
+            // InternalOCLinEcore.g:22688:2: rule__TemplateBindingCS__Group__0__Impl rule__TemplateBindingCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_123);
             rule__TemplateBindingCS__Group__0__Impl();
@@ -67082,23 +67150,23 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group__0__Impl"
-    // InternalOCLinEcore.g:22683:1: rule__TemplateBindingCS__Group__0__Impl : ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:22695:1: rule__TemplateBindingCS__Group__0__Impl : ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 ) ) ;
     public final void rule__TemplateBindingCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22687:1: ( ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 ) ) )
-            // InternalOCLinEcore.g:22688:1: ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 ) )
+            // InternalOCLinEcore.g:22699:1: ( ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 ) ) )
+            // InternalOCLinEcore.g:22700:1: ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:22688:1: ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 ) )
-            // InternalOCLinEcore.g:22689:1: ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 )
+            // InternalOCLinEcore.g:22700:1: ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 ) )
+            // InternalOCLinEcore.g:22701:1: ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateBindingCSAccess().getOwnedSubstitutionsAssignment_0()); 
             }
-            // InternalOCLinEcore.g:22690:1: ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 )
-            // InternalOCLinEcore.g:22690:2: rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0
+            // InternalOCLinEcore.g:22702:1: ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 )
+            // InternalOCLinEcore.g:22702:2: rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0();
@@ -67133,14 +67201,14 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group__1"
-    // InternalOCLinEcore.g:22700:1: rule__TemplateBindingCS__Group__1 : rule__TemplateBindingCS__Group__1__Impl rule__TemplateBindingCS__Group__2 ;
+    // InternalOCLinEcore.g:22712:1: rule__TemplateBindingCS__Group__1 : rule__TemplateBindingCS__Group__1__Impl rule__TemplateBindingCS__Group__2 ;
     public final void rule__TemplateBindingCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22704:1: ( rule__TemplateBindingCS__Group__1__Impl rule__TemplateBindingCS__Group__2 )
-            // InternalOCLinEcore.g:22705:2: rule__TemplateBindingCS__Group__1__Impl rule__TemplateBindingCS__Group__2
+            // InternalOCLinEcore.g:22716:1: ( rule__TemplateBindingCS__Group__1__Impl rule__TemplateBindingCS__Group__2 )
+            // InternalOCLinEcore.g:22717:2: rule__TemplateBindingCS__Group__1__Impl rule__TemplateBindingCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_123);
             rule__TemplateBindingCS__Group__1__Impl();
@@ -67171,22 +67239,22 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group__1__Impl"
-    // InternalOCLinEcore.g:22712:1: rule__TemplateBindingCS__Group__1__Impl : ( ( rule__TemplateBindingCS__Group_1__0 )* ) ;
+    // InternalOCLinEcore.g:22724:1: rule__TemplateBindingCS__Group__1__Impl : ( ( rule__TemplateBindingCS__Group_1__0 )* ) ;
     public final void rule__TemplateBindingCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22716:1: ( ( ( rule__TemplateBindingCS__Group_1__0 )* ) )
-            // InternalOCLinEcore.g:22717:1: ( ( rule__TemplateBindingCS__Group_1__0 )* )
+            // InternalOCLinEcore.g:22728:1: ( ( ( rule__TemplateBindingCS__Group_1__0 )* ) )
+            // InternalOCLinEcore.g:22729:1: ( ( rule__TemplateBindingCS__Group_1__0 )* )
             {
-            // InternalOCLinEcore.g:22717:1: ( ( rule__TemplateBindingCS__Group_1__0 )* )
-            // InternalOCLinEcore.g:22718:1: ( rule__TemplateBindingCS__Group_1__0 )*
+            // InternalOCLinEcore.g:22729:1: ( ( rule__TemplateBindingCS__Group_1__0 )* )
+            // InternalOCLinEcore.g:22730:1: ( rule__TemplateBindingCS__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateBindingCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:22719:1: ( rule__TemplateBindingCS__Group_1__0 )*
+            // InternalOCLinEcore.g:22731:1: ( rule__TemplateBindingCS__Group_1__0 )*
             loop225:
             do {
                 int alt225=2;
@@ -67199,7 +67267,7 @@
 
                 switch (alt225) {
             	case 1 :
-            	    // InternalOCLinEcore.g:22719:2: rule__TemplateBindingCS__Group_1__0
+            	    // InternalOCLinEcore.g:22731:2: rule__TemplateBindingCS__Group_1__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_20);
             	    rule__TemplateBindingCS__Group_1__0();
@@ -67240,14 +67308,14 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group__2"
-    // InternalOCLinEcore.g:22729:1: rule__TemplateBindingCS__Group__2 : rule__TemplateBindingCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:22741:1: rule__TemplateBindingCS__Group__2 : rule__TemplateBindingCS__Group__2__Impl ;
     public final void rule__TemplateBindingCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22733:1: ( rule__TemplateBindingCS__Group__2__Impl )
-            // InternalOCLinEcore.g:22734:2: rule__TemplateBindingCS__Group__2__Impl
+            // InternalOCLinEcore.g:22745:1: ( rule__TemplateBindingCS__Group__2__Impl )
+            // InternalOCLinEcore.g:22746:2: rule__TemplateBindingCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateBindingCS__Group__2__Impl();
@@ -67273,22 +67341,22 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group__2__Impl"
-    // InternalOCLinEcore.g:22740:1: rule__TemplateBindingCS__Group__2__Impl : ( ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )? ) ;
+    // InternalOCLinEcore.g:22752:1: rule__TemplateBindingCS__Group__2__Impl : ( ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )? ) ;
     public final void rule__TemplateBindingCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22744:1: ( ( ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )? ) )
-            // InternalOCLinEcore.g:22745:1: ( ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )? )
+            // InternalOCLinEcore.g:22756:1: ( ( ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )? ) )
+            // InternalOCLinEcore.g:22757:1: ( ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )? )
             {
-            // InternalOCLinEcore.g:22745:1: ( ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )? )
-            // InternalOCLinEcore.g:22746:1: ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )?
+            // InternalOCLinEcore.g:22757:1: ( ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )? )
+            // InternalOCLinEcore.g:22758:1: ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateBindingCSAccess().getOwnedMultiplicityAssignment_2()); 
             }
-            // InternalOCLinEcore.g:22747:1: ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )?
+            // InternalOCLinEcore.g:22759:1: ( rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 )?
             int alt226=2;
             int LA226_0 = input.LA(1);
 
@@ -67297,7 +67365,7 @@
             }
             switch (alt226) {
                 case 1 :
-                    // InternalOCLinEcore.g:22747:2: rule__TemplateBindingCS__OwnedMultiplicityAssignment_2
+                    // InternalOCLinEcore.g:22759:2: rule__TemplateBindingCS__OwnedMultiplicityAssignment_2
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TemplateBindingCS__OwnedMultiplicityAssignment_2();
@@ -67335,14 +67403,14 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group_1__0"
-    // InternalOCLinEcore.g:22763:1: rule__TemplateBindingCS__Group_1__0 : rule__TemplateBindingCS__Group_1__0__Impl rule__TemplateBindingCS__Group_1__1 ;
+    // InternalOCLinEcore.g:22775:1: rule__TemplateBindingCS__Group_1__0 : rule__TemplateBindingCS__Group_1__0__Impl rule__TemplateBindingCS__Group_1__1 ;
     public final void rule__TemplateBindingCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22767:1: ( rule__TemplateBindingCS__Group_1__0__Impl rule__TemplateBindingCS__Group_1__1 )
-            // InternalOCLinEcore.g:22768:2: rule__TemplateBindingCS__Group_1__0__Impl rule__TemplateBindingCS__Group_1__1
+            // InternalOCLinEcore.g:22779:1: ( rule__TemplateBindingCS__Group_1__0__Impl rule__TemplateBindingCS__Group_1__1 )
+            // InternalOCLinEcore.g:22780:2: rule__TemplateBindingCS__Group_1__0__Impl rule__TemplateBindingCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_84);
             rule__TemplateBindingCS__Group_1__0__Impl();
@@ -67373,17 +67441,17 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:22775:1: rule__TemplateBindingCS__Group_1__0__Impl : ( ',' ) ;
+    // InternalOCLinEcore.g:22787:1: rule__TemplateBindingCS__Group_1__0__Impl : ( ',' ) ;
     public final void rule__TemplateBindingCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22779:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:22780:1: ( ',' )
+            // InternalOCLinEcore.g:22791:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:22792:1: ( ',' )
             {
-            // InternalOCLinEcore.g:22780:1: ( ',' )
-            // InternalOCLinEcore.g:22781:1: ','
+            // InternalOCLinEcore.g:22792:1: ( ',' )
+            // InternalOCLinEcore.g:22793:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateBindingCSAccess().getCommaKeyword_1_0()); 
@@ -67414,14 +67482,14 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group_1__1"
-    // InternalOCLinEcore.g:22794:1: rule__TemplateBindingCS__Group_1__1 : rule__TemplateBindingCS__Group_1__1__Impl ;
+    // InternalOCLinEcore.g:22806:1: rule__TemplateBindingCS__Group_1__1 : rule__TemplateBindingCS__Group_1__1__Impl ;
     public final void rule__TemplateBindingCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22798:1: ( rule__TemplateBindingCS__Group_1__1__Impl )
-            // InternalOCLinEcore.g:22799:2: rule__TemplateBindingCS__Group_1__1__Impl
+            // InternalOCLinEcore.g:22810:1: ( rule__TemplateBindingCS__Group_1__1__Impl )
+            // InternalOCLinEcore.g:22811:2: rule__TemplateBindingCS__Group_1__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateBindingCS__Group_1__1__Impl();
@@ -67447,23 +67515,23 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:22805:1: rule__TemplateBindingCS__Group_1__1__Impl : ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:22817:1: rule__TemplateBindingCS__Group_1__1__Impl : ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 ) ) ;
     public final void rule__TemplateBindingCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22809:1: ( ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:22810:1: ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 ) )
+            // InternalOCLinEcore.g:22821:1: ( ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:22822:1: ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:22810:1: ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 ) )
-            // InternalOCLinEcore.g:22811:1: ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 )
+            // InternalOCLinEcore.g:22822:1: ( ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 ) )
+            // InternalOCLinEcore.g:22823:1: ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateBindingCSAccess().getOwnedSubstitutionsAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:22812:1: ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 )
-            // InternalOCLinEcore.g:22812:2: rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1
+            // InternalOCLinEcore.g:22824:1: ( rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 )
+            // InternalOCLinEcore.g:22824:2: rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1();
@@ -67498,14 +67566,14 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group__0"
-    // InternalOCLinEcore.g:22826:1: rule__TypeParameterCS__Group__0 : rule__TypeParameterCS__Group__0__Impl rule__TypeParameterCS__Group__1 ;
+    // InternalOCLinEcore.g:22838:1: rule__TypeParameterCS__Group__0 : rule__TypeParameterCS__Group__0__Impl rule__TypeParameterCS__Group__1 ;
     public final void rule__TypeParameterCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22830:1: ( rule__TypeParameterCS__Group__0__Impl rule__TypeParameterCS__Group__1 )
-            // InternalOCLinEcore.g:22831:2: rule__TypeParameterCS__Group__0__Impl rule__TypeParameterCS__Group__1
+            // InternalOCLinEcore.g:22842:1: ( rule__TypeParameterCS__Group__0__Impl rule__TypeParameterCS__Group__1 )
+            // InternalOCLinEcore.g:22843:2: rule__TypeParameterCS__Group__0__Impl rule__TypeParameterCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_124);
             rule__TypeParameterCS__Group__0__Impl();
@@ -67536,23 +67604,23 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group__0__Impl"
-    // InternalOCLinEcore.g:22838:1: rule__TypeParameterCS__Group__0__Impl : ( ( rule__TypeParameterCS__NameAssignment_0 ) ) ;
+    // InternalOCLinEcore.g:22850:1: rule__TypeParameterCS__Group__0__Impl : ( ( rule__TypeParameterCS__NameAssignment_0 ) ) ;
     public final void rule__TypeParameterCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22842:1: ( ( ( rule__TypeParameterCS__NameAssignment_0 ) ) )
-            // InternalOCLinEcore.g:22843:1: ( ( rule__TypeParameterCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:22854:1: ( ( ( rule__TypeParameterCS__NameAssignment_0 ) ) )
+            // InternalOCLinEcore.g:22855:1: ( ( rule__TypeParameterCS__NameAssignment_0 ) )
             {
-            // InternalOCLinEcore.g:22843:1: ( ( rule__TypeParameterCS__NameAssignment_0 ) )
-            // InternalOCLinEcore.g:22844:1: ( rule__TypeParameterCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:22855:1: ( ( rule__TypeParameterCS__NameAssignment_0 ) )
+            // InternalOCLinEcore.g:22856:1: ( rule__TypeParameterCS__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getNameAssignment_0()); 
             }
-            // InternalOCLinEcore.g:22845:1: ( rule__TypeParameterCS__NameAssignment_0 )
-            // InternalOCLinEcore.g:22845:2: rule__TypeParameterCS__NameAssignment_0
+            // InternalOCLinEcore.g:22857:1: ( rule__TypeParameterCS__NameAssignment_0 )
+            // InternalOCLinEcore.g:22857:2: rule__TypeParameterCS__NameAssignment_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeParameterCS__NameAssignment_0();
@@ -67587,14 +67655,14 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group__1"
-    // InternalOCLinEcore.g:22855:1: rule__TypeParameterCS__Group__1 : rule__TypeParameterCS__Group__1__Impl ;
+    // InternalOCLinEcore.g:22867:1: rule__TypeParameterCS__Group__1 : rule__TypeParameterCS__Group__1__Impl ;
     public final void rule__TypeParameterCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22859:1: ( rule__TypeParameterCS__Group__1__Impl )
-            // InternalOCLinEcore.g:22860:2: rule__TypeParameterCS__Group__1__Impl
+            // InternalOCLinEcore.g:22871:1: ( rule__TypeParameterCS__Group__1__Impl )
+            // InternalOCLinEcore.g:22872:2: rule__TypeParameterCS__Group__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeParameterCS__Group__1__Impl();
@@ -67620,22 +67688,22 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group__1__Impl"
-    // InternalOCLinEcore.g:22866:1: rule__TypeParameterCS__Group__1__Impl : ( ( rule__TypeParameterCS__Group_1__0 )? ) ;
+    // InternalOCLinEcore.g:22878:1: rule__TypeParameterCS__Group__1__Impl : ( ( rule__TypeParameterCS__Group_1__0 )? ) ;
     public final void rule__TypeParameterCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22870:1: ( ( ( rule__TypeParameterCS__Group_1__0 )? ) )
-            // InternalOCLinEcore.g:22871:1: ( ( rule__TypeParameterCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:22882:1: ( ( ( rule__TypeParameterCS__Group_1__0 )? ) )
+            // InternalOCLinEcore.g:22883:1: ( ( rule__TypeParameterCS__Group_1__0 )? )
             {
-            // InternalOCLinEcore.g:22871:1: ( ( rule__TypeParameterCS__Group_1__0 )? )
-            // InternalOCLinEcore.g:22872:1: ( rule__TypeParameterCS__Group_1__0 )?
+            // InternalOCLinEcore.g:22883:1: ( ( rule__TypeParameterCS__Group_1__0 )? )
+            // InternalOCLinEcore.g:22884:1: ( rule__TypeParameterCS__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getGroup_1()); 
             }
-            // InternalOCLinEcore.g:22873:1: ( rule__TypeParameterCS__Group_1__0 )?
+            // InternalOCLinEcore.g:22885:1: ( rule__TypeParameterCS__Group_1__0 )?
             int alt227=2;
             int LA227_0 = input.LA(1);
 
@@ -67644,7 +67712,7 @@
             }
             switch (alt227) {
                 case 1 :
-                    // InternalOCLinEcore.g:22873:2: rule__TypeParameterCS__Group_1__0
+                    // InternalOCLinEcore.g:22885:2: rule__TypeParameterCS__Group_1__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__TypeParameterCS__Group_1__0();
@@ -67682,14 +67750,14 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1__0"
-    // InternalOCLinEcore.g:22887:1: rule__TypeParameterCS__Group_1__0 : rule__TypeParameterCS__Group_1__0__Impl rule__TypeParameterCS__Group_1__1 ;
+    // InternalOCLinEcore.g:22899:1: rule__TypeParameterCS__Group_1__0 : rule__TypeParameterCS__Group_1__0__Impl rule__TypeParameterCS__Group_1__1 ;
     public final void rule__TypeParameterCS__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22891:1: ( rule__TypeParameterCS__Group_1__0__Impl rule__TypeParameterCS__Group_1__1 )
-            // InternalOCLinEcore.g:22892:2: rule__TypeParameterCS__Group_1__0__Impl rule__TypeParameterCS__Group_1__1
+            // InternalOCLinEcore.g:22903:1: ( rule__TypeParameterCS__Group_1__0__Impl rule__TypeParameterCS__Group_1__1 )
+            // InternalOCLinEcore.g:22904:2: rule__TypeParameterCS__Group_1__0__Impl rule__TypeParameterCS__Group_1__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__TypeParameterCS__Group_1__0__Impl();
@@ -67720,17 +67788,17 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1__0__Impl"
-    // InternalOCLinEcore.g:22899:1: rule__TypeParameterCS__Group_1__0__Impl : ( 'extends' ) ;
+    // InternalOCLinEcore.g:22911:1: rule__TypeParameterCS__Group_1__0__Impl : ( 'extends' ) ;
     public final void rule__TypeParameterCS__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22903:1: ( ( 'extends' ) )
-            // InternalOCLinEcore.g:22904:1: ( 'extends' )
+            // InternalOCLinEcore.g:22915:1: ( ( 'extends' ) )
+            // InternalOCLinEcore.g:22916:1: ( 'extends' )
             {
-            // InternalOCLinEcore.g:22904:1: ( 'extends' )
-            // InternalOCLinEcore.g:22905:1: 'extends'
+            // InternalOCLinEcore.g:22916:1: ( 'extends' )
+            // InternalOCLinEcore.g:22917:1: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getExtendsKeyword_1_0()); 
@@ -67761,14 +67829,14 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1__1"
-    // InternalOCLinEcore.g:22918:1: rule__TypeParameterCS__Group_1__1 : rule__TypeParameterCS__Group_1__1__Impl rule__TypeParameterCS__Group_1__2 ;
+    // InternalOCLinEcore.g:22930:1: rule__TypeParameterCS__Group_1__1 : rule__TypeParameterCS__Group_1__1__Impl rule__TypeParameterCS__Group_1__2 ;
     public final void rule__TypeParameterCS__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22922:1: ( rule__TypeParameterCS__Group_1__1__Impl rule__TypeParameterCS__Group_1__2 )
-            // InternalOCLinEcore.g:22923:2: rule__TypeParameterCS__Group_1__1__Impl rule__TypeParameterCS__Group_1__2
+            // InternalOCLinEcore.g:22934:1: ( rule__TypeParameterCS__Group_1__1__Impl rule__TypeParameterCS__Group_1__2 )
+            // InternalOCLinEcore.g:22935:2: rule__TypeParameterCS__Group_1__1__Impl rule__TypeParameterCS__Group_1__2
             {
             pushFollow(FollowSets000.FOLLOW_125);
             rule__TypeParameterCS__Group_1__1__Impl();
@@ -67799,23 +67867,23 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1__1__Impl"
-    // InternalOCLinEcore.g:22930:1: rule__TypeParameterCS__Group_1__1__Impl : ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 ) ) ;
+    // InternalOCLinEcore.g:22942:1: rule__TypeParameterCS__Group_1__1__Impl : ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 ) ) ;
     public final void rule__TypeParameterCS__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22934:1: ( ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 ) ) )
-            // InternalOCLinEcore.g:22935:1: ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 ) )
+            // InternalOCLinEcore.g:22946:1: ( ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 ) ) )
+            // InternalOCLinEcore.g:22947:1: ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 ) )
             {
-            // InternalOCLinEcore.g:22935:1: ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 ) )
-            // InternalOCLinEcore.g:22936:1: ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 )
+            // InternalOCLinEcore.g:22947:1: ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 ) )
+            // InternalOCLinEcore.g:22948:1: ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getOwnedExtendsAssignment_1_1()); 
             }
-            // InternalOCLinEcore.g:22937:1: ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 )
-            // InternalOCLinEcore.g:22937:2: rule__TypeParameterCS__OwnedExtendsAssignment_1_1
+            // InternalOCLinEcore.g:22949:1: ( rule__TypeParameterCS__OwnedExtendsAssignment_1_1 )
+            // InternalOCLinEcore.g:22949:2: rule__TypeParameterCS__OwnedExtendsAssignment_1_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeParameterCS__OwnedExtendsAssignment_1_1();
@@ -67850,14 +67918,14 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1__2"
-    // InternalOCLinEcore.g:22947:1: rule__TypeParameterCS__Group_1__2 : rule__TypeParameterCS__Group_1__2__Impl ;
+    // InternalOCLinEcore.g:22959:1: rule__TypeParameterCS__Group_1__2 : rule__TypeParameterCS__Group_1__2__Impl ;
     public final void rule__TypeParameterCS__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22951:1: ( rule__TypeParameterCS__Group_1__2__Impl )
-            // InternalOCLinEcore.g:22952:2: rule__TypeParameterCS__Group_1__2__Impl
+            // InternalOCLinEcore.g:22963:1: ( rule__TypeParameterCS__Group_1__2__Impl )
+            // InternalOCLinEcore.g:22964:2: rule__TypeParameterCS__Group_1__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeParameterCS__Group_1__2__Impl();
@@ -67883,22 +67951,22 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1__2__Impl"
-    // InternalOCLinEcore.g:22958:1: rule__TypeParameterCS__Group_1__2__Impl : ( ( rule__TypeParameterCS__Group_1_2__0 )* ) ;
+    // InternalOCLinEcore.g:22970:1: rule__TypeParameterCS__Group_1__2__Impl : ( ( rule__TypeParameterCS__Group_1_2__0 )* ) ;
     public final void rule__TypeParameterCS__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22962:1: ( ( ( rule__TypeParameterCS__Group_1_2__0 )* ) )
-            // InternalOCLinEcore.g:22963:1: ( ( rule__TypeParameterCS__Group_1_2__0 )* )
+            // InternalOCLinEcore.g:22974:1: ( ( ( rule__TypeParameterCS__Group_1_2__0 )* ) )
+            // InternalOCLinEcore.g:22975:1: ( ( rule__TypeParameterCS__Group_1_2__0 )* )
             {
-            // InternalOCLinEcore.g:22963:1: ( ( rule__TypeParameterCS__Group_1_2__0 )* )
-            // InternalOCLinEcore.g:22964:1: ( rule__TypeParameterCS__Group_1_2__0 )*
+            // InternalOCLinEcore.g:22975:1: ( ( rule__TypeParameterCS__Group_1_2__0 )* )
+            // InternalOCLinEcore.g:22976:1: ( rule__TypeParameterCS__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getGroup_1_2()); 
             }
-            // InternalOCLinEcore.g:22965:1: ( rule__TypeParameterCS__Group_1_2__0 )*
+            // InternalOCLinEcore.g:22977:1: ( rule__TypeParameterCS__Group_1_2__0 )*
             loop228:
             do {
                 int alt228=2;
@@ -67911,7 +67979,7 @@
 
                 switch (alt228) {
             	case 1 :
-            	    // InternalOCLinEcore.g:22965:2: rule__TypeParameterCS__Group_1_2__0
+            	    // InternalOCLinEcore.g:22977:2: rule__TypeParameterCS__Group_1_2__0
             	    {
             	    pushFollow(FollowSets000.FOLLOW_126);
             	    rule__TypeParameterCS__Group_1_2__0();
@@ -67952,14 +68020,14 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1_2__0"
-    // InternalOCLinEcore.g:22981:1: rule__TypeParameterCS__Group_1_2__0 : rule__TypeParameterCS__Group_1_2__0__Impl rule__TypeParameterCS__Group_1_2__1 ;
+    // InternalOCLinEcore.g:22993:1: rule__TypeParameterCS__Group_1_2__0 : rule__TypeParameterCS__Group_1_2__0__Impl rule__TypeParameterCS__Group_1_2__1 ;
     public final void rule__TypeParameterCS__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22985:1: ( rule__TypeParameterCS__Group_1_2__0__Impl rule__TypeParameterCS__Group_1_2__1 )
-            // InternalOCLinEcore.g:22986:2: rule__TypeParameterCS__Group_1_2__0__Impl rule__TypeParameterCS__Group_1_2__1
+            // InternalOCLinEcore.g:22997:1: ( rule__TypeParameterCS__Group_1_2__0__Impl rule__TypeParameterCS__Group_1_2__1 )
+            // InternalOCLinEcore.g:22998:2: rule__TypeParameterCS__Group_1_2__0__Impl rule__TypeParameterCS__Group_1_2__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__TypeParameterCS__Group_1_2__0__Impl();
@@ -67990,17 +68058,17 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1_2__0__Impl"
-    // InternalOCLinEcore.g:22993:1: rule__TypeParameterCS__Group_1_2__0__Impl : ( '&&' ) ;
+    // InternalOCLinEcore.g:23005:1: rule__TypeParameterCS__Group_1_2__0__Impl : ( '&&' ) ;
     public final void rule__TypeParameterCS__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:22997:1: ( ( '&&' ) )
-            // InternalOCLinEcore.g:22998:1: ( '&&' )
+            // InternalOCLinEcore.g:23009:1: ( ( '&&' ) )
+            // InternalOCLinEcore.g:23010:1: ( '&&' )
             {
-            // InternalOCLinEcore.g:22998:1: ( '&&' )
-            // InternalOCLinEcore.g:22999:1: '&&'
+            // InternalOCLinEcore.g:23010:1: ( '&&' )
+            // InternalOCLinEcore.g:23011:1: '&&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getAmpersandAmpersandKeyword_1_2_0()); 
@@ -68031,14 +68099,14 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1_2__1"
-    // InternalOCLinEcore.g:23012:1: rule__TypeParameterCS__Group_1_2__1 : rule__TypeParameterCS__Group_1_2__1__Impl ;
+    // InternalOCLinEcore.g:23024:1: rule__TypeParameterCS__Group_1_2__1 : rule__TypeParameterCS__Group_1_2__1__Impl ;
     public final void rule__TypeParameterCS__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23016:1: ( rule__TypeParameterCS__Group_1_2__1__Impl )
-            // InternalOCLinEcore.g:23017:2: rule__TypeParameterCS__Group_1_2__1__Impl
+            // InternalOCLinEcore.g:23028:1: ( rule__TypeParameterCS__Group_1_2__1__Impl )
+            // InternalOCLinEcore.g:23029:2: rule__TypeParameterCS__Group_1_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeParameterCS__Group_1_2__1__Impl();
@@ -68064,23 +68132,23 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__Group_1_2__1__Impl"
-    // InternalOCLinEcore.g:23023:1: rule__TypeParameterCS__Group_1_2__1__Impl : ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 ) ) ;
+    // InternalOCLinEcore.g:23035:1: rule__TypeParameterCS__Group_1_2__1__Impl : ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 ) ) ;
     public final void rule__TypeParameterCS__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23027:1: ( ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 ) ) )
-            // InternalOCLinEcore.g:23028:1: ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 ) )
+            // InternalOCLinEcore.g:23039:1: ( ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 ) ) )
+            // InternalOCLinEcore.g:23040:1: ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 ) )
             {
-            // InternalOCLinEcore.g:23028:1: ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 ) )
-            // InternalOCLinEcore.g:23029:1: ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 )
+            // InternalOCLinEcore.g:23040:1: ( ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 ) )
+            // InternalOCLinEcore.g:23041:1: ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getOwnedExtendsAssignment_1_2_1()); 
             }
-            // InternalOCLinEcore.g:23030:1: ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 )
-            // InternalOCLinEcore.g:23030:2: rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1
+            // InternalOCLinEcore.g:23042:1: ( rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 )
+            // InternalOCLinEcore.g:23042:2: rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1();
@@ -68115,14 +68183,14 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group__0"
-    // InternalOCLinEcore.g:23044:1: rule__WildcardTypeRefCS__Group__0 : rule__WildcardTypeRefCS__Group__0__Impl rule__WildcardTypeRefCS__Group__1 ;
+    // InternalOCLinEcore.g:23056:1: rule__WildcardTypeRefCS__Group__0 : rule__WildcardTypeRefCS__Group__0__Impl rule__WildcardTypeRefCS__Group__1 ;
     public final void rule__WildcardTypeRefCS__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23048:1: ( rule__WildcardTypeRefCS__Group__0__Impl rule__WildcardTypeRefCS__Group__1 )
-            // InternalOCLinEcore.g:23049:2: rule__WildcardTypeRefCS__Group__0__Impl rule__WildcardTypeRefCS__Group__1
+            // InternalOCLinEcore.g:23060:1: ( rule__WildcardTypeRefCS__Group__0__Impl rule__WildcardTypeRefCS__Group__1 )
+            // InternalOCLinEcore.g:23061:2: rule__WildcardTypeRefCS__Group__0__Impl rule__WildcardTypeRefCS__Group__1
             {
             pushFollow(FollowSets000.FOLLOW_84);
             rule__WildcardTypeRefCS__Group__0__Impl();
@@ -68153,23 +68221,23 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group__0__Impl"
-    // InternalOCLinEcore.g:23056:1: rule__WildcardTypeRefCS__Group__0__Impl : ( () ) ;
+    // InternalOCLinEcore.g:23068:1: rule__WildcardTypeRefCS__Group__0__Impl : ( () ) ;
     public final void rule__WildcardTypeRefCS__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23060:1: ( ( () ) )
-            // InternalOCLinEcore.g:23061:1: ( () )
+            // InternalOCLinEcore.g:23072:1: ( ( () ) )
+            // InternalOCLinEcore.g:23073:1: ( () )
             {
-            // InternalOCLinEcore.g:23061:1: ( () )
-            // InternalOCLinEcore.g:23062:1: ()
+            // InternalOCLinEcore.g:23073:1: ( () )
+            // InternalOCLinEcore.g:23074:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWildcardTypeRefCSAccess().getWildcardTypeRefCSAction_0()); 
             }
-            // InternalOCLinEcore.g:23063:1: ()
-            // InternalOCLinEcore.g:23065:1: 
+            // InternalOCLinEcore.g:23075:1: ()
+            // InternalOCLinEcore.g:23077:1: 
             {
             }
 
@@ -68194,14 +68262,14 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group__1"
-    // InternalOCLinEcore.g:23075:1: rule__WildcardTypeRefCS__Group__1 : rule__WildcardTypeRefCS__Group__1__Impl rule__WildcardTypeRefCS__Group__2 ;
+    // InternalOCLinEcore.g:23087:1: rule__WildcardTypeRefCS__Group__1 : rule__WildcardTypeRefCS__Group__1__Impl rule__WildcardTypeRefCS__Group__2 ;
     public final void rule__WildcardTypeRefCS__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23079:1: ( rule__WildcardTypeRefCS__Group__1__Impl rule__WildcardTypeRefCS__Group__2 )
-            // InternalOCLinEcore.g:23080:2: rule__WildcardTypeRefCS__Group__1__Impl rule__WildcardTypeRefCS__Group__2
+            // InternalOCLinEcore.g:23091:1: ( rule__WildcardTypeRefCS__Group__1__Impl rule__WildcardTypeRefCS__Group__2 )
+            // InternalOCLinEcore.g:23092:2: rule__WildcardTypeRefCS__Group__1__Impl rule__WildcardTypeRefCS__Group__2
             {
             pushFollow(FollowSets000.FOLLOW_124);
             rule__WildcardTypeRefCS__Group__1__Impl();
@@ -68232,17 +68300,17 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group__1__Impl"
-    // InternalOCLinEcore.g:23087:1: rule__WildcardTypeRefCS__Group__1__Impl : ( '?' ) ;
+    // InternalOCLinEcore.g:23099:1: rule__WildcardTypeRefCS__Group__1__Impl : ( '?' ) ;
     public final void rule__WildcardTypeRefCS__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23091:1: ( ( '?' ) )
-            // InternalOCLinEcore.g:23092:1: ( '?' )
+            // InternalOCLinEcore.g:23103:1: ( ( '?' ) )
+            // InternalOCLinEcore.g:23104:1: ( '?' )
             {
-            // InternalOCLinEcore.g:23092:1: ( '?' )
-            // InternalOCLinEcore.g:23093:1: '?'
+            // InternalOCLinEcore.g:23104:1: ( '?' )
+            // InternalOCLinEcore.g:23105:1: '?'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWildcardTypeRefCSAccess().getQuestionMarkKeyword_1()); 
@@ -68273,14 +68341,14 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group__2"
-    // InternalOCLinEcore.g:23106:1: rule__WildcardTypeRefCS__Group__2 : rule__WildcardTypeRefCS__Group__2__Impl ;
+    // InternalOCLinEcore.g:23118:1: rule__WildcardTypeRefCS__Group__2 : rule__WildcardTypeRefCS__Group__2__Impl ;
     public final void rule__WildcardTypeRefCS__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23110:1: ( rule__WildcardTypeRefCS__Group__2__Impl )
-            // InternalOCLinEcore.g:23111:2: rule__WildcardTypeRefCS__Group__2__Impl
+            // InternalOCLinEcore.g:23122:1: ( rule__WildcardTypeRefCS__Group__2__Impl )
+            // InternalOCLinEcore.g:23123:2: rule__WildcardTypeRefCS__Group__2__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__WildcardTypeRefCS__Group__2__Impl();
@@ -68306,22 +68374,22 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group__2__Impl"
-    // InternalOCLinEcore.g:23117:1: rule__WildcardTypeRefCS__Group__2__Impl : ( ( rule__WildcardTypeRefCS__Group_2__0 )? ) ;
+    // InternalOCLinEcore.g:23129:1: rule__WildcardTypeRefCS__Group__2__Impl : ( ( rule__WildcardTypeRefCS__Group_2__0 )? ) ;
     public final void rule__WildcardTypeRefCS__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23121:1: ( ( ( rule__WildcardTypeRefCS__Group_2__0 )? ) )
-            // InternalOCLinEcore.g:23122:1: ( ( rule__WildcardTypeRefCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:23133:1: ( ( ( rule__WildcardTypeRefCS__Group_2__0 )? ) )
+            // InternalOCLinEcore.g:23134:1: ( ( rule__WildcardTypeRefCS__Group_2__0 )? )
             {
-            // InternalOCLinEcore.g:23122:1: ( ( rule__WildcardTypeRefCS__Group_2__0 )? )
-            // InternalOCLinEcore.g:23123:1: ( rule__WildcardTypeRefCS__Group_2__0 )?
+            // InternalOCLinEcore.g:23134:1: ( ( rule__WildcardTypeRefCS__Group_2__0 )? )
+            // InternalOCLinEcore.g:23135:1: ( rule__WildcardTypeRefCS__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWildcardTypeRefCSAccess().getGroup_2()); 
             }
-            // InternalOCLinEcore.g:23124:1: ( rule__WildcardTypeRefCS__Group_2__0 )?
+            // InternalOCLinEcore.g:23136:1: ( rule__WildcardTypeRefCS__Group_2__0 )?
             int alt229=2;
             int LA229_0 = input.LA(1);
 
@@ -68330,7 +68398,7 @@
             }
             switch (alt229) {
                 case 1 :
-                    // InternalOCLinEcore.g:23124:2: rule__WildcardTypeRefCS__Group_2__0
+                    // InternalOCLinEcore.g:23136:2: rule__WildcardTypeRefCS__Group_2__0
                     {
                     pushFollow(FollowSets000.FOLLOW_2);
                     rule__WildcardTypeRefCS__Group_2__0();
@@ -68368,14 +68436,14 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group_2__0"
-    // InternalOCLinEcore.g:23140:1: rule__WildcardTypeRefCS__Group_2__0 : rule__WildcardTypeRefCS__Group_2__0__Impl rule__WildcardTypeRefCS__Group_2__1 ;
+    // InternalOCLinEcore.g:23152:1: rule__WildcardTypeRefCS__Group_2__0 : rule__WildcardTypeRefCS__Group_2__0__Impl rule__WildcardTypeRefCS__Group_2__1 ;
     public final void rule__WildcardTypeRefCS__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23144:1: ( rule__WildcardTypeRefCS__Group_2__0__Impl rule__WildcardTypeRefCS__Group_2__1 )
-            // InternalOCLinEcore.g:23145:2: rule__WildcardTypeRefCS__Group_2__0__Impl rule__WildcardTypeRefCS__Group_2__1
+            // InternalOCLinEcore.g:23156:1: ( rule__WildcardTypeRefCS__Group_2__0__Impl rule__WildcardTypeRefCS__Group_2__1 )
+            // InternalOCLinEcore.g:23157:2: rule__WildcardTypeRefCS__Group_2__0__Impl rule__WildcardTypeRefCS__Group_2__1
             {
             pushFollow(FollowSets000.FOLLOW_28);
             rule__WildcardTypeRefCS__Group_2__0__Impl();
@@ -68406,17 +68474,17 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group_2__0__Impl"
-    // InternalOCLinEcore.g:23152:1: rule__WildcardTypeRefCS__Group_2__0__Impl : ( 'extends' ) ;
+    // InternalOCLinEcore.g:23164:1: rule__WildcardTypeRefCS__Group_2__0__Impl : ( 'extends' ) ;
     public final void rule__WildcardTypeRefCS__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23156:1: ( ( 'extends' ) )
-            // InternalOCLinEcore.g:23157:1: ( 'extends' )
+            // InternalOCLinEcore.g:23168:1: ( ( 'extends' ) )
+            // InternalOCLinEcore.g:23169:1: ( 'extends' )
             {
-            // InternalOCLinEcore.g:23157:1: ( 'extends' )
-            // InternalOCLinEcore.g:23158:1: 'extends'
+            // InternalOCLinEcore.g:23169:1: ( 'extends' )
+            // InternalOCLinEcore.g:23170:1: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWildcardTypeRefCSAccess().getExtendsKeyword_2_0()); 
@@ -68447,14 +68515,14 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group_2__1"
-    // InternalOCLinEcore.g:23171:1: rule__WildcardTypeRefCS__Group_2__1 : rule__WildcardTypeRefCS__Group_2__1__Impl ;
+    // InternalOCLinEcore.g:23183:1: rule__WildcardTypeRefCS__Group_2__1 : rule__WildcardTypeRefCS__Group_2__1__Impl ;
     public final void rule__WildcardTypeRefCS__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23175:1: ( rule__WildcardTypeRefCS__Group_2__1__Impl )
-            // InternalOCLinEcore.g:23176:2: rule__WildcardTypeRefCS__Group_2__1__Impl
+            // InternalOCLinEcore.g:23187:1: ( rule__WildcardTypeRefCS__Group_2__1__Impl )
+            // InternalOCLinEcore.g:23188:2: rule__WildcardTypeRefCS__Group_2__1__Impl
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__WildcardTypeRefCS__Group_2__1__Impl();
@@ -68480,23 +68548,23 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__Group_2__1__Impl"
-    // InternalOCLinEcore.g:23182:1: rule__WildcardTypeRefCS__Group_2__1__Impl : ( ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 ) ) ;
+    // InternalOCLinEcore.g:23194:1: rule__WildcardTypeRefCS__Group_2__1__Impl : ( ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 ) ) ;
     public final void rule__WildcardTypeRefCS__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23186:1: ( ( ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 ) ) )
-            // InternalOCLinEcore.g:23187:1: ( ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 ) )
+            // InternalOCLinEcore.g:23198:1: ( ( ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 ) ) )
+            // InternalOCLinEcore.g:23199:1: ( ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 ) )
             {
-            // InternalOCLinEcore.g:23187:1: ( ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 ) )
-            // InternalOCLinEcore.g:23188:1: ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 )
+            // InternalOCLinEcore.g:23199:1: ( ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 ) )
+            // InternalOCLinEcore.g:23200:1: ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWildcardTypeRefCSAccess().getOwnedExtendsAssignment_2_1()); 
             }
-            // InternalOCLinEcore.g:23189:1: ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 )
-            // InternalOCLinEcore.g:23189:2: rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1
+            // InternalOCLinEcore.g:23201:1: ( rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 )
+            // InternalOCLinEcore.g:23201:2: rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1();
@@ -68531,17 +68599,17 @@
 
 
     // $ANTLR start "rule__TopLevelCS__OwnedImportsAssignment_2"
-    // InternalOCLinEcore.g:23204:1: rule__TopLevelCS__OwnedImportsAssignment_2 : ( ruleImportCS ) ;
+    // InternalOCLinEcore.g:23216:1: rule__TopLevelCS__OwnedImportsAssignment_2 : ( ruleImportCS ) ;
     public final void rule__TopLevelCS__OwnedImportsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23208:1: ( ( ruleImportCS ) )
-            // InternalOCLinEcore.g:23209:1: ( ruleImportCS )
+            // InternalOCLinEcore.g:23220:1: ( ( ruleImportCS ) )
+            // InternalOCLinEcore.g:23221:1: ( ruleImportCS )
             {
-            // InternalOCLinEcore.g:23209:1: ( ruleImportCS )
-            // InternalOCLinEcore.g:23210:1: ruleImportCS
+            // InternalOCLinEcore.g:23221:1: ( ruleImportCS )
+            // InternalOCLinEcore.g:23222:1: ruleImportCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTopLevelCSAccess().getOwnedImportsImportCSParserRuleCall_2_0()); 
@@ -68576,17 +68644,17 @@
 
 
     // $ANTLR start "rule__TopLevelCS__OwnedPackagesAssignment_3"
-    // InternalOCLinEcore.g:23219:1: rule__TopLevelCS__OwnedPackagesAssignment_3 : ( rulePackageCS ) ;
+    // InternalOCLinEcore.g:23231:1: rule__TopLevelCS__OwnedPackagesAssignment_3 : ( rulePackageCS ) ;
     public final void rule__TopLevelCS__OwnedPackagesAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23223:1: ( ( rulePackageCS ) )
-            // InternalOCLinEcore.g:23224:1: ( rulePackageCS )
+            // InternalOCLinEcore.g:23235:1: ( ( rulePackageCS ) )
+            // InternalOCLinEcore.g:23236:1: ( rulePackageCS )
             {
-            // InternalOCLinEcore.g:23224:1: ( rulePackageCS )
-            // InternalOCLinEcore.g:23225:1: rulePackageCS
+            // InternalOCLinEcore.g:23236:1: ( rulePackageCS )
+            // InternalOCLinEcore.g:23237:1: rulePackageCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTopLevelCSAccess().getOwnedPackagesPackageCSParserRuleCall_3_0()); 
@@ -68621,23 +68689,23 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__IsCallableAssignment_0"
-    // InternalOCLinEcore.g:23234:1: rule__InvariantConstraintCS__IsCallableAssignment_0 : ( ( 'callable' ) ) ;
+    // InternalOCLinEcore.g:23246:1: rule__InvariantConstraintCS__IsCallableAssignment_0 : ( ( 'callable' ) ) ;
     public final void rule__InvariantConstraintCS__IsCallableAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23238:1: ( ( ( 'callable' ) ) )
-            // InternalOCLinEcore.g:23239:1: ( ( 'callable' ) )
+            // InternalOCLinEcore.g:23250:1: ( ( ( 'callable' ) ) )
+            // InternalOCLinEcore.g:23251:1: ( ( 'callable' ) )
             {
-            // InternalOCLinEcore.g:23239:1: ( ( 'callable' ) )
-            // InternalOCLinEcore.g:23240:1: ( 'callable' )
+            // InternalOCLinEcore.g:23251:1: ( ( 'callable' ) )
+            // InternalOCLinEcore.g:23252:1: ( 'callable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getIsCallableCallableKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:23241:1: ( 'callable' )
-            // InternalOCLinEcore.g:23242:1: 'callable'
+            // InternalOCLinEcore.g:23253:1: ( 'callable' )
+            // InternalOCLinEcore.g:23254:1: 'callable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getIsCallableCallableKeyword_0_0()); 
@@ -68674,23 +68742,23 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__StereotypeAssignment_1"
-    // InternalOCLinEcore.g:23257:1: rule__InvariantConstraintCS__StereotypeAssignment_1 : ( ( 'invariant' ) ) ;
+    // InternalOCLinEcore.g:23269:1: rule__InvariantConstraintCS__StereotypeAssignment_1 : ( ( 'invariant' ) ) ;
     public final void rule__InvariantConstraintCS__StereotypeAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23261:1: ( ( ( 'invariant' ) ) )
-            // InternalOCLinEcore.g:23262:1: ( ( 'invariant' ) )
+            // InternalOCLinEcore.g:23273:1: ( ( ( 'invariant' ) ) )
+            // InternalOCLinEcore.g:23274:1: ( ( 'invariant' ) )
             {
-            // InternalOCLinEcore.g:23262:1: ( ( 'invariant' ) )
-            // InternalOCLinEcore.g:23263:1: ( 'invariant' )
+            // InternalOCLinEcore.g:23274:1: ( ( 'invariant' ) )
+            // InternalOCLinEcore.g:23275:1: ( 'invariant' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getStereotypeInvariantKeyword_1_0()); 
             }
-            // InternalOCLinEcore.g:23264:1: ( 'invariant' )
-            // InternalOCLinEcore.g:23265:1: 'invariant'
+            // InternalOCLinEcore.g:23276:1: ( 'invariant' )
+            // InternalOCLinEcore.g:23277:1: 'invariant'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getStereotypeInvariantKeyword_1_0()); 
@@ -68727,17 +68795,17 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__NameAssignment_2_0"
-    // InternalOCLinEcore.g:23280:1: rule__InvariantConstraintCS__NameAssignment_2_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:23292:1: rule__InvariantConstraintCS__NameAssignment_2_0 : ( ruleUnrestrictedName ) ;
     public final void rule__InvariantConstraintCS__NameAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23284:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:23285:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:23296:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:23297:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:23285:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:23286:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:23297:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:23298:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getNameUnrestrictedNameParserRuleCall_2_0_0()); 
@@ -68772,17 +68840,17 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1"
-    // InternalOCLinEcore.g:23295:1: rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:23307:1: rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1 : ( ruleSpecificationCS ) ;
     public final void rule__InvariantConstraintCS__OwnedMessageSpecificationAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23299:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:23300:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23311:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:23312:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:23300:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:23301:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:23312:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23313:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getOwnedMessageSpecificationSpecificationCSParserRuleCall_2_1_1_0()); 
@@ -68817,17 +68885,17 @@
 
 
     // $ANTLR start "rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1"
-    // InternalOCLinEcore.g:23310:1: rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:23322:1: rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1 : ( ruleSpecificationCS ) ;
     public final void rule__InvariantConstraintCS__OwnedSpecificationAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23314:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:23315:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23326:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:23327:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:23315:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:23316:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:23327:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23328:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInvariantConstraintCSAccess().getOwnedSpecificationSpecificationCSParserRuleCall_3_0_1_0()); 
@@ -68862,23 +68930,23 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__StereotypeAssignment_0"
-    // InternalOCLinEcore.g:23325:1: rule__PostconditionConstraintCS__StereotypeAssignment_0 : ( ( 'postcondition' ) ) ;
+    // InternalOCLinEcore.g:23337:1: rule__PostconditionConstraintCS__StereotypeAssignment_0 : ( ( 'postcondition' ) ) ;
     public final void rule__PostconditionConstraintCS__StereotypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23329:1: ( ( ( 'postcondition' ) ) )
-            // InternalOCLinEcore.g:23330:1: ( ( 'postcondition' ) )
+            // InternalOCLinEcore.g:23341:1: ( ( ( 'postcondition' ) ) )
+            // InternalOCLinEcore.g:23342:1: ( ( 'postcondition' ) )
             {
-            // InternalOCLinEcore.g:23330:1: ( ( 'postcondition' ) )
-            // InternalOCLinEcore.g:23331:1: ( 'postcondition' )
+            // InternalOCLinEcore.g:23342:1: ( ( 'postcondition' ) )
+            // InternalOCLinEcore.g:23343:1: ( 'postcondition' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getStereotypePostconditionKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:23332:1: ( 'postcondition' )
-            // InternalOCLinEcore.g:23333:1: 'postcondition'
+            // InternalOCLinEcore.g:23344:1: ( 'postcondition' )
+            // InternalOCLinEcore.g:23345:1: 'postcondition'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getStereotypePostconditionKeyword_0_0()); 
@@ -68915,17 +68983,17 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__NameAssignment_1_0"
-    // InternalOCLinEcore.g:23348:1: rule__PostconditionConstraintCS__NameAssignment_1_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:23360:1: rule__PostconditionConstraintCS__NameAssignment_1_0 : ( ruleUnrestrictedName ) ;
     public final void rule__PostconditionConstraintCS__NameAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23352:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:23353:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:23364:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:23365:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:23353:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:23354:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:23365:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:23366:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getNameUnrestrictedNameParserRuleCall_1_0_0()); 
@@ -68960,17 +69028,17 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1"
-    // InternalOCLinEcore.g:23363:1: rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:23375:1: rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 : ( ruleSpecificationCS ) ;
     public final void rule__PostconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23367:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:23368:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23379:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:23380:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:23368:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:23369:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:23380:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23381:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getOwnedMessageSpecificationSpecificationCSParserRuleCall_1_1_1_0()); 
@@ -69005,17 +69073,17 @@
 
 
     // $ANTLR start "rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3"
-    // InternalOCLinEcore.g:23378:1: rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:23390:1: rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3 : ( ruleSpecificationCS ) ;
     public final void rule__PostconditionConstraintCS__OwnedSpecificationAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23382:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:23383:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23394:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:23395:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:23383:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:23384:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:23395:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23396:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPostconditionConstraintCSAccess().getOwnedSpecificationSpecificationCSParserRuleCall_3_0()); 
@@ -69050,23 +69118,23 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__StereotypeAssignment_0"
-    // InternalOCLinEcore.g:23393:1: rule__PreconditionConstraintCS__StereotypeAssignment_0 : ( ( 'precondition' ) ) ;
+    // InternalOCLinEcore.g:23405:1: rule__PreconditionConstraintCS__StereotypeAssignment_0 : ( ( 'precondition' ) ) ;
     public final void rule__PreconditionConstraintCS__StereotypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23397:1: ( ( ( 'precondition' ) ) )
-            // InternalOCLinEcore.g:23398:1: ( ( 'precondition' ) )
+            // InternalOCLinEcore.g:23409:1: ( ( ( 'precondition' ) ) )
+            // InternalOCLinEcore.g:23410:1: ( ( 'precondition' ) )
             {
-            // InternalOCLinEcore.g:23398:1: ( ( 'precondition' ) )
-            // InternalOCLinEcore.g:23399:1: ( 'precondition' )
+            // InternalOCLinEcore.g:23410:1: ( ( 'precondition' ) )
+            // InternalOCLinEcore.g:23411:1: ( 'precondition' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getStereotypePreconditionKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:23400:1: ( 'precondition' )
-            // InternalOCLinEcore.g:23401:1: 'precondition'
+            // InternalOCLinEcore.g:23412:1: ( 'precondition' )
+            // InternalOCLinEcore.g:23413:1: 'precondition'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getStereotypePreconditionKeyword_0_0()); 
@@ -69103,17 +69171,17 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__NameAssignment_1_0"
-    // InternalOCLinEcore.g:23416:1: rule__PreconditionConstraintCS__NameAssignment_1_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:23428:1: rule__PreconditionConstraintCS__NameAssignment_1_0 : ( ruleUnrestrictedName ) ;
     public final void rule__PreconditionConstraintCS__NameAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23420:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:23421:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:23432:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:23433:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:23421:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:23422:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:23433:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:23434:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getNameUnrestrictedNameParserRuleCall_1_0_0()); 
@@ -69148,17 +69216,17 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1"
-    // InternalOCLinEcore.g:23431:1: rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:23443:1: rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1 : ( ruleSpecificationCS ) ;
     public final void rule__PreconditionConstraintCS__OwnedMessageSpecificationAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23435:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:23436:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23447:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:23448:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:23436:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:23437:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:23448:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23449:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getOwnedMessageSpecificationSpecificationCSParserRuleCall_1_1_1_0()); 
@@ -69193,17 +69261,17 @@
 
 
     // $ANTLR start "rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3"
-    // InternalOCLinEcore.g:23446:1: rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:23458:1: rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3 : ( ruleSpecificationCS ) ;
     public final void rule__PreconditionConstraintCS__OwnedSpecificationAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23450:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:23451:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23462:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:23463:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:23451:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:23452:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:23463:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:23464:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPreconditionConstraintCSAccess().getOwnedSpecificationSpecificationCSParserRuleCall_3_0()); 
@@ -69238,23 +69306,23 @@
 
 
     // $ANTLR start "rule__AnnotationCS__NameAssignment_2"
-    // InternalOCLinEcore.g:23461:1: rule__AnnotationCS__NameAssignment_2 : ( ( rule__AnnotationCS__NameAlternatives_2_0 ) ) ;
+    // InternalOCLinEcore.g:23473:1: rule__AnnotationCS__NameAssignment_2 : ( ( rule__AnnotationCS__NameAlternatives_2_0 ) ) ;
     public final void rule__AnnotationCS__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23465:1: ( ( ( rule__AnnotationCS__NameAlternatives_2_0 ) ) )
-            // InternalOCLinEcore.g:23466:1: ( ( rule__AnnotationCS__NameAlternatives_2_0 ) )
+            // InternalOCLinEcore.g:23477:1: ( ( ( rule__AnnotationCS__NameAlternatives_2_0 ) ) )
+            // InternalOCLinEcore.g:23478:1: ( ( rule__AnnotationCS__NameAlternatives_2_0 ) )
             {
-            // InternalOCLinEcore.g:23466:1: ( ( rule__AnnotationCS__NameAlternatives_2_0 ) )
-            // InternalOCLinEcore.g:23467:1: ( rule__AnnotationCS__NameAlternatives_2_0 )
+            // InternalOCLinEcore.g:23478:1: ( ( rule__AnnotationCS__NameAlternatives_2_0 ) )
+            // InternalOCLinEcore.g:23479:1: ( rule__AnnotationCS__NameAlternatives_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getNameAlternatives_2_0()); 
             }
-            // InternalOCLinEcore.g:23468:1: ( rule__AnnotationCS__NameAlternatives_2_0 )
-            // InternalOCLinEcore.g:23468:2: rule__AnnotationCS__NameAlternatives_2_0
+            // InternalOCLinEcore.g:23480:1: ( rule__AnnotationCS__NameAlternatives_2_0 )
+            // InternalOCLinEcore.g:23480:2: rule__AnnotationCS__NameAlternatives_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__AnnotationCS__NameAlternatives_2_0();
@@ -69289,17 +69357,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__OwnedDetailsAssignment_3_1"
-    // InternalOCLinEcore.g:23477:1: rule__AnnotationCS__OwnedDetailsAssignment_3_1 : ( ruleDetailCS ) ;
+    // InternalOCLinEcore.g:23489:1: rule__AnnotationCS__OwnedDetailsAssignment_3_1 : ( ruleDetailCS ) ;
     public final void rule__AnnotationCS__OwnedDetailsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23481:1: ( ( ruleDetailCS ) )
-            // InternalOCLinEcore.g:23482:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:23493:1: ( ( ruleDetailCS ) )
+            // InternalOCLinEcore.g:23494:1: ( ruleDetailCS )
             {
-            // InternalOCLinEcore.g:23482:1: ( ruleDetailCS )
-            // InternalOCLinEcore.g:23483:1: ruleDetailCS
+            // InternalOCLinEcore.g:23494:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:23495:1: ruleDetailCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getOwnedDetailsDetailCSParserRuleCall_3_1_0()); 
@@ -69334,17 +69402,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__OwnedDetailsAssignment_3_2_1"
-    // InternalOCLinEcore.g:23492:1: rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 : ( ruleDetailCS ) ;
+    // InternalOCLinEcore.g:23504:1: rule__AnnotationCS__OwnedDetailsAssignment_3_2_1 : ( ruleDetailCS ) ;
     public final void rule__AnnotationCS__OwnedDetailsAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23496:1: ( ( ruleDetailCS ) )
-            // InternalOCLinEcore.g:23497:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:23508:1: ( ( ruleDetailCS ) )
+            // InternalOCLinEcore.g:23509:1: ( ruleDetailCS )
             {
-            // InternalOCLinEcore.g:23497:1: ( ruleDetailCS )
-            // InternalOCLinEcore.g:23498:1: ruleDetailCS
+            // InternalOCLinEcore.g:23509:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:23510:1: ruleDetailCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getOwnedDetailsDetailCSParserRuleCall_3_2_1_0()); 
@@ -69379,17 +69447,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__OwnedAnnotationsAssignment_4_0_1_0"
-    // InternalOCLinEcore.g:23507:1: rule__AnnotationCS__OwnedAnnotationsAssignment_4_0_1_0 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:23519:1: rule__AnnotationCS__OwnedAnnotationsAssignment_4_0_1_0 : ( ruleAnnotationElementCS ) ;
     public final void rule__AnnotationCS__OwnedAnnotationsAssignment_4_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23511:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:23512:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:23523:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:23524:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:23512:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:23513:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:23524:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:23525:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_4_0_1_0_0()); 
@@ -69424,17 +69492,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__OwnedContentsAssignment_4_0_1_1"
-    // InternalOCLinEcore.g:23522:1: rule__AnnotationCS__OwnedContentsAssignment_4_0_1_1 : ( ruleModelElementCS ) ;
+    // InternalOCLinEcore.g:23534:1: rule__AnnotationCS__OwnedContentsAssignment_4_0_1_1 : ( ruleModelElementCS ) ;
     public final void rule__AnnotationCS__OwnedContentsAssignment_4_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23526:1: ( ( ruleModelElementCS ) )
-            // InternalOCLinEcore.g:23527:1: ( ruleModelElementCS )
+            // InternalOCLinEcore.g:23538:1: ( ( ruleModelElementCS ) )
+            // InternalOCLinEcore.g:23539:1: ( ruleModelElementCS )
             {
-            // InternalOCLinEcore.g:23527:1: ( ruleModelElementCS )
-            // InternalOCLinEcore.g:23528:1: ruleModelElementCS
+            // InternalOCLinEcore.g:23539:1: ( ruleModelElementCS )
+            // InternalOCLinEcore.g:23540:1: ruleModelElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getOwnedContentsModelElementCSParserRuleCall_4_0_1_1_0()); 
@@ -69469,17 +69537,17 @@
 
 
     // $ANTLR start "rule__AnnotationCS__OwnedReferencesAssignment_4_0_1_2"
-    // InternalOCLinEcore.g:23537:1: rule__AnnotationCS__OwnedReferencesAssignment_4_0_1_2 : ( ruleModelElementRefCS ) ;
+    // InternalOCLinEcore.g:23549:1: rule__AnnotationCS__OwnedReferencesAssignment_4_0_1_2 : ( ruleModelElementRefCS ) ;
     public final void rule__AnnotationCS__OwnedReferencesAssignment_4_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23541:1: ( ( ruleModelElementRefCS ) )
-            // InternalOCLinEcore.g:23542:1: ( ruleModelElementRefCS )
+            // InternalOCLinEcore.g:23553:1: ( ( ruleModelElementRefCS ) )
+            // InternalOCLinEcore.g:23554:1: ( ruleModelElementRefCS )
             {
-            // InternalOCLinEcore.g:23542:1: ( ruleModelElementRefCS )
-            // InternalOCLinEcore.g:23543:1: ruleModelElementRefCS
+            // InternalOCLinEcore.g:23554:1: ( ruleModelElementRefCS )
+            // InternalOCLinEcore.g:23555:1: ruleModelElementRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAnnotationCSAccess().getOwnedReferencesModelElementRefCSParserRuleCall_4_0_1_2_0()); 
@@ -69514,23 +69582,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_0_0_0"
-    // InternalOCLinEcore.g:23552:1: rule__AttributeCS__QualifiersAssignment_0_0_0 : ( ( 'static' ) ) ;
+    // InternalOCLinEcore.g:23564:1: rule__AttributeCS__QualifiersAssignment_0_0_0 : ( ( 'static' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23556:1: ( ( ( 'static' ) ) )
-            // InternalOCLinEcore.g:23557:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:23568:1: ( ( ( 'static' ) ) )
+            // InternalOCLinEcore.g:23569:1: ( ( 'static' ) )
             {
-            // InternalOCLinEcore.g:23557:1: ( ( 'static' ) )
-            // InternalOCLinEcore.g:23558:1: ( 'static' )
+            // InternalOCLinEcore.g:23569:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:23570:1: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_0_0_0()); 
             }
-            // InternalOCLinEcore.g:23559:1: ( 'static' )
-            // InternalOCLinEcore.g:23560:1: 'static'
+            // InternalOCLinEcore.g:23571:1: ( 'static' )
+            // InternalOCLinEcore.g:23572:1: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_0_0_0()); 
@@ -69567,23 +69635,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_0_0_1"
-    // InternalOCLinEcore.g:23575:1: rule__AttributeCS__QualifiersAssignment_0_0_1 : ( ( 'definition' ) ) ;
+    // InternalOCLinEcore.g:23587:1: rule__AttributeCS__QualifiersAssignment_0_0_1 : ( ( 'definition' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23579:1: ( ( ( 'definition' ) ) )
-            // InternalOCLinEcore.g:23580:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:23591:1: ( ( ( 'definition' ) ) )
+            // InternalOCLinEcore.g:23592:1: ( ( 'definition' ) )
             {
-            // InternalOCLinEcore.g:23580:1: ( ( 'definition' ) )
-            // InternalOCLinEcore.g:23581:1: ( 'definition' )
+            // InternalOCLinEcore.g:23592:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:23593:1: ( 'definition' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); 
             }
-            // InternalOCLinEcore.g:23582:1: ( 'definition' )
-            // InternalOCLinEcore.g:23583:1: 'definition'
+            // InternalOCLinEcore.g:23594:1: ( 'definition' )
+            // InternalOCLinEcore.g:23595:1: 'definition'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); 
@@ -69620,23 +69688,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_0_1_0"
-    // InternalOCLinEcore.g:23598:1: rule__AttributeCS__QualifiersAssignment_0_1_0 : ( ( 'definition' ) ) ;
+    // InternalOCLinEcore.g:23610:1: rule__AttributeCS__QualifiersAssignment_0_1_0 : ( ( 'definition' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23602:1: ( ( ( 'definition' ) ) )
-            // InternalOCLinEcore.g:23603:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:23614:1: ( ( ( 'definition' ) ) )
+            // InternalOCLinEcore.g:23615:1: ( ( 'definition' ) )
             {
-            // InternalOCLinEcore.g:23603:1: ( ( 'definition' ) )
-            // InternalOCLinEcore.g:23604:1: ( 'definition' )
+            // InternalOCLinEcore.g:23615:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:23616:1: ( 'definition' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); 
             }
-            // InternalOCLinEcore.g:23605:1: ( 'definition' )
-            // InternalOCLinEcore.g:23606:1: 'definition'
+            // InternalOCLinEcore.g:23617:1: ( 'definition' )
+            // InternalOCLinEcore.g:23618:1: 'definition'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); 
@@ -69673,23 +69741,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_0_1_1"
-    // InternalOCLinEcore.g:23621:1: rule__AttributeCS__QualifiersAssignment_0_1_1 : ( ( 'static' ) ) ;
+    // InternalOCLinEcore.g:23633:1: rule__AttributeCS__QualifiersAssignment_0_1_1 : ( ( 'static' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23625:1: ( ( ( 'static' ) ) )
-            // InternalOCLinEcore.g:23626:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:23637:1: ( ( ( 'static' ) ) )
+            // InternalOCLinEcore.g:23638:1: ( ( 'static' ) )
             {
-            // InternalOCLinEcore.g:23626:1: ( ( 'static' ) )
-            // InternalOCLinEcore.g:23627:1: ( 'static' )
+            // InternalOCLinEcore.g:23638:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:23639:1: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_1_1_0()); 
             }
-            // InternalOCLinEcore.g:23628:1: ( 'static' )
-            // InternalOCLinEcore.g:23629:1: 'static'
+            // InternalOCLinEcore.g:23640:1: ( 'static' )
+            // InternalOCLinEcore.g:23641:1: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_1_1_0()); 
@@ -69726,17 +69794,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__NameAssignment_2"
-    // InternalOCLinEcore.g:23644:1: rule__AttributeCS__NameAssignment_2 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:23656:1: rule__AttributeCS__NameAssignment_2 : ( ruleUnrestrictedName ) ;
     public final void rule__AttributeCS__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23648:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:23649:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:23660:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:23661:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:23649:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:23650:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:23661:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:23662:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getNameUnrestrictedNameParserRuleCall_2_0()); 
@@ -69771,17 +69839,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__OwnedTypeAssignment_3_1"
-    // InternalOCLinEcore.g:23659:1: rule__AttributeCS__OwnedTypeAssignment_3_1 : ( ruleTypedMultiplicityRefCS ) ;
+    // InternalOCLinEcore.g:23671:1: rule__AttributeCS__OwnedTypeAssignment_3_1 : ( ruleTypedMultiplicityRefCS ) ;
     public final void rule__AttributeCS__OwnedTypeAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23663:1: ( ( ruleTypedMultiplicityRefCS ) )
-            // InternalOCLinEcore.g:23664:1: ( ruleTypedMultiplicityRefCS )
+            // InternalOCLinEcore.g:23675:1: ( ( ruleTypedMultiplicityRefCS ) )
+            // InternalOCLinEcore.g:23676:1: ( ruleTypedMultiplicityRefCS )
             {
-            // InternalOCLinEcore.g:23664:1: ( ruleTypedMultiplicityRefCS )
-            // InternalOCLinEcore.g:23665:1: ruleTypedMultiplicityRefCS
+            // InternalOCLinEcore.g:23676:1: ( ruleTypedMultiplicityRefCS )
+            // InternalOCLinEcore.g:23677:1: ruleTypedMultiplicityRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getOwnedTypeTypedMultiplicityRefCSParserRuleCall_3_1_0()); 
@@ -69816,17 +69884,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__DefaultAssignment_4_1"
-    // InternalOCLinEcore.g:23674:1: rule__AttributeCS__DefaultAssignment_4_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
+    // InternalOCLinEcore.g:23686:1: rule__AttributeCS__DefaultAssignment_4_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
     public final void rule__AttributeCS__DefaultAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23678:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
-            // InternalOCLinEcore.g:23679:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:23690:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
+            // InternalOCLinEcore.g:23691:1: ( RULE_SINGLE_QUOTED_STRING )
             {
-            // InternalOCLinEcore.g:23679:1: ( RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:23680:1: RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:23691:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:23692:1: RULE_SINGLE_QUOTED_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getDefaultSINGLE_QUOTED_STRINGTerminalRuleCall_4_1_0()); 
@@ -69857,23 +69925,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_0"
-    // InternalOCLinEcore.g:23689:1: rule__AttributeCS__QualifiersAssignment_5_1_0_0 : ( ( 'derived' ) ) ;
+    // InternalOCLinEcore.g:23701:1: rule__AttributeCS__QualifiersAssignment_5_1_0_0 : ( ( 'derived' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23693:1: ( ( ( 'derived' ) ) )
-            // InternalOCLinEcore.g:23694:1: ( ( 'derived' ) )
+            // InternalOCLinEcore.g:23705:1: ( ( ( 'derived' ) ) )
+            // InternalOCLinEcore.g:23706:1: ( ( 'derived' ) )
             {
-            // InternalOCLinEcore.g:23694:1: ( ( 'derived' ) )
-            // InternalOCLinEcore.g:23695:1: ( 'derived' )
+            // InternalOCLinEcore.g:23706:1: ( ( 'derived' ) )
+            // InternalOCLinEcore.g:23707:1: ( 'derived' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_0_0()); 
             }
-            // InternalOCLinEcore.g:23696:1: ( 'derived' )
-            // InternalOCLinEcore.g:23697:1: 'derived'
+            // InternalOCLinEcore.g:23708:1: ( 'derived' )
+            // InternalOCLinEcore.g:23709:1: 'derived'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_0_0()); 
@@ -69910,23 +69978,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_1"
-    // InternalOCLinEcore.g:23712:1: rule__AttributeCS__QualifiersAssignment_5_1_0_1 : ( ( '!derived' ) ) ;
+    // InternalOCLinEcore.g:23724:1: rule__AttributeCS__QualifiersAssignment_5_1_0_1 : ( ( '!derived' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23716:1: ( ( ( '!derived' ) ) )
-            // InternalOCLinEcore.g:23717:1: ( ( '!derived' ) )
+            // InternalOCLinEcore.g:23728:1: ( ( ( '!derived' ) ) )
+            // InternalOCLinEcore.g:23729:1: ( ( '!derived' ) )
             {
-            // InternalOCLinEcore.g:23717:1: ( ( '!derived' ) )
-            // InternalOCLinEcore.g:23718:1: ( '!derived' )
+            // InternalOCLinEcore.g:23729:1: ( ( '!derived' ) )
+            // InternalOCLinEcore.g:23730:1: ( '!derived' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_1_0()); 
             }
-            // InternalOCLinEcore.g:23719:1: ( '!derived' )
-            // InternalOCLinEcore.g:23720:1: '!derived'
+            // InternalOCLinEcore.g:23731:1: ( '!derived' )
+            // InternalOCLinEcore.g:23732:1: '!derived'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_1_0()); 
@@ -69963,23 +70031,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_2"
-    // InternalOCLinEcore.g:23735:1: rule__AttributeCS__QualifiersAssignment_5_1_0_2 : ( ( 'id' ) ) ;
+    // InternalOCLinEcore.g:23747:1: rule__AttributeCS__QualifiersAssignment_5_1_0_2 : ( ( 'id' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23739:1: ( ( ( 'id' ) ) )
-            // InternalOCLinEcore.g:23740:1: ( ( 'id' ) )
+            // InternalOCLinEcore.g:23751:1: ( ( ( 'id' ) ) )
+            // InternalOCLinEcore.g:23752:1: ( ( 'id' ) )
             {
-            // InternalOCLinEcore.g:23740:1: ( ( 'id' ) )
-            // InternalOCLinEcore.g:23741:1: ( 'id' )
+            // InternalOCLinEcore.g:23752:1: ( ( 'id' ) )
+            // InternalOCLinEcore.g:23753:1: ( 'id' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_2_0()); 
             }
-            // InternalOCLinEcore.g:23742:1: ( 'id' )
-            // InternalOCLinEcore.g:23743:1: 'id'
+            // InternalOCLinEcore.g:23754:1: ( 'id' )
+            // InternalOCLinEcore.g:23755:1: 'id'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_2_0()); 
@@ -70016,23 +70084,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_3"
-    // InternalOCLinEcore.g:23758:1: rule__AttributeCS__QualifiersAssignment_5_1_0_3 : ( ( '!id' ) ) ;
+    // InternalOCLinEcore.g:23770:1: rule__AttributeCS__QualifiersAssignment_5_1_0_3 : ( ( '!id' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23762:1: ( ( ( '!id' ) ) )
-            // InternalOCLinEcore.g:23763:1: ( ( '!id' ) )
+            // InternalOCLinEcore.g:23774:1: ( ( ( '!id' ) ) )
+            // InternalOCLinEcore.g:23775:1: ( ( '!id' ) )
             {
-            // InternalOCLinEcore.g:23763:1: ( ( '!id' ) )
-            // InternalOCLinEcore.g:23764:1: ( '!id' )
+            // InternalOCLinEcore.g:23775:1: ( ( '!id' ) )
+            // InternalOCLinEcore.g:23776:1: ( '!id' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_3_0()); 
             }
-            // InternalOCLinEcore.g:23765:1: ( '!id' )
-            // InternalOCLinEcore.g:23766:1: '!id'
+            // InternalOCLinEcore.g:23777:1: ( '!id' )
+            // InternalOCLinEcore.g:23778:1: '!id'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_3_0()); 
@@ -70069,23 +70137,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_4"
-    // InternalOCLinEcore.g:23781:1: rule__AttributeCS__QualifiersAssignment_5_1_0_4 : ( ( 'ordered' ) ) ;
+    // InternalOCLinEcore.g:23793:1: rule__AttributeCS__QualifiersAssignment_5_1_0_4 : ( ( 'ordered' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23785:1: ( ( ( 'ordered' ) ) )
-            // InternalOCLinEcore.g:23786:1: ( ( 'ordered' ) )
+            // InternalOCLinEcore.g:23797:1: ( ( ( 'ordered' ) ) )
+            // InternalOCLinEcore.g:23798:1: ( ( 'ordered' ) )
             {
-            // InternalOCLinEcore.g:23786:1: ( ( 'ordered' ) )
-            // InternalOCLinEcore.g:23787:1: ( 'ordered' )
+            // InternalOCLinEcore.g:23798:1: ( ( 'ordered' ) )
+            // InternalOCLinEcore.g:23799:1: ( 'ordered' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_4_0()); 
             }
-            // InternalOCLinEcore.g:23788:1: ( 'ordered' )
-            // InternalOCLinEcore.g:23789:1: 'ordered'
+            // InternalOCLinEcore.g:23800:1: ( 'ordered' )
+            // InternalOCLinEcore.g:23801:1: 'ordered'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_4_0()); 
@@ -70122,23 +70190,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_5"
-    // InternalOCLinEcore.g:23804:1: rule__AttributeCS__QualifiersAssignment_5_1_0_5 : ( ( '!ordered' ) ) ;
+    // InternalOCLinEcore.g:23816:1: rule__AttributeCS__QualifiersAssignment_5_1_0_5 : ( ( '!ordered' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23808:1: ( ( ( '!ordered' ) ) )
-            // InternalOCLinEcore.g:23809:1: ( ( '!ordered' ) )
+            // InternalOCLinEcore.g:23820:1: ( ( ( '!ordered' ) ) )
+            // InternalOCLinEcore.g:23821:1: ( ( '!ordered' ) )
             {
-            // InternalOCLinEcore.g:23809:1: ( ( '!ordered' ) )
-            // InternalOCLinEcore.g:23810:1: ( '!ordered' )
+            // InternalOCLinEcore.g:23821:1: ( ( '!ordered' ) )
+            // InternalOCLinEcore.g:23822:1: ( '!ordered' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_5_0()); 
             }
-            // InternalOCLinEcore.g:23811:1: ( '!ordered' )
-            // InternalOCLinEcore.g:23812:1: '!ordered'
+            // InternalOCLinEcore.g:23823:1: ( '!ordered' )
+            // InternalOCLinEcore.g:23824:1: '!ordered'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_5_0()); 
@@ -70175,23 +70243,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_6"
-    // InternalOCLinEcore.g:23827:1: rule__AttributeCS__QualifiersAssignment_5_1_0_6 : ( ( 'readonly' ) ) ;
+    // InternalOCLinEcore.g:23839:1: rule__AttributeCS__QualifiersAssignment_5_1_0_6 : ( ( 'readonly' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23831:1: ( ( ( 'readonly' ) ) )
-            // InternalOCLinEcore.g:23832:1: ( ( 'readonly' ) )
+            // InternalOCLinEcore.g:23843:1: ( ( ( 'readonly' ) ) )
+            // InternalOCLinEcore.g:23844:1: ( ( 'readonly' ) )
             {
-            // InternalOCLinEcore.g:23832:1: ( ( 'readonly' ) )
-            // InternalOCLinEcore.g:23833:1: ( 'readonly' )
+            // InternalOCLinEcore.g:23844:1: ( ( 'readonly' ) )
+            // InternalOCLinEcore.g:23845:1: ( 'readonly' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_6_0()); 
             }
-            // InternalOCLinEcore.g:23834:1: ( 'readonly' )
-            // InternalOCLinEcore.g:23835:1: 'readonly'
+            // InternalOCLinEcore.g:23846:1: ( 'readonly' )
+            // InternalOCLinEcore.g:23847:1: 'readonly'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_6_0()); 
@@ -70228,23 +70296,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_7"
-    // InternalOCLinEcore.g:23850:1: rule__AttributeCS__QualifiersAssignment_5_1_0_7 : ( ( '!readonly' ) ) ;
+    // InternalOCLinEcore.g:23862:1: rule__AttributeCS__QualifiersAssignment_5_1_0_7 : ( ( '!readonly' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23854:1: ( ( ( '!readonly' ) ) )
-            // InternalOCLinEcore.g:23855:1: ( ( '!readonly' ) )
+            // InternalOCLinEcore.g:23866:1: ( ( ( '!readonly' ) ) )
+            // InternalOCLinEcore.g:23867:1: ( ( '!readonly' ) )
             {
-            // InternalOCLinEcore.g:23855:1: ( ( '!readonly' ) )
-            // InternalOCLinEcore.g:23856:1: ( '!readonly' )
+            // InternalOCLinEcore.g:23867:1: ( ( '!readonly' ) )
+            // InternalOCLinEcore.g:23868:1: ( '!readonly' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_7_0()); 
             }
-            // InternalOCLinEcore.g:23857:1: ( '!readonly' )
-            // InternalOCLinEcore.g:23858:1: '!readonly'
+            // InternalOCLinEcore.g:23869:1: ( '!readonly' )
+            // InternalOCLinEcore.g:23870:1: '!readonly'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_7_0()); 
@@ -70281,23 +70349,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_8"
-    // InternalOCLinEcore.g:23873:1: rule__AttributeCS__QualifiersAssignment_5_1_0_8 : ( ( 'transient' ) ) ;
+    // InternalOCLinEcore.g:23885:1: rule__AttributeCS__QualifiersAssignment_5_1_0_8 : ( ( 'transient' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23877:1: ( ( ( 'transient' ) ) )
-            // InternalOCLinEcore.g:23878:1: ( ( 'transient' ) )
+            // InternalOCLinEcore.g:23889:1: ( ( ( 'transient' ) ) )
+            // InternalOCLinEcore.g:23890:1: ( ( 'transient' ) )
             {
-            // InternalOCLinEcore.g:23878:1: ( ( 'transient' ) )
-            // InternalOCLinEcore.g:23879:1: ( 'transient' )
+            // InternalOCLinEcore.g:23890:1: ( ( 'transient' ) )
+            // InternalOCLinEcore.g:23891:1: ( 'transient' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_8_0()); 
             }
-            // InternalOCLinEcore.g:23880:1: ( 'transient' )
-            // InternalOCLinEcore.g:23881:1: 'transient'
+            // InternalOCLinEcore.g:23892:1: ( 'transient' )
+            // InternalOCLinEcore.g:23893:1: 'transient'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_8_0()); 
@@ -70334,23 +70402,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_9"
-    // InternalOCLinEcore.g:23896:1: rule__AttributeCS__QualifiersAssignment_5_1_0_9 : ( ( '!transient' ) ) ;
+    // InternalOCLinEcore.g:23908:1: rule__AttributeCS__QualifiersAssignment_5_1_0_9 : ( ( '!transient' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23900:1: ( ( ( '!transient' ) ) )
-            // InternalOCLinEcore.g:23901:1: ( ( '!transient' ) )
+            // InternalOCLinEcore.g:23912:1: ( ( ( '!transient' ) ) )
+            // InternalOCLinEcore.g:23913:1: ( ( '!transient' ) )
             {
-            // InternalOCLinEcore.g:23901:1: ( ( '!transient' ) )
-            // InternalOCLinEcore.g:23902:1: ( '!transient' )
+            // InternalOCLinEcore.g:23913:1: ( ( '!transient' ) )
+            // InternalOCLinEcore.g:23914:1: ( '!transient' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_9_0()); 
             }
-            // InternalOCLinEcore.g:23903:1: ( '!transient' )
-            // InternalOCLinEcore.g:23904:1: '!transient'
+            // InternalOCLinEcore.g:23915:1: ( '!transient' )
+            // InternalOCLinEcore.g:23916:1: '!transient'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_9_0()); 
@@ -70387,23 +70455,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_10"
-    // InternalOCLinEcore.g:23919:1: rule__AttributeCS__QualifiersAssignment_5_1_0_10 : ( ( 'unique' ) ) ;
+    // InternalOCLinEcore.g:23931:1: rule__AttributeCS__QualifiersAssignment_5_1_0_10 : ( ( 'unique' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23923:1: ( ( ( 'unique' ) ) )
-            // InternalOCLinEcore.g:23924:1: ( ( 'unique' ) )
+            // InternalOCLinEcore.g:23935:1: ( ( ( 'unique' ) ) )
+            // InternalOCLinEcore.g:23936:1: ( ( 'unique' ) )
             {
-            // InternalOCLinEcore.g:23924:1: ( ( 'unique' ) )
-            // InternalOCLinEcore.g:23925:1: ( 'unique' )
+            // InternalOCLinEcore.g:23936:1: ( ( 'unique' ) )
+            // InternalOCLinEcore.g:23937:1: ( 'unique' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_10_0()); 
             }
-            // InternalOCLinEcore.g:23926:1: ( 'unique' )
-            // InternalOCLinEcore.g:23927:1: 'unique'
+            // InternalOCLinEcore.g:23938:1: ( 'unique' )
+            // InternalOCLinEcore.g:23939:1: 'unique'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_10_0()); 
@@ -70440,23 +70508,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_11"
-    // InternalOCLinEcore.g:23942:1: rule__AttributeCS__QualifiersAssignment_5_1_0_11 : ( ( '!unique' ) ) ;
+    // InternalOCLinEcore.g:23954:1: rule__AttributeCS__QualifiersAssignment_5_1_0_11 : ( ( '!unique' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_11() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23946:1: ( ( ( '!unique' ) ) )
-            // InternalOCLinEcore.g:23947:1: ( ( '!unique' ) )
+            // InternalOCLinEcore.g:23958:1: ( ( ( '!unique' ) ) )
+            // InternalOCLinEcore.g:23959:1: ( ( '!unique' ) )
             {
-            // InternalOCLinEcore.g:23947:1: ( ( '!unique' ) )
-            // InternalOCLinEcore.g:23948:1: ( '!unique' )
+            // InternalOCLinEcore.g:23959:1: ( ( '!unique' ) )
+            // InternalOCLinEcore.g:23960:1: ( '!unique' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_11_0()); 
             }
-            // InternalOCLinEcore.g:23949:1: ( '!unique' )
-            // InternalOCLinEcore.g:23950:1: '!unique'
+            // InternalOCLinEcore.g:23961:1: ( '!unique' )
+            // InternalOCLinEcore.g:23962:1: '!unique'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_11_0()); 
@@ -70493,23 +70561,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_12"
-    // InternalOCLinEcore.g:23965:1: rule__AttributeCS__QualifiersAssignment_5_1_0_12 : ( ( 'unsettable' ) ) ;
+    // InternalOCLinEcore.g:23977:1: rule__AttributeCS__QualifiersAssignment_5_1_0_12 : ( ( 'unsettable' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_12() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23969:1: ( ( ( 'unsettable' ) ) )
-            // InternalOCLinEcore.g:23970:1: ( ( 'unsettable' ) )
+            // InternalOCLinEcore.g:23981:1: ( ( ( 'unsettable' ) ) )
+            // InternalOCLinEcore.g:23982:1: ( ( 'unsettable' ) )
             {
-            // InternalOCLinEcore.g:23970:1: ( ( 'unsettable' ) )
-            // InternalOCLinEcore.g:23971:1: ( 'unsettable' )
+            // InternalOCLinEcore.g:23982:1: ( ( 'unsettable' ) )
+            // InternalOCLinEcore.g:23983:1: ( 'unsettable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_12_0()); 
             }
-            // InternalOCLinEcore.g:23972:1: ( 'unsettable' )
-            // InternalOCLinEcore.g:23973:1: 'unsettable'
+            // InternalOCLinEcore.g:23984:1: ( 'unsettable' )
+            // InternalOCLinEcore.g:23985:1: 'unsettable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_12_0()); 
@@ -70546,23 +70614,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_13"
-    // InternalOCLinEcore.g:23988:1: rule__AttributeCS__QualifiersAssignment_5_1_0_13 : ( ( '!unsettable' ) ) ;
+    // InternalOCLinEcore.g:24000:1: rule__AttributeCS__QualifiersAssignment_5_1_0_13 : ( ( '!unsettable' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_13() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:23992:1: ( ( ( '!unsettable' ) ) )
-            // InternalOCLinEcore.g:23993:1: ( ( '!unsettable' ) )
+            // InternalOCLinEcore.g:24004:1: ( ( ( '!unsettable' ) ) )
+            // InternalOCLinEcore.g:24005:1: ( ( '!unsettable' ) )
             {
-            // InternalOCLinEcore.g:23993:1: ( ( '!unsettable' ) )
-            // InternalOCLinEcore.g:23994:1: ( '!unsettable' )
+            // InternalOCLinEcore.g:24005:1: ( ( '!unsettable' ) )
+            // InternalOCLinEcore.g:24006:1: ( '!unsettable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_13_0()); 
             }
-            // InternalOCLinEcore.g:23995:1: ( '!unsettable' )
-            // InternalOCLinEcore.g:23996:1: '!unsettable'
+            // InternalOCLinEcore.g:24007:1: ( '!unsettable' )
+            // InternalOCLinEcore.g:24008:1: '!unsettable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_13_0()); 
@@ -70599,23 +70667,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_14"
-    // InternalOCLinEcore.g:24011:1: rule__AttributeCS__QualifiersAssignment_5_1_0_14 : ( ( 'volatile' ) ) ;
+    // InternalOCLinEcore.g:24023:1: rule__AttributeCS__QualifiersAssignment_5_1_0_14 : ( ( 'volatile' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_14() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24015:1: ( ( ( 'volatile' ) ) )
-            // InternalOCLinEcore.g:24016:1: ( ( 'volatile' ) )
+            // InternalOCLinEcore.g:24027:1: ( ( ( 'volatile' ) ) )
+            // InternalOCLinEcore.g:24028:1: ( ( 'volatile' ) )
             {
-            // InternalOCLinEcore.g:24016:1: ( ( 'volatile' ) )
-            // InternalOCLinEcore.g:24017:1: ( 'volatile' )
+            // InternalOCLinEcore.g:24028:1: ( ( 'volatile' ) )
+            // InternalOCLinEcore.g:24029:1: ( 'volatile' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_14_0()); 
             }
-            // InternalOCLinEcore.g:24018:1: ( 'volatile' )
-            // InternalOCLinEcore.g:24019:1: 'volatile'
+            // InternalOCLinEcore.g:24030:1: ( 'volatile' )
+            // InternalOCLinEcore.g:24031:1: 'volatile'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_14_0()); 
@@ -70652,23 +70720,23 @@
 
 
     // $ANTLR start "rule__AttributeCS__QualifiersAssignment_5_1_0_15"
-    // InternalOCLinEcore.g:24034:1: rule__AttributeCS__QualifiersAssignment_5_1_0_15 : ( ( '!volatile' ) ) ;
+    // InternalOCLinEcore.g:24046:1: rule__AttributeCS__QualifiersAssignment_5_1_0_15 : ( ( '!volatile' ) ) ;
     public final void rule__AttributeCS__QualifiersAssignment_5_1_0_15() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24038:1: ( ( ( '!volatile' ) ) )
-            // InternalOCLinEcore.g:24039:1: ( ( '!volatile' ) )
+            // InternalOCLinEcore.g:24050:1: ( ( ( '!volatile' ) ) )
+            // InternalOCLinEcore.g:24051:1: ( ( '!volatile' ) )
             {
-            // InternalOCLinEcore.g:24039:1: ( ( '!volatile' ) )
-            // InternalOCLinEcore.g:24040:1: ( '!volatile' )
+            // InternalOCLinEcore.g:24051:1: ( ( '!volatile' ) )
+            // InternalOCLinEcore.g:24052:1: ( '!volatile' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_15_0()); 
             }
-            // InternalOCLinEcore.g:24041:1: ( '!volatile' )
-            // InternalOCLinEcore.g:24042:1: '!volatile'
+            // InternalOCLinEcore.g:24053:1: ( '!volatile' )
+            // InternalOCLinEcore.g:24054:1: '!volatile'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_15_0()); 
@@ -70705,17 +70773,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0"
-    // InternalOCLinEcore.g:24057:1: rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:24069:1: rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 : ( ruleAnnotationElementCS ) ;
     public final void rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24061:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:24062:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24073:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:24074:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:24062:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:24063:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:24074:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24075:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_6_0_1_0_0()); 
@@ -70750,17 +70818,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3"
-    // InternalOCLinEcore.g:24072:1: rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:24084:1: rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3 : ( ruleSpecificationCS ) ;
     public final void rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24076:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:24077:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:24088:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:24089:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:24077:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:24078:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:24089:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:24090:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getOwnedDefaultExpressionsSpecificationCSParserRuleCall_6_0_1_1_3_0()); 
@@ -70795,17 +70863,17 @@
 
 
     // $ANTLR start "rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3"
-    // InternalOCLinEcore.g:24087:1: rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:24099:1: rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3 : ( ruleSpecificationCS ) ;
     public final void rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24091:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:24092:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:24103:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:24104:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:24092:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:24093:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:24104:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:24105:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeCSAccess().getOwnedDefaultExpressionsSpecificationCSParserRuleCall_6_0_1_2_3_0()); 
@@ -70840,23 +70908,23 @@
 
 
     // $ANTLR start "rule__DataTypeCS__IsPrimitiveAssignment_0"
-    // InternalOCLinEcore.g:24102:1: rule__DataTypeCS__IsPrimitiveAssignment_0 : ( ( 'primitive' ) ) ;
+    // InternalOCLinEcore.g:24114:1: rule__DataTypeCS__IsPrimitiveAssignment_0 : ( ( 'primitive' ) ) ;
     public final void rule__DataTypeCS__IsPrimitiveAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24106:1: ( ( ( 'primitive' ) ) )
-            // InternalOCLinEcore.g:24107:1: ( ( 'primitive' ) )
+            // InternalOCLinEcore.g:24118:1: ( ( ( 'primitive' ) ) )
+            // InternalOCLinEcore.g:24119:1: ( ( 'primitive' ) )
             {
-            // InternalOCLinEcore.g:24107:1: ( ( 'primitive' ) )
-            // InternalOCLinEcore.g:24108:1: ( 'primitive' )
+            // InternalOCLinEcore.g:24119:1: ( ( 'primitive' ) )
+            // InternalOCLinEcore.g:24120:1: ( 'primitive' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getIsPrimitivePrimitiveKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:24109:1: ( 'primitive' )
-            // InternalOCLinEcore.g:24110:1: 'primitive'
+            // InternalOCLinEcore.g:24121:1: ( 'primitive' )
+            // InternalOCLinEcore.g:24122:1: 'primitive'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getIsPrimitivePrimitiveKeyword_0_0()); 
@@ -70893,17 +70961,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__NameAssignment_2"
-    // InternalOCLinEcore.g:24125:1: rule__DataTypeCS__NameAssignment_2 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:24137:1: rule__DataTypeCS__NameAssignment_2 : ( ruleUnrestrictedName ) ;
     public final void rule__DataTypeCS__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24129:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:24130:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24141:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:24142:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:24130:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:24131:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:24142:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24143:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getNameUnrestrictedNameParserRuleCall_2_0()); 
@@ -70938,17 +71006,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__OwnedSignatureAssignment_3"
-    // InternalOCLinEcore.g:24140:1: rule__DataTypeCS__OwnedSignatureAssignment_3 : ( ruleTemplateSignatureCS ) ;
+    // InternalOCLinEcore.g:24152:1: rule__DataTypeCS__OwnedSignatureAssignment_3 : ( ruleTemplateSignatureCS ) ;
     public final void rule__DataTypeCS__OwnedSignatureAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24144:1: ( ( ruleTemplateSignatureCS ) )
-            // InternalOCLinEcore.g:24145:1: ( ruleTemplateSignatureCS )
+            // InternalOCLinEcore.g:24156:1: ( ( ruleTemplateSignatureCS ) )
+            // InternalOCLinEcore.g:24157:1: ( ruleTemplateSignatureCS )
             {
-            // InternalOCLinEcore.g:24145:1: ( ruleTemplateSignatureCS )
-            // InternalOCLinEcore.g:24146:1: ruleTemplateSignatureCS
+            // InternalOCLinEcore.g:24157:1: ( ruleTemplateSignatureCS )
+            // InternalOCLinEcore.g:24158:1: ruleTemplateSignatureCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getOwnedSignatureTemplateSignatureCSParserRuleCall_3_0()); 
@@ -70983,17 +71051,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__InstanceClassNameAssignment_4_1"
-    // InternalOCLinEcore.g:24155:1: rule__DataTypeCS__InstanceClassNameAssignment_4_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
+    // InternalOCLinEcore.g:24167:1: rule__DataTypeCS__InstanceClassNameAssignment_4_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
     public final void rule__DataTypeCS__InstanceClassNameAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24159:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
-            // InternalOCLinEcore.g:24160:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:24171:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
+            // InternalOCLinEcore.g:24172:1: ( RULE_SINGLE_QUOTED_STRING )
             {
-            // InternalOCLinEcore.g:24160:1: ( RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:24161:1: RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:24172:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:24173:1: RULE_SINGLE_QUOTED_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getInstanceClassNameSINGLE_QUOTED_STRINGTerminalRuleCall_4_1_0()); 
@@ -71024,23 +71092,23 @@
 
 
     // $ANTLR start "rule__DataTypeCS__IsSerializableAssignment_5_1_0"
-    // InternalOCLinEcore.g:24170:1: rule__DataTypeCS__IsSerializableAssignment_5_1_0 : ( ( 'serializable' ) ) ;
+    // InternalOCLinEcore.g:24182:1: rule__DataTypeCS__IsSerializableAssignment_5_1_0 : ( ( 'serializable' ) ) ;
     public final void rule__DataTypeCS__IsSerializableAssignment_5_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24174:1: ( ( ( 'serializable' ) ) )
-            // InternalOCLinEcore.g:24175:1: ( ( 'serializable' ) )
+            // InternalOCLinEcore.g:24186:1: ( ( ( 'serializable' ) ) )
+            // InternalOCLinEcore.g:24187:1: ( ( 'serializable' ) )
             {
-            // InternalOCLinEcore.g:24175:1: ( ( 'serializable' ) )
-            // InternalOCLinEcore.g:24176:1: ( 'serializable' )
+            // InternalOCLinEcore.g:24187:1: ( ( 'serializable' ) )
+            // InternalOCLinEcore.g:24188:1: ( 'serializable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getIsSerializableSerializableKeyword_5_1_0_0()); 
             }
-            // InternalOCLinEcore.g:24177:1: ( 'serializable' )
-            // InternalOCLinEcore.g:24178:1: 'serializable'
+            // InternalOCLinEcore.g:24189:1: ( 'serializable' )
+            // InternalOCLinEcore.g:24190:1: 'serializable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getIsSerializableSerializableKeyword_5_1_0_0()); 
@@ -71077,17 +71145,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0"
-    // InternalOCLinEcore.g:24193:1: rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:24205:1: rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 : ( ruleAnnotationElementCS ) ;
     public final void rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24197:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:24198:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24209:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:24210:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:24198:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:24199:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:24210:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24211:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_6_0_1_0_0()); 
@@ -71122,17 +71190,17 @@
 
 
     // $ANTLR start "rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1"
-    // InternalOCLinEcore.g:24208:1: rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 : ( ruleInvariantConstraintCS ) ;
+    // InternalOCLinEcore.g:24220:1: rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 : ( ruleInvariantConstraintCS ) ;
     public final void rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24212:1: ( ( ruleInvariantConstraintCS ) )
-            // InternalOCLinEcore.g:24213:1: ( ruleInvariantConstraintCS )
+            // InternalOCLinEcore.g:24224:1: ( ( ruleInvariantConstraintCS ) )
+            // InternalOCLinEcore.g:24225:1: ( ruleInvariantConstraintCS )
             {
-            // InternalOCLinEcore.g:24213:1: ( ruleInvariantConstraintCS )
-            // InternalOCLinEcore.g:24214:1: ruleInvariantConstraintCS
+            // InternalOCLinEcore.g:24225:1: ( ruleInvariantConstraintCS )
+            // InternalOCLinEcore.g:24226:1: ruleInvariantConstraintCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeCSAccess().getOwnedConstraintsInvariantConstraintCSParserRuleCall_6_0_1_1_0()); 
@@ -71167,23 +71235,23 @@
 
 
     // $ANTLR start "rule__DetailCS__NameAssignment_0"
-    // InternalOCLinEcore.g:24223:1: rule__DetailCS__NameAssignment_0 : ( ( rule__DetailCS__NameAlternatives_0_0 ) ) ;
+    // InternalOCLinEcore.g:24235:1: rule__DetailCS__NameAssignment_0 : ( ( rule__DetailCS__NameAlternatives_0_0 ) ) ;
     public final void rule__DetailCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24227:1: ( ( ( rule__DetailCS__NameAlternatives_0_0 ) ) )
-            // InternalOCLinEcore.g:24228:1: ( ( rule__DetailCS__NameAlternatives_0_0 ) )
+            // InternalOCLinEcore.g:24239:1: ( ( ( rule__DetailCS__NameAlternatives_0_0 ) ) )
+            // InternalOCLinEcore.g:24240:1: ( ( rule__DetailCS__NameAlternatives_0_0 ) )
             {
-            // InternalOCLinEcore.g:24228:1: ( ( rule__DetailCS__NameAlternatives_0_0 ) )
-            // InternalOCLinEcore.g:24229:1: ( rule__DetailCS__NameAlternatives_0_0 )
+            // InternalOCLinEcore.g:24240:1: ( ( rule__DetailCS__NameAlternatives_0_0 ) )
+            // InternalOCLinEcore.g:24241:1: ( rule__DetailCS__NameAlternatives_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDetailCSAccess().getNameAlternatives_0_0()); 
             }
-            // InternalOCLinEcore.g:24230:1: ( rule__DetailCS__NameAlternatives_0_0 )
-            // InternalOCLinEcore.g:24230:2: rule__DetailCS__NameAlternatives_0_0
+            // InternalOCLinEcore.g:24242:1: ( rule__DetailCS__NameAlternatives_0_0 )
+            // InternalOCLinEcore.g:24242:2: rule__DetailCS__NameAlternatives_0_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DetailCS__NameAlternatives_0_0();
@@ -71218,23 +71286,23 @@
 
 
     // $ANTLR start "rule__DetailCS__ValuesAssignment_2"
-    // InternalOCLinEcore.g:24239:1: rule__DetailCS__ValuesAssignment_2 : ( ( rule__DetailCS__ValuesAlternatives_2_0 ) ) ;
+    // InternalOCLinEcore.g:24251:1: rule__DetailCS__ValuesAssignment_2 : ( ( rule__DetailCS__ValuesAlternatives_2_0 ) ) ;
     public final void rule__DetailCS__ValuesAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24243:1: ( ( ( rule__DetailCS__ValuesAlternatives_2_0 ) ) )
-            // InternalOCLinEcore.g:24244:1: ( ( rule__DetailCS__ValuesAlternatives_2_0 ) )
+            // InternalOCLinEcore.g:24255:1: ( ( ( rule__DetailCS__ValuesAlternatives_2_0 ) ) )
+            // InternalOCLinEcore.g:24256:1: ( ( rule__DetailCS__ValuesAlternatives_2_0 ) )
             {
-            // InternalOCLinEcore.g:24244:1: ( ( rule__DetailCS__ValuesAlternatives_2_0 ) )
-            // InternalOCLinEcore.g:24245:1: ( rule__DetailCS__ValuesAlternatives_2_0 )
+            // InternalOCLinEcore.g:24256:1: ( ( rule__DetailCS__ValuesAlternatives_2_0 ) )
+            // InternalOCLinEcore.g:24257:1: ( rule__DetailCS__ValuesAlternatives_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDetailCSAccess().getValuesAlternatives_2_0()); 
             }
-            // InternalOCLinEcore.g:24246:1: ( rule__DetailCS__ValuesAlternatives_2_0 )
-            // InternalOCLinEcore.g:24246:2: rule__DetailCS__ValuesAlternatives_2_0
+            // InternalOCLinEcore.g:24258:1: ( rule__DetailCS__ValuesAlternatives_2_0 )
+            // InternalOCLinEcore.g:24258:2: rule__DetailCS__ValuesAlternatives_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__DetailCS__ValuesAlternatives_2_0();
@@ -71269,17 +71337,17 @@
 
 
     // $ANTLR start "rule__DocumentationCS__ValueAssignment_2"
-    // InternalOCLinEcore.g:24255:1: rule__DocumentationCS__ValueAssignment_2 : ( RULE_SINGLE_QUOTED_STRING ) ;
+    // InternalOCLinEcore.g:24267:1: rule__DocumentationCS__ValueAssignment_2 : ( RULE_SINGLE_QUOTED_STRING ) ;
     public final void rule__DocumentationCS__ValueAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24259:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
-            // InternalOCLinEcore.g:24260:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:24271:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
+            // InternalOCLinEcore.g:24272:1: ( RULE_SINGLE_QUOTED_STRING )
             {
-            // InternalOCLinEcore.g:24260:1: ( RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:24261:1: RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:24272:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:24273:1: RULE_SINGLE_QUOTED_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getValueSINGLE_QUOTED_STRINGTerminalRuleCall_2_0()); 
@@ -71310,17 +71378,17 @@
 
 
     // $ANTLR start "rule__DocumentationCS__OwnedDetailsAssignment_3_1"
-    // InternalOCLinEcore.g:24270:1: rule__DocumentationCS__OwnedDetailsAssignment_3_1 : ( ruleDetailCS ) ;
+    // InternalOCLinEcore.g:24282:1: rule__DocumentationCS__OwnedDetailsAssignment_3_1 : ( ruleDetailCS ) ;
     public final void rule__DocumentationCS__OwnedDetailsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24274:1: ( ( ruleDetailCS ) )
-            // InternalOCLinEcore.g:24275:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:24286:1: ( ( ruleDetailCS ) )
+            // InternalOCLinEcore.g:24287:1: ( ruleDetailCS )
             {
-            // InternalOCLinEcore.g:24275:1: ( ruleDetailCS )
-            // InternalOCLinEcore.g:24276:1: ruleDetailCS
+            // InternalOCLinEcore.g:24287:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:24288:1: ruleDetailCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getOwnedDetailsDetailCSParserRuleCall_3_1_0()); 
@@ -71355,17 +71423,17 @@
 
 
     // $ANTLR start "rule__DocumentationCS__OwnedDetailsAssignment_3_2_1"
-    // InternalOCLinEcore.g:24285:1: rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 : ( ruleDetailCS ) ;
+    // InternalOCLinEcore.g:24297:1: rule__DocumentationCS__OwnedDetailsAssignment_3_2_1 : ( ruleDetailCS ) ;
     public final void rule__DocumentationCS__OwnedDetailsAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24289:1: ( ( ruleDetailCS ) )
-            // InternalOCLinEcore.g:24290:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:24301:1: ( ( ruleDetailCS ) )
+            // InternalOCLinEcore.g:24302:1: ( ruleDetailCS )
             {
-            // InternalOCLinEcore.g:24290:1: ( ruleDetailCS )
-            // InternalOCLinEcore.g:24291:1: ruleDetailCS
+            // InternalOCLinEcore.g:24302:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:24303:1: ruleDetailCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDocumentationCSAccess().getOwnedDetailsDetailCSParserRuleCall_3_2_1_0()); 
@@ -71400,17 +71468,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__NameAssignment_1"
-    // InternalOCLinEcore.g:24300:1: rule__EnumerationCS__NameAssignment_1 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:24312:1: rule__EnumerationCS__NameAssignment_1 : ( ruleUnrestrictedName ) ;
     public final void rule__EnumerationCS__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24304:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:24305:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24316:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:24317:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:24305:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:24306:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:24317:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24318:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getNameUnrestrictedNameParserRuleCall_1_0()); 
@@ -71445,17 +71513,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__OwnedSignatureAssignment_2"
-    // InternalOCLinEcore.g:24315:1: rule__EnumerationCS__OwnedSignatureAssignment_2 : ( ruleTemplateSignatureCS ) ;
+    // InternalOCLinEcore.g:24327:1: rule__EnumerationCS__OwnedSignatureAssignment_2 : ( ruleTemplateSignatureCS ) ;
     public final void rule__EnumerationCS__OwnedSignatureAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24319:1: ( ( ruleTemplateSignatureCS ) )
-            // InternalOCLinEcore.g:24320:1: ( ruleTemplateSignatureCS )
+            // InternalOCLinEcore.g:24331:1: ( ( ruleTemplateSignatureCS ) )
+            // InternalOCLinEcore.g:24332:1: ( ruleTemplateSignatureCS )
             {
-            // InternalOCLinEcore.g:24320:1: ( ruleTemplateSignatureCS )
-            // InternalOCLinEcore.g:24321:1: ruleTemplateSignatureCS
+            // InternalOCLinEcore.g:24332:1: ( ruleTemplateSignatureCS )
+            // InternalOCLinEcore.g:24333:1: ruleTemplateSignatureCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getOwnedSignatureTemplateSignatureCSParserRuleCall_2_0()); 
@@ -71490,17 +71558,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__InstanceClassNameAssignment_3_1"
-    // InternalOCLinEcore.g:24330:1: rule__EnumerationCS__InstanceClassNameAssignment_3_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
+    // InternalOCLinEcore.g:24342:1: rule__EnumerationCS__InstanceClassNameAssignment_3_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
     public final void rule__EnumerationCS__InstanceClassNameAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24334:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
-            // InternalOCLinEcore.g:24335:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:24346:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
+            // InternalOCLinEcore.g:24347:1: ( RULE_SINGLE_QUOTED_STRING )
             {
-            // InternalOCLinEcore.g:24335:1: ( RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:24336:1: RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:24347:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:24348:1: RULE_SINGLE_QUOTED_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getInstanceClassNameSINGLE_QUOTED_STRINGTerminalRuleCall_3_1_0()); 
@@ -71531,23 +71599,23 @@
 
 
     // $ANTLR start "rule__EnumerationCS__IsSerializableAssignment_4_1_0"
-    // InternalOCLinEcore.g:24345:1: rule__EnumerationCS__IsSerializableAssignment_4_1_0 : ( ( 'serializable' ) ) ;
+    // InternalOCLinEcore.g:24357:1: rule__EnumerationCS__IsSerializableAssignment_4_1_0 : ( ( 'serializable' ) ) ;
     public final void rule__EnumerationCS__IsSerializableAssignment_4_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24349:1: ( ( ( 'serializable' ) ) )
-            // InternalOCLinEcore.g:24350:1: ( ( 'serializable' ) )
+            // InternalOCLinEcore.g:24361:1: ( ( ( 'serializable' ) ) )
+            // InternalOCLinEcore.g:24362:1: ( ( 'serializable' ) )
             {
-            // InternalOCLinEcore.g:24350:1: ( ( 'serializable' ) )
-            // InternalOCLinEcore.g:24351:1: ( 'serializable' )
+            // InternalOCLinEcore.g:24362:1: ( ( 'serializable' ) )
+            // InternalOCLinEcore.g:24363:1: ( 'serializable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getIsSerializableSerializableKeyword_4_1_0_0()); 
             }
-            // InternalOCLinEcore.g:24352:1: ( 'serializable' )
-            // InternalOCLinEcore.g:24353:1: 'serializable'
+            // InternalOCLinEcore.g:24364:1: ( 'serializable' )
+            // InternalOCLinEcore.g:24365:1: 'serializable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getIsSerializableSerializableKeyword_4_1_0_0()); 
@@ -71584,17 +71652,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0"
-    // InternalOCLinEcore.g:24368:1: rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:24380:1: rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 : ( ruleAnnotationElementCS ) ;
     public final void rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24372:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:24373:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24384:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:24385:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:24373:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:24374:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:24385:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24386:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_5_0_1_0_0()); 
@@ -71629,17 +71697,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1"
-    // InternalOCLinEcore.g:24383:1: rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 : ( ruleEnumerationLiteralCS ) ;
+    // InternalOCLinEcore.g:24395:1: rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 : ( ruleEnumerationLiteralCS ) ;
     public final void rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24387:1: ( ( ruleEnumerationLiteralCS ) )
-            // InternalOCLinEcore.g:24388:1: ( ruleEnumerationLiteralCS )
+            // InternalOCLinEcore.g:24399:1: ( ( ruleEnumerationLiteralCS ) )
+            // InternalOCLinEcore.g:24400:1: ( ruleEnumerationLiteralCS )
             {
-            // InternalOCLinEcore.g:24388:1: ( ruleEnumerationLiteralCS )
-            // InternalOCLinEcore.g:24389:1: ruleEnumerationLiteralCS
+            // InternalOCLinEcore.g:24400:1: ( ruleEnumerationLiteralCS )
+            // InternalOCLinEcore.g:24401:1: ruleEnumerationLiteralCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getOwnedLiteralsEnumerationLiteralCSParserRuleCall_5_0_1_1_0()); 
@@ -71674,17 +71742,17 @@
 
 
     // $ANTLR start "rule__EnumerationCS__OwnedConstraintsAssignment_5_0_1_2"
-    // InternalOCLinEcore.g:24398:1: rule__EnumerationCS__OwnedConstraintsAssignment_5_0_1_2 : ( ruleInvariantConstraintCS ) ;
+    // InternalOCLinEcore.g:24410:1: rule__EnumerationCS__OwnedConstraintsAssignment_5_0_1_2 : ( ruleInvariantConstraintCS ) ;
     public final void rule__EnumerationCS__OwnedConstraintsAssignment_5_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24402:1: ( ( ruleInvariantConstraintCS ) )
-            // InternalOCLinEcore.g:24403:1: ( ruleInvariantConstraintCS )
+            // InternalOCLinEcore.g:24414:1: ( ( ruleInvariantConstraintCS ) )
+            // InternalOCLinEcore.g:24415:1: ( ruleInvariantConstraintCS )
             {
-            // InternalOCLinEcore.g:24403:1: ( ruleInvariantConstraintCS )
-            // InternalOCLinEcore.g:24404:1: ruleInvariantConstraintCS
+            // InternalOCLinEcore.g:24415:1: ( ruleInvariantConstraintCS )
+            // InternalOCLinEcore.g:24416:1: ruleInvariantConstraintCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationCSAccess().getOwnedConstraintsInvariantConstraintCSParserRuleCall_5_0_1_2_0()); 
@@ -71719,17 +71787,17 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__NameAssignment_0_0_1"
-    // InternalOCLinEcore.g:24413:1: rule__EnumerationLiteralCS__NameAssignment_0_0_1 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:24425:1: rule__EnumerationLiteralCS__NameAssignment_0_0_1 : ( ruleUnrestrictedName ) ;
     public final void rule__EnumerationLiteralCS__NameAssignment_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24417:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:24418:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24429:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:24430:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:24418:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:24419:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:24430:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24431:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getNameUnrestrictedNameParserRuleCall_0_0_1_0()); 
@@ -71764,17 +71832,17 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__NameAssignment_0_1"
-    // InternalOCLinEcore.g:24428:1: rule__EnumerationLiteralCS__NameAssignment_0_1 : ( ruleEnumerationLiteralName ) ;
+    // InternalOCLinEcore.g:24440:1: rule__EnumerationLiteralCS__NameAssignment_0_1 : ( ruleEnumerationLiteralName ) ;
     public final void rule__EnumerationLiteralCS__NameAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24432:1: ( ( ruleEnumerationLiteralName ) )
-            // InternalOCLinEcore.g:24433:1: ( ruleEnumerationLiteralName )
+            // InternalOCLinEcore.g:24444:1: ( ( ruleEnumerationLiteralName ) )
+            // InternalOCLinEcore.g:24445:1: ( ruleEnumerationLiteralName )
             {
-            // InternalOCLinEcore.g:24433:1: ( ruleEnumerationLiteralName )
-            // InternalOCLinEcore.g:24434:1: ruleEnumerationLiteralName
+            // InternalOCLinEcore.g:24445:1: ( ruleEnumerationLiteralName )
+            // InternalOCLinEcore.g:24446:1: ruleEnumerationLiteralName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getNameEnumerationLiteralNameParserRuleCall_0_1_0()); 
@@ -71809,17 +71877,17 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__ValueAssignment_1_1"
-    // InternalOCLinEcore.g:24443:1: rule__EnumerationLiteralCS__ValueAssignment_1_1 : ( ruleSIGNED ) ;
+    // InternalOCLinEcore.g:24455:1: rule__EnumerationLiteralCS__ValueAssignment_1_1 : ( ruleSIGNED ) ;
     public final void rule__EnumerationLiteralCS__ValueAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24447:1: ( ( ruleSIGNED ) )
-            // InternalOCLinEcore.g:24448:1: ( ruleSIGNED )
+            // InternalOCLinEcore.g:24459:1: ( ( ruleSIGNED ) )
+            // InternalOCLinEcore.g:24460:1: ( ruleSIGNED )
             {
-            // InternalOCLinEcore.g:24448:1: ( ruleSIGNED )
-            // InternalOCLinEcore.g:24449:1: ruleSIGNED
+            // InternalOCLinEcore.g:24460:1: ( ruleSIGNED )
+            // InternalOCLinEcore.g:24461:1: ruleSIGNED
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getValueSIGNEDParserRuleCall_1_1_0()); 
@@ -71854,17 +71922,17 @@
 
 
     // $ANTLR start "rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1"
-    // InternalOCLinEcore.g:24458:1: rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:24470:1: rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1 : ( ruleAnnotationElementCS ) ;
     public final void rule__EnumerationLiteralCS__OwnedAnnotationsAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24462:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:24463:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24474:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:24475:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:24463:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:24464:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:24475:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24476:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEnumerationLiteralCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_2_0_1_0()); 
@@ -71899,17 +71967,17 @@
 
 
     // $ANTLR start "rule__ImportCS__NameAssignment_1_0"
-    // InternalOCLinEcore.g:24473:1: rule__ImportCS__NameAssignment_1_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:24485:1: rule__ImportCS__NameAssignment_1_0 : ( ruleUnrestrictedName ) ;
     public final void rule__ImportCS__NameAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24477:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:24478:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24489:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:24490:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:24478:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:24479:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:24490:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24491:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getNameUnrestrictedNameParserRuleCall_1_0_0()); 
@@ -71944,17 +72012,17 @@
 
 
     // $ANTLR start "rule__ImportCS__OwnedPathNameAssignment_2"
-    // InternalOCLinEcore.g:24488:1: rule__ImportCS__OwnedPathNameAssignment_2 : ( ruleURIPathNameCS ) ;
+    // InternalOCLinEcore.g:24500:1: rule__ImportCS__OwnedPathNameAssignment_2 : ( ruleURIPathNameCS ) ;
     public final void rule__ImportCS__OwnedPathNameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24492:1: ( ( ruleURIPathNameCS ) )
-            // InternalOCLinEcore.g:24493:1: ( ruleURIPathNameCS )
+            // InternalOCLinEcore.g:24504:1: ( ( ruleURIPathNameCS ) )
+            // InternalOCLinEcore.g:24505:1: ( ruleURIPathNameCS )
             {
-            // InternalOCLinEcore.g:24493:1: ( ruleURIPathNameCS )
-            // InternalOCLinEcore.g:24494:1: ruleURIPathNameCS
+            // InternalOCLinEcore.g:24505:1: ( ruleURIPathNameCS )
+            // InternalOCLinEcore.g:24506:1: ruleURIPathNameCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getOwnedPathNameURIPathNameCSParserRuleCall_2_0()); 
@@ -71989,23 +72057,23 @@
 
 
     // $ANTLR start "rule__ImportCS__IsAllAssignment_3"
-    // InternalOCLinEcore.g:24503:1: rule__ImportCS__IsAllAssignment_3 : ( ( '::*' ) ) ;
+    // InternalOCLinEcore.g:24515:1: rule__ImportCS__IsAllAssignment_3 : ( ( '::*' ) ) ;
     public final void rule__ImportCS__IsAllAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24507:1: ( ( ( '::*' ) ) )
-            // InternalOCLinEcore.g:24508:1: ( ( '::*' ) )
+            // InternalOCLinEcore.g:24519:1: ( ( ( '::*' ) ) )
+            // InternalOCLinEcore.g:24520:1: ( ( '::*' ) )
             {
-            // InternalOCLinEcore.g:24508:1: ( ( '::*' ) )
-            // InternalOCLinEcore.g:24509:1: ( '::*' )
+            // InternalOCLinEcore.g:24520:1: ( ( '::*' ) )
+            // InternalOCLinEcore.g:24521:1: ( '::*' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getIsAllColonColonAsteriskKeyword_3_0()); 
             }
-            // InternalOCLinEcore.g:24510:1: ( '::*' )
-            // InternalOCLinEcore.g:24511:1: '::*'
+            // InternalOCLinEcore.g:24522:1: ( '::*' )
+            // InternalOCLinEcore.g:24523:1: '::*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportCSAccess().getIsAllColonColonAsteriskKeyword_3_0()); 
@@ -72042,17 +72110,17 @@
 
 
     // $ANTLR start "rule__ModelElementRefCS__OwnedPathNameAssignment_1"
-    // InternalOCLinEcore.g:24526:1: rule__ModelElementRefCS__OwnedPathNameAssignment_1 : ( rulePathNameCS ) ;
+    // InternalOCLinEcore.g:24538:1: rule__ModelElementRefCS__OwnedPathNameAssignment_1 : ( rulePathNameCS ) ;
     public final void rule__ModelElementRefCS__OwnedPathNameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24530:1: ( ( rulePathNameCS ) )
-            // InternalOCLinEcore.g:24531:1: ( rulePathNameCS )
+            // InternalOCLinEcore.g:24542:1: ( ( rulePathNameCS ) )
+            // InternalOCLinEcore.g:24543:1: ( rulePathNameCS )
             {
-            // InternalOCLinEcore.g:24531:1: ( rulePathNameCS )
-            // InternalOCLinEcore.g:24532:1: rulePathNameCS
+            // InternalOCLinEcore.g:24543:1: ( rulePathNameCS )
+            // InternalOCLinEcore.g:24544:1: rulePathNameCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getModelElementRefCSAccess().getOwnedPathNamePathNameCSParserRuleCall_1_0()); 
@@ -72087,23 +72155,23 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_0_0_0"
-    // InternalOCLinEcore.g:24541:1: rule__OperationCS__QualifiersAssignment_0_0_0 : ( ( 'static' ) ) ;
+    // InternalOCLinEcore.g:24553:1: rule__OperationCS__QualifiersAssignment_0_0_0 : ( ( 'static' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24545:1: ( ( ( 'static' ) ) )
-            // InternalOCLinEcore.g:24546:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:24557:1: ( ( ( 'static' ) ) )
+            // InternalOCLinEcore.g:24558:1: ( ( 'static' ) )
             {
-            // InternalOCLinEcore.g:24546:1: ( ( 'static' ) )
-            // InternalOCLinEcore.g:24547:1: ( 'static' )
+            // InternalOCLinEcore.g:24558:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:24559:1: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_0_0_0()); 
             }
-            // InternalOCLinEcore.g:24548:1: ( 'static' )
-            // InternalOCLinEcore.g:24549:1: 'static'
+            // InternalOCLinEcore.g:24560:1: ( 'static' )
+            // InternalOCLinEcore.g:24561:1: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_0_0_0()); 
@@ -72140,23 +72208,23 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_0_0_1"
-    // InternalOCLinEcore.g:24564:1: rule__OperationCS__QualifiersAssignment_0_0_1 : ( ( 'definition' ) ) ;
+    // InternalOCLinEcore.g:24576:1: rule__OperationCS__QualifiersAssignment_0_0_1 : ( ( 'definition' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24568:1: ( ( ( 'definition' ) ) )
-            // InternalOCLinEcore.g:24569:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:24580:1: ( ( ( 'definition' ) ) )
+            // InternalOCLinEcore.g:24581:1: ( ( 'definition' ) )
             {
-            // InternalOCLinEcore.g:24569:1: ( ( 'definition' ) )
-            // InternalOCLinEcore.g:24570:1: ( 'definition' )
+            // InternalOCLinEcore.g:24581:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:24582:1: ( 'definition' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); 
             }
-            // InternalOCLinEcore.g:24571:1: ( 'definition' )
-            // InternalOCLinEcore.g:24572:1: 'definition'
+            // InternalOCLinEcore.g:24583:1: ( 'definition' )
+            // InternalOCLinEcore.g:24584:1: 'definition'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); 
@@ -72193,23 +72261,23 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_0_1_0"
-    // InternalOCLinEcore.g:24587:1: rule__OperationCS__QualifiersAssignment_0_1_0 : ( ( 'definition' ) ) ;
+    // InternalOCLinEcore.g:24599:1: rule__OperationCS__QualifiersAssignment_0_1_0 : ( ( 'definition' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24591:1: ( ( ( 'definition' ) ) )
-            // InternalOCLinEcore.g:24592:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:24603:1: ( ( ( 'definition' ) ) )
+            // InternalOCLinEcore.g:24604:1: ( ( 'definition' ) )
             {
-            // InternalOCLinEcore.g:24592:1: ( ( 'definition' ) )
-            // InternalOCLinEcore.g:24593:1: ( 'definition' )
+            // InternalOCLinEcore.g:24604:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:24605:1: ( 'definition' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); 
             }
-            // InternalOCLinEcore.g:24594:1: ( 'definition' )
-            // InternalOCLinEcore.g:24595:1: 'definition'
+            // InternalOCLinEcore.g:24606:1: ( 'definition' )
+            // InternalOCLinEcore.g:24607:1: 'definition'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); 
@@ -72246,23 +72314,23 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_0_1_1"
-    // InternalOCLinEcore.g:24610:1: rule__OperationCS__QualifiersAssignment_0_1_1 : ( ( 'static' ) ) ;
+    // InternalOCLinEcore.g:24622:1: rule__OperationCS__QualifiersAssignment_0_1_1 : ( ( 'static' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24614:1: ( ( ( 'static' ) ) )
-            // InternalOCLinEcore.g:24615:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:24626:1: ( ( ( 'static' ) ) )
+            // InternalOCLinEcore.g:24627:1: ( ( 'static' ) )
             {
-            // InternalOCLinEcore.g:24615:1: ( ( 'static' ) )
-            // InternalOCLinEcore.g:24616:1: ( 'static' )
+            // InternalOCLinEcore.g:24627:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:24628:1: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_1_1_0()); 
             }
-            // InternalOCLinEcore.g:24617:1: ( 'static' )
-            // InternalOCLinEcore.g:24618:1: 'static'
+            // InternalOCLinEcore.g:24629:1: ( 'static' )
+            // InternalOCLinEcore.g:24630:1: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_1_1_0()); 
@@ -72299,17 +72367,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedSignatureAssignment_2"
-    // InternalOCLinEcore.g:24633:1: rule__OperationCS__OwnedSignatureAssignment_2 : ( ruleTemplateSignatureCS ) ;
+    // InternalOCLinEcore.g:24645:1: rule__OperationCS__OwnedSignatureAssignment_2 : ( ruleTemplateSignatureCS ) ;
     public final void rule__OperationCS__OwnedSignatureAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24637:1: ( ( ruleTemplateSignatureCS ) )
-            // InternalOCLinEcore.g:24638:1: ( ruleTemplateSignatureCS )
+            // InternalOCLinEcore.g:24649:1: ( ( ruleTemplateSignatureCS ) )
+            // InternalOCLinEcore.g:24650:1: ( ruleTemplateSignatureCS )
             {
-            // InternalOCLinEcore.g:24638:1: ( ruleTemplateSignatureCS )
-            // InternalOCLinEcore.g:24639:1: ruleTemplateSignatureCS
+            // InternalOCLinEcore.g:24650:1: ( ruleTemplateSignatureCS )
+            // InternalOCLinEcore.g:24651:1: ruleTemplateSignatureCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedSignatureTemplateSignatureCSParserRuleCall_2_0()); 
@@ -72344,17 +72412,17 @@
 
 
     // $ANTLR start "rule__OperationCS__NameAssignment_3"
-    // InternalOCLinEcore.g:24648:1: rule__OperationCS__NameAssignment_3 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:24660:1: rule__OperationCS__NameAssignment_3 : ( ruleUnrestrictedName ) ;
     public final void rule__OperationCS__NameAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24652:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:24653:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24664:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:24665:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:24653:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:24654:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:24665:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24666:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getNameUnrestrictedNameParserRuleCall_3_0()); 
@@ -72389,17 +72457,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedParametersAssignment_5_0"
-    // InternalOCLinEcore.g:24663:1: rule__OperationCS__OwnedParametersAssignment_5_0 : ( ruleParameterCS ) ;
+    // InternalOCLinEcore.g:24675:1: rule__OperationCS__OwnedParametersAssignment_5_0 : ( ruleParameterCS ) ;
     public final void rule__OperationCS__OwnedParametersAssignment_5_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24667:1: ( ( ruleParameterCS ) )
-            // InternalOCLinEcore.g:24668:1: ( ruleParameterCS )
+            // InternalOCLinEcore.g:24679:1: ( ( ruleParameterCS ) )
+            // InternalOCLinEcore.g:24680:1: ( ruleParameterCS )
             {
-            // InternalOCLinEcore.g:24668:1: ( ruleParameterCS )
-            // InternalOCLinEcore.g:24669:1: ruleParameterCS
+            // InternalOCLinEcore.g:24680:1: ( ruleParameterCS )
+            // InternalOCLinEcore.g:24681:1: ruleParameterCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedParametersParameterCSParserRuleCall_5_0_0()); 
@@ -72434,17 +72502,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedParametersAssignment_5_1_1"
-    // InternalOCLinEcore.g:24678:1: rule__OperationCS__OwnedParametersAssignment_5_1_1 : ( ruleParameterCS ) ;
+    // InternalOCLinEcore.g:24690:1: rule__OperationCS__OwnedParametersAssignment_5_1_1 : ( ruleParameterCS ) ;
     public final void rule__OperationCS__OwnedParametersAssignment_5_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24682:1: ( ( ruleParameterCS ) )
-            // InternalOCLinEcore.g:24683:1: ( ruleParameterCS )
+            // InternalOCLinEcore.g:24694:1: ( ( ruleParameterCS ) )
+            // InternalOCLinEcore.g:24695:1: ( ruleParameterCS )
             {
-            // InternalOCLinEcore.g:24683:1: ( ruleParameterCS )
-            // InternalOCLinEcore.g:24684:1: ruleParameterCS
+            // InternalOCLinEcore.g:24695:1: ( ruleParameterCS )
+            // InternalOCLinEcore.g:24696:1: ruleParameterCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedParametersParameterCSParserRuleCall_5_1_1_0()); 
@@ -72479,17 +72547,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedTypeAssignment_7_1"
-    // InternalOCLinEcore.g:24693:1: rule__OperationCS__OwnedTypeAssignment_7_1 : ( ruleTypedMultiplicityRefCS ) ;
+    // InternalOCLinEcore.g:24705:1: rule__OperationCS__OwnedTypeAssignment_7_1 : ( ruleTypedMultiplicityRefCS ) ;
     public final void rule__OperationCS__OwnedTypeAssignment_7_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24697:1: ( ( ruleTypedMultiplicityRefCS ) )
-            // InternalOCLinEcore.g:24698:1: ( ruleTypedMultiplicityRefCS )
+            // InternalOCLinEcore.g:24709:1: ( ( ruleTypedMultiplicityRefCS ) )
+            // InternalOCLinEcore.g:24710:1: ( ruleTypedMultiplicityRefCS )
             {
-            // InternalOCLinEcore.g:24698:1: ( ruleTypedMultiplicityRefCS )
-            // InternalOCLinEcore.g:24699:1: ruleTypedMultiplicityRefCS
+            // InternalOCLinEcore.g:24710:1: ( ruleTypedMultiplicityRefCS )
+            // InternalOCLinEcore.g:24711:1: ruleTypedMultiplicityRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedTypeTypedMultiplicityRefCSParserRuleCall_7_1_0()); 
@@ -72524,17 +72592,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedExceptionsAssignment_8_1"
-    // InternalOCLinEcore.g:24708:1: rule__OperationCS__OwnedExceptionsAssignment_8_1 : ( ruleTypedRefCS ) ;
+    // InternalOCLinEcore.g:24720:1: rule__OperationCS__OwnedExceptionsAssignment_8_1 : ( ruleTypedRefCS ) ;
     public final void rule__OperationCS__OwnedExceptionsAssignment_8_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24712:1: ( ( ruleTypedRefCS ) )
-            // InternalOCLinEcore.g:24713:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:24724:1: ( ( ruleTypedRefCS ) )
+            // InternalOCLinEcore.g:24725:1: ( ruleTypedRefCS )
             {
-            // InternalOCLinEcore.g:24713:1: ( ruleTypedRefCS )
-            // InternalOCLinEcore.g:24714:1: ruleTypedRefCS
+            // InternalOCLinEcore.g:24725:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:24726:1: ruleTypedRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedExceptionsTypedRefCSParserRuleCall_8_1_0()); 
@@ -72569,17 +72637,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedExceptionsAssignment_8_2_1"
-    // InternalOCLinEcore.g:24723:1: rule__OperationCS__OwnedExceptionsAssignment_8_2_1 : ( ruleTypedRefCS ) ;
+    // InternalOCLinEcore.g:24735:1: rule__OperationCS__OwnedExceptionsAssignment_8_2_1 : ( ruleTypedRefCS ) ;
     public final void rule__OperationCS__OwnedExceptionsAssignment_8_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24727:1: ( ( ruleTypedRefCS ) )
-            // InternalOCLinEcore.g:24728:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:24739:1: ( ( ruleTypedRefCS ) )
+            // InternalOCLinEcore.g:24740:1: ( ruleTypedRefCS )
             {
-            // InternalOCLinEcore.g:24728:1: ( ruleTypedRefCS )
-            // InternalOCLinEcore.g:24729:1: ruleTypedRefCS
+            // InternalOCLinEcore.g:24740:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:24741:1: ruleTypedRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedExceptionsTypedRefCSParserRuleCall_8_2_1_0()); 
@@ -72614,23 +72682,23 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_9_1_0_0"
-    // InternalOCLinEcore.g:24738:1: rule__OperationCS__QualifiersAssignment_9_1_0_0 : ( ( 'derived' ) ) ;
+    // InternalOCLinEcore.g:24750:1: rule__OperationCS__QualifiersAssignment_9_1_0_0 : ( ( 'derived' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_9_1_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24742:1: ( ( ( 'derived' ) ) )
-            // InternalOCLinEcore.g:24743:1: ( ( 'derived' ) )
+            // InternalOCLinEcore.g:24754:1: ( ( ( 'derived' ) ) )
+            // InternalOCLinEcore.g:24755:1: ( ( 'derived' ) )
             {
-            // InternalOCLinEcore.g:24743:1: ( ( 'derived' ) )
-            // InternalOCLinEcore.g:24744:1: ( 'derived' )
+            // InternalOCLinEcore.g:24755:1: ( ( 'derived' ) )
+            // InternalOCLinEcore.g:24756:1: ( 'derived' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_0_0()); 
             }
-            // InternalOCLinEcore.g:24745:1: ( 'derived' )
-            // InternalOCLinEcore.g:24746:1: 'derived'
+            // InternalOCLinEcore.g:24757:1: ( 'derived' )
+            // InternalOCLinEcore.g:24758:1: 'derived'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_0_0()); 
@@ -72667,23 +72735,23 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_9_1_0_1"
-    // InternalOCLinEcore.g:24761:1: rule__OperationCS__QualifiersAssignment_9_1_0_1 : ( ( '!derived' ) ) ;
+    // InternalOCLinEcore.g:24773:1: rule__OperationCS__QualifiersAssignment_9_1_0_1 : ( ( '!derived' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_9_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24765:1: ( ( ( '!derived' ) ) )
-            // InternalOCLinEcore.g:24766:1: ( ( '!derived' ) )
+            // InternalOCLinEcore.g:24777:1: ( ( ( '!derived' ) ) )
+            // InternalOCLinEcore.g:24778:1: ( ( '!derived' ) )
             {
-            // InternalOCLinEcore.g:24766:1: ( ( '!derived' ) )
-            // InternalOCLinEcore.g:24767:1: ( '!derived' )
+            // InternalOCLinEcore.g:24778:1: ( ( '!derived' ) )
+            // InternalOCLinEcore.g:24779:1: ( '!derived' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_1_0()); 
             }
-            // InternalOCLinEcore.g:24768:1: ( '!derived' )
-            // InternalOCLinEcore.g:24769:1: '!derived'
+            // InternalOCLinEcore.g:24780:1: ( '!derived' )
+            // InternalOCLinEcore.g:24781:1: '!derived'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_1_0()); 
@@ -72720,23 +72788,23 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_9_1_0_2"
-    // InternalOCLinEcore.g:24784:1: rule__OperationCS__QualifiersAssignment_9_1_0_2 : ( ( 'ordered' ) ) ;
+    // InternalOCLinEcore.g:24796:1: rule__OperationCS__QualifiersAssignment_9_1_0_2 : ( ( 'ordered' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_9_1_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24788:1: ( ( ( 'ordered' ) ) )
-            // InternalOCLinEcore.g:24789:1: ( ( 'ordered' ) )
+            // InternalOCLinEcore.g:24800:1: ( ( ( 'ordered' ) ) )
+            // InternalOCLinEcore.g:24801:1: ( ( 'ordered' ) )
             {
-            // InternalOCLinEcore.g:24789:1: ( ( 'ordered' ) )
-            // InternalOCLinEcore.g:24790:1: ( 'ordered' )
+            // InternalOCLinEcore.g:24801:1: ( ( 'ordered' ) )
+            // InternalOCLinEcore.g:24802:1: ( 'ordered' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_2_0()); 
             }
-            // InternalOCLinEcore.g:24791:1: ( 'ordered' )
-            // InternalOCLinEcore.g:24792:1: 'ordered'
+            // InternalOCLinEcore.g:24803:1: ( 'ordered' )
+            // InternalOCLinEcore.g:24804:1: 'ordered'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_2_0()); 
@@ -72773,23 +72841,23 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_9_1_0_3"
-    // InternalOCLinEcore.g:24807:1: rule__OperationCS__QualifiersAssignment_9_1_0_3 : ( ( '!ordered' ) ) ;
+    // InternalOCLinEcore.g:24819:1: rule__OperationCS__QualifiersAssignment_9_1_0_3 : ( ( '!ordered' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_9_1_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24811:1: ( ( ( '!ordered' ) ) )
-            // InternalOCLinEcore.g:24812:1: ( ( '!ordered' ) )
+            // InternalOCLinEcore.g:24823:1: ( ( ( '!ordered' ) ) )
+            // InternalOCLinEcore.g:24824:1: ( ( '!ordered' ) )
             {
-            // InternalOCLinEcore.g:24812:1: ( ( '!ordered' ) )
-            // InternalOCLinEcore.g:24813:1: ( '!ordered' )
+            // InternalOCLinEcore.g:24824:1: ( ( '!ordered' ) )
+            // InternalOCLinEcore.g:24825:1: ( '!ordered' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_3_0()); 
             }
-            // InternalOCLinEcore.g:24814:1: ( '!ordered' )
-            // InternalOCLinEcore.g:24815:1: '!ordered'
+            // InternalOCLinEcore.g:24826:1: ( '!ordered' )
+            // InternalOCLinEcore.g:24827:1: '!ordered'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_3_0()); 
@@ -72826,36 +72894,36 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_9_1_0_4"
-    // InternalOCLinEcore.g:24830:1: rule__OperationCS__QualifiersAssignment_9_1_0_4 : ( ( 'unique' ) ) ;
+    // InternalOCLinEcore.g:24842:1: rule__OperationCS__QualifiersAssignment_9_1_0_4 : ( ( 'transient' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_9_1_0_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24834:1: ( ( ( 'unique' ) ) )
-            // InternalOCLinEcore.g:24835:1: ( ( 'unique' ) )
+            // InternalOCLinEcore.g:24846:1: ( ( ( 'transient' ) ) )
+            // InternalOCLinEcore.g:24847:1: ( ( 'transient' ) )
             {
-            // InternalOCLinEcore.g:24835:1: ( ( 'unique' ) )
-            // InternalOCLinEcore.g:24836:1: ( 'unique' )
+            // InternalOCLinEcore.g:24847:1: ( ( 'transient' ) )
+            // InternalOCLinEcore.g:24848:1: ( 'transient' )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); 
+               before(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0()); 
             }
-            // InternalOCLinEcore.g:24837:1: ( 'unique' )
-            // InternalOCLinEcore.g:24838:1: 'unique'
+            // InternalOCLinEcore.g:24849:1: ( 'transient' )
+            // InternalOCLinEcore.g:24850:1: 'transient'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); 
+               before(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0()); 
             }
-            match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ;
+            match(input,48,FollowSets000.FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); 
+               after(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0()); 
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); 
+               after(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0()); 
             }
 
             }
@@ -72879,36 +72947,36 @@
 
 
     // $ANTLR start "rule__OperationCS__QualifiersAssignment_9_1_0_5"
-    // InternalOCLinEcore.g:24853:1: rule__OperationCS__QualifiersAssignment_9_1_0_5 : ( ( '!unique' ) ) ;
+    // InternalOCLinEcore.g:24865:1: rule__OperationCS__QualifiersAssignment_9_1_0_5 : ( ( '!transient' ) ) ;
     public final void rule__OperationCS__QualifiersAssignment_9_1_0_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24857:1: ( ( ( '!unique' ) ) )
-            // InternalOCLinEcore.g:24858:1: ( ( '!unique' ) )
+            // InternalOCLinEcore.g:24869:1: ( ( ( '!transient' ) ) )
+            // InternalOCLinEcore.g:24870:1: ( ( '!transient' ) )
             {
-            // InternalOCLinEcore.g:24858:1: ( ( '!unique' ) )
-            // InternalOCLinEcore.g:24859:1: ( '!unique' )
+            // InternalOCLinEcore.g:24870:1: ( ( '!transient' ) )
+            // InternalOCLinEcore.g:24871:1: ( '!transient' )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); 
+               before(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0()); 
             }
-            // InternalOCLinEcore.g:24860:1: ( '!unique' )
-            // InternalOCLinEcore.g:24861:1: '!unique'
+            // InternalOCLinEcore.g:24872:1: ( '!transient' )
+            // InternalOCLinEcore.g:24873:1: '!transient'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); 
+               before(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0()); 
             }
-            match(input,127,FollowSets000.FOLLOW_2); if (state.failed) return ;
+            match(input,126,FollowSets000.FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); 
+               after(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0()); 
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); 
+               after(grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0()); 
             }
 
             }
@@ -72931,18 +72999,124 @@
     // $ANTLR end "rule__OperationCS__QualifiersAssignment_9_1_0_5"
 
 
+    // $ANTLR start "rule__OperationCS__QualifiersAssignment_9_1_0_6"
+    // InternalOCLinEcore.g:24888:1: rule__OperationCS__QualifiersAssignment_9_1_0_6 : ( ( 'unique' ) ) ;
+    public final void rule__OperationCS__QualifiersAssignment_9_1_0_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalOCLinEcore.g:24892:1: ( ( ( 'unique' ) ) )
+            // InternalOCLinEcore.g:24893:1: ( ( 'unique' ) )
+            {
+            // InternalOCLinEcore.g:24893:1: ( ( 'unique' ) )
+            // InternalOCLinEcore.g:24894:1: ( 'unique' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0()); 
+            }
+            // InternalOCLinEcore.g:24895:1: ( 'unique' )
+            // InternalOCLinEcore.g:24896:1: 'unique'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0()); 
+            }
+            match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OperationCS__QualifiersAssignment_9_1_0_6"
+
+
+    // $ANTLR start "rule__OperationCS__QualifiersAssignment_9_1_0_7"
+    // InternalOCLinEcore.g:24911:1: rule__OperationCS__QualifiersAssignment_9_1_0_7 : ( ( '!unique' ) ) ;
+    public final void rule__OperationCS__QualifiersAssignment_9_1_0_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // InternalOCLinEcore.g:24915:1: ( ( ( '!unique' ) ) )
+            // InternalOCLinEcore.g:24916:1: ( ( '!unique' ) )
+            {
+            // InternalOCLinEcore.g:24916:1: ( ( '!unique' ) )
+            // InternalOCLinEcore.g:24917:1: ( '!unique' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0()); 
+            }
+            // InternalOCLinEcore.g:24918:1: ( '!unique' )
+            // InternalOCLinEcore.g:24919:1: '!unique'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0()); 
+            }
+            match(input,127,FollowSets000.FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OperationCS__QualifiersAssignment_9_1_0_7"
+
+
     // $ANTLR start "rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0"
-    // InternalOCLinEcore.g:24876:1: rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:24934:1: rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0 : ( ruleAnnotationElementCS ) ;
     public final void rule__OperationCS__OwnedAnnotationsAssignment_10_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24880:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:24881:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24938:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:24939:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:24881:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:24882:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:24939:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:24940:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_10_0_1_0_0()); 
@@ -72977,17 +73151,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1"
-    // InternalOCLinEcore.g:24891:1: rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 : ( rulePreconditionConstraintCS ) ;
+    // InternalOCLinEcore.g:24949:1: rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1 : ( rulePreconditionConstraintCS ) ;
     public final void rule__OperationCS__OwnedPreconditionsAssignment_10_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24895:1: ( ( rulePreconditionConstraintCS ) )
-            // InternalOCLinEcore.g:24896:1: ( rulePreconditionConstraintCS )
+            // InternalOCLinEcore.g:24953:1: ( ( rulePreconditionConstraintCS ) )
+            // InternalOCLinEcore.g:24954:1: ( rulePreconditionConstraintCS )
             {
-            // InternalOCLinEcore.g:24896:1: ( rulePreconditionConstraintCS )
-            // InternalOCLinEcore.g:24897:1: rulePreconditionConstraintCS
+            // InternalOCLinEcore.g:24954:1: ( rulePreconditionConstraintCS )
+            // InternalOCLinEcore.g:24955:1: rulePreconditionConstraintCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedPreconditionsPreconditionConstraintCSParserRuleCall_10_0_1_1_0()); 
@@ -73022,17 +73196,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3"
-    // InternalOCLinEcore.g:24906:1: rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:24964:1: rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3 : ( ruleSpecificationCS ) ;
     public final void rule__OperationCS__OwnedBodyExpressionsAssignment_10_0_1_2_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24910:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:24911:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:24968:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:24969:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:24911:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:24912:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:24969:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:24970:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedBodyExpressionsSpecificationCSParserRuleCall_10_0_1_2_3_0()); 
@@ -73067,17 +73241,17 @@
 
 
     // $ANTLR start "rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3"
-    // InternalOCLinEcore.g:24921:1: rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 : ( rulePostconditionConstraintCS ) ;
+    // InternalOCLinEcore.g:24979:1: rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3 : ( rulePostconditionConstraintCS ) ;
     public final void rule__OperationCS__OwnedPostconditionsAssignment_10_0_1_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24925:1: ( ( rulePostconditionConstraintCS ) )
-            // InternalOCLinEcore.g:24926:1: ( rulePostconditionConstraintCS )
+            // InternalOCLinEcore.g:24983:1: ( ( rulePostconditionConstraintCS ) )
+            // InternalOCLinEcore.g:24984:1: ( rulePostconditionConstraintCS )
             {
-            // InternalOCLinEcore.g:24926:1: ( rulePostconditionConstraintCS )
-            // InternalOCLinEcore.g:24927:1: rulePostconditionConstraintCS
+            // InternalOCLinEcore.g:24984:1: ( rulePostconditionConstraintCS )
+            // InternalOCLinEcore.g:24985:1: rulePostconditionConstraintCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOperationCSAccess().getOwnedPostconditionsPostconditionConstraintCSParserRuleCall_10_0_1_3_0()); 
@@ -73112,17 +73286,17 @@
 
 
     // $ANTLR start "rule__PackageCS__NameAssignment_1"
-    // InternalOCLinEcore.g:24936:1: rule__PackageCS__NameAssignment_1 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:24994:1: rule__PackageCS__NameAssignment_1 : ( ruleUnrestrictedName ) ;
     public final void rule__PackageCS__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24940:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:24941:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:24998:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:24999:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:24941:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:24942:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:24999:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25000:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getNameUnrestrictedNameParserRuleCall_1_0()); 
@@ -73157,17 +73331,17 @@
 
 
     // $ANTLR start "rule__PackageCS__NsPrefixAssignment_2_1"
-    // InternalOCLinEcore.g:24951:1: rule__PackageCS__NsPrefixAssignment_2_1 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:25009:1: rule__PackageCS__NsPrefixAssignment_2_1 : ( ruleUnrestrictedName ) ;
     public final void rule__PackageCS__NsPrefixAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24955:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:24956:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25013:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25014:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:24956:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:24957:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:25014:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25015:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getNsPrefixUnrestrictedNameParserRuleCall_2_1_0()); 
@@ -73202,17 +73376,17 @@
 
 
     // $ANTLR start "rule__PackageCS__NsURIAssignment_3_1"
-    // InternalOCLinEcore.g:24966:1: rule__PackageCS__NsURIAssignment_3_1 : ( ruleURI ) ;
+    // InternalOCLinEcore.g:25024:1: rule__PackageCS__NsURIAssignment_3_1 : ( ruleURI ) ;
     public final void rule__PackageCS__NsURIAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24970:1: ( ( ruleURI ) )
-            // InternalOCLinEcore.g:24971:1: ( ruleURI )
+            // InternalOCLinEcore.g:25028:1: ( ( ruleURI ) )
+            // InternalOCLinEcore.g:25029:1: ( ruleURI )
             {
-            // InternalOCLinEcore.g:24971:1: ( ruleURI )
-            // InternalOCLinEcore.g:24972:1: ruleURI
+            // InternalOCLinEcore.g:25029:1: ( ruleURI )
+            // InternalOCLinEcore.g:25030:1: ruleURI
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getNsURIURIParserRuleCall_3_1_0()); 
@@ -73247,17 +73421,17 @@
 
 
     // $ANTLR start "rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0"
-    // InternalOCLinEcore.g:24981:1: rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:25039:1: rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0 : ( ruleAnnotationElementCS ) ;
     public final void rule__PackageCS__OwnedAnnotationsAssignment_4_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:24985:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:24986:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:25043:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:25044:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:24986:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:24987:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:25044:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:25045:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_4_0_1_0_0()); 
@@ -73292,17 +73466,17 @@
 
 
     // $ANTLR start "rule__PackageCS__OwnedPackagesAssignment_4_0_1_1"
-    // InternalOCLinEcore.g:24996:1: rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 : ( rulePackageCS ) ;
+    // InternalOCLinEcore.g:25054:1: rule__PackageCS__OwnedPackagesAssignment_4_0_1_1 : ( rulePackageCS ) ;
     public final void rule__PackageCS__OwnedPackagesAssignment_4_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25000:1: ( ( rulePackageCS ) )
-            // InternalOCLinEcore.g:25001:1: ( rulePackageCS )
+            // InternalOCLinEcore.g:25058:1: ( ( rulePackageCS ) )
+            // InternalOCLinEcore.g:25059:1: ( rulePackageCS )
             {
-            // InternalOCLinEcore.g:25001:1: ( rulePackageCS )
-            // InternalOCLinEcore.g:25002:1: rulePackageCS
+            // InternalOCLinEcore.g:25059:1: ( rulePackageCS )
+            // InternalOCLinEcore.g:25060:1: rulePackageCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getOwnedPackagesPackageCSParserRuleCall_4_0_1_1_0()); 
@@ -73337,17 +73511,17 @@
 
 
     // $ANTLR start "rule__PackageCS__OwnedClassesAssignment_4_0_1_2"
-    // InternalOCLinEcore.g:25011:1: rule__PackageCS__OwnedClassesAssignment_4_0_1_2 : ( ruleClassCS ) ;
+    // InternalOCLinEcore.g:25069:1: rule__PackageCS__OwnedClassesAssignment_4_0_1_2 : ( ruleClassCS ) ;
     public final void rule__PackageCS__OwnedClassesAssignment_4_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25015:1: ( ( ruleClassCS ) )
-            // InternalOCLinEcore.g:25016:1: ( ruleClassCS )
+            // InternalOCLinEcore.g:25073:1: ( ( ruleClassCS ) )
+            // InternalOCLinEcore.g:25074:1: ( ruleClassCS )
             {
-            // InternalOCLinEcore.g:25016:1: ( ruleClassCS )
-            // InternalOCLinEcore.g:25017:1: ruleClassCS
+            // InternalOCLinEcore.g:25074:1: ( ruleClassCS )
+            // InternalOCLinEcore.g:25075:1: ruleClassCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPackageCSAccess().getOwnedClassesClassCSParserRuleCall_4_0_1_2_0()); 
@@ -73382,17 +73556,17 @@
 
 
     // $ANTLR start "rule__ParameterCS__NameAssignment_0"
-    // InternalOCLinEcore.g:25026:1: rule__ParameterCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:25084:1: rule__ParameterCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
     public final void rule__ParameterCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25030:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:25031:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25088:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25089:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:25031:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:25032:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:25089:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25090:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getNameUnrestrictedNameParserRuleCall_0_0()); 
@@ -73427,17 +73601,17 @@
 
 
     // $ANTLR start "rule__ParameterCS__OwnedTypeAssignment_1_1"
-    // InternalOCLinEcore.g:25041:1: rule__ParameterCS__OwnedTypeAssignment_1_1 : ( ruleTypedMultiplicityRefCS ) ;
+    // InternalOCLinEcore.g:25099:1: rule__ParameterCS__OwnedTypeAssignment_1_1 : ( ruleTypedMultiplicityRefCS ) ;
     public final void rule__ParameterCS__OwnedTypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25045:1: ( ( ruleTypedMultiplicityRefCS ) )
-            // InternalOCLinEcore.g:25046:1: ( ruleTypedMultiplicityRefCS )
+            // InternalOCLinEcore.g:25103:1: ( ( ruleTypedMultiplicityRefCS ) )
+            // InternalOCLinEcore.g:25104:1: ( ruleTypedMultiplicityRefCS )
             {
-            // InternalOCLinEcore.g:25046:1: ( ruleTypedMultiplicityRefCS )
-            // InternalOCLinEcore.g:25047:1: ruleTypedMultiplicityRefCS
+            // InternalOCLinEcore.g:25104:1: ( ruleTypedMultiplicityRefCS )
+            // InternalOCLinEcore.g:25105:1: ruleTypedMultiplicityRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getOwnedTypeTypedMultiplicityRefCSParserRuleCall_1_1_0()); 
@@ -73472,23 +73646,23 @@
 
 
     // $ANTLR start "rule__ParameterCS__QualifiersAssignment_2_1_0_0"
-    // InternalOCLinEcore.g:25056:1: rule__ParameterCS__QualifiersAssignment_2_1_0_0 : ( ( 'ordered' ) ) ;
+    // InternalOCLinEcore.g:25114:1: rule__ParameterCS__QualifiersAssignment_2_1_0_0 : ( ( 'ordered' ) ) ;
     public final void rule__ParameterCS__QualifiersAssignment_2_1_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25060:1: ( ( ( 'ordered' ) ) )
-            // InternalOCLinEcore.g:25061:1: ( ( 'ordered' ) )
+            // InternalOCLinEcore.g:25118:1: ( ( ( 'ordered' ) ) )
+            // InternalOCLinEcore.g:25119:1: ( ( 'ordered' ) )
             {
-            // InternalOCLinEcore.g:25061:1: ( ( 'ordered' ) )
-            // InternalOCLinEcore.g:25062:1: ( 'ordered' )
+            // InternalOCLinEcore.g:25119:1: ( ( 'ordered' ) )
+            // InternalOCLinEcore.g:25120:1: ( 'ordered' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_0_0()); 
             }
-            // InternalOCLinEcore.g:25063:1: ( 'ordered' )
-            // InternalOCLinEcore.g:25064:1: 'ordered'
+            // InternalOCLinEcore.g:25121:1: ( 'ordered' )
+            // InternalOCLinEcore.g:25122:1: 'ordered'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_0_0()); 
@@ -73525,23 +73699,23 @@
 
 
     // $ANTLR start "rule__ParameterCS__QualifiersAssignment_2_1_0_1"
-    // InternalOCLinEcore.g:25079:1: rule__ParameterCS__QualifiersAssignment_2_1_0_1 : ( ( '!ordered' ) ) ;
+    // InternalOCLinEcore.g:25137:1: rule__ParameterCS__QualifiersAssignment_2_1_0_1 : ( ( '!ordered' ) ) ;
     public final void rule__ParameterCS__QualifiersAssignment_2_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25083:1: ( ( ( '!ordered' ) ) )
-            // InternalOCLinEcore.g:25084:1: ( ( '!ordered' ) )
+            // InternalOCLinEcore.g:25141:1: ( ( ( '!ordered' ) ) )
+            // InternalOCLinEcore.g:25142:1: ( ( '!ordered' ) )
             {
-            // InternalOCLinEcore.g:25084:1: ( ( '!ordered' ) )
-            // InternalOCLinEcore.g:25085:1: ( '!ordered' )
+            // InternalOCLinEcore.g:25142:1: ( ( '!ordered' ) )
+            // InternalOCLinEcore.g:25143:1: ( '!ordered' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_1_0()); 
             }
-            // InternalOCLinEcore.g:25086:1: ( '!ordered' )
-            // InternalOCLinEcore.g:25087:1: '!ordered'
+            // InternalOCLinEcore.g:25144:1: ( '!ordered' )
+            // InternalOCLinEcore.g:25145:1: '!ordered'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_1_0()); 
@@ -73578,23 +73752,23 @@
 
 
     // $ANTLR start "rule__ParameterCS__QualifiersAssignment_2_1_0_2"
-    // InternalOCLinEcore.g:25102:1: rule__ParameterCS__QualifiersAssignment_2_1_0_2 : ( ( 'unique' ) ) ;
+    // InternalOCLinEcore.g:25160:1: rule__ParameterCS__QualifiersAssignment_2_1_0_2 : ( ( 'unique' ) ) ;
     public final void rule__ParameterCS__QualifiersAssignment_2_1_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25106:1: ( ( ( 'unique' ) ) )
-            // InternalOCLinEcore.g:25107:1: ( ( 'unique' ) )
+            // InternalOCLinEcore.g:25164:1: ( ( ( 'unique' ) ) )
+            // InternalOCLinEcore.g:25165:1: ( ( 'unique' ) )
             {
-            // InternalOCLinEcore.g:25107:1: ( ( 'unique' ) )
-            // InternalOCLinEcore.g:25108:1: ( 'unique' )
+            // InternalOCLinEcore.g:25165:1: ( ( 'unique' ) )
+            // InternalOCLinEcore.g:25166:1: ( 'unique' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_2_0()); 
             }
-            // InternalOCLinEcore.g:25109:1: ( 'unique' )
-            // InternalOCLinEcore.g:25110:1: 'unique'
+            // InternalOCLinEcore.g:25167:1: ( 'unique' )
+            // InternalOCLinEcore.g:25168:1: 'unique'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_2_0()); 
@@ -73631,23 +73805,23 @@
 
 
     // $ANTLR start "rule__ParameterCS__QualifiersAssignment_2_1_0_3"
-    // InternalOCLinEcore.g:25125:1: rule__ParameterCS__QualifiersAssignment_2_1_0_3 : ( ( '!unique' ) ) ;
+    // InternalOCLinEcore.g:25183:1: rule__ParameterCS__QualifiersAssignment_2_1_0_3 : ( ( '!unique' ) ) ;
     public final void rule__ParameterCS__QualifiersAssignment_2_1_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25129:1: ( ( ( '!unique' ) ) )
-            // InternalOCLinEcore.g:25130:1: ( ( '!unique' ) )
+            // InternalOCLinEcore.g:25187:1: ( ( ( '!unique' ) ) )
+            // InternalOCLinEcore.g:25188:1: ( ( '!unique' ) )
             {
-            // InternalOCLinEcore.g:25130:1: ( ( '!unique' ) )
-            // InternalOCLinEcore.g:25131:1: ( '!unique' )
+            // InternalOCLinEcore.g:25188:1: ( ( '!unique' ) )
+            // InternalOCLinEcore.g:25189:1: ( '!unique' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_3_0()); 
             }
-            // InternalOCLinEcore.g:25132:1: ( '!unique' )
-            // InternalOCLinEcore.g:25133:1: '!unique'
+            // InternalOCLinEcore.g:25190:1: ( '!unique' )
+            // InternalOCLinEcore.g:25191:1: '!unique'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_3_0()); 
@@ -73684,17 +73858,17 @@
 
 
     // $ANTLR start "rule__ParameterCS__OwnedAnnotationsAssignment_3_1"
-    // InternalOCLinEcore.g:25148:1: rule__ParameterCS__OwnedAnnotationsAssignment_3_1 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:25206:1: rule__ParameterCS__OwnedAnnotationsAssignment_3_1 : ( ruleAnnotationElementCS ) ;
     public final void rule__ParameterCS__OwnedAnnotationsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25152:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:25153:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:25210:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:25211:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:25153:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:25154:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:25211:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:25212:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_3_1_0()); 
@@ -73729,23 +73903,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_0_0_0"
-    // InternalOCLinEcore.g:25163:1: rule__ReferenceCS__QualifiersAssignment_0_0_0 : ( ( 'static' ) ) ;
+    // InternalOCLinEcore.g:25221:1: rule__ReferenceCS__QualifiersAssignment_0_0_0 : ( ( 'static' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25167:1: ( ( ( 'static' ) ) )
-            // InternalOCLinEcore.g:25168:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:25225:1: ( ( ( 'static' ) ) )
+            // InternalOCLinEcore.g:25226:1: ( ( 'static' ) )
             {
-            // InternalOCLinEcore.g:25168:1: ( ( 'static' ) )
-            // InternalOCLinEcore.g:25169:1: ( 'static' )
+            // InternalOCLinEcore.g:25226:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:25227:1: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_0_0_0()); 
             }
-            // InternalOCLinEcore.g:25170:1: ( 'static' )
-            // InternalOCLinEcore.g:25171:1: 'static'
+            // InternalOCLinEcore.g:25228:1: ( 'static' )
+            // InternalOCLinEcore.g:25229:1: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_0_0_0()); 
@@ -73782,23 +73956,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_0_0_1"
-    // InternalOCLinEcore.g:25186:1: rule__ReferenceCS__QualifiersAssignment_0_0_1 : ( ( 'definition' ) ) ;
+    // InternalOCLinEcore.g:25244:1: rule__ReferenceCS__QualifiersAssignment_0_0_1 : ( ( 'definition' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25190:1: ( ( ( 'definition' ) ) )
-            // InternalOCLinEcore.g:25191:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:25248:1: ( ( ( 'definition' ) ) )
+            // InternalOCLinEcore.g:25249:1: ( ( 'definition' ) )
             {
-            // InternalOCLinEcore.g:25191:1: ( ( 'definition' ) )
-            // InternalOCLinEcore.g:25192:1: ( 'definition' )
+            // InternalOCLinEcore.g:25249:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:25250:1: ( 'definition' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); 
             }
-            // InternalOCLinEcore.g:25193:1: ( 'definition' )
-            // InternalOCLinEcore.g:25194:1: 'definition'
+            // InternalOCLinEcore.g:25251:1: ( 'definition' )
+            // InternalOCLinEcore.g:25252:1: 'definition'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); 
@@ -73835,23 +74009,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_0_1_0"
-    // InternalOCLinEcore.g:25209:1: rule__ReferenceCS__QualifiersAssignment_0_1_0 : ( ( 'definition' ) ) ;
+    // InternalOCLinEcore.g:25267:1: rule__ReferenceCS__QualifiersAssignment_0_1_0 : ( ( 'definition' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25213:1: ( ( ( 'definition' ) ) )
-            // InternalOCLinEcore.g:25214:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:25271:1: ( ( ( 'definition' ) ) )
+            // InternalOCLinEcore.g:25272:1: ( ( 'definition' ) )
             {
-            // InternalOCLinEcore.g:25214:1: ( ( 'definition' ) )
-            // InternalOCLinEcore.g:25215:1: ( 'definition' )
+            // InternalOCLinEcore.g:25272:1: ( ( 'definition' ) )
+            // InternalOCLinEcore.g:25273:1: ( 'definition' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); 
             }
-            // InternalOCLinEcore.g:25216:1: ( 'definition' )
-            // InternalOCLinEcore.g:25217:1: 'definition'
+            // InternalOCLinEcore.g:25274:1: ( 'definition' )
+            // InternalOCLinEcore.g:25275:1: 'definition'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); 
@@ -73888,23 +74062,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_0_1_1"
-    // InternalOCLinEcore.g:25232:1: rule__ReferenceCS__QualifiersAssignment_0_1_1 : ( ( 'static' ) ) ;
+    // InternalOCLinEcore.g:25290:1: rule__ReferenceCS__QualifiersAssignment_0_1_1 : ( ( 'static' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25236:1: ( ( ( 'static' ) ) )
-            // InternalOCLinEcore.g:25237:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:25294:1: ( ( ( 'static' ) ) )
+            // InternalOCLinEcore.g:25295:1: ( ( 'static' ) )
             {
-            // InternalOCLinEcore.g:25237:1: ( ( 'static' ) )
-            // InternalOCLinEcore.g:25238:1: ( 'static' )
+            // InternalOCLinEcore.g:25295:1: ( ( 'static' ) )
+            // InternalOCLinEcore.g:25296:1: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_1_1_0()); 
             }
-            // InternalOCLinEcore.g:25239:1: ( 'static' )
-            // InternalOCLinEcore.g:25240:1: 'static'
+            // InternalOCLinEcore.g:25297:1: ( 'static' )
+            // InternalOCLinEcore.g:25298:1: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_1_1_0()); 
@@ -73941,17 +74115,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__NameAssignment_2"
-    // InternalOCLinEcore.g:25255:1: rule__ReferenceCS__NameAssignment_2 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:25313:1: rule__ReferenceCS__NameAssignment_2 : ( ruleUnrestrictedName ) ;
     public final void rule__ReferenceCS__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25259:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:25260:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25317:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25318:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:25260:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:25261:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:25318:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25319:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getNameUnrestrictedNameParserRuleCall_2_0()); 
@@ -73986,23 +74160,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__ReferredOppositeAssignment_3_1"
-    // InternalOCLinEcore.g:25270:1: rule__ReferenceCS__ReferredOppositeAssignment_3_1 : ( ( ruleUnrestrictedName ) ) ;
+    // InternalOCLinEcore.g:25328:1: rule__ReferenceCS__ReferredOppositeAssignment_3_1 : ( ( ruleUnrestrictedName ) ) ;
     public final void rule__ReferenceCS__ReferredOppositeAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25274:1: ( ( ( ruleUnrestrictedName ) ) )
-            // InternalOCLinEcore.g:25275:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25332:1: ( ( ( ruleUnrestrictedName ) ) )
+            // InternalOCLinEcore.g:25333:1: ( ( ruleUnrestrictedName ) )
             {
-            // InternalOCLinEcore.g:25275:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:25276:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25333:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25334:1: ( ruleUnrestrictedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredOppositePropertyCrossReference_3_1_0()); 
             }
-            // InternalOCLinEcore.g:25277:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:25278:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:25335:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25336:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredOppositePropertyUnrestrictedNameParserRuleCall_3_1_0_1()); 
@@ -74043,17 +74217,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__OwnedTypeAssignment_4_1"
-    // InternalOCLinEcore.g:25289:1: rule__ReferenceCS__OwnedTypeAssignment_4_1 : ( ruleTypedMultiplicityRefCS ) ;
+    // InternalOCLinEcore.g:25347:1: rule__ReferenceCS__OwnedTypeAssignment_4_1 : ( ruleTypedMultiplicityRefCS ) ;
     public final void rule__ReferenceCS__OwnedTypeAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25293:1: ( ( ruleTypedMultiplicityRefCS ) )
-            // InternalOCLinEcore.g:25294:1: ( ruleTypedMultiplicityRefCS )
+            // InternalOCLinEcore.g:25351:1: ( ( ruleTypedMultiplicityRefCS ) )
+            // InternalOCLinEcore.g:25352:1: ( ruleTypedMultiplicityRefCS )
             {
-            // InternalOCLinEcore.g:25294:1: ( ruleTypedMultiplicityRefCS )
-            // InternalOCLinEcore.g:25295:1: ruleTypedMultiplicityRefCS
+            // InternalOCLinEcore.g:25352:1: ( ruleTypedMultiplicityRefCS )
+            // InternalOCLinEcore.g:25353:1: ruleTypedMultiplicityRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getOwnedTypeTypedMultiplicityRefCSParserRuleCall_4_1_0()); 
@@ -74088,17 +74262,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__DefaultAssignment_5_1"
-    // InternalOCLinEcore.g:25304:1: rule__ReferenceCS__DefaultAssignment_5_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
+    // InternalOCLinEcore.g:25362:1: rule__ReferenceCS__DefaultAssignment_5_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
     public final void rule__ReferenceCS__DefaultAssignment_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25308:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
-            // InternalOCLinEcore.g:25309:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:25366:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
+            // InternalOCLinEcore.g:25367:1: ( RULE_SINGLE_QUOTED_STRING )
             {
-            // InternalOCLinEcore.g:25309:1: ( RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:25310:1: RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:25367:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:25368:1: RULE_SINGLE_QUOTED_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getDefaultSINGLE_QUOTED_STRINGTerminalRuleCall_5_1_0()); 
@@ -74129,23 +74303,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_0"
-    // InternalOCLinEcore.g:25319:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_0 : ( ( 'composes' ) ) ;
+    // InternalOCLinEcore.g:25377:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_0 : ( ( 'composes' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25323:1: ( ( ( 'composes' ) ) )
-            // InternalOCLinEcore.g:25324:1: ( ( 'composes' ) )
+            // InternalOCLinEcore.g:25381:1: ( ( ( 'composes' ) ) )
+            // InternalOCLinEcore.g:25382:1: ( ( 'composes' ) )
             {
-            // InternalOCLinEcore.g:25324:1: ( ( 'composes' ) )
-            // InternalOCLinEcore.g:25325:1: ( 'composes' )
+            // InternalOCLinEcore.g:25382:1: ( ( 'composes' ) )
+            // InternalOCLinEcore.g:25383:1: ( 'composes' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_0_0()); 
             }
-            // InternalOCLinEcore.g:25326:1: ( 'composes' )
-            // InternalOCLinEcore.g:25327:1: 'composes'
+            // InternalOCLinEcore.g:25384:1: ( 'composes' )
+            // InternalOCLinEcore.g:25385:1: 'composes'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_0_0()); 
@@ -74182,23 +74356,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_1"
-    // InternalOCLinEcore.g:25342:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_1 : ( ( '!composes' ) ) ;
+    // InternalOCLinEcore.g:25400:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_1 : ( ( '!composes' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25346:1: ( ( ( '!composes' ) ) )
-            // InternalOCLinEcore.g:25347:1: ( ( '!composes' ) )
+            // InternalOCLinEcore.g:25404:1: ( ( ( '!composes' ) ) )
+            // InternalOCLinEcore.g:25405:1: ( ( '!composes' ) )
             {
-            // InternalOCLinEcore.g:25347:1: ( ( '!composes' ) )
-            // InternalOCLinEcore.g:25348:1: ( '!composes' )
+            // InternalOCLinEcore.g:25405:1: ( ( '!composes' ) )
+            // InternalOCLinEcore.g:25406:1: ( '!composes' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_1_0()); 
             }
-            // InternalOCLinEcore.g:25349:1: ( '!composes' )
-            // InternalOCLinEcore.g:25350:1: '!composes'
+            // InternalOCLinEcore.g:25407:1: ( '!composes' )
+            // InternalOCLinEcore.g:25408:1: '!composes'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_1_0()); 
@@ -74235,23 +74409,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_2"
-    // InternalOCLinEcore.g:25365:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_2 : ( ( 'derived' ) ) ;
+    // InternalOCLinEcore.g:25423:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_2 : ( ( 'derived' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25369:1: ( ( ( 'derived' ) ) )
-            // InternalOCLinEcore.g:25370:1: ( ( 'derived' ) )
+            // InternalOCLinEcore.g:25427:1: ( ( ( 'derived' ) ) )
+            // InternalOCLinEcore.g:25428:1: ( ( 'derived' ) )
             {
-            // InternalOCLinEcore.g:25370:1: ( ( 'derived' ) )
-            // InternalOCLinEcore.g:25371:1: ( 'derived' )
+            // InternalOCLinEcore.g:25428:1: ( ( 'derived' ) )
+            // InternalOCLinEcore.g:25429:1: ( 'derived' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_2_0()); 
             }
-            // InternalOCLinEcore.g:25372:1: ( 'derived' )
-            // InternalOCLinEcore.g:25373:1: 'derived'
+            // InternalOCLinEcore.g:25430:1: ( 'derived' )
+            // InternalOCLinEcore.g:25431:1: 'derived'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_2_0()); 
@@ -74288,23 +74462,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_3"
-    // InternalOCLinEcore.g:25388:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_3 : ( ( '!derived' ) ) ;
+    // InternalOCLinEcore.g:25446:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_3 : ( ( '!derived' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25392:1: ( ( ( '!derived' ) ) )
-            // InternalOCLinEcore.g:25393:1: ( ( '!derived' ) )
+            // InternalOCLinEcore.g:25450:1: ( ( ( '!derived' ) ) )
+            // InternalOCLinEcore.g:25451:1: ( ( '!derived' ) )
             {
-            // InternalOCLinEcore.g:25393:1: ( ( '!derived' ) )
-            // InternalOCLinEcore.g:25394:1: ( '!derived' )
+            // InternalOCLinEcore.g:25451:1: ( ( '!derived' ) )
+            // InternalOCLinEcore.g:25452:1: ( '!derived' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_3_0()); 
             }
-            // InternalOCLinEcore.g:25395:1: ( '!derived' )
-            // InternalOCLinEcore.g:25396:1: '!derived'
+            // InternalOCLinEcore.g:25453:1: ( '!derived' )
+            // InternalOCLinEcore.g:25454:1: '!derived'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_3_0()); 
@@ -74341,23 +74515,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_4"
-    // InternalOCLinEcore.g:25411:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_4 : ( ( 'ordered' ) ) ;
+    // InternalOCLinEcore.g:25469:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_4 : ( ( 'ordered' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25415:1: ( ( ( 'ordered' ) ) )
-            // InternalOCLinEcore.g:25416:1: ( ( 'ordered' ) )
+            // InternalOCLinEcore.g:25473:1: ( ( ( 'ordered' ) ) )
+            // InternalOCLinEcore.g:25474:1: ( ( 'ordered' ) )
             {
-            // InternalOCLinEcore.g:25416:1: ( ( 'ordered' ) )
-            // InternalOCLinEcore.g:25417:1: ( 'ordered' )
+            // InternalOCLinEcore.g:25474:1: ( ( 'ordered' ) )
+            // InternalOCLinEcore.g:25475:1: ( 'ordered' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_4_0()); 
             }
-            // InternalOCLinEcore.g:25418:1: ( 'ordered' )
-            // InternalOCLinEcore.g:25419:1: 'ordered'
+            // InternalOCLinEcore.g:25476:1: ( 'ordered' )
+            // InternalOCLinEcore.g:25477:1: 'ordered'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_4_0()); 
@@ -74394,23 +74568,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_5"
-    // InternalOCLinEcore.g:25434:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_5 : ( ( '!ordered' ) ) ;
+    // InternalOCLinEcore.g:25492:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_5 : ( ( '!ordered' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25438:1: ( ( ( '!ordered' ) ) )
-            // InternalOCLinEcore.g:25439:1: ( ( '!ordered' ) )
+            // InternalOCLinEcore.g:25496:1: ( ( ( '!ordered' ) ) )
+            // InternalOCLinEcore.g:25497:1: ( ( '!ordered' ) )
             {
-            // InternalOCLinEcore.g:25439:1: ( ( '!ordered' ) )
-            // InternalOCLinEcore.g:25440:1: ( '!ordered' )
+            // InternalOCLinEcore.g:25497:1: ( ( '!ordered' ) )
+            // InternalOCLinEcore.g:25498:1: ( '!ordered' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_5_0()); 
             }
-            // InternalOCLinEcore.g:25441:1: ( '!ordered' )
-            // InternalOCLinEcore.g:25442:1: '!ordered'
+            // InternalOCLinEcore.g:25499:1: ( '!ordered' )
+            // InternalOCLinEcore.g:25500:1: '!ordered'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_5_0()); 
@@ -74447,23 +74621,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_6"
-    // InternalOCLinEcore.g:25457:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_6 : ( ( 'readonly' ) ) ;
+    // InternalOCLinEcore.g:25515:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_6 : ( ( 'readonly' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25461:1: ( ( ( 'readonly' ) ) )
-            // InternalOCLinEcore.g:25462:1: ( ( 'readonly' ) )
+            // InternalOCLinEcore.g:25519:1: ( ( ( 'readonly' ) ) )
+            // InternalOCLinEcore.g:25520:1: ( ( 'readonly' ) )
             {
-            // InternalOCLinEcore.g:25462:1: ( ( 'readonly' ) )
-            // InternalOCLinEcore.g:25463:1: ( 'readonly' )
+            // InternalOCLinEcore.g:25520:1: ( ( 'readonly' ) )
+            // InternalOCLinEcore.g:25521:1: ( 'readonly' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_6_0()); 
             }
-            // InternalOCLinEcore.g:25464:1: ( 'readonly' )
-            // InternalOCLinEcore.g:25465:1: 'readonly'
+            // InternalOCLinEcore.g:25522:1: ( 'readonly' )
+            // InternalOCLinEcore.g:25523:1: 'readonly'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_6_0()); 
@@ -74500,23 +74674,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_7"
-    // InternalOCLinEcore.g:25480:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_7 : ( ( '!readonly' ) ) ;
+    // InternalOCLinEcore.g:25538:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_7 : ( ( '!readonly' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25484:1: ( ( ( '!readonly' ) ) )
-            // InternalOCLinEcore.g:25485:1: ( ( '!readonly' ) )
+            // InternalOCLinEcore.g:25542:1: ( ( ( '!readonly' ) ) )
+            // InternalOCLinEcore.g:25543:1: ( ( '!readonly' ) )
             {
-            // InternalOCLinEcore.g:25485:1: ( ( '!readonly' ) )
-            // InternalOCLinEcore.g:25486:1: ( '!readonly' )
+            // InternalOCLinEcore.g:25543:1: ( ( '!readonly' ) )
+            // InternalOCLinEcore.g:25544:1: ( '!readonly' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_7_0()); 
             }
-            // InternalOCLinEcore.g:25487:1: ( '!readonly' )
-            // InternalOCLinEcore.g:25488:1: '!readonly'
+            // InternalOCLinEcore.g:25545:1: ( '!readonly' )
+            // InternalOCLinEcore.g:25546:1: '!readonly'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_7_0()); 
@@ -74553,23 +74727,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_8"
-    // InternalOCLinEcore.g:25503:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_8 : ( ( 'resolve' ) ) ;
+    // InternalOCLinEcore.g:25561:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_8 : ( ( 'resolve' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25507:1: ( ( ( 'resolve' ) ) )
-            // InternalOCLinEcore.g:25508:1: ( ( 'resolve' ) )
+            // InternalOCLinEcore.g:25565:1: ( ( ( 'resolve' ) ) )
+            // InternalOCLinEcore.g:25566:1: ( ( 'resolve' ) )
             {
-            // InternalOCLinEcore.g:25508:1: ( ( 'resolve' ) )
-            // InternalOCLinEcore.g:25509:1: ( 'resolve' )
+            // InternalOCLinEcore.g:25566:1: ( ( 'resolve' ) )
+            // InternalOCLinEcore.g:25567:1: ( 'resolve' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_8_0()); 
             }
-            // InternalOCLinEcore.g:25510:1: ( 'resolve' )
-            // InternalOCLinEcore.g:25511:1: 'resolve'
+            // InternalOCLinEcore.g:25568:1: ( 'resolve' )
+            // InternalOCLinEcore.g:25569:1: 'resolve'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_8_0()); 
@@ -74606,23 +74780,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_9"
-    // InternalOCLinEcore.g:25526:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_9 : ( ( '!resolve' ) ) ;
+    // InternalOCLinEcore.g:25584:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_9 : ( ( '!resolve' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25530:1: ( ( ( '!resolve' ) ) )
-            // InternalOCLinEcore.g:25531:1: ( ( '!resolve' ) )
+            // InternalOCLinEcore.g:25588:1: ( ( ( '!resolve' ) ) )
+            // InternalOCLinEcore.g:25589:1: ( ( '!resolve' ) )
             {
-            // InternalOCLinEcore.g:25531:1: ( ( '!resolve' ) )
-            // InternalOCLinEcore.g:25532:1: ( '!resolve' )
+            // InternalOCLinEcore.g:25589:1: ( ( '!resolve' ) )
+            // InternalOCLinEcore.g:25590:1: ( '!resolve' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_9_0()); 
             }
-            // InternalOCLinEcore.g:25533:1: ( '!resolve' )
-            // InternalOCLinEcore.g:25534:1: '!resolve'
+            // InternalOCLinEcore.g:25591:1: ( '!resolve' )
+            // InternalOCLinEcore.g:25592:1: '!resolve'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_9_0()); 
@@ -74659,23 +74833,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_10"
-    // InternalOCLinEcore.g:25549:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_10 : ( ( 'transient' ) ) ;
+    // InternalOCLinEcore.g:25607:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_10 : ( ( 'transient' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25553:1: ( ( ( 'transient' ) ) )
-            // InternalOCLinEcore.g:25554:1: ( ( 'transient' ) )
+            // InternalOCLinEcore.g:25611:1: ( ( ( 'transient' ) ) )
+            // InternalOCLinEcore.g:25612:1: ( ( 'transient' ) )
             {
-            // InternalOCLinEcore.g:25554:1: ( ( 'transient' ) )
-            // InternalOCLinEcore.g:25555:1: ( 'transient' )
+            // InternalOCLinEcore.g:25612:1: ( ( 'transient' ) )
+            // InternalOCLinEcore.g:25613:1: ( 'transient' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_10_0()); 
             }
-            // InternalOCLinEcore.g:25556:1: ( 'transient' )
-            // InternalOCLinEcore.g:25557:1: 'transient'
+            // InternalOCLinEcore.g:25614:1: ( 'transient' )
+            // InternalOCLinEcore.g:25615:1: 'transient'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_10_0()); 
@@ -74712,23 +74886,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_11"
-    // InternalOCLinEcore.g:25572:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_11 : ( ( '!transient' ) ) ;
+    // InternalOCLinEcore.g:25630:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_11 : ( ( '!transient' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_11() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25576:1: ( ( ( '!transient' ) ) )
-            // InternalOCLinEcore.g:25577:1: ( ( '!transient' ) )
+            // InternalOCLinEcore.g:25634:1: ( ( ( '!transient' ) ) )
+            // InternalOCLinEcore.g:25635:1: ( ( '!transient' ) )
             {
-            // InternalOCLinEcore.g:25577:1: ( ( '!transient' ) )
-            // InternalOCLinEcore.g:25578:1: ( '!transient' )
+            // InternalOCLinEcore.g:25635:1: ( ( '!transient' ) )
+            // InternalOCLinEcore.g:25636:1: ( '!transient' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_11_0()); 
             }
-            // InternalOCLinEcore.g:25579:1: ( '!transient' )
-            // InternalOCLinEcore.g:25580:1: '!transient'
+            // InternalOCLinEcore.g:25637:1: ( '!transient' )
+            // InternalOCLinEcore.g:25638:1: '!transient'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_11_0()); 
@@ -74765,23 +74939,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_12"
-    // InternalOCLinEcore.g:25595:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_12 : ( ( 'unique' ) ) ;
+    // InternalOCLinEcore.g:25653:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_12 : ( ( 'unique' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_12() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25599:1: ( ( ( 'unique' ) ) )
-            // InternalOCLinEcore.g:25600:1: ( ( 'unique' ) )
+            // InternalOCLinEcore.g:25657:1: ( ( ( 'unique' ) ) )
+            // InternalOCLinEcore.g:25658:1: ( ( 'unique' ) )
             {
-            // InternalOCLinEcore.g:25600:1: ( ( 'unique' ) )
-            // InternalOCLinEcore.g:25601:1: ( 'unique' )
+            // InternalOCLinEcore.g:25658:1: ( ( 'unique' ) )
+            // InternalOCLinEcore.g:25659:1: ( 'unique' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_12_0()); 
             }
-            // InternalOCLinEcore.g:25602:1: ( 'unique' )
-            // InternalOCLinEcore.g:25603:1: 'unique'
+            // InternalOCLinEcore.g:25660:1: ( 'unique' )
+            // InternalOCLinEcore.g:25661:1: 'unique'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_12_0()); 
@@ -74818,23 +74992,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_13"
-    // InternalOCLinEcore.g:25618:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_13 : ( ( '!unique' ) ) ;
+    // InternalOCLinEcore.g:25676:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_13 : ( ( '!unique' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_13() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25622:1: ( ( ( '!unique' ) ) )
-            // InternalOCLinEcore.g:25623:1: ( ( '!unique' ) )
+            // InternalOCLinEcore.g:25680:1: ( ( ( '!unique' ) ) )
+            // InternalOCLinEcore.g:25681:1: ( ( '!unique' ) )
             {
-            // InternalOCLinEcore.g:25623:1: ( ( '!unique' ) )
-            // InternalOCLinEcore.g:25624:1: ( '!unique' )
+            // InternalOCLinEcore.g:25681:1: ( ( '!unique' ) )
+            // InternalOCLinEcore.g:25682:1: ( '!unique' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_13_0()); 
             }
-            // InternalOCLinEcore.g:25625:1: ( '!unique' )
-            // InternalOCLinEcore.g:25626:1: '!unique'
+            // InternalOCLinEcore.g:25683:1: ( '!unique' )
+            // InternalOCLinEcore.g:25684:1: '!unique'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_13_0()); 
@@ -74871,23 +75045,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_14"
-    // InternalOCLinEcore.g:25641:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_14 : ( ( 'unsettable' ) ) ;
+    // InternalOCLinEcore.g:25699:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_14 : ( ( 'unsettable' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_14() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25645:1: ( ( ( 'unsettable' ) ) )
-            // InternalOCLinEcore.g:25646:1: ( ( 'unsettable' ) )
+            // InternalOCLinEcore.g:25703:1: ( ( ( 'unsettable' ) ) )
+            // InternalOCLinEcore.g:25704:1: ( ( 'unsettable' ) )
             {
-            // InternalOCLinEcore.g:25646:1: ( ( 'unsettable' ) )
-            // InternalOCLinEcore.g:25647:1: ( 'unsettable' )
+            // InternalOCLinEcore.g:25704:1: ( ( 'unsettable' ) )
+            // InternalOCLinEcore.g:25705:1: ( 'unsettable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_14_0()); 
             }
-            // InternalOCLinEcore.g:25648:1: ( 'unsettable' )
-            // InternalOCLinEcore.g:25649:1: 'unsettable'
+            // InternalOCLinEcore.g:25706:1: ( 'unsettable' )
+            // InternalOCLinEcore.g:25707:1: 'unsettable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_14_0()); 
@@ -74924,23 +75098,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_15"
-    // InternalOCLinEcore.g:25664:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_15 : ( ( '!unsettable' ) ) ;
+    // InternalOCLinEcore.g:25722:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_15 : ( ( '!unsettable' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_15() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25668:1: ( ( ( '!unsettable' ) ) )
-            // InternalOCLinEcore.g:25669:1: ( ( '!unsettable' ) )
+            // InternalOCLinEcore.g:25726:1: ( ( ( '!unsettable' ) ) )
+            // InternalOCLinEcore.g:25727:1: ( ( '!unsettable' ) )
             {
-            // InternalOCLinEcore.g:25669:1: ( ( '!unsettable' ) )
-            // InternalOCLinEcore.g:25670:1: ( '!unsettable' )
+            // InternalOCLinEcore.g:25727:1: ( ( '!unsettable' ) )
+            // InternalOCLinEcore.g:25728:1: ( '!unsettable' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_15_0()); 
             }
-            // InternalOCLinEcore.g:25671:1: ( '!unsettable' )
-            // InternalOCLinEcore.g:25672:1: '!unsettable'
+            // InternalOCLinEcore.g:25729:1: ( '!unsettable' )
+            // InternalOCLinEcore.g:25730:1: '!unsettable'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_15_0()); 
@@ -74977,23 +75151,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_16"
-    // InternalOCLinEcore.g:25687:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_16 : ( ( 'volatile' ) ) ;
+    // InternalOCLinEcore.g:25745:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_16 : ( ( 'volatile' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_16() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25691:1: ( ( ( 'volatile' ) ) )
-            // InternalOCLinEcore.g:25692:1: ( ( 'volatile' ) )
+            // InternalOCLinEcore.g:25749:1: ( ( ( 'volatile' ) ) )
+            // InternalOCLinEcore.g:25750:1: ( ( 'volatile' ) )
             {
-            // InternalOCLinEcore.g:25692:1: ( ( 'volatile' ) )
-            // InternalOCLinEcore.g:25693:1: ( 'volatile' )
+            // InternalOCLinEcore.g:25750:1: ( ( 'volatile' ) )
+            // InternalOCLinEcore.g:25751:1: ( 'volatile' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_16_0()); 
             }
-            // InternalOCLinEcore.g:25694:1: ( 'volatile' )
-            // InternalOCLinEcore.g:25695:1: 'volatile'
+            // InternalOCLinEcore.g:25752:1: ( 'volatile' )
+            // InternalOCLinEcore.g:25753:1: 'volatile'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_16_0()); 
@@ -75030,23 +75204,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__QualifiersAssignment_6_1_0_17"
-    // InternalOCLinEcore.g:25710:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_17 : ( ( '!volatile' ) ) ;
+    // InternalOCLinEcore.g:25768:1: rule__ReferenceCS__QualifiersAssignment_6_1_0_17 : ( ( '!volatile' ) ) ;
     public final void rule__ReferenceCS__QualifiersAssignment_6_1_0_17() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25714:1: ( ( ( '!volatile' ) ) )
-            // InternalOCLinEcore.g:25715:1: ( ( '!volatile' ) )
+            // InternalOCLinEcore.g:25772:1: ( ( ( '!volatile' ) ) )
+            // InternalOCLinEcore.g:25773:1: ( ( '!volatile' ) )
             {
-            // InternalOCLinEcore.g:25715:1: ( ( '!volatile' ) )
-            // InternalOCLinEcore.g:25716:1: ( '!volatile' )
+            // InternalOCLinEcore.g:25773:1: ( ( '!volatile' ) )
+            // InternalOCLinEcore.g:25774:1: ( '!volatile' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_17_0()); 
             }
-            // InternalOCLinEcore.g:25717:1: ( '!volatile' )
-            // InternalOCLinEcore.g:25718:1: '!volatile'
+            // InternalOCLinEcore.g:25775:1: ( '!volatile' )
+            // InternalOCLinEcore.g:25776:1: '!volatile'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_17_0()); 
@@ -75083,17 +75257,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0"
-    // InternalOCLinEcore.g:25733:1: rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:25791:1: rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0 : ( ruleAnnotationElementCS ) ;
     public final void rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25737:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:25738:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:25795:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:25796:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:25738:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:25739:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:25796:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:25797:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_7_0_1_0_0()); 
@@ -75128,23 +75302,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1"
-    // InternalOCLinEcore.g:25748:1: rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 : ( ( ruleUnrestrictedName ) ) ;
+    // InternalOCLinEcore.g:25806:1: rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1 : ( ( ruleUnrestrictedName ) ) ;
     public final void rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25752:1: ( ( ( ruleUnrestrictedName ) ) )
-            // InternalOCLinEcore.g:25753:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25810:1: ( ( ( ruleUnrestrictedName ) ) )
+            // InternalOCLinEcore.g:25811:1: ( ( ruleUnrestrictedName ) )
             {
-            // InternalOCLinEcore.g:25753:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:25754:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25811:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25812:1: ( ruleUnrestrictedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredKeysPropertyCrossReference_7_0_1_1_1_0()); 
             }
-            // InternalOCLinEcore.g:25755:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:25756:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:25813:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25814:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredKeysPropertyUnrestrictedNameParserRuleCall_7_0_1_1_1_0_1()); 
@@ -75185,23 +75359,23 @@
 
 
     // $ANTLR start "rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1"
-    // InternalOCLinEcore.g:25767:1: rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 : ( ( ruleUnrestrictedName ) ) ;
+    // InternalOCLinEcore.g:25825:1: rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1 : ( ( ruleUnrestrictedName ) ) ;
     public final void rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25771:1: ( ( ( ruleUnrestrictedName ) ) )
-            // InternalOCLinEcore.g:25772:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25829:1: ( ( ( ruleUnrestrictedName ) ) )
+            // InternalOCLinEcore.g:25830:1: ( ( ruleUnrestrictedName ) )
             {
-            // InternalOCLinEcore.g:25772:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:25773:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25830:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25831:1: ( ruleUnrestrictedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredKeysPropertyCrossReference_7_0_1_1_2_1_0()); 
             }
-            // InternalOCLinEcore.g:25774:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:25775:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:25832:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25833:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getReferredKeysPropertyUnrestrictedNameParserRuleCall_7_0_1_1_2_1_0_1()); 
@@ -75242,17 +75416,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3"
-    // InternalOCLinEcore.g:25786:1: rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:25844:1: rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3 : ( ruleSpecificationCS ) ;
     public final void rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_2_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25790:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:25791:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:25848:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:25849:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:25791:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:25792:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:25849:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:25850:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getOwnedDefaultExpressionsSpecificationCSParserRuleCall_7_0_1_2_3_0()); 
@@ -75287,17 +75461,17 @@
 
 
     // $ANTLR start "rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3"
-    // InternalOCLinEcore.g:25801:1: rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 : ( ruleSpecificationCS ) ;
+    // InternalOCLinEcore.g:25859:1: rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3 : ( ruleSpecificationCS ) ;
     public final void rule__ReferenceCS__OwnedDefaultExpressionsAssignment_7_0_1_3_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25805:1: ( ( ruleSpecificationCS ) )
-            // InternalOCLinEcore.g:25806:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:25863:1: ( ( ruleSpecificationCS ) )
+            // InternalOCLinEcore.g:25864:1: ( ruleSpecificationCS )
             {
-            // InternalOCLinEcore.g:25806:1: ( ruleSpecificationCS )
-            // InternalOCLinEcore.g:25807:1: ruleSpecificationCS
+            // InternalOCLinEcore.g:25864:1: ( ruleSpecificationCS )
+            // InternalOCLinEcore.g:25865:1: ruleSpecificationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getReferenceCSAccess().getOwnedDefaultExpressionsSpecificationCSParserRuleCall_7_0_1_3_3_0()); 
@@ -75332,17 +75506,17 @@
 
 
     // $ANTLR start "rule__SpecificationCS__OwnedExpressionAssignment_0"
-    // InternalOCLinEcore.g:25816:1: rule__SpecificationCS__OwnedExpressionAssignment_0 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:25874:1: rule__SpecificationCS__OwnedExpressionAssignment_0 : ( ruleExpCS ) ;
     public final void rule__SpecificationCS__OwnedExpressionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25820:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:25821:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:25878:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:25879:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:25821:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:25822:1: ruleExpCS
+            // InternalOCLinEcore.g:25879:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:25880:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSpecificationCSAccess().getOwnedExpressionExpCSParserRuleCall_0_0()); 
@@ -75377,17 +75551,17 @@
 
 
     // $ANTLR start "rule__SpecificationCS__ExprStringAssignment_1"
-    // InternalOCLinEcore.g:25831:1: rule__SpecificationCS__ExprStringAssignment_1 : ( RULE_UNQUOTED_STRING ) ;
+    // InternalOCLinEcore.g:25889:1: rule__SpecificationCS__ExprStringAssignment_1 : ( RULE_UNQUOTED_STRING ) ;
     public final void rule__SpecificationCS__ExprStringAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25835:1: ( ( RULE_UNQUOTED_STRING ) )
-            // InternalOCLinEcore.g:25836:1: ( RULE_UNQUOTED_STRING )
+            // InternalOCLinEcore.g:25893:1: ( ( RULE_UNQUOTED_STRING ) )
+            // InternalOCLinEcore.g:25894:1: ( RULE_UNQUOTED_STRING )
             {
-            // InternalOCLinEcore.g:25836:1: ( RULE_UNQUOTED_STRING )
-            // InternalOCLinEcore.g:25837:1: RULE_UNQUOTED_STRING
+            // InternalOCLinEcore.g:25894:1: ( RULE_UNQUOTED_STRING )
+            // InternalOCLinEcore.g:25895:1: RULE_UNQUOTED_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSpecificationCSAccess().getExprStringUNQUOTED_STRINGTerminalRuleCall_1_0()); 
@@ -75418,23 +75592,23 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__IsAbstractAssignment_0"
-    // InternalOCLinEcore.g:25846:1: rule__StructuredClassCS__IsAbstractAssignment_0 : ( ( 'abstract' ) ) ;
+    // InternalOCLinEcore.g:25904:1: rule__StructuredClassCS__IsAbstractAssignment_0 : ( ( 'abstract' ) ) ;
     public final void rule__StructuredClassCS__IsAbstractAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25850:1: ( ( ( 'abstract' ) ) )
-            // InternalOCLinEcore.g:25851:1: ( ( 'abstract' ) )
+            // InternalOCLinEcore.g:25908:1: ( ( ( 'abstract' ) ) )
+            // InternalOCLinEcore.g:25909:1: ( ( 'abstract' ) )
             {
-            // InternalOCLinEcore.g:25851:1: ( ( 'abstract' ) )
-            // InternalOCLinEcore.g:25852:1: ( 'abstract' )
+            // InternalOCLinEcore.g:25909:1: ( ( 'abstract' ) )
+            // InternalOCLinEcore.g:25910:1: ( 'abstract' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getIsAbstractAbstractKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:25853:1: ( 'abstract' )
-            // InternalOCLinEcore.g:25854:1: 'abstract'
+            // InternalOCLinEcore.g:25911:1: ( 'abstract' )
+            // InternalOCLinEcore.g:25912:1: 'abstract'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getIsAbstractAbstractKeyword_0_0()); 
@@ -75471,17 +75645,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__NameAssignment_2"
-    // InternalOCLinEcore.g:25869:1: rule__StructuredClassCS__NameAssignment_2 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:25927:1: rule__StructuredClassCS__NameAssignment_2 : ( ruleUnrestrictedName ) ;
     public final void rule__StructuredClassCS__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25873:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:25874:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25931:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:25932:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:25874:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:25875:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:25932:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:25933:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getNameUnrestrictedNameParserRuleCall_2_0()); 
@@ -75516,17 +75690,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__OwnedSignatureAssignment_3"
-    // InternalOCLinEcore.g:25884:1: rule__StructuredClassCS__OwnedSignatureAssignment_3 : ( ruleTemplateSignatureCS ) ;
+    // InternalOCLinEcore.g:25942:1: rule__StructuredClassCS__OwnedSignatureAssignment_3 : ( ruleTemplateSignatureCS ) ;
     public final void rule__StructuredClassCS__OwnedSignatureAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25888:1: ( ( ruleTemplateSignatureCS ) )
-            // InternalOCLinEcore.g:25889:1: ( ruleTemplateSignatureCS )
+            // InternalOCLinEcore.g:25946:1: ( ( ruleTemplateSignatureCS ) )
+            // InternalOCLinEcore.g:25947:1: ( ruleTemplateSignatureCS )
             {
-            // InternalOCLinEcore.g:25889:1: ( ruleTemplateSignatureCS )
-            // InternalOCLinEcore.g:25890:1: ruleTemplateSignatureCS
+            // InternalOCLinEcore.g:25947:1: ( ruleTemplateSignatureCS )
+            // InternalOCLinEcore.g:25948:1: ruleTemplateSignatureCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedSignatureTemplateSignatureCSParserRuleCall_3_0()); 
@@ -75561,17 +75735,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1"
-    // InternalOCLinEcore.g:25899:1: rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 : ( ruleTypedRefCS ) ;
+    // InternalOCLinEcore.g:25957:1: rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1 : ( ruleTypedRefCS ) ;
     public final void rule__StructuredClassCS__OwnedSuperTypesAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25903:1: ( ( ruleTypedRefCS ) )
-            // InternalOCLinEcore.g:25904:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:25961:1: ( ( ruleTypedRefCS ) )
+            // InternalOCLinEcore.g:25962:1: ( ruleTypedRefCS )
             {
-            // InternalOCLinEcore.g:25904:1: ( ruleTypedRefCS )
-            // InternalOCLinEcore.g:25905:1: ruleTypedRefCS
+            // InternalOCLinEcore.g:25962:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:25963:1: ruleTypedRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedSuperTypesTypedRefCSParserRuleCall_4_1_0()); 
@@ -75606,17 +75780,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1"
-    // InternalOCLinEcore.g:25914:1: rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 : ( ruleTypedRefCS ) ;
+    // InternalOCLinEcore.g:25972:1: rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1 : ( ruleTypedRefCS ) ;
     public final void rule__StructuredClassCS__OwnedSuperTypesAssignment_4_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25918:1: ( ( ruleTypedRefCS ) )
-            // InternalOCLinEcore.g:25919:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:25976:1: ( ( ruleTypedRefCS ) )
+            // InternalOCLinEcore.g:25977:1: ( ruleTypedRefCS )
             {
-            // InternalOCLinEcore.g:25919:1: ( ruleTypedRefCS )
-            // InternalOCLinEcore.g:25920:1: ruleTypedRefCS
+            // InternalOCLinEcore.g:25977:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:25978:1: ruleTypedRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedSuperTypesTypedRefCSParserRuleCall_4_2_1_0()); 
@@ -75651,17 +75825,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__InstanceClassNameAssignment_5_1"
-    // InternalOCLinEcore.g:25929:1: rule__StructuredClassCS__InstanceClassNameAssignment_5_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
+    // InternalOCLinEcore.g:25987:1: rule__StructuredClassCS__InstanceClassNameAssignment_5_1 : ( RULE_SINGLE_QUOTED_STRING ) ;
     public final void rule__StructuredClassCS__InstanceClassNameAssignment_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25933:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
-            // InternalOCLinEcore.g:25934:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:25991:1: ( ( RULE_SINGLE_QUOTED_STRING ) )
+            // InternalOCLinEcore.g:25992:1: ( RULE_SINGLE_QUOTED_STRING )
             {
-            // InternalOCLinEcore.g:25934:1: ( RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:25935:1: RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:25992:1: ( RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:25993:1: RULE_SINGLE_QUOTED_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getInstanceClassNameSINGLE_QUOTED_STRINGTerminalRuleCall_5_1_0()); 
@@ -75692,23 +75866,23 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__IsInterfaceAssignment_6_1"
-    // InternalOCLinEcore.g:25944:1: rule__StructuredClassCS__IsInterfaceAssignment_6_1 : ( ( 'interface' ) ) ;
+    // InternalOCLinEcore.g:26002:1: rule__StructuredClassCS__IsInterfaceAssignment_6_1 : ( ( 'interface' ) ) ;
     public final void rule__StructuredClassCS__IsInterfaceAssignment_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25948:1: ( ( ( 'interface' ) ) )
-            // InternalOCLinEcore.g:25949:1: ( ( 'interface' ) )
+            // InternalOCLinEcore.g:26006:1: ( ( ( 'interface' ) ) )
+            // InternalOCLinEcore.g:26007:1: ( ( 'interface' ) )
             {
-            // InternalOCLinEcore.g:25949:1: ( ( 'interface' ) )
-            // InternalOCLinEcore.g:25950:1: ( 'interface' )
+            // InternalOCLinEcore.g:26007:1: ( ( 'interface' ) )
+            // InternalOCLinEcore.g:26008:1: ( 'interface' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getIsInterfaceInterfaceKeyword_6_1_0()); 
             }
-            // InternalOCLinEcore.g:25951:1: ( 'interface' )
-            // InternalOCLinEcore.g:25952:1: 'interface'
+            // InternalOCLinEcore.g:26009:1: ( 'interface' )
+            // InternalOCLinEcore.g:26010:1: 'interface'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getIsInterfaceInterfaceKeyword_6_1_0()); 
@@ -75745,17 +75919,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0"
-    // InternalOCLinEcore.g:25967:1: rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 : ( ruleAnnotationElementCS ) ;
+    // InternalOCLinEcore.g:26025:1: rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0 : ( ruleAnnotationElementCS ) ;
     public final void rule__StructuredClassCS__OwnedAnnotationsAssignment_7_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25971:1: ( ( ruleAnnotationElementCS ) )
-            // InternalOCLinEcore.g:25972:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:26029:1: ( ( ruleAnnotationElementCS ) )
+            // InternalOCLinEcore.g:26030:1: ( ruleAnnotationElementCS )
             {
-            // InternalOCLinEcore.g:25972:1: ( ruleAnnotationElementCS )
-            // InternalOCLinEcore.g:25973:1: ruleAnnotationElementCS
+            // InternalOCLinEcore.g:26030:1: ( ruleAnnotationElementCS )
+            // InternalOCLinEcore.g:26031:1: ruleAnnotationElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_7_0_1_0_0()); 
@@ -75790,17 +75964,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1"
-    // InternalOCLinEcore.g:25982:1: rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 : ( ruleOperationCS ) ;
+    // InternalOCLinEcore.g:26040:1: rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1 : ( ruleOperationCS ) ;
     public final void rule__StructuredClassCS__OwnedOperationsAssignment_7_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:25986:1: ( ( ruleOperationCS ) )
-            // InternalOCLinEcore.g:25987:1: ( ruleOperationCS )
+            // InternalOCLinEcore.g:26044:1: ( ( ruleOperationCS ) )
+            // InternalOCLinEcore.g:26045:1: ( ruleOperationCS )
             {
-            // InternalOCLinEcore.g:25987:1: ( ruleOperationCS )
-            // InternalOCLinEcore.g:25988:1: ruleOperationCS
+            // InternalOCLinEcore.g:26045:1: ( ruleOperationCS )
+            // InternalOCLinEcore.g:26046:1: ruleOperationCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedOperationsOperationCSParserRuleCall_7_0_1_1_0()); 
@@ -75835,17 +76009,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2"
-    // InternalOCLinEcore.g:25997:1: rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 : ( ruleStructuralFeatureCS ) ;
+    // InternalOCLinEcore.g:26055:1: rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2 : ( ruleStructuralFeatureCS ) ;
     public final void rule__StructuredClassCS__OwnedPropertiesAssignment_7_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26001:1: ( ( ruleStructuralFeatureCS ) )
-            // InternalOCLinEcore.g:26002:1: ( ruleStructuralFeatureCS )
+            // InternalOCLinEcore.g:26059:1: ( ( ruleStructuralFeatureCS ) )
+            // InternalOCLinEcore.g:26060:1: ( ruleStructuralFeatureCS )
             {
-            // InternalOCLinEcore.g:26002:1: ( ruleStructuralFeatureCS )
-            // InternalOCLinEcore.g:26003:1: ruleStructuralFeatureCS
+            // InternalOCLinEcore.g:26060:1: ( ruleStructuralFeatureCS )
+            // InternalOCLinEcore.g:26061:1: ruleStructuralFeatureCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedPropertiesStructuralFeatureCSParserRuleCall_7_0_1_2_0()); 
@@ -75880,17 +76054,17 @@
 
 
     // $ANTLR start "rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3"
-    // InternalOCLinEcore.g:26012:1: rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 : ( ruleInvariantConstraintCS ) ;
+    // InternalOCLinEcore.g:26070:1: rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3 : ( ruleInvariantConstraintCS ) ;
     public final void rule__StructuredClassCS__OwnedConstraintsAssignment_7_0_1_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26016:1: ( ( ruleInvariantConstraintCS ) )
-            // InternalOCLinEcore.g:26017:1: ( ruleInvariantConstraintCS )
+            // InternalOCLinEcore.g:26074:1: ( ( ruleInvariantConstraintCS ) )
+            // InternalOCLinEcore.g:26075:1: ( ruleInvariantConstraintCS )
             {
-            // InternalOCLinEcore.g:26017:1: ( ruleInvariantConstraintCS )
-            // InternalOCLinEcore.g:26018:1: ruleInvariantConstraintCS
+            // InternalOCLinEcore.g:26075:1: ( ruleInvariantConstraintCS )
+            // InternalOCLinEcore.g:26076:1: ruleInvariantConstraintCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStructuredClassCSAccess().getOwnedConstraintsInvariantConstraintCSParserRuleCall_7_0_1_3_0()); 
@@ -75925,17 +76099,17 @@
 
 
     // $ANTLR start "rule__SysMLCS__OwnedDetailsAssignment_2_0_0"
-    // InternalOCLinEcore.g:26027:1: rule__SysMLCS__OwnedDetailsAssignment_2_0_0 : ( ruleDetailCS ) ;
+    // InternalOCLinEcore.g:26085:1: rule__SysMLCS__OwnedDetailsAssignment_2_0_0 : ( ruleDetailCS ) ;
     public final void rule__SysMLCS__OwnedDetailsAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26031:1: ( ( ruleDetailCS ) )
-            // InternalOCLinEcore.g:26032:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:26089:1: ( ( ruleDetailCS ) )
+            // InternalOCLinEcore.g:26090:1: ( ruleDetailCS )
             {
-            // InternalOCLinEcore.g:26032:1: ( ruleDetailCS )
-            // InternalOCLinEcore.g:26033:1: ruleDetailCS
+            // InternalOCLinEcore.g:26090:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:26091:1: ruleDetailCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getOwnedDetailsDetailCSParserRuleCall_2_0_0_0()); 
@@ -75970,17 +76144,17 @@
 
 
     // $ANTLR start "rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0"
-    // InternalOCLinEcore.g:26042:1: rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 : ( ruleDetailCS ) ;
+    // InternalOCLinEcore.g:26100:1: rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0 : ( ruleDetailCS ) ;
     public final void rule__SysMLCS__OwnedDetailsAssignment_2_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26046:1: ( ( ruleDetailCS ) )
-            // InternalOCLinEcore.g:26047:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:26104:1: ( ( ruleDetailCS ) )
+            // InternalOCLinEcore.g:26105:1: ( ruleDetailCS )
             {
-            // InternalOCLinEcore.g:26047:1: ( ruleDetailCS )
-            // InternalOCLinEcore.g:26048:1: ruleDetailCS
+            // InternalOCLinEcore.g:26105:1: ( ruleDetailCS )
+            // InternalOCLinEcore.g:26106:1: ruleDetailCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSysMLCSAccess().getOwnedDetailsDetailCSParserRuleCall_2_1_1_0_0()); 
@@ -76015,17 +76189,17 @@
 
 
     // $ANTLR start "rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1"
-    // InternalOCLinEcore.g:26057:1: rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 : ( ruleMultiplicityCS ) ;
+    // InternalOCLinEcore.g:26115:1: rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1 : ( ruleMultiplicityCS ) ;
     public final void rule__TypedMultiplicityRefCS__OwnedMultiplicityAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26061:1: ( ( ruleMultiplicityCS ) )
-            // InternalOCLinEcore.g:26062:1: ( ruleMultiplicityCS )
+            // InternalOCLinEcore.g:26119:1: ( ( ruleMultiplicityCS ) )
+            // InternalOCLinEcore.g:26120:1: ( ruleMultiplicityCS )
             {
-            // InternalOCLinEcore.g:26062:1: ( ruleMultiplicityCS )
-            // InternalOCLinEcore.g:26063:1: ruleMultiplicityCS
+            // InternalOCLinEcore.g:26120:1: ( ruleMultiplicityCS )
+            // InternalOCLinEcore.g:26121:1: ruleMultiplicityCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedMultiplicityRefCSAccess().getOwnedMultiplicityMultiplicityCSParserRuleCall_1_0()); 
@@ -76060,17 +76234,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__OwnedParametersAssignment_0_1"
-    // InternalOCLinEcore.g:26072:1: rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 : ( ruleTypeParameterCS ) ;
+    // InternalOCLinEcore.g:26130:1: rule__TemplateSignatureCS__OwnedParametersAssignment_0_1 : ( ruleTypeParameterCS ) ;
     public final void rule__TemplateSignatureCS__OwnedParametersAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26076:1: ( ( ruleTypeParameterCS ) )
-            // InternalOCLinEcore.g:26077:1: ( ruleTypeParameterCS )
+            // InternalOCLinEcore.g:26134:1: ( ( ruleTypeParameterCS ) )
+            // InternalOCLinEcore.g:26135:1: ( ruleTypeParameterCS )
             {
-            // InternalOCLinEcore.g:26077:1: ( ruleTypeParameterCS )
-            // InternalOCLinEcore.g:26078:1: ruleTypeParameterCS
+            // InternalOCLinEcore.g:26135:1: ( ruleTypeParameterCS )
+            // InternalOCLinEcore.g:26136:1: ruleTypeParameterCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getOwnedParametersTypeParameterCSParserRuleCall_0_1_0()); 
@@ -76105,17 +76279,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1"
-    // InternalOCLinEcore.g:26087:1: rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 : ( ruleTypeParameterCS ) ;
+    // InternalOCLinEcore.g:26145:1: rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1 : ( ruleTypeParameterCS ) ;
     public final void rule__TemplateSignatureCS__OwnedParametersAssignment_0_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26091:1: ( ( ruleTypeParameterCS ) )
-            // InternalOCLinEcore.g:26092:1: ( ruleTypeParameterCS )
+            // InternalOCLinEcore.g:26149:1: ( ( ruleTypeParameterCS ) )
+            // InternalOCLinEcore.g:26150:1: ( ruleTypeParameterCS )
             {
-            // InternalOCLinEcore.g:26092:1: ( ruleTypeParameterCS )
-            // InternalOCLinEcore.g:26093:1: ruleTypeParameterCS
+            // InternalOCLinEcore.g:26150:1: ( ruleTypeParameterCS )
+            // InternalOCLinEcore.g:26151:1: ruleTypeParameterCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getOwnedParametersTypeParameterCSParserRuleCall_0_2_1_0()); 
@@ -76150,17 +76324,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__OwnedParametersAssignment_1_1"
-    // InternalOCLinEcore.g:26102:1: rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 : ( ruleTypeParameterCS ) ;
+    // InternalOCLinEcore.g:26160:1: rule__TemplateSignatureCS__OwnedParametersAssignment_1_1 : ( ruleTypeParameterCS ) ;
     public final void rule__TemplateSignatureCS__OwnedParametersAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26106:1: ( ( ruleTypeParameterCS ) )
-            // InternalOCLinEcore.g:26107:1: ( ruleTypeParameterCS )
+            // InternalOCLinEcore.g:26164:1: ( ( ruleTypeParameterCS ) )
+            // InternalOCLinEcore.g:26165:1: ( ruleTypeParameterCS )
             {
-            // InternalOCLinEcore.g:26107:1: ( ruleTypeParameterCS )
-            // InternalOCLinEcore.g:26108:1: ruleTypeParameterCS
+            // InternalOCLinEcore.g:26165:1: ( ruleTypeParameterCS )
+            // InternalOCLinEcore.g:26166:1: ruleTypeParameterCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getOwnedParametersTypeParameterCSParserRuleCall_1_1_0()); 
@@ -76195,17 +76369,17 @@
 
 
     // $ANTLR start "rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1"
-    // InternalOCLinEcore.g:26117:1: rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 : ( ruleTypeParameterCS ) ;
+    // InternalOCLinEcore.g:26175:1: rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1 : ( ruleTypeParameterCS ) ;
     public final void rule__TemplateSignatureCS__OwnedParametersAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26121:1: ( ( ruleTypeParameterCS ) )
-            // InternalOCLinEcore.g:26122:1: ( ruleTypeParameterCS )
+            // InternalOCLinEcore.g:26179:1: ( ( ruleTypeParameterCS ) )
+            // InternalOCLinEcore.g:26180:1: ( ruleTypeParameterCS )
             {
-            // InternalOCLinEcore.g:26122:1: ( ruleTypeParameterCS )
-            // InternalOCLinEcore.g:26123:1: ruleTypeParameterCS
+            // InternalOCLinEcore.g:26180:1: ( ruleTypeParameterCS )
+            // InternalOCLinEcore.g:26181:1: ruleTypeParameterCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateSignatureCSAccess().getOwnedParametersTypeParameterCSParserRuleCall_1_2_1_0()); 
@@ -76240,17 +76414,17 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__OwnedPathNameAssignment_0"
-    // InternalOCLinEcore.g:26132:1: rule__TypedTypeRefCS__OwnedPathNameAssignment_0 : ( rulePathNameCS ) ;
+    // InternalOCLinEcore.g:26190:1: rule__TypedTypeRefCS__OwnedPathNameAssignment_0 : ( rulePathNameCS ) ;
     public final void rule__TypedTypeRefCS__OwnedPathNameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26136:1: ( ( rulePathNameCS ) )
-            // InternalOCLinEcore.g:26137:1: ( rulePathNameCS )
+            // InternalOCLinEcore.g:26194:1: ( ( rulePathNameCS ) )
+            // InternalOCLinEcore.g:26195:1: ( rulePathNameCS )
             {
-            // InternalOCLinEcore.g:26137:1: ( rulePathNameCS )
-            // InternalOCLinEcore.g:26138:1: rulePathNameCS
+            // InternalOCLinEcore.g:26195:1: ( rulePathNameCS )
+            // InternalOCLinEcore.g:26196:1: rulePathNameCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getOwnedPathNamePathNameCSParserRuleCall_0_0()); 
@@ -76285,17 +76459,17 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1"
-    // InternalOCLinEcore.g:26147:1: rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 : ( ruleTemplateBindingCS ) ;
+    // InternalOCLinEcore.g:26205:1: rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1 : ( ruleTemplateBindingCS ) ;
     public final void rule__TypedTypeRefCS__OwnedBindingAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26151:1: ( ( ruleTemplateBindingCS ) )
-            // InternalOCLinEcore.g:26152:1: ( ruleTemplateBindingCS )
+            // InternalOCLinEcore.g:26209:1: ( ( ruleTemplateBindingCS ) )
+            // InternalOCLinEcore.g:26210:1: ( ruleTemplateBindingCS )
             {
-            // InternalOCLinEcore.g:26152:1: ( ruleTemplateBindingCS )
-            // InternalOCLinEcore.g:26153:1: ruleTemplateBindingCS
+            // InternalOCLinEcore.g:26210:1: ( ruleTemplateBindingCS )
+            // InternalOCLinEcore.g:26211:1: ruleTemplateBindingCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getOwnedBindingTemplateBindingCSParserRuleCall_1_0_1_0()); 
@@ -76330,17 +76504,17 @@
 
 
     // $ANTLR start "rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1"
-    // InternalOCLinEcore.g:26162:1: rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 : ( ruleTemplateBindingCS ) ;
+    // InternalOCLinEcore.g:26220:1: rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1 : ( ruleTemplateBindingCS ) ;
     public final void rule__TypedTypeRefCS__OwnedBindingAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26166:1: ( ( ruleTemplateBindingCS ) )
-            // InternalOCLinEcore.g:26167:1: ( ruleTemplateBindingCS )
+            // InternalOCLinEcore.g:26224:1: ( ( ruleTemplateBindingCS ) )
+            // InternalOCLinEcore.g:26225:1: ( ruleTemplateBindingCS )
             {
-            // InternalOCLinEcore.g:26167:1: ( ruleTemplateBindingCS )
-            // InternalOCLinEcore.g:26168:1: ruleTemplateBindingCS
+            // InternalOCLinEcore.g:26225:1: ( ruleTemplateBindingCS )
+            // InternalOCLinEcore.g:26226:1: ruleTemplateBindingCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedTypeRefCSAccess().getOwnedBindingTemplateBindingCSParserRuleCall_1_1_1_0()); 
@@ -76375,17 +76549,17 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__OwnedPathElementsAssignment_0"
-    // InternalOCLinEcore.g:26178:1: rule__URIPathNameCS__OwnedPathElementsAssignment_0 : ( ruleURIFirstPathElementCS ) ;
+    // InternalOCLinEcore.g:26236:1: rule__URIPathNameCS__OwnedPathElementsAssignment_0 : ( ruleURIFirstPathElementCS ) ;
     public final void rule__URIPathNameCS__OwnedPathElementsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26182:1: ( ( ruleURIFirstPathElementCS ) )
-            // InternalOCLinEcore.g:26183:1: ( ruleURIFirstPathElementCS )
+            // InternalOCLinEcore.g:26240:1: ( ( ruleURIFirstPathElementCS ) )
+            // InternalOCLinEcore.g:26241:1: ( ruleURIFirstPathElementCS )
             {
-            // InternalOCLinEcore.g:26183:1: ( ruleURIFirstPathElementCS )
-            // InternalOCLinEcore.g:26184:1: ruleURIFirstPathElementCS
+            // InternalOCLinEcore.g:26241:1: ( ruleURIFirstPathElementCS )
+            // InternalOCLinEcore.g:26242:1: ruleURIFirstPathElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIPathNameCSAccess().getOwnedPathElementsURIFirstPathElementCSParserRuleCall_0_0()); 
@@ -76420,17 +76594,17 @@
 
 
     // $ANTLR start "rule__URIPathNameCS__OwnedPathElementsAssignment_1_1"
-    // InternalOCLinEcore.g:26193:1: rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 : ( ruleNextPathElementCS ) ;
+    // InternalOCLinEcore.g:26251:1: rule__URIPathNameCS__OwnedPathElementsAssignment_1_1 : ( ruleNextPathElementCS ) ;
     public final void rule__URIPathNameCS__OwnedPathElementsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26197:1: ( ( ruleNextPathElementCS ) )
-            // InternalOCLinEcore.g:26198:1: ( ruleNextPathElementCS )
+            // InternalOCLinEcore.g:26255:1: ( ( ruleNextPathElementCS ) )
+            // InternalOCLinEcore.g:26256:1: ( ruleNextPathElementCS )
             {
-            // InternalOCLinEcore.g:26198:1: ( ruleNextPathElementCS )
-            // InternalOCLinEcore.g:26199:1: ruleNextPathElementCS
+            // InternalOCLinEcore.g:26256:1: ( ruleNextPathElementCS )
+            // InternalOCLinEcore.g:26257:1: ruleNextPathElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIPathNameCSAccess().getOwnedPathElementsNextPathElementCSParserRuleCall_1_1_0()); 
@@ -76465,23 +76639,23 @@
 
 
     // $ANTLR start "rule__URIFirstPathElementCS__ReferredElementAssignment_0"
-    // InternalOCLinEcore.g:26208:1: rule__URIFirstPathElementCS__ReferredElementAssignment_0 : ( ( ruleUnrestrictedName ) ) ;
+    // InternalOCLinEcore.g:26266:1: rule__URIFirstPathElementCS__ReferredElementAssignment_0 : ( ( ruleUnrestrictedName ) ) ;
     public final void rule__URIFirstPathElementCS__ReferredElementAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26212:1: ( ( ( ruleUnrestrictedName ) ) )
-            // InternalOCLinEcore.g:26213:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:26270:1: ( ( ( ruleUnrestrictedName ) ) )
+            // InternalOCLinEcore.g:26271:1: ( ( ruleUnrestrictedName ) )
             {
-            // InternalOCLinEcore.g:26213:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:26214:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26271:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:26272:1: ( ruleUnrestrictedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIFirstPathElementCSAccess().getReferredElementNamedElementCrossReference_0_0()); 
             }
-            // InternalOCLinEcore.g:26215:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:26216:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:26273:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26274:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIFirstPathElementCSAccess().getReferredElementNamedElementUnrestrictedNameParserRuleCall_0_0_1()); 
@@ -76522,23 +76696,23 @@
 
 
     // $ANTLR start "rule__URIFirstPathElementCS__ReferredElementAssignment_1_1"
-    // InternalOCLinEcore.g:26227:1: rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 : ( ( ruleURI ) ) ;
+    // InternalOCLinEcore.g:26285:1: rule__URIFirstPathElementCS__ReferredElementAssignment_1_1 : ( ( ruleURI ) ) ;
     public final void rule__URIFirstPathElementCS__ReferredElementAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26231:1: ( ( ( ruleURI ) ) )
-            // InternalOCLinEcore.g:26232:1: ( ( ruleURI ) )
+            // InternalOCLinEcore.g:26289:1: ( ( ( ruleURI ) ) )
+            // InternalOCLinEcore.g:26290:1: ( ( ruleURI ) )
             {
-            // InternalOCLinEcore.g:26232:1: ( ( ruleURI ) )
-            // InternalOCLinEcore.g:26233:1: ( ruleURI )
+            // InternalOCLinEcore.g:26290:1: ( ( ruleURI ) )
+            // InternalOCLinEcore.g:26291:1: ( ruleURI )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIFirstPathElementCSAccess().getReferredElementNamespaceCrossReference_1_1_0()); 
             }
-            // InternalOCLinEcore.g:26234:1: ( ruleURI )
-            // InternalOCLinEcore.g:26235:1: ruleURI
+            // InternalOCLinEcore.g:26292:1: ( ruleURI )
+            // InternalOCLinEcore.g:26293:1: ruleURI
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getURIFirstPathElementCSAccess().getReferredElementNamespaceURIParserRuleCall_1_1_0_1()); 
@@ -76579,17 +76753,17 @@
 
 
     // $ANTLR start "rule__PrimitiveTypeCS__NameAssignment"
-    // InternalOCLinEcore.g:26246:1: rule__PrimitiveTypeCS__NameAssignment : ( rulePrimitiveTypeIdentifier ) ;
+    // InternalOCLinEcore.g:26304:1: rule__PrimitiveTypeCS__NameAssignment : ( rulePrimitiveTypeIdentifier ) ;
     public final void rule__PrimitiveTypeCS__NameAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26250:1: ( ( rulePrimitiveTypeIdentifier ) )
-            // InternalOCLinEcore.g:26251:1: ( rulePrimitiveTypeIdentifier )
+            // InternalOCLinEcore.g:26308:1: ( ( rulePrimitiveTypeIdentifier ) )
+            // InternalOCLinEcore.g:26309:1: ( rulePrimitiveTypeIdentifier )
             {
-            // InternalOCLinEcore.g:26251:1: ( rulePrimitiveTypeIdentifier )
-            // InternalOCLinEcore.g:26252:1: rulePrimitiveTypeIdentifier
+            // InternalOCLinEcore.g:26309:1: ( rulePrimitiveTypeIdentifier )
+            // InternalOCLinEcore.g:26310:1: rulePrimitiveTypeIdentifier
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrimitiveTypeCSAccess().getNamePrimitiveTypeIdentifierParserRuleCall_0()); 
@@ -76624,17 +76798,17 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__NameAssignment_0"
-    // InternalOCLinEcore.g:26261:1: rule__CollectionTypeCS__NameAssignment_0 : ( ruleCollectionTypeIdentifier ) ;
+    // InternalOCLinEcore.g:26319:1: rule__CollectionTypeCS__NameAssignment_0 : ( ruleCollectionTypeIdentifier ) ;
     public final void rule__CollectionTypeCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26265:1: ( ( ruleCollectionTypeIdentifier ) )
-            // InternalOCLinEcore.g:26266:1: ( ruleCollectionTypeIdentifier )
+            // InternalOCLinEcore.g:26323:1: ( ( ruleCollectionTypeIdentifier ) )
+            // InternalOCLinEcore.g:26324:1: ( ruleCollectionTypeIdentifier )
             {
-            // InternalOCLinEcore.g:26266:1: ( ruleCollectionTypeIdentifier )
-            // InternalOCLinEcore.g:26267:1: ruleCollectionTypeIdentifier
+            // InternalOCLinEcore.g:26324:1: ( ruleCollectionTypeIdentifier )
+            // InternalOCLinEcore.g:26325:1: ruleCollectionTypeIdentifier
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionTypeCSAccess().getNameCollectionTypeIdentifierParserRuleCall_0_0()); 
@@ -76669,17 +76843,17 @@
 
 
     // $ANTLR start "rule__CollectionTypeCS__OwnedTypeAssignment_1_1"
-    // InternalOCLinEcore.g:26276:1: rule__CollectionTypeCS__OwnedTypeAssignment_1_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:26334:1: rule__CollectionTypeCS__OwnedTypeAssignment_1_1 : ( ruleTypeExpCS ) ;
     public final void rule__CollectionTypeCS__OwnedTypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26280:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:26281:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26338:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:26339:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:26281:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:26282:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:26339:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26340:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionTypeCSAccess().getOwnedTypeTypeExpCSParserRuleCall_1_1_0()); 
@@ -76714,23 +76888,23 @@
 
 
     // $ANTLR start "rule__MapTypeCS__NameAssignment_0"
-    // InternalOCLinEcore.g:26291:1: rule__MapTypeCS__NameAssignment_0 : ( ( 'Map' ) ) ;
+    // InternalOCLinEcore.g:26349:1: rule__MapTypeCS__NameAssignment_0 : ( ( 'Map' ) ) ;
     public final void rule__MapTypeCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26295:1: ( ( ( 'Map' ) ) )
-            // InternalOCLinEcore.g:26296:1: ( ( 'Map' ) )
+            // InternalOCLinEcore.g:26353:1: ( ( ( 'Map' ) ) )
+            // InternalOCLinEcore.g:26354:1: ( ( 'Map' ) )
             {
-            // InternalOCLinEcore.g:26296:1: ( ( 'Map' ) )
-            // InternalOCLinEcore.g:26297:1: ( 'Map' )
+            // InternalOCLinEcore.g:26354:1: ( ( 'Map' ) )
+            // InternalOCLinEcore.g:26355:1: ( 'Map' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getNameMapKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:26298:1: ( 'Map' )
-            // InternalOCLinEcore.g:26299:1: 'Map'
+            // InternalOCLinEcore.g:26356:1: ( 'Map' )
+            // InternalOCLinEcore.g:26357:1: 'Map'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getNameMapKeyword_0_0()); 
@@ -76767,17 +76941,17 @@
 
 
     // $ANTLR start "rule__MapTypeCS__OwnedKeyTypeAssignment_1_1"
-    // InternalOCLinEcore.g:26314:1: rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:26372:1: rule__MapTypeCS__OwnedKeyTypeAssignment_1_1 : ( ruleTypeExpCS ) ;
     public final void rule__MapTypeCS__OwnedKeyTypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26318:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:26319:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26376:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:26377:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:26319:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:26320:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:26377:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26378:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getOwnedKeyTypeTypeExpCSParserRuleCall_1_1_0()); 
@@ -76812,17 +76986,17 @@
 
 
     // $ANTLR start "rule__MapTypeCS__OwnedValueTypeAssignment_1_3"
-    // InternalOCLinEcore.g:26329:1: rule__MapTypeCS__OwnedValueTypeAssignment_1_3 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:26387:1: rule__MapTypeCS__OwnedValueTypeAssignment_1_3 : ( ruleTypeExpCS ) ;
     public final void rule__MapTypeCS__OwnedValueTypeAssignment_1_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26333:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:26334:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26391:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:26392:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:26334:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:26335:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:26392:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26393:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapTypeCSAccess().getOwnedValueTypeTypeExpCSParserRuleCall_1_3_0()); 
@@ -76857,23 +77031,23 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__NameAssignment_0"
-    // InternalOCLinEcore.g:26344:1: rule__TupleTypeCS__NameAssignment_0 : ( ( 'Tuple' ) ) ;
+    // InternalOCLinEcore.g:26402:1: rule__TupleTypeCS__NameAssignment_0 : ( ( 'Tuple' ) ) ;
     public final void rule__TupleTypeCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26348:1: ( ( ( 'Tuple' ) ) )
-            // InternalOCLinEcore.g:26349:1: ( ( 'Tuple' ) )
+            // InternalOCLinEcore.g:26406:1: ( ( ( 'Tuple' ) ) )
+            // InternalOCLinEcore.g:26407:1: ( ( 'Tuple' ) )
             {
-            // InternalOCLinEcore.g:26349:1: ( ( 'Tuple' ) )
-            // InternalOCLinEcore.g:26350:1: ( 'Tuple' )
+            // InternalOCLinEcore.g:26407:1: ( ( 'Tuple' ) )
+            // InternalOCLinEcore.g:26408:1: ( 'Tuple' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getNameTupleKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:26351:1: ( 'Tuple' )
-            // InternalOCLinEcore.g:26352:1: 'Tuple'
+            // InternalOCLinEcore.g:26409:1: ( 'Tuple' )
+            // InternalOCLinEcore.g:26410:1: 'Tuple'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getNameTupleKeyword_0_0()); 
@@ -76910,17 +77084,17 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__OwnedPartsAssignment_1_1_0"
-    // InternalOCLinEcore.g:26367:1: rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 : ( ruleTuplePartCS ) ;
+    // InternalOCLinEcore.g:26425:1: rule__TupleTypeCS__OwnedPartsAssignment_1_1_0 : ( ruleTuplePartCS ) ;
     public final void rule__TupleTypeCS__OwnedPartsAssignment_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26371:1: ( ( ruleTuplePartCS ) )
-            // InternalOCLinEcore.g:26372:1: ( ruleTuplePartCS )
+            // InternalOCLinEcore.g:26429:1: ( ( ruleTuplePartCS ) )
+            // InternalOCLinEcore.g:26430:1: ( ruleTuplePartCS )
             {
-            // InternalOCLinEcore.g:26372:1: ( ruleTuplePartCS )
-            // InternalOCLinEcore.g:26373:1: ruleTuplePartCS
+            // InternalOCLinEcore.g:26430:1: ( ruleTuplePartCS )
+            // InternalOCLinEcore.g:26431:1: ruleTuplePartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getOwnedPartsTuplePartCSParserRuleCall_1_1_0_0()); 
@@ -76955,17 +77129,17 @@
 
 
     // $ANTLR start "rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1"
-    // InternalOCLinEcore.g:26382:1: rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 : ( ruleTuplePartCS ) ;
+    // InternalOCLinEcore.g:26440:1: rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1 : ( ruleTuplePartCS ) ;
     public final void rule__TupleTypeCS__OwnedPartsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26386:1: ( ( ruleTuplePartCS ) )
-            // InternalOCLinEcore.g:26387:1: ( ruleTuplePartCS )
+            // InternalOCLinEcore.g:26444:1: ( ( ruleTuplePartCS ) )
+            // InternalOCLinEcore.g:26445:1: ( ruleTuplePartCS )
             {
-            // InternalOCLinEcore.g:26387:1: ( ruleTuplePartCS )
-            // InternalOCLinEcore.g:26388:1: ruleTuplePartCS
+            // InternalOCLinEcore.g:26445:1: ( ruleTuplePartCS )
+            // InternalOCLinEcore.g:26446:1: ruleTuplePartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleTypeCSAccess().getOwnedPartsTuplePartCSParserRuleCall_1_1_1_1_0()); 
@@ -77000,17 +77174,17 @@
 
 
     // $ANTLR start "rule__TuplePartCS__NameAssignment_0"
-    // InternalOCLinEcore.g:26397:1: rule__TuplePartCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:26455:1: rule__TuplePartCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
     public final void rule__TuplePartCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26401:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:26402:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26459:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:26460:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:26402:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:26403:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:26460:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26461:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTuplePartCSAccess().getNameUnrestrictedNameParserRuleCall_0_0()); 
@@ -77045,17 +77219,17 @@
 
 
     // $ANTLR start "rule__TuplePartCS__OwnedTypeAssignment_2"
-    // InternalOCLinEcore.g:26412:1: rule__TuplePartCS__OwnedTypeAssignment_2 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:26470:1: rule__TuplePartCS__OwnedTypeAssignment_2 : ( ruleTypeExpCS ) ;
     public final void rule__TuplePartCS__OwnedTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26416:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:26417:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26474:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:26475:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:26417:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:26418:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:26475:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26476:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTuplePartCSAccess().getOwnedTypeTypeExpCSParserRuleCall_2_0()); 
@@ -77090,17 +77264,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__OwnedTypeAssignment_0"
-    // InternalOCLinEcore.g:26427:1: rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 : ( ruleCollectionTypeCS ) ;
+    // InternalOCLinEcore.g:26485:1: rule__CollectionLiteralExpCS__OwnedTypeAssignment_0 : ( ruleCollectionTypeCS ) ;
     public final void rule__CollectionLiteralExpCS__OwnedTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26431:1: ( ( ruleCollectionTypeCS ) )
-            // InternalOCLinEcore.g:26432:1: ( ruleCollectionTypeCS )
+            // InternalOCLinEcore.g:26489:1: ( ( ruleCollectionTypeCS ) )
+            // InternalOCLinEcore.g:26490:1: ( ruleCollectionTypeCS )
             {
-            // InternalOCLinEcore.g:26432:1: ( ruleCollectionTypeCS )
-            // InternalOCLinEcore.g:26433:1: ruleCollectionTypeCS
+            // InternalOCLinEcore.g:26490:1: ( ruleCollectionTypeCS )
+            // InternalOCLinEcore.g:26491:1: ruleCollectionTypeCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getOwnedTypeCollectionTypeCSParserRuleCall_0_0()); 
@@ -77135,17 +77309,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0"
-    // InternalOCLinEcore.g:26442:1: rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 : ( ruleCollectionLiteralPartCS ) ;
+    // InternalOCLinEcore.g:26500:1: rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0 : ( ruleCollectionLiteralPartCS ) ;
     public final void rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26446:1: ( ( ruleCollectionLiteralPartCS ) )
-            // InternalOCLinEcore.g:26447:1: ( ruleCollectionLiteralPartCS )
+            // InternalOCLinEcore.g:26504:1: ( ( ruleCollectionLiteralPartCS ) )
+            // InternalOCLinEcore.g:26505:1: ( ruleCollectionLiteralPartCS )
             {
-            // InternalOCLinEcore.g:26447:1: ( ruleCollectionLiteralPartCS )
-            // InternalOCLinEcore.g:26448:1: ruleCollectionLiteralPartCS
+            // InternalOCLinEcore.g:26505:1: ( ruleCollectionLiteralPartCS )
+            // InternalOCLinEcore.g:26506:1: ruleCollectionLiteralPartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getOwnedPartsCollectionLiteralPartCSParserRuleCall_2_0_0()); 
@@ -77180,17 +77354,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1"
-    // InternalOCLinEcore.g:26457:1: rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 : ( ruleCollectionLiteralPartCS ) ;
+    // InternalOCLinEcore.g:26515:1: rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1 : ( ruleCollectionLiteralPartCS ) ;
     public final void rule__CollectionLiteralExpCS__OwnedPartsAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26461:1: ( ( ruleCollectionLiteralPartCS ) )
-            // InternalOCLinEcore.g:26462:1: ( ruleCollectionLiteralPartCS )
+            // InternalOCLinEcore.g:26519:1: ( ( ruleCollectionLiteralPartCS ) )
+            // InternalOCLinEcore.g:26520:1: ( ruleCollectionLiteralPartCS )
             {
-            // InternalOCLinEcore.g:26462:1: ( ruleCollectionLiteralPartCS )
-            // InternalOCLinEcore.g:26463:1: ruleCollectionLiteralPartCS
+            // InternalOCLinEcore.g:26520:1: ( ruleCollectionLiteralPartCS )
+            // InternalOCLinEcore.g:26521:1: ruleCollectionLiteralPartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralExpCSAccess().getOwnedPartsCollectionLiteralPartCSParserRuleCall_2_1_1_0()); 
@@ -77225,17 +77399,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0"
-    // InternalOCLinEcore.g:26472:1: rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:26530:1: rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0 : ( ruleExpCS ) ;
     public final void rule__CollectionLiteralPartCS__OwnedExpressionAssignment_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26476:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:26477:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26534:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:26535:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:26477:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:26478:1: ruleExpCS
+            // InternalOCLinEcore.g:26535:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26536:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralPartCSAccess().getOwnedExpressionExpCSParserRuleCall_0_0_0()); 
@@ -77270,17 +77444,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1"
-    // InternalOCLinEcore.g:26487:1: rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:26545:1: rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1 : ( ruleExpCS ) ;
     public final void rule__CollectionLiteralPartCS__OwnedLastExpressionAssignment_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26491:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:26492:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26549:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:26550:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:26492:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:26493:1: ruleExpCS
+            // InternalOCLinEcore.g:26550:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26551:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralPartCSAccess().getOwnedLastExpressionExpCSParserRuleCall_0_1_1_0()); 
@@ -77315,17 +77489,17 @@
 
 
     // $ANTLR start "rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1"
-    // InternalOCLinEcore.g:26502:1: rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 : ( rulePatternExpCS ) ;
+    // InternalOCLinEcore.g:26560:1: rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 : ( rulePatternExpCS ) ;
     public final void rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26506:1: ( ( rulePatternExpCS ) )
-            // InternalOCLinEcore.g:26507:1: ( rulePatternExpCS )
+            // InternalOCLinEcore.g:26564:1: ( ( rulePatternExpCS ) )
+            // InternalOCLinEcore.g:26565:1: ( rulePatternExpCS )
             {
-            // InternalOCLinEcore.g:26507:1: ( rulePatternExpCS )
-            // InternalOCLinEcore.g:26508:1: rulePatternExpCS
+            // InternalOCLinEcore.g:26565:1: ( rulePatternExpCS )
+            // InternalOCLinEcore.g:26566:1: rulePatternExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionLiteralPartCSAccess().getOwnedExpressionPatternExpCSParserRuleCall_1_0()); 
@@ -77360,17 +77534,17 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__OwnedTypeAssignment_0"
-    // InternalOCLinEcore.g:26517:1: rule__CollectionPatternCS__OwnedTypeAssignment_0 : ( ruleCollectionTypeCS ) ;
+    // InternalOCLinEcore.g:26575:1: rule__CollectionPatternCS__OwnedTypeAssignment_0 : ( ruleCollectionTypeCS ) ;
     public final void rule__CollectionPatternCS__OwnedTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26521:1: ( ( ruleCollectionTypeCS ) )
-            // InternalOCLinEcore.g:26522:1: ( ruleCollectionTypeCS )
+            // InternalOCLinEcore.g:26579:1: ( ( ruleCollectionTypeCS ) )
+            // InternalOCLinEcore.g:26580:1: ( ruleCollectionTypeCS )
             {
-            // InternalOCLinEcore.g:26522:1: ( ruleCollectionTypeCS )
-            // InternalOCLinEcore.g:26523:1: ruleCollectionTypeCS
+            // InternalOCLinEcore.g:26580:1: ( ruleCollectionTypeCS )
+            // InternalOCLinEcore.g:26581:1: ruleCollectionTypeCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getOwnedTypeCollectionTypeCSParserRuleCall_0_0()); 
@@ -77405,17 +77579,17 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__OwnedPartsAssignment_2_0"
-    // InternalOCLinEcore.g:26532:1: rule__CollectionPatternCS__OwnedPartsAssignment_2_0 : ( rulePatternExpCS ) ;
+    // InternalOCLinEcore.g:26590:1: rule__CollectionPatternCS__OwnedPartsAssignment_2_0 : ( rulePatternExpCS ) ;
     public final void rule__CollectionPatternCS__OwnedPartsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26536:1: ( ( rulePatternExpCS ) )
-            // InternalOCLinEcore.g:26537:1: ( rulePatternExpCS )
+            // InternalOCLinEcore.g:26594:1: ( ( rulePatternExpCS ) )
+            // InternalOCLinEcore.g:26595:1: ( rulePatternExpCS )
             {
-            // InternalOCLinEcore.g:26537:1: ( rulePatternExpCS )
-            // InternalOCLinEcore.g:26538:1: rulePatternExpCS
+            // InternalOCLinEcore.g:26595:1: ( rulePatternExpCS )
+            // InternalOCLinEcore.g:26596:1: rulePatternExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getOwnedPartsPatternExpCSParserRuleCall_2_0_0()); 
@@ -77450,17 +77624,17 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1"
-    // InternalOCLinEcore.g:26547:1: rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 : ( rulePatternExpCS ) ;
+    // InternalOCLinEcore.g:26605:1: rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1 : ( rulePatternExpCS ) ;
     public final void rule__CollectionPatternCS__OwnedPartsAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26551:1: ( ( rulePatternExpCS ) )
-            // InternalOCLinEcore.g:26552:1: ( rulePatternExpCS )
+            // InternalOCLinEcore.g:26609:1: ( ( rulePatternExpCS ) )
+            // InternalOCLinEcore.g:26610:1: ( rulePatternExpCS )
             {
-            // InternalOCLinEcore.g:26552:1: ( rulePatternExpCS )
-            // InternalOCLinEcore.g:26553:1: rulePatternExpCS
+            // InternalOCLinEcore.g:26610:1: ( rulePatternExpCS )
+            // InternalOCLinEcore.g:26611:1: rulePatternExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getOwnedPartsPatternExpCSParserRuleCall_2_1_1_0()); 
@@ -77495,17 +77669,17 @@
 
 
     // $ANTLR start "rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1"
-    // InternalOCLinEcore.g:26562:1: rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 : ( ruleIdentifier ) ;
+    // InternalOCLinEcore.g:26620:1: rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1 : ( ruleIdentifier ) ;
     public final void rule__CollectionPatternCS__RestVariableNameAssignment_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26566:1: ( ( ruleIdentifier ) )
-            // InternalOCLinEcore.g:26567:1: ( ruleIdentifier )
+            // InternalOCLinEcore.g:26624:1: ( ( ruleIdentifier ) )
+            // InternalOCLinEcore.g:26625:1: ( ruleIdentifier )
             {
-            // InternalOCLinEcore.g:26567:1: ( ruleIdentifier )
-            // InternalOCLinEcore.g:26568:1: ruleIdentifier
+            // InternalOCLinEcore.g:26625:1: ( ruleIdentifier )
+            // InternalOCLinEcore.g:26626:1: ruleIdentifier
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCollectionPatternCSAccess().getRestVariableNameIdentifierParserRuleCall_2_2_1_0()); 
@@ -77540,23 +77714,23 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__ReferredPropertyAssignment_0"
-    // InternalOCLinEcore.g:26577:1: rule__ShadowPartCS__ReferredPropertyAssignment_0 : ( ( ruleUnrestrictedName ) ) ;
+    // InternalOCLinEcore.g:26635:1: rule__ShadowPartCS__ReferredPropertyAssignment_0 : ( ( ruleUnrestrictedName ) ) ;
     public final void rule__ShadowPartCS__ReferredPropertyAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26581:1: ( ( ( ruleUnrestrictedName ) ) )
-            // InternalOCLinEcore.g:26582:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:26639:1: ( ( ( ruleUnrestrictedName ) ) )
+            // InternalOCLinEcore.g:26640:1: ( ( ruleUnrestrictedName ) )
             {
-            // InternalOCLinEcore.g:26582:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:26583:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26640:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:26641:1: ( ruleUnrestrictedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getShadowPartCSAccess().getReferredPropertyPropertyCrossReference_0_0()); 
             }
-            // InternalOCLinEcore.g:26584:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:26585:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:26642:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26643:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getShadowPartCSAccess().getReferredPropertyPropertyUnrestrictedNameParserRuleCall_0_0_1()); 
@@ -77597,23 +77771,23 @@
 
 
     // $ANTLR start "rule__ShadowPartCS__OwnedInitExpressionAssignment_2"
-    // InternalOCLinEcore.g:26596:1: rule__ShadowPartCS__OwnedInitExpressionAssignment_2 : ( ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 ) ) ;
+    // InternalOCLinEcore.g:26654:1: rule__ShadowPartCS__OwnedInitExpressionAssignment_2 : ( ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 ) ) ;
     public final void rule__ShadowPartCS__OwnedInitExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26600:1: ( ( ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 ) ) )
-            // InternalOCLinEcore.g:26601:1: ( ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 ) )
+            // InternalOCLinEcore.g:26658:1: ( ( ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 ) ) )
+            // InternalOCLinEcore.g:26659:1: ( ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 ) )
             {
-            // InternalOCLinEcore.g:26601:1: ( ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 ) )
-            // InternalOCLinEcore.g:26602:1: ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 )
+            // InternalOCLinEcore.g:26659:1: ( ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 ) )
+            // InternalOCLinEcore.g:26660:1: ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getShadowPartCSAccess().getOwnedInitExpressionAlternatives_2_0()); 
             }
-            // InternalOCLinEcore.g:26603:1: ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 )
-            // InternalOCLinEcore.g:26603:2: rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0
+            // InternalOCLinEcore.g:26661:1: ( rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 )
+            // InternalOCLinEcore.g:26661:2: rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0();
@@ -77648,17 +77822,17 @@
 
 
     // $ANTLR start "rule__PatternExpCS__PatternVariableNameAssignment_0"
-    // InternalOCLinEcore.g:26612:1: rule__PatternExpCS__PatternVariableNameAssignment_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:26670:1: rule__PatternExpCS__PatternVariableNameAssignment_0 : ( ruleUnrestrictedName ) ;
     public final void rule__PatternExpCS__PatternVariableNameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26616:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:26617:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26674:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:26675:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:26617:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:26618:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:26675:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26676:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPatternExpCSAccess().getPatternVariableNameUnrestrictedNameParserRuleCall_0_0()); 
@@ -77693,17 +77867,17 @@
 
 
     // $ANTLR start "rule__PatternExpCS__OwnedPatternTypeAssignment_2"
-    // InternalOCLinEcore.g:26627:1: rule__PatternExpCS__OwnedPatternTypeAssignment_2 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:26685:1: rule__PatternExpCS__OwnedPatternTypeAssignment_2 : ( ruleTypeExpCS ) ;
     public final void rule__PatternExpCS__OwnedPatternTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26631:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:26632:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26689:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:26690:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:26632:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:26633:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:26690:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26691:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPatternExpCSAccess().getOwnedPatternTypeTypeExpCSParserRuleCall_2_0()); 
@@ -77738,17 +77912,17 @@
 
 
     // $ANTLR start "rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2"
-    // InternalOCLinEcore.g:26642:1: rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:26700:1: rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2 : ( ruleExpCS ) ;
     public final void rule__LambdaLiteralExpCS__OwnedExpressionCSAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26646:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:26647:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26704:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:26705:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:26647:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:26648:1: ruleExpCS
+            // InternalOCLinEcore.g:26705:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26706:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLambdaLiteralExpCSAccess().getOwnedExpressionCSExpCSParserRuleCall_2_0()); 
@@ -77783,17 +77957,17 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__OwnedTypeAssignment_0"
-    // InternalOCLinEcore.g:26657:1: rule__MapLiteralExpCS__OwnedTypeAssignment_0 : ( ruleMapTypeCS ) ;
+    // InternalOCLinEcore.g:26715:1: rule__MapLiteralExpCS__OwnedTypeAssignment_0 : ( ruleMapTypeCS ) ;
     public final void rule__MapLiteralExpCS__OwnedTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26661:1: ( ( ruleMapTypeCS ) )
-            // InternalOCLinEcore.g:26662:1: ( ruleMapTypeCS )
+            // InternalOCLinEcore.g:26719:1: ( ( ruleMapTypeCS ) )
+            // InternalOCLinEcore.g:26720:1: ( ruleMapTypeCS )
             {
-            // InternalOCLinEcore.g:26662:1: ( ruleMapTypeCS )
-            // InternalOCLinEcore.g:26663:1: ruleMapTypeCS
+            // InternalOCLinEcore.g:26720:1: ( ruleMapTypeCS )
+            // InternalOCLinEcore.g:26721:1: ruleMapTypeCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getOwnedTypeMapTypeCSParserRuleCall_0_0()); 
@@ -77828,17 +78002,17 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__OwnedPartsAssignment_2_0"
-    // InternalOCLinEcore.g:26672:1: rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 : ( ruleMapLiteralPartCS ) ;
+    // InternalOCLinEcore.g:26730:1: rule__MapLiteralExpCS__OwnedPartsAssignment_2_0 : ( ruleMapLiteralPartCS ) ;
     public final void rule__MapLiteralExpCS__OwnedPartsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26676:1: ( ( ruleMapLiteralPartCS ) )
-            // InternalOCLinEcore.g:26677:1: ( ruleMapLiteralPartCS )
+            // InternalOCLinEcore.g:26734:1: ( ( ruleMapLiteralPartCS ) )
+            // InternalOCLinEcore.g:26735:1: ( ruleMapLiteralPartCS )
             {
-            // InternalOCLinEcore.g:26677:1: ( ruleMapLiteralPartCS )
-            // InternalOCLinEcore.g:26678:1: ruleMapLiteralPartCS
+            // InternalOCLinEcore.g:26735:1: ( ruleMapLiteralPartCS )
+            // InternalOCLinEcore.g:26736:1: ruleMapLiteralPartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getOwnedPartsMapLiteralPartCSParserRuleCall_2_0_0()); 
@@ -77873,17 +78047,17 @@
 
 
     // $ANTLR start "rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1"
-    // InternalOCLinEcore.g:26687:1: rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 : ( ruleMapLiteralPartCS ) ;
+    // InternalOCLinEcore.g:26745:1: rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1 : ( ruleMapLiteralPartCS ) ;
     public final void rule__MapLiteralExpCS__OwnedPartsAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26691:1: ( ( ruleMapLiteralPartCS ) )
-            // InternalOCLinEcore.g:26692:1: ( ruleMapLiteralPartCS )
+            // InternalOCLinEcore.g:26749:1: ( ( ruleMapLiteralPartCS ) )
+            // InternalOCLinEcore.g:26750:1: ( ruleMapLiteralPartCS )
             {
-            // InternalOCLinEcore.g:26692:1: ( ruleMapLiteralPartCS )
-            // InternalOCLinEcore.g:26693:1: ruleMapLiteralPartCS
+            // InternalOCLinEcore.g:26750:1: ( ruleMapLiteralPartCS )
+            // InternalOCLinEcore.g:26751:1: ruleMapLiteralPartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralExpCSAccess().getOwnedPartsMapLiteralPartCSParserRuleCall_2_1_1_0()); 
@@ -77918,17 +78092,17 @@
 
 
     // $ANTLR start "rule__MapLiteralPartCS__OwnedKeyAssignment_0"
-    // InternalOCLinEcore.g:26702:1: rule__MapLiteralPartCS__OwnedKeyAssignment_0 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:26760:1: rule__MapLiteralPartCS__OwnedKeyAssignment_0 : ( ruleExpCS ) ;
     public final void rule__MapLiteralPartCS__OwnedKeyAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26706:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:26707:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26764:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:26765:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:26707:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:26708:1: ruleExpCS
+            // InternalOCLinEcore.g:26765:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26766:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralPartCSAccess().getOwnedKeyExpCSParserRuleCall_0_0()); 
@@ -77963,17 +78137,17 @@
 
 
     // $ANTLR start "rule__MapLiteralPartCS__OwnedValueAssignment_2"
-    // InternalOCLinEcore.g:26717:1: rule__MapLiteralPartCS__OwnedValueAssignment_2 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:26775:1: rule__MapLiteralPartCS__OwnedValueAssignment_2 : ( ruleExpCS ) ;
     public final void rule__MapLiteralPartCS__OwnedValueAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26721:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:26722:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26779:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:26780:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:26722:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:26723:1: ruleExpCS
+            // InternalOCLinEcore.g:26780:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26781:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMapLiteralPartCSAccess().getOwnedValueExpCSParserRuleCall_2_0()); 
@@ -78008,17 +78182,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__OwnedPartsAssignment_2"
-    // InternalOCLinEcore.g:26732:1: rule__TupleLiteralExpCS__OwnedPartsAssignment_2 : ( ruleTupleLiteralPartCS ) ;
+    // InternalOCLinEcore.g:26790:1: rule__TupleLiteralExpCS__OwnedPartsAssignment_2 : ( ruleTupleLiteralPartCS ) ;
     public final void rule__TupleLiteralExpCS__OwnedPartsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26736:1: ( ( ruleTupleLiteralPartCS ) )
-            // InternalOCLinEcore.g:26737:1: ( ruleTupleLiteralPartCS )
+            // InternalOCLinEcore.g:26794:1: ( ( ruleTupleLiteralPartCS ) )
+            // InternalOCLinEcore.g:26795:1: ( ruleTupleLiteralPartCS )
             {
-            // InternalOCLinEcore.g:26737:1: ( ruleTupleLiteralPartCS )
-            // InternalOCLinEcore.g:26738:1: ruleTupleLiteralPartCS
+            // InternalOCLinEcore.g:26795:1: ( ruleTupleLiteralPartCS )
+            // InternalOCLinEcore.g:26796:1: ruleTupleLiteralPartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getOwnedPartsTupleLiteralPartCSParserRuleCall_2_0()); 
@@ -78053,17 +78227,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1"
-    // InternalOCLinEcore.g:26747:1: rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 : ( ruleTupleLiteralPartCS ) ;
+    // InternalOCLinEcore.g:26805:1: rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1 : ( ruleTupleLiteralPartCS ) ;
     public final void rule__TupleLiteralExpCS__OwnedPartsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26751:1: ( ( ruleTupleLiteralPartCS ) )
-            // InternalOCLinEcore.g:26752:1: ( ruleTupleLiteralPartCS )
+            // InternalOCLinEcore.g:26809:1: ( ( ruleTupleLiteralPartCS ) )
+            // InternalOCLinEcore.g:26810:1: ( ruleTupleLiteralPartCS )
             {
-            // InternalOCLinEcore.g:26752:1: ( ruleTupleLiteralPartCS )
-            // InternalOCLinEcore.g:26753:1: ruleTupleLiteralPartCS
+            // InternalOCLinEcore.g:26810:1: ( ruleTupleLiteralPartCS )
+            // InternalOCLinEcore.g:26811:1: ruleTupleLiteralPartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralExpCSAccess().getOwnedPartsTupleLiteralPartCSParserRuleCall_3_1_0()); 
@@ -78098,17 +78272,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__NameAssignment_0"
-    // InternalOCLinEcore.g:26762:1: rule__TupleLiteralPartCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:26820:1: rule__TupleLiteralPartCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
     public final void rule__TupleLiteralPartCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26766:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:26767:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26824:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:26825:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:26767:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:26768:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:26825:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:26826:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getNameUnrestrictedNameParserRuleCall_0_0()); 
@@ -78143,17 +78317,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1"
-    // InternalOCLinEcore.g:26777:1: rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:26835:1: rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1 : ( ruleTypeExpCS ) ;
     public final void rule__TupleLiteralPartCS__OwnedTypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26781:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:26782:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26839:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:26840:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:26782:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:26783:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:26840:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:26841:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getOwnedTypeTypeExpCSParserRuleCall_1_1_0()); 
@@ -78188,17 +78362,17 @@
 
 
     // $ANTLR start "rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3"
-    // InternalOCLinEcore.g:26792:1: rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:26850:1: rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3 : ( ruleExpCS ) ;
     public final void rule__TupleLiteralPartCS__OwnedInitExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26796:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:26797:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26854:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:26855:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:26797:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:26798:1: ruleExpCS
+            // InternalOCLinEcore.g:26855:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:26856:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTupleLiteralPartCSAccess().getOwnedInitExpressionExpCSParserRuleCall_3_0()); 
@@ -78233,17 +78407,17 @@
 
 
     // $ANTLR start "rule__NumberLiteralExpCS__SymbolAssignment"
-    // InternalOCLinEcore.g:26807:1: rule__NumberLiteralExpCS__SymbolAssignment : ( ruleNUMBER_LITERAL ) ;
+    // InternalOCLinEcore.g:26865:1: rule__NumberLiteralExpCS__SymbolAssignment : ( ruleNUMBER_LITERAL ) ;
     public final void rule__NumberLiteralExpCS__SymbolAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26811:1: ( ( ruleNUMBER_LITERAL ) )
-            // InternalOCLinEcore.g:26812:1: ( ruleNUMBER_LITERAL )
+            // InternalOCLinEcore.g:26869:1: ( ( ruleNUMBER_LITERAL ) )
+            // InternalOCLinEcore.g:26870:1: ( ruleNUMBER_LITERAL )
             {
-            // InternalOCLinEcore.g:26812:1: ( ruleNUMBER_LITERAL )
-            // InternalOCLinEcore.g:26813:1: ruleNUMBER_LITERAL
+            // InternalOCLinEcore.g:26870:1: ( ruleNUMBER_LITERAL )
+            // InternalOCLinEcore.g:26871:1: ruleNUMBER_LITERAL
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberLiteralExpCSAccess().getSymbolNUMBER_LITERALParserRuleCall_0()); 
@@ -78278,17 +78452,17 @@
 
 
     // $ANTLR start "rule__StringLiteralExpCS__SegmentsAssignment"
-    // InternalOCLinEcore.g:26822:1: rule__StringLiteralExpCS__SegmentsAssignment : ( ruleStringLiteral ) ;
+    // InternalOCLinEcore.g:26880:1: rule__StringLiteralExpCS__SegmentsAssignment : ( ruleStringLiteral ) ;
     public final void rule__StringLiteralExpCS__SegmentsAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26826:1: ( ( ruleStringLiteral ) )
-            // InternalOCLinEcore.g:26827:1: ( ruleStringLiteral )
+            // InternalOCLinEcore.g:26884:1: ( ( ruleStringLiteral ) )
+            // InternalOCLinEcore.g:26885:1: ( ruleStringLiteral )
             {
-            // InternalOCLinEcore.g:26827:1: ( ruleStringLiteral )
-            // InternalOCLinEcore.g:26828:1: ruleStringLiteral
+            // InternalOCLinEcore.g:26885:1: ( ruleStringLiteral )
+            // InternalOCLinEcore.g:26886:1: ruleStringLiteral
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiteralExpCSAccess().getSegmentsStringLiteralParserRuleCall_0()); 
@@ -78323,23 +78497,23 @@
 
 
     // $ANTLR start "rule__BooleanLiteralExpCS__SymbolAssignment_0"
-    // InternalOCLinEcore.g:26837:1: rule__BooleanLiteralExpCS__SymbolAssignment_0 : ( ( 'true' ) ) ;
+    // InternalOCLinEcore.g:26895:1: rule__BooleanLiteralExpCS__SymbolAssignment_0 : ( ( 'true' ) ) ;
     public final void rule__BooleanLiteralExpCS__SymbolAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26841:1: ( ( ( 'true' ) ) )
-            // InternalOCLinEcore.g:26842:1: ( ( 'true' ) )
+            // InternalOCLinEcore.g:26899:1: ( ( ( 'true' ) ) )
+            // InternalOCLinEcore.g:26900:1: ( ( 'true' ) )
             {
-            // InternalOCLinEcore.g:26842:1: ( ( 'true' ) )
-            // InternalOCLinEcore.g:26843:1: ( 'true' )
+            // InternalOCLinEcore.g:26900:1: ( ( 'true' ) )
+            // InternalOCLinEcore.g:26901:1: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralExpCSAccess().getSymbolTrueKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:26844:1: ( 'true' )
-            // InternalOCLinEcore.g:26845:1: 'true'
+            // InternalOCLinEcore.g:26902:1: ( 'true' )
+            // InternalOCLinEcore.g:26903:1: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralExpCSAccess().getSymbolTrueKeyword_0_0()); 
@@ -78376,23 +78550,23 @@
 
 
     // $ANTLR start "rule__BooleanLiteralExpCS__SymbolAssignment_1"
-    // InternalOCLinEcore.g:26860:1: rule__BooleanLiteralExpCS__SymbolAssignment_1 : ( ( 'false' ) ) ;
+    // InternalOCLinEcore.g:26918:1: rule__BooleanLiteralExpCS__SymbolAssignment_1 : ( ( 'false' ) ) ;
     public final void rule__BooleanLiteralExpCS__SymbolAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26864:1: ( ( ( 'false' ) ) )
-            // InternalOCLinEcore.g:26865:1: ( ( 'false' ) )
+            // InternalOCLinEcore.g:26922:1: ( ( ( 'false' ) ) )
+            // InternalOCLinEcore.g:26923:1: ( ( 'false' ) )
             {
-            // InternalOCLinEcore.g:26865:1: ( ( 'false' ) )
-            // InternalOCLinEcore.g:26866:1: ( 'false' )
+            // InternalOCLinEcore.g:26923:1: ( ( 'false' ) )
+            // InternalOCLinEcore.g:26924:1: ( 'false' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralExpCSAccess().getSymbolFalseKeyword_1_0()); 
             }
-            // InternalOCLinEcore.g:26867:1: ( 'false' )
-            // InternalOCLinEcore.g:26868:1: 'false'
+            // InternalOCLinEcore.g:26925:1: ( 'false' )
+            // InternalOCLinEcore.g:26926:1: 'false'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralExpCSAccess().getSymbolFalseKeyword_1_0()); 
@@ -78429,17 +78603,17 @@
 
 
     // $ANTLR start "rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1"
-    // InternalOCLinEcore.g:26883:1: rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 : ( ruleMultiplicityCS ) ;
+    // InternalOCLinEcore.g:26941:1: rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1 : ( ruleMultiplicityCS ) ;
     public final void rule__TypeLiteralWithMultiplicityCS__OwnedMultiplicityAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26887:1: ( ( ruleMultiplicityCS ) )
-            // InternalOCLinEcore.g:26888:1: ( ruleMultiplicityCS )
+            // InternalOCLinEcore.g:26945:1: ( ( ruleMultiplicityCS ) )
+            // InternalOCLinEcore.g:26946:1: ( ruleMultiplicityCS )
             {
-            // InternalOCLinEcore.g:26888:1: ( ruleMultiplicityCS )
-            // InternalOCLinEcore.g:26889:1: ruleMultiplicityCS
+            // InternalOCLinEcore.g:26946:1: ( ruleMultiplicityCS )
+            // InternalOCLinEcore.g:26947:1: ruleMultiplicityCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeLiteralWithMultiplicityCSAccess().getOwnedMultiplicityMultiplicityCSParserRuleCall_1_0()); 
@@ -78474,17 +78648,17 @@
 
 
     // $ANTLR start "rule__TypeLiteralExpCS__OwnedTypeAssignment"
-    // InternalOCLinEcore.g:26898:1: rule__TypeLiteralExpCS__OwnedTypeAssignment : ( ruleTypeLiteralWithMultiplicityCS ) ;
+    // InternalOCLinEcore.g:26956:1: rule__TypeLiteralExpCS__OwnedTypeAssignment : ( ruleTypeLiteralWithMultiplicityCS ) ;
     public final void rule__TypeLiteralExpCS__OwnedTypeAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26902:1: ( ( ruleTypeLiteralWithMultiplicityCS ) )
-            // InternalOCLinEcore.g:26903:1: ( ruleTypeLiteralWithMultiplicityCS )
+            // InternalOCLinEcore.g:26960:1: ( ( ruleTypeLiteralWithMultiplicityCS ) )
+            // InternalOCLinEcore.g:26961:1: ( ruleTypeLiteralWithMultiplicityCS )
             {
-            // InternalOCLinEcore.g:26903:1: ( ruleTypeLiteralWithMultiplicityCS )
-            // InternalOCLinEcore.g:26904:1: ruleTypeLiteralWithMultiplicityCS
+            // InternalOCLinEcore.g:26961:1: ( ruleTypeLiteralWithMultiplicityCS )
+            // InternalOCLinEcore.g:26962:1: ruleTypeLiteralWithMultiplicityCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeLiteralExpCSAccess().getOwnedTypeTypeLiteralWithMultiplicityCSParserRuleCall_0()); 
@@ -78519,17 +78693,17 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__OwnedPathNameAssignment_0"
-    // InternalOCLinEcore.g:26913:1: rule__TypeNameExpCS__OwnedPathNameAssignment_0 : ( rulePathNameCS ) ;
+    // InternalOCLinEcore.g:26971:1: rule__TypeNameExpCS__OwnedPathNameAssignment_0 : ( rulePathNameCS ) ;
     public final void rule__TypeNameExpCS__OwnedPathNameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26917:1: ( ( rulePathNameCS ) )
-            // InternalOCLinEcore.g:26918:1: ( rulePathNameCS )
+            // InternalOCLinEcore.g:26975:1: ( ( rulePathNameCS ) )
+            // InternalOCLinEcore.g:26976:1: ( rulePathNameCS )
             {
-            // InternalOCLinEcore.g:26918:1: ( rulePathNameCS )
-            // InternalOCLinEcore.g:26919:1: rulePathNameCS
+            // InternalOCLinEcore.g:26976:1: ( rulePathNameCS )
+            // InternalOCLinEcore.g:26977:1: rulePathNameCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getOwnedPathNamePathNameCSParserRuleCall_0_0()); 
@@ -78564,17 +78738,17 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0"
-    // InternalOCLinEcore.g:26928:1: rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 : ( ruleCurlyBracketedClauseCS ) ;
+    // InternalOCLinEcore.g:26986:1: rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0 : ( ruleCurlyBracketedClauseCS ) ;
     public final void rule__TypeNameExpCS__OwnedCurlyBracketedClauseAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26932:1: ( ( ruleCurlyBracketedClauseCS ) )
-            // InternalOCLinEcore.g:26933:1: ( ruleCurlyBracketedClauseCS )
+            // InternalOCLinEcore.g:26990:1: ( ( ruleCurlyBracketedClauseCS ) )
+            // InternalOCLinEcore.g:26991:1: ( ruleCurlyBracketedClauseCS )
             {
-            // InternalOCLinEcore.g:26933:1: ( ruleCurlyBracketedClauseCS )
-            // InternalOCLinEcore.g:26934:1: ruleCurlyBracketedClauseCS
+            // InternalOCLinEcore.g:26991:1: ( ruleCurlyBracketedClauseCS )
+            // InternalOCLinEcore.g:26992:1: ruleCurlyBracketedClauseCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getOwnedCurlyBracketedClauseCurlyBracketedClauseCSParserRuleCall_1_0_0()); 
@@ -78609,17 +78783,17 @@
 
 
     // $ANTLR start "rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1"
-    // InternalOCLinEcore.g:26943:1: rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27001:1: rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1 : ( ruleExpCS ) ;
     public final void rule__TypeNameExpCS__OwnedPatternGuardAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26947:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:26948:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27005:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27006:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:26948:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:26949:1: ruleExpCS
+            // InternalOCLinEcore.g:27006:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27007:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeNameExpCSAccess().getOwnedPatternGuardExpCSParserRuleCall_1_1_1_0()); 
@@ -78654,17 +78828,17 @@
 
 
     // $ANTLR start "rule__TypeExpCS__OwnedMultiplicityAssignment_1"
-    // InternalOCLinEcore.g:26958:1: rule__TypeExpCS__OwnedMultiplicityAssignment_1 : ( ruleMultiplicityCS ) ;
+    // InternalOCLinEcore.g:27016:1: rule__TypeExpCS__OwnedMultiplicityAssignment_1 : ( ruleMultiplicityCS ) ;
     public final void rule__TypeExpCS__OwnedMultiplicityAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26962:1: ( ( ruleMultiplicityCS ) )
-            // InternalOCLinEcore.g:26963:1: ( ruleMultiplicityCS )
+            // InternalOCLinEcore.g:27020:1: ( ( ruleMultiplicityCS ) )
+            // InternalOCLinEcore.g:27021:1: ( ruleMultiplicityCS )
             {
-            // InternalOCLinEcore.g:26963:1: ( ruleMultiplicityCS )
-            // InternalOCLinEcore.g:26964:1: ruleMultiplicityCS
+            // InternalOCLinEcore.g:27021:1: ( ruleMultiplicityCS )
+            // InternalOCLinEcore.g:27022:1: ruleMultiplicityCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeExpCSAccess().getOwnedMultiplicityMultiplicityCSParserRuleCall_1_0()); 
@@ -78699,17 +78873,17 @@
 
 
     // $ANTLR start "rule__ExpCS__NameAssignment_0_1_1"
-    // InternalOCLinEcore.g:26973:1: rule__ExpCS__NameAssignment_0_1_1 : ( ruleBinaryOperatorName ) ;
+    // InternalOCLinEcore.g:27031:1: rule__ExpCS__NameAssignment_0_1_1 : ( ruleBinaryOperatorName ) ;
     public final void rule__ExpCS__NameAssignment_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26977:1: ( ( ruleBinaryOperatorName ) )
-            // InternalOCLinEcore.g:26978:1: ( ruleBinaryOperatorName )
+            // InternalOCLinEcore.g:27035:1: ( ( ruleBinaryOperatorName ) )
+            // InternalOCLinEcore.g:27036:1: ( ruleBinaryOperatorName )
             {
-            // InternalOCLinEcore.g:26978:1: ( ruleBinaryOperatorName )
-            // InternalOCLinEcore.g:26979:1: ruleBinaryOperatorName
+            // InternalOCLinEcore.g:27036:1: ( ruleBinaryOperatorName )
+            // InternalOCLinEcore.g:27037:1: ruleBinaryOperatorName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpCSAccess().getNameBinaryOperatorNameParserRuleCall_0_1_1_0()); 
@@ -78744,17 +78918,17 @@
 
 
     // $ANTLR start "rule__ExpCS__OwnedRightAssignment_0_1_2"
-    // InternalOCLinEcore.g:26988:1: rule__ExpCS__OwnedRightAssignment_0_1_2 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27046:1: rule__ExpCS__OwnedRightAssignment_0_1_2 : ( ruleExpCS ) ;
     public final void rule__ExpCS__OwnedRightAssignment_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:26992:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:26993:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27050:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27051:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:26993:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:26994:1: ruleExpCS
+            // InternalOCLinEcore.g:27051:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27052:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpCSAccess().getOwnedRightExpCSParserRuleCall_0_1_2_0()); 
@@ -78789,17 +78963,17 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__NameAssignment_0_1"
-    // InternalOCLinEcore.g:27003:1: rule__PrefixedLetExpCS__NameAssignment_0_1 : ( ruleUnaryOperatorName ) ;
+    // InternalOCLinEcore.g:27061:1: rule__PrefixedLetExpCS__NameAssignment_0_1 : ( ruleUnaryOperatorName ) ;
     public final void rule__PrefixedLetExpCS__NameAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27007:1: ( ( ruleUnaryOperatorName ) )
-            // InternalOCLinEcore.g:27008:1: ( ruleUnaryOperatorName )
+            // InternalOCLinEcore.g:27065:1: ( ( ruleUnaryOperatorName ) )
+            // InternalOCLinEcore.g:27066:1: ( ruleUnaryOperatorName )
             {
-            // InternalOCLinEcore.g:27008:1: ( ruleUnaryOperatorName )
-            // InternalOCLinEcore.g:27009:1: ruleUnaryOperatorName
+            // InternalOCLinEcore.g:27066:1: ( ruleUnaryOperatorName )
+            // InternalOCLinEcore.g:27067:1: ruleUnaryOperatorName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedLetExpCSAccess().getNameUnaryOperatorNameParserRuleCall_0_1_0()); 
@@ -78834,17 +79008,17 @@
 
 
     // $ANTLR start "rule__PrefixedLetExpCS__OwnedRightAssignment_0_2"
-    // InternalOCLinEcore.g:27018:1: rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 : ( rulePrefixedLetExpCS ) ;
+    // InternalOCLinEcore.g:27076:1: rule__PrefixedLetExpCS__OwnedRightAssignment_0_2 : ( rulePrefixedLetExpCS ) ;
     public final void rule__PrefixedLetExpCS__OwnedRightAssignment_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27022:1: ( ( rulePrefixedLetExpCS ) )
-            // InternalOCLinEcore.g:27023:1: ( rulePrefixedLetExpCS )
+            // InternalOCLinEcore.g:27080:1: ( ( rulePrefixedLetExpCS ) )
+            // InternalOCLinEcore.g:27081:1: ( rulePrefixedLetExpCS )
             {
-            // InternalOCLinEcore.g:27023:1: ( rulePrefixedLetExpCS )
-            // InternalOCLinEcore.g:27024:1: rulePrefixedLetExpCS
+            // InternalOCLinEcore.g:27081:1: ( rulePrefixedLetExpCS )
+            // InternalOCLinEcore.g:27082:1: rulePrefixedLetExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedLetExpCSAccess().getOwnedRightPrefixedLetExpCSParserRuleCall_0_2_0()); 
@@ -78879,17 +79053,17 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__NameAssignment_0_1"
-    // InternalOCLinEcore.g:27033:1: rule__PrefixedPrimaryExpCS__NameAssignment_0_1 : ( ruleUnaryOperatorName ) ;
+    // InternalOCLinEcore.g:27091:1: rule__PrefixedPrimaryExpCS__NameAssignment_0_1 : ( ruleUnaryOperatorName ) ;
     public final void rule__PrefixedPrimaryExpCS__NameAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27037:1: ( ( ruleUnaryOperatorName ) )
-            // InternalOCLinEcore.g:27038:1: ( ruleUnaryOperatorName )
+            // InternalOCLinEcore.g:27095:1: ( ( ruleUnaryOperatorName ) )
+            // InternalOCLinEcore.g:27096:1: ( ruleUnaryOperatorName )
             {
-            // InternalOCLinEcore.g:27038:1: ( ruleUnaryOperatorName )
-            // InternalOCLinEcore.g:27039:1: ruleUnaryOperatorName
+            // InternalOCLinEcore.g:27096:1: ( ruleUnaryOperatorName )
+            // InternalOCLinEcore.g:27097:1: ruleUnaryOperatorName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedPrimaryExpCSAccess().getNameUnaryOperatorNameParserRuleCall_0_1_0()); 
@@ -78924,17 +79098,17 @@
 
 
     // $ANTLR start "rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2"
-    // InternalOCLinEcore.g:27048:1: rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 : ( rulePrefixedPrimaryExpCS ) ;
+    // InternalOCLinEcore.g:27106:1: rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2 : ( rulePrefixedPrimaryExpCS ) ;
     public final void rule__PrefixedPrimaryExpCS__OwnedRightAssignment_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27052:1: ( ( rulePrefixedPrimaryExpCS ) )
-            // InternalOCLinEcore.g:27053:1: ( rulePrefixedPrimaryExpCS )
+            // InternalOCLinEcore.g:27110:1: ( ( rulePrefixedPrimaryExpCS ) )
+            // InternalOCLinEcore.g:27111:1: ( rulePrefixedPrimaryExpCS )
             {
-            // InternalOCLinEcore.g:27053:1: ( rulePrefixedPrimaryExpCS )
-            // InternalOCLinEcore.g:27054:1: rulePrefixedPrimaryExpCS
+            // InternalOCLinEcore.g:27111:1: ( rulePrefixedPrimaryExpCS )
+            // InternalOCLinEcore.g:27112:1: rulePrefixedPrimaryExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPrefixedPrimaryExpCSAccess().getOwnedRightPrefixedPrimaryExpCSParserRuleCall_0_2_0()); 
@@ -78969,17 +79143,17 @@
 
 
     // $ANTLR start "rule__NameExpCS__OwnedPathNameAssignment_0"
-    // InternalOCLinEcore.g:27063:1: rule__NameExpCS__OwnedPathNameAssignment_0 : ( rulePathNameCS ) ;
+    // InternalOCLinEcore.g:27121:1: rule__NameExpCS__OwnedPathNameAssignment_0 : ( rulePathNameCS ) ;
     public final void rule__NameExpCS__OwnedPathNameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27067:1: ( ( rulePathNameCS ) )
-            // InternalOCLinEcore.g:27068:1: ( rulePathNameCS )
+            // InternalOCLinEcore.g:27125:1: ( ( rulePathNameCS ) )
+            // InternalOCLinEcore.g:27126:1: ( rulePathNameCS )
             {
-            // InternalOCLinEcore.g:27068:1: ( rulePathNameCS )
-            // InternalOCLinEcore.g:27069:1: rulePathNameCS
+            // InternalOCLinEcore.g:27126:1: ( rulePathNameCS )
+            // InternalOCLinEcore.g:27127:1: rulePathNameCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getOwnedPathNamePathNameCSParserRuleCall_0_0()); 
@@ -79014,17 +79188,17 @@
 
 
     // $ANTLR start "rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1"
-    // InternalOCLinEcore.g:27078:1: rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 : ( ruleSquareBracketedClauseCS ) ;
+    // InternalOCLinEcore.g:27136:1: rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1 : ( ruleSquareBracketedClauseCS ) ;
     public final void rule__NameExpCS__OwnedSquareBracketedClausesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27082:1: ( ( ruleSquareBracketedClauseCS ) )
-            // InternalOCLinEcore.g:27083:1: ( ruleSquareBracketedClauseCS )
+            // InternalOCLinEcore.g:27140:1: ( ( ruleSquareBracketedClauseCS ) )
+            // InternalOCLinEcore.g:27141:1: ( ruleSquareBracketedClauseCS )
             {
-            // InternalOCLinEcore.g:27083:1: ( ruleSquareBracketedClauseCS )
-            // InternalOCLinEcore.g:27084:1: ruleSquareBracketedClauseCS
+            // InternalOCLinEcore.g:27141:1: ( ruleSquareBracketedClauseCS )
+            // InternalOCLinEcore.g:27142:1: ruleSquareBracketedClauseCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getOwnedSquareBracketedClausesSquareBracketedClauseCSParserRuleCall_1_0()); 
@@ -79059,17 +79233,17 @@
 
 
     // $ANTLR start "rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2"
-    // InternalOCLinEcore.g:27093:1: rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 : ( ruleRoundBracketedClauseCS ) ;
+    // InternalOCLinEcore.g:27151:1: rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2 : ( ruleRoundBracketedClauseCS ) ;
     public final void rule__NameExpCS__OwnedRoundBracketedClauseAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27097:1: ( ( ruleRoundBracketedClauseCS ) )
-            // InternalOCLinEcore.g:27098:1: ( ruleRoundBracketedClauseCS )
+            // InternalOCLinEcore.g:27155:1: ( ( ruleRoundBracketedClauseCS ) )
+            // InternalOCLinEcore.g:27156:1: ( ruleRoundBracketedClauseCS )
             {
-            // InternalOCLinEcore.g:27098:1: ( ruleRoundBracketedClauseCS )
-            // InternalOCLinEcore.g:27099:1: ruleRoundBracketedClauseCS
+            // InternalOCLinEcore.g:27156:1: ( ruleRoundBracketedClauseCS )
+            // InternalOCLinEcore.g:27157:1: ruleRoundBracketedClauseCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getOwnedRoundBracketedClauseRoundBracketedClauseCSParserRuleCall_2_0()); 
@@ -79104,17 +79278,17 @@
 
 
     // $ANTLR start "rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3"
-    // InternalOCLinEcore.g:27108:1: rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 : ( ruleCurlyBracketedClauseCS ) ;
+    // InternalOCLinEcore.g:27166:1: rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3 : ( ruleCurlyBracketedClauseCS ) ;
     public final void rule__NameExpCS__OwnedCurlyBracketedClauseAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27112:1: ( ( ruleCurlyBracketedClauseCS ) )
-            // InternalOCLinEcore.g:27113:1: ( ruleCurlyBracketedClauseCS )
+            // InternalOCLinEcore.g:27170:1: ( ( ruleCurlyBracketedClauseCS ) )
+            // InternalOCLinEcore.g:27171:1: ( ruleCurlyBracketedClauseCS )
             {
-            // InternalOCLinEcore.g:27113:1: ( ruleCurlyBracketedClauseCS )
-            // InternalOCLinEcore.g:27114:1: ruleCurlyBracketedClauseCS
+            // InternalOCLinEcore.g:27171:1: ( ruleCurlyBracketedClauseCS )
+            // InternalOCLinEcore.g:27172:1: ruleCurlyBracketedClauseCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getOwnedCurlyBracketedClauseCurlyBracketedClauseCSParserRuleCall_3_0()); 
@@ -79149,23 +79323,23 @@
 
 
     // $ANTLR start "rule__NameExpCS__IsPreAssignment_4_0"
-    // InternalOCLinEcore.g:27123:1: rule__NameExpCS__IsPreAssignment_4_0 : ( ( '@' ) ) ;
+    // InternalOCLinEcore.g:27181:1: rule__NameExpCS__IsPreAssignment_4_0 : ( ( '@' ) ) ;
     public final void rule__NameExpCS__IsPreAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27127:1: ( ( ( '@' ) ) )
-            // InternalOCLinEcore.g:27128:1: ( ( '@' ) )
+            // InternalOCLinEcore.g:27185:1: ( ( ( '@' ) ) )
+            // InternalOCLinEcore.g:27186:1: ( ( '@' ) )
             {
-            // InternalOCLinEcore.g:27128:1: ( ( '@' ) )
-            // InternalOCLinEcore.g:27129:1: ( '@' )
+            // InternalOCLinEcore.g:27186:1: ( ( '@' ) )
+            // InternalOCLinEcore.g:27187:1: ( '@' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getIsPreCommercialAtKeyword_4_0_0()); 
             }
-            // InternalOCLinEcore.g:27130:1: ( '@' )
-            // InternalOCLinEcore.g:27131:1: '@'
+            // InternalOCLinEcore.g:27188:1: ( '@' )
+            // InternalOCLinEcore.g:27189:1: '@'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNameExpCSAccess().getIsPreCommercialAtKeyword_4_0_0()); 
@@ -79202,17 +79376,17 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0"
-    // InternalOCLinEcore.g:27146:1: rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 : ( ruleShadowPartCS ) ;
+    // InternalOCLinEcore.g:27204:1: rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0 : ( ruleShadowPartCS ) ;
     public final void rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27150:1: ( ( ruleShadowPartCS ) )
-            // InternalOCLinEcore.g:27151:1: ( ruleShadowPartCS )
+            // InternalOCLinEcore.g:27208:1: ( ( ruleShadowPartCS ) )
+            // InternalOCLinEcore.g:27209:1: ( ruleShadowPartCS )
             {
-            // InternalOCLinEcore.g:27151:1: ( ruleShadowPartCS )
-            // InternalOCLinEcore.g:27152:1: ruleShadowPartCS
+            // InternalOCLinEcore.g:27209:1: ( ruleShadowPartCS )
+            // InternalOCLinEcore.g:27210:1: ruleShadowPartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getOwnedPartsShadowPartCSParserRuleCall_2_0_0_0()); 
@@ -79247,17 +79421,17 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1"
-    // InternalOCLinEcore.g:27161:1: rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 : ( ruleShadowPartCS ) ;
+    // InternalOCLinEcore.g:27219:1: rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1 : ( ruleShadowPartCS ) ;
     public final void rule__CurlyBracketedClauseCS__OwnedPartsAssignment_2_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27165:1: ( ( ruleShadowPartCS ) )
-            // InternalOCLinEcore.g:27166:1: ( ruleShadowPartCS )
+            // InternalOCLinEcore.g:27223:1: ( ( ruleShadowPartCS ) )
+            // InternalOCLinEcore.g:27224:1: ( ruleShadowPartCS )
             {
-            // InternalOCLinEcore.g:27166:1: ( ruleShadowPartCS )
-            // InternalOCLinEcore.g:27167:1: ruleShadowPartCS
+            // InternalOCLinEcore.g:27224:1: ( ruleShadowPartCS )
+            // InternalOCLinEcore.g:27225:1: ruleShadowPartCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getOwnedPartsShadowPartCSParserRuleCall_2_0_1_1_0()); 
@@ -79292,17 +79466,17 @@
 
 
     // $ANTLR start "rule__CurlyBracketedClauseCS__ValueAssignment_2_1"
-    // InternalOCLinEcore.g:27176:1: rule__CurlyBracketedClauseCS__ValueAssignment_2_1 : ( ruleStringLiteral ) ;
+    // InternalOCLinEcore.g:27234:1: rule__CurlyBracketedClauseCS__ValueAssignment_2_1 : ( ruleStringLiteral ) ;
     public final void rule__CurlyBracketedClauseCS__ValueAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27180:1: ( ( ruleStringLiteral ) )
-            // InternalOCLinEcore.g:27181:1: ( ruleStringLiteral )
+            // InternalOCLinEcore.g:27238:1: ( ( ruleStringLiteral ) )
+            // InternalOCLinEcore.g:27239:1: ( ruleStringLiteral )
             {
-            // InternalOCLinEcore.g:27181:1: ( ruleStringLiteral )
-            // InternalOCLinEcore.g:27182:1: ruleStringLiteral
+            // InternalOCLinEcore.g:27239:1: ( ruleStringLiteral )
+            // InternalOCLinEcore.g:27240:1: ruleStringLiteral
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCurlyBracketedClauseCSAccess().getValueStringLiteralParserRuleCall_2_1_0()); 
@@ -79337,17 +79511,17 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0"
-    // InternalOCLinEcore.g:27191:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 : ( ruleNavigatingArgCS ) ;
+    // InternalOCLinEcore.g:27249:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0 : ( ruleNavigatingArgCS ) ;
     public final void rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27195:1: ( ( ruleNavigatingArgCS ) )
-            // InternalOCLinEcore.g:27196:1: ( ruleNavigatingArgCS )
+            // InternalOCLinEcore.g:27253:1: ( ( ruleNavigatingArgCS ) )
+            // InternalOCLinEcore.g:27254:1: ( ruleNavigatingArgCS )
             {
-            // InternalOCLinEcore.g:27196:1: ( ruleNavigatingArgCS )
-            // InternalOCLinEcore.g:27197:1: ruleNavigatingArgCS
+            // InternalOCLinEcore.g:27254:1: ( ruleNavigatingArgCS )
+            // InternalOCLinEcore.g:27255:1: ruleNavigatingArgCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsNavigatingArgCSParserRuleCall_2_0_0()); 
@@ -79382,17 +79556,17 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1"
-    // InternalOCLinEcore.g:27206:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 : ( ruleNavigatingCommaArgCS ) ;
+    // InternalOCLinEcore.g:27264:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1 : ( ruleNavigatingCommaArgCS ) ;
     public final void rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27210:1: ( ( ruleNavigatingCommaArgCS ) )
-            // InternalOCLinEcore.g:27211:1: ( ruleNavigatingCommaArgCS )
+            // InternalOCLinEcore.g:27268:1: ( ( ruleNavigatingCommaArgCS ) )
+            // InternalOCLinEcore.g:27269:1: ( ruleNavigatingCommaArgCS )
             {
-            // InternalOCLinEcore.g:27211:1: ( ruleNavigatingCommaArgCS )
-            // InternalOCLinEcore.g:27212:1: ruleNavigatingCommaArgCS
+            // InternalOCLinEcore.g:27269:1: ( ruleNavigatingCommaArgCS )
+            // InternalOCLinEcore.g:27270:1: ruleNavigatingCommaArgCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsNavigatingCommaArgCSParserRuleCall_2_1_0()); 
@@ -79427,17 +79601,17 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0"
-    // InternalOCLinEcore.g:27221:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 : ( ruleNavigatingSemiArgCS ) ;
+    // InternalOCLinEcore.g:27279:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0 : ( ruleNavigatingSemiArgCS ) ;
     public final void rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27225:1: ( ( ruleNavigatingSemiArgCS ) )
-            // InternalOCLinEcore.g:27226:1: ( ruleNavigatingSemiArgCS )
+            // InternalOCLinEcore.g:27283:1: ( ( ruleNavigatingSemiArgCS ) )
+            // InternalOCLinEcore.g:27284:1: ( ruleNavigatingSemiArgCS )
             {
-            // InternalOCLinEcore.g:27226:1: ( ruleNavigatingSemiArgCS )
-            // InternalOCLinEcore.g:27227:1: ruleNavigatingSemiArgCS
+            // InternalOCLinEcore.g:27284:1: ( ruleNavigatingSemiArgCS )
+            // InternalOCLinEcore.g:27285:1: ruleNavigatingSemiArgCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsNavigatingSemiArgCSParserRuleCall_2_2_0_0()); 
@@ -79472,17 +79646,17 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1"
-    // InternalOCLinEcore.g:27236:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 : ( ruleNavigatingCommaArgCS ) ;
+    // InternalOCLinEcore.g:27294:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1 : ( ruleNavigatingCommaArgCS ) ;
     public final void rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27240:1: ( ( ruleNavigatingCommaArgCS ) )
-            // InternalOCLinEcore.g:27241:1: ( ruleNavigatingCommaArgCS )
+            // InternalOCLinEcore.g:27298:1: ( ( ruleNavigatingCommaArgCS ) )
+            // InternalOCLinEcore.g:27299:1: ( ruleNavigatingCommaArgCS )
             {
-            // InternalOCLinEcore.g:27241:1: ( ruleNavigatingCommaArgCS )
-            // InternalOCLinEcore.g:27242:1: ruleNavigatingCommaArgCS
+            // InternalOCLinEcore.g:27299:1: ( ruleNavigatingCommaArgCS )
+            // InternalOCLinEcore.g:27300:1: ruleNavigatingCommaArgCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsNavigatingCommaArgCSParserRuleCall_2_2_1_0()); 
@@ -79517,17 +79691,17 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0"
-    // InternalOCLinEcore.g:27251:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 : ( ruleNavigatingBarArgCS ) ;
+    // InternalOCLinEcore.g:27309:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0 : ( ruleNavigatingBarArgCS ) ;
     public final void rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27255:1: ( ( ruleNavigatingBarArgCS ) )
-            // InternalOCLinEcore.g:27256:1: ( ruleNavigatingBarArgCS )
+            // InternalOCLinEcore.g:27313:1: ( ( ruleNavigatingBarArgCS ) )
+            // InternalOCLinEcore.g:27314:1: ( ruleNavigatingBarArgCS )
             {
-            // InternalOCLinEcore.g:27256:1: ( ruleNavigatingBarArgCS )
-            // InternalOCLinEcore.g:27257:1: ruleNavigatingBarArgCS
+            // InternalOCLinEcore.g:27314:1: ( ruleNavigatingBarArgCS )
+            // InternalOCLinEcore.g:27315:1: ruleNavigatingBarArgCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsNavigatingBarArgCSParserRuleCall_2_3_0_0()); 
@@ -79562,17 +79736,17 @@
 
 
     // $ANTLR start "rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1"
-    // InternalOCLinEcore.g:27266:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 : ( ruleNavigatingCommaArgCS ) ;
+    // InternalOCLinEcore.g:27324:1: rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1 : ( ruleNavigatingCommaArgCS ) ;
     public final void rule__RoundBracketedClauseCS__OwnedArgumentsAssignment_2_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27270:1: ( ( ruleNavigatingCommaArgCS ) )
-            // InternalOCLinEcore.g:27271:1: ( ruleNavigatingCommaArgCS )
+            // InternalOCLinEcore.g:27328:1: ( ( ruleNavigatingCommaArgCS ) )
+            // InternalOCLinEcore.g:27329:1: ( ruleNavigatingCommaArgCS )
             {
-            // InternalOCLinEcore.g:27271:1: ( ruleNavigatingCommaArgCS )
-            // InternalOCLinEcore.g:27272:1: ruleNavigatingCommaArgCS
+            // InternalOCLinEcore.g:27329:1: ( ruleNavigatingCommaArgCS )
+            // InternalOCLinEcore.g:27330:1: ruleNavigatingCommaArgCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRoundBracketedClauseCSAccess().getOwnedArgumentsNavigatingCommaArgCSParserRuleCall_2_3_1_0()); 
@@ -79607,17 +79781,17 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__OwnedTermsAssignment_1"
-    // InternalOCLinEcore.g:27281:1: rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27339:1: rule__SquareBracketedClauseCS__OwnedTermsAssignment_1 : ( ruleExpCS ) ;
     public final void rule__SquareBracketedClauseCS__OwnedTermsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27285:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27286:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27343:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27344:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27286:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27287:1: ruleExpCS
+            // InternalOCLinEcore.g:27344:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27345:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSquareBracketedClauseCSAccess().getOwnedTermsExpCSParserRuleCall_1_0()); 
@@ -79652,17 +79826,17 @@
 
 
     // $ANTLR start "rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1"
-    // InternalOCLinEcore.g:27296:1: rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27354:1: rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1 : ( ruleExpCS ) ;
     public final void rule__SquareBracketedClauseCS__OwnedTermsAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27300:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27301:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27358:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27359:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27301:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27302:1: ruleExpCS
+            // InternalOCLinEcore.g:27359:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27360:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSquareBracketedClauseCSAccess().getOwnedTermsExpCSParserRuleCall_2_1_0()); 
@@ -79697,17 +79871,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0"
-    // InternalOCLinEcore.g:27311:1: rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 : ( ruleNavigatingArgExpCS ) ;
+    // InternalOCLinEcore.g:27369:1: rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0 : ( ruleNavigatingArgExpCS ) ;
     public final void rule__NavigatingArgCS__OwnedNameExpressionAssignment_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27315:1: ( ( ruleNavigatingArgExpCS ) )
-            // InternalOCLinEcore.g:27316:1: ( ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:27373:1: ( ( ruleNavigatingArgExpCS ) )
+            // InternalOCLinEcore.g:27374:1: ( ruleNavigatingArgExpCS )
             {
-            // InternalOCLinEcore.g:27316:1: ( ruleNavigatingArgExpCS )
-            // InternalOCLinEcore.g:27317:1: ruleNavigatingArgExpCS
+            // InternalOCLinEcore.g:27374:1: ( ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:27375:1: ruleNavigatingArgExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedNameExpressionNavigatingArgExpCSParserRuleCall_0_0_0()); 
@@ -79742,17 +79916,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1"
-    // InternalOCLinEcore.g:27326:1: rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:27384:1: rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1 : ( ruleTypeExpCS ) ;
     public final void rule__NavigatingArgCS__OwnedTypeAssignment_0_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27330:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:27331:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27388:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:27389:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:27331:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:27332:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:27389:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27390:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedTypeTypeExpCSParserRuleCall_0_1_0_1_0()); 
@@ -79787,17 +79961,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1"
-    // InternalOCLinEcore.g:27341:1: rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27399:1: rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1 : ( ruleExpCS ) ;
     public final void rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_0_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27345:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27346:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27403:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27404:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27346:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27347:1: ruleExpCS
+            // InternalOCLinEcore.g:27404:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27405:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedInitExpressionExpCSParserRuleCall_0_1_0_2_1_0()); 
@@ -79832,17 +80006,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1"
-    // InternalOCLinEcore.g:27356:1: rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27414:1: rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1 : ( ruleExpCS ) ;
     public final void rule__NavigatingArgCS__OwnedInitExpressionAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27360:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27361:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27418:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27419:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27361:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27362:1: ruleExpCS
+            // InternalOCLinEcore.g:27419:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27420:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedInitExpressionExpCSParserRuleCall_0_1_1_1_0()); 
@@ -79877,17 +80051,17 @@
 
 
     // $ANTLR start "rule__NavigatingArgCS__OwnedTypeAssignment_1_1"
-    // InternalOCLinEcore.g:27371:1: rule__NavigatingArgCS__OwnedTypeAssignment_1_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:27429:1: rule__NavigatingArgCS__OwnedTypeAssignment_1_1 : ( ruleTypeExpCS ) ;
     public final void rule__NavigatingArgCS__OwnedTypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27375:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:27376:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27433:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:27434:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:27376:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:27377:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:27434:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27435:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingArgCSAccess().getOwnedTypeTypeExpCSParserRuleCall_1_1_0()); 
@@ -79922,23 +80096,23 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__PrefixAssignment_0"
-    // InternalOCLinEcore.g:27386:1: rule__NavigatingBarArgCS__PrefixAssignment_0 : ( ( '|' ) ) ;
+    // InternalOCLinEcore.g:27444:1: rule__NavigatingBarArgCS__PrefixAssignment_0 : ( ( '|' ) ) ;
     public final void rule__NavigatingBarArgCS__PrefixAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27390:1: ( ( ( '|' ) ) )
-            // InternalOCLinEcore.g:27391:1: ( ( '|' ) )
+            // InternalOCLinEcore.g:27448:1: ( ( ( '|' ) ) )
+            // InternalOCLinEcore.g:27449:1: ( ( '|' ) )
             {
-            // InternalOCLinEcore.g:27391:1: ( ( '|' ) )
-            // InternalOCLinEcore.g:27392:1: ( '|' )
+            // InternalOCLinEcore.g:27449:1: ( ( '|' ) )
+            // InternalOCLinEcore.g:27450:1: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getPrefixVerticalLineKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:27393:1: ( '|' )
-            // InternalOCLinEcore.g:27394:1: '|'
+            // InternalOCLinEcore.g:27451:1: ( '|' )
+            // InternalOCLinEcore.g:27452:1: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getPrefixVerticalLineKeyword_0_0()); 
@@ -79975,17 +80149,17 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1"
-    // InternalOCLinEcore.g:27409:1: rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 : ( ruleNavigatingArgExpCS ) ;
+    // InternalOCLinEcore.g:27467:1: rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1 : ( ruleNavigatingArgExpCS ) ;
     public final void rule__NavigatingBarArgCS__OwnedNameExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27413:1: ( ( ruleNavigatingArgExpCS ) )
-            // InternalOCLinEcore.g:27414:1: ( ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:27471:1: ( ( ruleNavigatingArgExpCS ) )
+            // InternalOCLinEcore.g:27472:1: ( ruleNavigatingArgExpCS )
             {
-            // InternalOCLinEcore.g:27414:1: ( ruleNavigatingArgExpCS )
-            // InternalOCLinEcore.g:27415:1: ruleNavigatingArgExpCS
+            // InternalOCLinEcore.g:27472:1: ( ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:27473:1: ruleNavigatingArgExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getOwnedNameExpressionNavigatingArgExpCSParserRuleCall_1_0()); 
@@ -80020,17 +80194,17 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1"
-    // InternalOCLinEcore.g:27424:1: rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:27482:1: rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1 : ( ruleTypeExpCS ) ;
     public final void rule__NavigatingBarArgCS__OwnedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27428:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:27429:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27486:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:27487:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:27429:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:27430:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:27487:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27488:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getOwnedTypeTypeExpCSParserRuleCall_2_1_0()); 
@@ -80065,17 +80239,17 @@
 
 
     // $ANTLR start "rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1"
-    // InternalOCLinEcore.g:27439:1: rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27497:1: rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1 : ( ruleExpCS ) ;
     public final void rule__NavigatingBarArgCS__OwnedInitExpressionAssignment_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27443:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27444:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27501:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27502:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27444:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27445:1: ruleExpCS
+            // InternalOCLinEcore.g:27502:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27503:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingBarArgCSAccess().getOwnedInitExpressionExpCSParserRuleCall_2_2_1_0()); 
@@ -80110,23 +80284,23 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__PrefixAssignment_0"
-    // InternalOCLinEcore.g:27454:1: rule__NavigatingCommaArgCS__PrefixAssignment_0 : ( ( ',' ) ) ;
+    // InternalOCLinEcore.g:27512:1: rule__NavigatingCommaArgCS__PrefixAssignment_0 : ( ( ',' ) ) ;
     public final void rule__NavigatingCommaArgCS__PrefixAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27458:1: ( ( ( ',' ) ) )
-            // InternalOCLinEcore.g:27459:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:27516:1: ( ( ( ',' ) ) )
+            // InternalOCLinEcore.g:27517:1: ( ( ',' ) )
             {
-            // InternalOCLinEcore.g:27459:1: ( ( ',' ) )
-            // InternalOCLinEcore.g:27460:1: ( ',' )
+            // InternalOCLinEcore.g:27517:1: ( ( ',' ) )
+            // InternalOCLinEcore.g:27518:1: ( ',' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getPrefixCommaKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:27461:1: ( ',' )
-            // InternalOCLinEcore.g:27462:1: ','
+            // InternalOCLinEcore.g:27519:1: ( ',' )
+            // InternalOCLinEcore.g:27520:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getPrefixCommaKeyword_0_0()); 
@@ -80163,17 +80337,17 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1"
-    // InternalOCLinEcore.g:27477:1: rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 : ( ruleNavigatingArgExpCS ) ;
+    // InternalOCLinEcore.g:27535:1: rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1 : ( ruleNavigatingArgExpCS ) ;
     public final void rule__NavigatingCommaArgCS__OwnedNameExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27481:1: ( ( ruleNavigatingArgExpCS ) )
-            // InternalOCLinEcore.g:27482:1: ( ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:27539:1: ( ( ruleNavigatingArgExpCS ) )
+            // InternalOCLinEcore.g:27540:1: ( ruleNavigatingArgExpCS )
             {
-            // InternalOCLinEcore.g:27482:1: ( ruleNavigatingArgExpCS )
-            // InternalOCLinEcore.g:27483:1: ruleNavigatingArgExpCS
+            // InternalOCLinEcore.g:27540:1: ( ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:27541:1: ruleNavigatingArgExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getOwnedNameExpressionNavigatingArgExpCSParserRuleCall_1_0()); 
@@ -80208,17 +80382,17 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1"
-    // InternalOCLinEcore.g:27492:1: rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:27550:1: rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1 : ( ruleTypeExpCS ) ;
     public final void rule__NavigatingCommaArgCS__OwnedTypeAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27496:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:27497:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27554:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:27555:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:27497:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:27498:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:27555:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27556:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getOwnedTypeTypeExpCSParserRuleCall_2_0_1_0()); 
@@ -80253,17 +80427,17 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1"
-    // InternalOCLinEcore.g:27507:1: rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27565:1: rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1 : ( ruleExpCS ) ;
     public final void rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_0_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27511:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27512:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27569:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27570:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27512:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27513:1: ruleExpCS
+            // InternalOCLinEcore.g:27570:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27571:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getOwnedInitExpressionExpCSParserRuleCall_2_0_2_1_0()); 
@@ -80298,17 +80472,17 @@
 
 
     // $ANTLR start "rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1"
-    // InternalOCLinEcore.g:27522:1: rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27580:1: rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1 : ( ruleExpCS ) ;
     public final void rule__NavigatingCommaArgCS__OwnedInitExpressionAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27526:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27527:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27584:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27585:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27527:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27528:1: ruleExpCS
+            // InternalOCLinEcore.g:27585:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27586:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingCommaArgCSAccess().getOwnedInitExpressionExpCSParserRuleCall_2_1_1_0()); 
@@ -80343,23 +80517,23 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__PrefixAssignment_0"
-    // InternalOCLinEcore.g:27537:1: rule__NavigatingSemiArgCS__PrefixAssignment_0 : ( ( ';' ) ) ;
+    // InternalOCLinEcore.g:27595:1: rule__NavigatingSemiArgCS__PrefixAssignment_0 : ( ( ';' ) ) ;
     public final void rule__NavigatingSemiArgCS__PrefixAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27541:1: ( ( ( ';' ) ) )
-            // InternalOCLinEcore.g:27542:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:27599:1: ( ( ( ';' ) ) )
+            // InternalOCLinEcore.g:27600:1: ( ( ';' ) )
             {
-            // InternalOCLinEcore.g:27542:1: ( ( ';' ) )
-            // InternalOCLinEcore.g:27543:1: ( ';' )
+            // InternalOCLinEcore.g:27600:1: ( ( ';' ) )
+            // InternalOCLinEcore.g:27601:1: ( ';' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getPrefixSemicolonKeyword_0_0()); 
             }
-            // InternalOCLinEcore.g:27544:1: ( ';' )
-            // InternalOCLinEcore.g:27545:1: ';'
+            // InternalOCLinEcore.g:27602:1: ( ';' )
+            // InternalOCLinEcore.g:27603:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getPrefixSemicolonKeyword_0_0()); 
@@ -80396,17 +80570,17 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1"
-    // InternalOCLinEcore.g:27560:1: rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 : ( ruleNavigatingArgExpCS ) ;
+    // InternalOCLinEcore.g:27618:1: rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1 : ( ruleNavigatingArgExpCS ) ;
     public final void rule__NavigatingSemiArgCS__OwnedNameExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27564:1: ( ( ruleNavigatingArgExpCS ) )
-            // InternalOCLinEcore.g:27565:1: ( ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:27622:1: ( ( ruleNavigatingArgExpCS ) )
+            // InternalOCLinEcore.g:27623:1: ( ruleNavigatingArgExpCS )
             {
-            // InternalOCLinEcore.g:27565:1: ( ruleNavigatingArgExpCS )
-            // InternalOCLinEcore.g:27566:1: ruleNavigatingArgExpCS
+            // InternalOCLinEcore.g:27623:1: ( ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:27624:1: ruleNavigatingArgExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getOwnedNameExpressionNavigatingArgExpCSParserRuleCall_1_0()); 
@@ -80441,17 +80615,17 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1"
-    // InternalOCLinEcore.g:27575:1: rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:27633:1: rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1 : ( ruleTypeExpCS ) ;
     public final void rule__NavigatingSemiArgCS__OwnedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27579:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:27580:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27637:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:27638:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:27580:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:27581:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:27638:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27639:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getOwnedTypeTypeExpCSParserRuleCall_2_1_0()); 
@@ -80486,17 +80660,17 @@
 
 
     // $ANTLR start "rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1"
-    // InternalOCLinEcore.g:27590:1: rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27648:1: rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1 : ( ruleExpCS ) ;
     public final void rule__NavigatingSemiArgCS__OwnedInitExpressionAssignment_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27594:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27595:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27652:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27653:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27595:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27596:1: ruleExpCS
+            // InternalOCLinEcore.g:27653:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27654:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNavigatingSemiArgCSAccess().getOwnedInitExpressionExpCSParserRuleCall_2_2_1_0()); 
@@ -80531,23 +80705,23 @@
 
 
     // $ANTLR start "rule__IfExpCS__OwnedConditionAssignment_1"
-    // InternalOCLinEcore.g:27605:1: rule__IfExpCS__OwnedConditionAssignment_1 : ( ( rule__IfExpCS__OwnedConditionAlternatives_1_0 ) ) ;
+    // InternalOCLinEcore.g:27663:1: rule__IfExpCS__OwnedConditionAssignment_1 : ( ( rule__IfExpCS__OwnedConditionAlternatives_1_0 ) ) ;
     public final void rule__IfExpCS__OwnedConditionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27609:1: ( ( ( rule__IfExpCS__OwnedConditionAlternatives_1_0 ) ) )
-            // InternalOCLinEcore.g:27610:1: ( ( rule__IfExpCS__OwnedConditionAlternatives_1_0 ) )
+            // InternalOCLinEcore.g:27667:1: ( ( ( rule__IfExpCS__OwnedConditionAlternatives_1_0 ) ) )
+            // InternalOCLinEcore.g:27668:1: ( ( rule__IfExpCS__OwnedConditionAlternatives_1_0 ) )
             {
-            // InternalOCLinEcore.g:27610:1: ( ( rule__IfExpCS__OwnedConditionAlternatives_1_0 ) )
-            // InternalOCLinEcore.g:27611:1: ( rule__IfExpCS__OwnedConditionAlternatives_1_0 )
+            // InternalOCLinEcore.g:27668:1: ( ( rule__IfExpCS__OwnedConditionAlternatives_1_0 ) )
+            // InternalOCLinEcore.g:27669:1: ( rule__IfExpCS__OwnedConditionAlternatives_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getOwnedConditionAlternatives_1_0()); 
             }
-            // InternalOCLinEcore.g:27612:1: ( rule__IfExpCS__OwnedConditionAlternatives_1_0 )
-            // InternalOCLinEcore.g:27612:2: rule__IfExpCS__OwnedConditionAlternatives_1_0
+            // InternalOCLinEcore.g:27670:1: ( rule__IfExpCS__OwnedConditionAlternatives_1_0 )
+            // InternalOCLinEcore.g:27670:2: rule__IfExpCS__OwnedConditionAlternatives_1_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__IfExpCS__OwnedConditionAlternatives_1_0();
@@ -80582,17 +80756,17 @@
 
 
     // $ANTLR start "rule__IfExpCS__OwnedThenExpressionAssignment_3"
-    // InternalOCLinEcore.g:27621:1: rule__IfExpCS__OwnedThenExpressionAssignment_3 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27679:1: rule__IfExpCS__OwnedThenExpressionAssignment_3 : ( ruleExpCS ) ;
     public final void rule__IfExpCS__OwnedThenExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27625:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27626:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27683:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27684:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27626:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27627:1: ruleExpCS
+            // InternalOCLinEcore.g:27684:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27685:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getOwnedThenExpressionExpCSParserRuleCall_3_0()); 
@@ -80627,17 +80801,17 @@
 
 
     // $ANTLR start "rule__IfExpCS__OwnedIfThenExpressionsAssignment_4"
-    // InternalOCLinEcore.g:27636:1: rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 : ( ruleElseIfThenExpCS ) ;
+    // InternalOCLinEcore.g:27694:1: rule__IfExpCS__OwnedIfThenExpressionsAssignment_4 : ( ruleElseIfThenExpCS ) ;
     public final void rule__IfExpCS__OwnedIfThenExpressionsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27640:1: ( ( ruleElseIfThenExpCS ) )
-            // InternalOCLinEcore.g:27641:1: ( ruleElseIfThenExpCS )
+            // InternalOCLinEcore.g:27698:1: ( ( ruleElseIfThenExpCS ) )
+            // InternalOCLinEcore.g:27699:1: ( ruleElseIfThenExpCS )
             {
-            // InternalOCLinEcore.g:27641:1: ( ruleElseIfThenExpCS )
-            // InternalOCLinEcore.g:27642:1: ruleElseIfThenExpCS
+            // InternalOCLinEcore.g:27699:1: ( ruleElseIfThenExpCS )
+            // InternalOCLinEcore.g:27700:1: ruleElseIfThenExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getOwnedIfThenExpressionsElseIfThenExpCSParserRuleCall_4_0()); 
@@ -80672,17 +80846,17 @@
 
 
     // $ANTLR start "rule__IfExpCS__OwnedElseExpressionAssignment_6"
-    // InternalOCLinEcore.g:27651:1: rule__IfExpCS__OwnedElseExpressionAssignment_6 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27709:1: rule__IfExpCS__OwnedElseExpressionAssignment_6 : ( ruleExpCS ) ;
     public final void rule__IfExpCS__OwnedElseExpressionAssignment_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27655:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27656:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27713:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27714:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27656:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27657:1: ruleExpCS
+            // InternalOCLinEcore.g:27714:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27715:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIfExpCSAccess().getOwnedElseExpressionExpCSParserRuleCall_6_0()); 
@@ -80717,17 +80891,17 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__OwnedConditionAssignment_1"
-    // InternalOCLinEcore.g:27666:1: rule__ElseIfThenExpCS__OwnedConditionAssignment_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27724:1: rule__ElseIfThenExpCS__OwnedConditionAssignment_1 : ( ruleExpCS ) ;
     public final void rule__ElseIfThenExpCS__OwnedConditionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27670:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27671:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27728:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27729:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27671:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27672:1: ruleExpCS
+            // InternalOCLinEcore.g:27729:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27730:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getElseIfThenExpCSAccess().getOwnedConditionExpCSParserRuleCall_1_0()); 
@@ -80762,17 +80936,17 @@
 
 
     // $ANTLR start "rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3"
-    // InternalOCLinEcore.g:27681:1: rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27739:1: rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3 : ( ruleExpCS ) ;
     public final void rule__ElseIfThenExpCS__OwnedThenExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27685:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27686:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27743:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27744:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27686:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27687:1: ruleExpCS
+            // InternalOCLinEcore.g:27744:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27745:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getElseIfThenExpCSAccess().getOwnedThenExpressionExpCSParserRuleCall_3_0()); 
@@ -80807,17 +80981,17 @@
 
 
     // $ANTLR start "rule__LetExpCS__OwnedVariablesAssignment_1"
-    // InternalOCLinEcore.g:27696:1: rule__LetExpCS__OwnedVariablesAssignment_1 : ( ruleLetVariableCS ) ;
+    // InternalOCLinEcore.g:27754:1: rule__LetExpCS__OwnedVariablesAssignment_1 : ( ruleLetVariableCS ) ;
     public final void rule__LetExpCS__OwnedVariablesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27700:1: ( ( ruleLetVariableCS ) )
-            // InternalOCLinEcore.g:27701:1: ( ruleLetVariableCS )
+            // InternalOCLinEcore.g:27758:1: ( ( ruleLetVariableCS ) )
+            // InternalOCLinEcore.g:27759:1: ( ruleLetVariableCS )
             {
-            // InternalOCLinEcore.g:27701:1: ( ruleLetVariableCS )
-            // InternalOCLinEcore.g:27702:1: ruleLetVariableCS
+            // InternalOCLinEcore.g:27759:1: ( ruleLetVariableCS )
+            // InternalOCLinEcore.g:27760:1: ruleLetVariableCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getOwnedVariablesLetVariableCSParserRuleCall_1_0()); 
@@ -80852,17 +81026,17 @@
 
 
     // $ANTLR start "rule__LetExpCS__OwnedVariablesAssignment_2_1"
-    // InternalOCLinEcore.g:27711:1: rule__LetExpCS__OwnedVariablesAssignment_2_1 : ( ruleLetVariableCS ) ;
+    // InternalOCLinEcore.g:27769:1: rule__LetExpCS__OwnedVariablesAssignment_2_1 : ( ruleLetVariableCS ) ;
     public final void rule__LetExpCS__OwnedVariablesAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27715:1: ( ( ruleLetVariableCS ) )
-            // InternalOCLinEcore.g:27716:1: ( ruleLetVariableCS )
+            // InternalOCLinEcore.g:27773:1: ( ( ruleLetVariableCS ) )
+            // InternalOCLinEcore.g:27774:1: ( ruleLetVariableCS )
             {
-            // InternalOCLinEcore.g:27716:1: ( ruleLetVariableCS )
-            // InternalOCLinEcore.g:27717:1: ruleLetVariableCS
+            // InternalOCLinEcore.g:27774:1: ( ruleLetVariableCS )
+            // InternalOCLinEcore.g:27775:1: ruleLetVariableCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getOwnedVariablesLetVariableCSParserRuleCall_2_1_0()); 
@@ -80897,17 +81071,17 @@
 
 
     // $ANTLR start "rule__LetExpCS__OwnedInExpressionAssignment_4"
-    // InternalOCLinEcore.g:27726:1: rule__LetExpCS__OwnedInExpressionAssignment_4 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27784:1: rule__LetExpCS__OwnedInExpressionAssignment_4 : ( ruleExpCS ) ;
     public final void rule__LetExpCS__OwnedInExpressionAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27730:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27731:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27788:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27789:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27731:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27732:1: ruleExpCS
+            // InternalOCLinEcore.g:27789:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27790:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetExpCSAccess().getOwnedInExpressionExpCSParserRuleCall_4_0()); 
@@ -80942,17 +81116,17 @@
 
 
     // $ANTLR start "rule__LetVariableCS__NameAssignment_0"
-    // InternalOCLinEcore.g:27741:1: rule__LetVariableCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:27799:1: rule__LetVariableCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
     public final void rule__LetVariableCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27745:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:27746:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:27803:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:27804:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:27746:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:27747:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:27804:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:27805:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getNameUnrestrictedNameParserRuleCall_0_0()); 
@@ -80987,17 +81161,17 @@
 
 
     // $ANTLR start "rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1"
-    // InternalOCLinEcore.g:27756:1: rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 : ( ruleRoundBracketedClauseCS ) ;
+    // InternalOCLinEcore.g:27814:1: rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1 : ( ruleRoundBracketedClauseCS ) ;
     public final void rule__LetVariableCS__OwnedRoundBracketedClauseAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27760:1: ( ( ruleRoundBracketedClauseCS ) )
-            // InternalOCLinEcore.g:27761:1: ( ruleRoundBracketedClauseCS )
+            // InternalOCLinEcore.g:27818:1: ( ( ruleRoundBracketedClauseCS ) )
+            // InternalOCLinEcore.g:27819:1: ( ruleRoundBracketedClauseCS )
             {
-            // InternalOCLinEcore.g:27761:1: ( ruleRoundBracketedClauseCS )
-            // InternalOCLinEcore.g:27762:1: ruleRoundBracketedClauseCS
+            // InternalOCLinEcore.g:27819:1: ( ruleRoundBracketedClauseCS )
+            // InternalOCLinEcore.g:27820:1: ruleRoundBracketedClauseCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getOwnedRoundBracketedClauseRoundBracketedClauseCSParserRuleCall_1_0()); 
@@ -81032,17 +81206,17 @@
 
 
     // $ANTLR start "rule__LetVariableCS__OwnedTypeAssignment_2_1"
-    // InternalOCLinEcore.g:27771:1: rule__LetVariableCS__OwnedTypeAssignment_2_1 : ( ruleTypeExpCS ) ;
+    // InternalOCLinEcore.g:27829:1: rule__LetVariableCS__OwnedTypeAssignment_2_1 : ( ruleTypeExpCS ) ;
     public final void rule__LetVariableCS__OwnedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27775:1: ( ( ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:27776:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27833:1: ( ( ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:27834:1: ( ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:27776:1: ( ruleTypeExpCS )
-            // InternalOCLinEcore.g:27777:1: ruleTypeExpCS
+            // InternalOCLinEcore.g:27834:1: ( ruleTypeExpCS )
+            // InternalOCLinEcore.g:27835:1: ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getOwnedTypeTypeExpCSParserRuleCall_2_1_0()); 
@@ -81077,17 +81251,17 @@
 
 
     // $ANTLR start "rule__LetVariableCS__OwnedInitExpressionAssignment_4"
-    // InternalOCLinEcore.g:27786:1: rule__LetVariableCS__OwnedInitExpressionAssignment_4 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27844:1: rule__LetVariableCS__OwnedInitExpressionAssignment_4 : ( ruleExpCS ) ;
     public final void rule__LetVariableCS__OwnedInitExpressionAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27790:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27791:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27848:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27849:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27791:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27792:1: ruleExpCS
+            // InternalOCLinEcore.g:27849:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27850:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLetVariableCSAccess().getOwnedInitExpressionExpCSParserRuleCall_4_0()); 
@@ -81122,17 +81296,17 @@
 
 
     // $ANTLR start "rule__NestedExpCS__OwnedExpressionAssignment_1"
-    // InternalOCLinEcore.g:27801:1: rule__NestedExpCS__OwnedExpressionAssignment_1 : ( ruleExpCS ) ;
+    // InternalOCLinEcore.g:27859:1: rule__NestedExpCS__OwnedExpressionAssignment_1 : ( ruleExpCS ) ;
     public final void rule__NestedExpCS__OwnedExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27805:1: ( ( ruleExpCS ) )
-            // InternalOCLinEcore.g:27806:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27863:1: ( ( ruleExpCS ) )
+            // InternalOCLinEcore.g:27864:1: ( ruleExpCS )
             {
-            // InternalOCLinEcore.g:27806:1: ( ruleExpCS )
-            // InternalOCLinEcore.g:27807:1: ruleExpCS
+            // InternalOCLinEcore.g:27864:1: ( ruleExpCS )
+            // InternalOCLinEcore.g:27865:1: ruleExpCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNestedExpCSAccess().getOwnedExpressionExpCSParserRuleCall_1_0()); 
@@ -81167,17 +81341,17 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__LowerBoundAssignment_0"
-    // InternalOCLinEcore.g:27816:1: rule__MultiplicityBoundsCS__LowerBoundAssignment_0 : ( ruleLOWER ) ;
+    // InternalOCLinEcore.g:27874:1: rule__MultiplicityBoundsCS__LowerBoundAssignment_0 : ( ruleLOWER ) ;
     public final void rule__MultiplicityBoundsCS__LowerBoundAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27820:1: ( ( ruleLOWER ) )
-            // InternalOCLinEcore.g:27821:1: ( ruleLOWER )
+            // InternalOCLinEcore.g:27878:1: ( ( ruleLOWER ) )
+            // InternalOCLinEcore.g:27879:1: ( ruleLOWER )
             {
-            // InternalOCLinEcore.g:27821:1: ( ruleLOWER )
-            // InternalOCLinEcore.g:27822:1: ruleLOWER
+            // InternalOCLinEcore.g:27879:1: ( ruleLOWER )
+            // InternalOCLinEcore.g:27880:1: ruleLOWER
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityBoundsCSAccess().getLowerBoundLOWERParserRuleCall_0_0()); 
@@ -81212,17 +81386,17 @@
 
 
     // $ANTLR start "rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1"
-    // InternalOCLinEcore.g:27831:1: rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 : ( ruleUPPER ) ;
+    // InternalOCLinEcore.g:27889:1: rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1 : ( ruleUPPER ) ;
     public final void rule__MultiplicityBoundsCS__UpperBoundAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27835:1: ( ( ruleUPPER ) )
-            // InternalOCLinEcore.g:27836:1: ( ruleUPPER )
+            // InternalOCLinEcore.g:27893:1: ( ( ruleUPPER ) )
+            // InternalOCLinEcore.g:27894:1: ( ruleUPPER )
             {
-            // InternalOCLinEcore.g:27836:1: ( ruleUPPER )
-            // InternalOCLinEcore.g:27837:1: ruleUPPER
+            // InternalOCLinEcore.g:27894:1: ( ruleUPPER )
+            // InternalOCLinEcore.g:27895:1: ruleUPPER
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityBoundsCSAccess().getUpperBoundUPPERParserRuleCall_1_1_0()); 
@@ -81257,23 +81431,23 @@
 
 
     // $ANTLR start "rule__MultiplicityCS__IsNullFreeAssignment_2_1"
-    // InternalOCLinEcore.g:27846:1: rule__MultiplicityCS__IsNullFreeAssignment_2_1 : ( ( '|1' ) ) ;
+    // InternalOCLinEcore.g:27904:1: rule__MultiplicityCS__IsNullFreeAssignment_2_1 : ( ( '|1' ) ) ;
     public final void rule__MultiplicityCS__IsNullFreeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27850:1: ( ( ( '|1' ) ) )
-            // InternalOCLinEcore.g:27851:1: ( ( '|1' ) )
+            // InternalOCLinEcore.g:27908:1: ( ( ( '|1' ) ) )
+            // InternalOCLinEcore.g:27909:1: ( ( '|1' ) )
             {
-            // InternalOCLinEcore.g:27851:1: ( ( '|1' ) )
-            // InternalOCLinEcore.g:27852:1: ( '|1' )
+            // InternalOCLinEcore.g:27909:1: ( ( '|1' ) )
+            // InternalOCLinEcore.g:27910:1: ( '|1' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityCSAccess().getIsNullFree1Keyword_2_1_0()); 
             }
-            // InternalOCLinEcore.g:27853:1: ( '|1' )
-            // InternalOCLinEcore.g:27854:1: '|1'
+            // InternalOCLinEcore.g:27911:1: ( '|1' )
+            // InternalOCLinEcore.g:27912:1: '|1'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityCSAccess().getIsNullFree1Keyword_2_1_0()); 
@@ -81310,23 +81484,23 @@
 
 
     // $ANTLR start "rule__MultiplicityStringCS__StringBoundsAssignment"
-    // InternalOCLinEcore.g:27869:1: rule__MultiplicityStringCS__StringBoundsAssignment : ( ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 ) ) ;
+    // InternalOCLinEcore.g:27927:1: rule__MultiplicityStringCS__StringBoundsAssignment : ( ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 ) ) ;
     public final void rule__MultiplicityStringCS__StringBoundsAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27873:1: ( ( ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 ) ) )
-            // InternalOCLinEcore.g:27874:1: ( ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 ) )
+            // InternalOCLinEcore.g:27931:1: ( ( ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 ) ) )
+            // InternalOCLinEcore.g:27932:1: ( ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 ) )
             {
-            // InternalOCLinEcore.g:27874:1: ( ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 ) )
-            // InternalOCLinEcore.g:27875:1: ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 )
+            // InternalOCLinEcore.g:27932:1: ( ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 ) )
+            // InternalOCLinEcore.g:27933:1: ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplicityStringCSAccess().getStringBoundsAlternatives_0()); 
             }
-            // InternalOCLinEcore.g:27876:1: ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 )
-            // InternalOCLinEcore.g:27876:2: rule__MultiplicityStringCS__StringBoundsAlternatives_0
+            // InternalOCLinEcore.g:27934:1: ( rule__MultiplicityStringCS__StringBoundsAlternatives_0 )
+            // InternalOCLinEcore.g:27934:2: rule__MultiplicityStringCS__StringBoundsAlternatives_0
             {
             pushFollow(FollowSets000.FOLLOW_2);
             rule__MultiplicityStringCS__StringBoundsAlternatives_0();
@@ -81361,17 +81535,17 @@
 
 
     // $ANTLR start "rule__PathNameCS__OwnedPathElementsAssignment_0"
-    // InternalOCLinEcore.g:27885:1: rule__PathNameCS__OwnedPathElementsAssignment_0 : ( ruleFirstPathElementCS ) ;
+    // InternalOCLinEcore.g:27943:1: rule__PathNameCS__OwnedPathElementsAssignment_0 : ( ruleFirstPathElementCS ) ;
     public final void rule__PathNameCS__OwnedPathElementsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27889:1: ( ( ruleFirstPathElementCS ) )
-            // InternalOCLinEcore.g:27890:1: ( ruleFirstPathElementCS )
+            // InternalOCLinEcore.g:27947:1: ( ( ruleFirstPathElementCS ) )
+            // InternalOCLinEcore.g:27948:1: ( ruleFirstPathElementCS )
             {
-            // InternalOCLinEcore.g:27890:1: ( ruleFirstPathElementCS )
-            // InternalOCLinEcore.g:27891:1: ruleFirstPathElementCS
+            // InternalOCLinEcore.g:27948:1: ( ruleFirstPathElementCS )
+            // InternalOCLinEcore.g:27949:1: ruleFirstPathElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPathNameCSAccess().getOwnedPathElementsFirstPathElementCSParserRuleCall_0_0()); 
@@ -81406,17 +81580,17 @@
 
 
     // $ANTLR start "rule__PathNameCS__OwnedPathElementsAssignment_1_1"
-    // InternalOCLinEcore.g:27900:1: rule__PathNameCS__OwnedPathElementsAssignment_1_1 : ( ruleNextPathElementCS ) ;
+    // InternalOCLinEcore.g:27958:1: rule__PathNameCS__OwnedPathElementsAssignment_1_1 : ( ruleNextPathElementCS ) ;
     public final void rule__PathNameCS__OwnedPathElementsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27904:1: ( ( ruleNextPathElementCS ) )
-            // InternalOCLinEcore.g:27905:1: ( ruleNextPathElementCS )
+            // InternalOCLinEcore.g:27962:1: ( ( ruleNextPathElementCS ) )
+            // InternalOCLinEcore.g:27963:1: ( ruleNextPathElementCS )
             {
-            // InternalOCLinEcore.g:27905:1: ( ruleNextPathElementCS )
-            // InternalOCLinEcore.g:27906:1: ruleNextPathElementCS
+            // InternalOCLinEcore.g:27963:1: ( ruleNextPathElementCS )
+            // InternalOCLinEcore.g:27964:1: ruleNextPathElementCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPathNameCSAccess().getOwnedPathElementsNextPathElementCSParserRuleCall_1_1_0()); 
@@ -81451,23 +81625,23 @@
 
 
     // $ANTLR start "rule__FirstPathElementCS__ReferredElementAssignment"
-    // InternalOCLinEcore.g:27915:1: rule__FirstPathElementCS__ReferredElementAssignment : ( ( ruleUnrestrictedName ) ) ;
+    // InternalOCLinEcore.g:27973:1: rule__FirstPathElementCS__ReferredElementAssignment : ( ( ruleUnrestrictedName ) ) ;
     public final void rule__FirstPathElementCS__ReferredElementAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27919:1: ( ( ( ruleUnrestrictedName ) ) )
-            // InternalOCLinEcore.g:27920:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:27977:1: ( ( ( ruleUnrestrictedName ) ) )
+            // InternalOCLinEcore.g:27978:1: ( ( ruleUnrestrictedName ) )
             {
-            // InternalOCLinEcore.g:27920:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:27921:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:27978:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:27979:1: ( ruleUnrestrictedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFirstPathElementCSAccess().getReferredElementNamedElementCrossReference_0()); 
             }
-            // InternalOCLinEcore.g:27922:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:27923:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:27980:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:27981:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFirstPathElementCSAccess().getReferredElementNamedElementUnrestrictedNameParserRuleCall_0_1()); 
@@ -81508,23 +81682,23 @@
 
 
     // $ANTLR start "rule__NextPathElementCS__ReferredElementAssignment"
-    // InternalOCLinEcore.g:27934:1: rule__NextPathElementCS__ReferredElementAssignment : ( ( ruleUnreservedName ) ) ;
+    // InternalOCLinEcore.g:27992:1: rule__NextPathElementCS__ReferredElementAssignment : ( ( ruleUnreservedName ) ) ;
     public final void rule__NextPathElementCS__ReferredElementAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27938:1: ( ( ( ruleUnreservedName ) ) )
-            // InternalOCLinEcore.g:27939:1: ( ( ruleUnreservedName ) )
+            // InternalOCLinEcore.g:27996:1: ( ( ( ruleUnreservedName ) ) )
+            // InternalOCLinEcore.g:27997:1: ( ( ruleUnreservedName ) )
             {
-            // InternalOCLinEcore.g:27939:1: ( ( ruleUnreservedName ) )
-            // InternalOCLinEcore.g:27940:1: ( ruleUnreservedName )
+            // InternalOCLinEcore.g:27997:1: ( ( ruleUnreservedName ) )
+            // InternalOCLinEcore.g:27998:1: ( ruleUnreservedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNextPathElementCSAccess().getReferredElementNamedElementCrossReference_0()); 
             }
-            // InternalOCLinEcore.g:27941:1: ( ruleUnreservedName )
-            // InternalOCLinEcore.g:27942:1: ruleUnreservedName
+            // InternalOCLinEcore.g:27999:1: ( ruleUnreservedName )
+            // InternalOCLinEcore.g:28000:1: ruleUnreservedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNextPathElementCSAccess().getReferredElementNamedElementUnreservedNameParserRuleCall_0_1()); 
@@ -81565,17 +81739,17 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0"
-    // InternalOCLinEcore.g:27953:1: rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 : ( ruleTemplateParameterSubstitutionCS ) ;
+    // InternalOCLinEcore.g:28011:1: rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0 : ( ruleTemplateParameterSubstitutionCS ) ;
     public final void rule__TemplateBindingCS__OwnedSubstitutionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27957:1: ( ( ruleTemplateParameterSubstitutionCS ) )
-            // InternalOCLinEcore.g:27958:1: ( ruleTemplateParameterSubstitutionCS )
+            // InternalOCLinEcore.g:28015:1: ( ( ruleTemplateParameterSubstitutionCS ) )
+            // InternalOCLinEcore.g:28016:1: ( ruleTemplateParameterSubstitutionCS )
             {
-            // InternalOCLinEcore.g:27958:1: ( ruleTemplateParameterSubstitutionCS )
-            // InternalOCLinEcore.g:27959:1: ruleTemplateParameterSubstitutionCS
+            // InternalOCLinEcore.g:28016:1: ( ruleTemplateParameterSubstitutionCS )
+            // InternalOCLinEcore.g:28017:1: ruleTemplateParameterSubstitutionCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateBindingCSAccess().getOwnedSubstitutionsTemplateParameterSubstitutionCSParserRuleCall_0_0()); 
@@ -81610,17 +81784,17 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1"
-    // InternalOCLinEcore.g:27968:1: rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 : ( ruleTemplateParameterSubstitutionCS ) ;
+    // InternalOCLinEcore.g:28026:1: rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1 : ( ruleTemplateParameterSubstitutionCS ) ;
     public final void rule__TemplateBindingCS__OwnedSubstitutionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27972:1: ( ( ruleTemplateParameterSubstitutionCS ) )
-            // InternalOCLinEcore.g:27973:1: ( ruleTemplateParameterSubstitutionCS )
+            // InternalOCLinEcore.g:28030:1: ( ( ruleTemplateParameterSubstitutionCS ) )
+            // InternalOCLinEcore.g:28031:1: ( ruleTemplateParameterSubstitutionCS )
             {
-            // InternalOCLinEcore.g:27973:1: ( ruleTemplateParameterSubstitutionCS )
-            // InternalOCLinEcore.g:27974:1: ruleTemplateParameterSubstitutionCS
+            // InternalOCLinEcore.g:28031:1: ( ruleTemplateParameterSubstitutionCS )
+            // InternalOCLinEcore.g:28032:1: ruleTemplateParameterSubstitutionCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateBindingCSAccess().getOwnedSubstitutionsTemplateParameterSubstitutionCSParserRuleCall_1_1_0()); 
@@ -81655,17 +81829,17 @@
 
 
     // $ANTLR start "rule__TemplateBindingCS__OwnedMultiplicityAssignment_2"
-    // InternalOCLinEcore.g:27983:1: rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 : ( ruleMultiplicityCS ) ;
+    // InternalOCLinEcore.g:28041:1: rule__TemplateBindingCS__OwnedMultiplicityAssignment_2 : ( ruleMultiplicityCS ) ;
     public final void rule__TemplateBindingCS__OwnedMultiplicityAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:27987:1: ( ( ruleMultiplicityCS ) )
-            // InternalOCLinEcore.g:27988:1: ( ruleMultiplicityCS )
+            // InternalOCLinEcore.g:28045:1: ( ( ruleMultiplicityCS ) )
+            // InternalOCLinEcore.g:28046:1: ( ruleMultiplicityCS )
             {
-            // InternalOCLinEcore.g:27988:1: ( ruleMultiplicityCS )
-            // InternalOCLinEcore.g:27989:1: ruleMultiplicityCS
+            // InternalOCLinEcore.g:28046:1: ( ruleMultiplicityCS )
+            // InternalOCLinEcore.g:28047:1: ruleMultiplicityCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateBindingCSAccess().getOwnedMultiplicityMultiplicityCSParserRuleCall_2_0()); 
@@ -81700,17 +81874,17 @@
 
 
     // $ANTLR start "rule__TemplateParameterSubstitutionCS__OwnedActualParameterAssignment"
-    // InternalOCLinEcore.g:27998:1: rule__TemplateParameterSubstitutionCS__OwnedActualParameterAssignment : ( ruleTypeRefCS ) ;
+    // InternalOCLinEcore.g:28056:1: rule__TemplateParameterSubstitutionCS__OwnedActualParameterAssignment : ( ruleTypeRefCS ) ;
     public final void rule__TemplateParameterSubstitutionCS__OwnedActualParameterAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:28002:1: ( ( ruleTypeRefCS ) )
-            // InternalOCLinEcore.g:28003:1: ( ruleTypeRefCS )
+            // InternalOCLinEcore.g:28060:1: ( ( ruleTypeRefCS ) )
+            // InternalOCLinEcore.g:28061:1: ( ruleTypeRefCS )
             {
-            // InternalOCLinEcore.g:28003:1: ( ruleTypeRefCS )
-            // InternalOCLinEcore.g:28004:1: ruleTypeRefCS
+            // InternalOCLinEcore.g:28061:1: ( ruleTypeRefCS )
+            // InternalOCLinEcore.g:28062:1: ruleTypeRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTemplateParameterSubstitutionCSAccess().getOwnedActualParameterTypeRefCSParserRuleCall_0()); 
@@ -81745,17 +81919,17 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__NameAssignment_0"
-    // InternalOCLinEcore.g:28013:1: rule__TypeParameterCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
+    // InternalOCLinEcore.g:28071:1: rule__TypeParameterCS__NameAssignment_0 : ( ruleUnrestrictedName ) ;
     public final void rule__TypeParameterCS__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:28017:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:28018:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:28075:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:28076:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:28018:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:28019:1: ruleUnrestrictedName
+            // InternalOCLinEcore.g:28076:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:28077:1: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getNameUnrestrictedNameParserRuleCall_0_0()); 
@@ -81790,17 +81964,17 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__OwnedExtendsAssignment_1_1"
-    // InternalOCLinEcore.g:28028:1: rule__TypeParameterCS__OwnedExtendsAssignment_1_1 : ( ruleTypedRefCS ) ;
+    // InternalOCLinEcore.g:28086:1: rule__TypeParameterCS__OwnedExtendsAssignment_1_1 : ( ruleTypedRefCS ) ;
     public final void rule__TypeParameterCS__OwnedExtendsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:28032:1: ( ( ruleTypedRefCS ) )
-            // InternalOCLinEcore.g:28033:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:28090:1: ( ( ruleTypedRefCS ) )
+            // InternalOCLinEcore.g:28091:1: ( ruleTypedRefCS )
             {
-            // InternalOCLinEcore.g:28033:1: ( ruleTypedRefCS )
-            // InternalOCLinEcore.g:28034:1: ruleTypedRefCS
+            // InternalOCLinEcore.g:28091:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:28092:1: ruleTypedRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getOwnedExtendsTypedRefCSParserRuleCall_1_1_0()); 
@@ -81835,17 +82009,17 @@
 
 
     // $ANTLR start "rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1"
-    // InternalOCLinEcore.g:28043:1: rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 : ( ruleTypedRefCS ) ;
+    // InternalOCLinEcore.g:28101:1: rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1 : ( ruleTypedRefCS ) ;
     public final void rule__TypeParameterCS__OwnedExtendsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:28047:1: ( ( ruleTypedRefCS ) )
-            // InternalOCLinEcore.g:28048:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:28105:1: ( ( ruleTypedRefCS ) )
+            // InternalOCLinEcore.g:28106:1: ( ruleTypedRefCS )
             {
-            // InternalOCLinEcore.g:28048:1: ( ruleTypedRefCS )
-            // InternalOCLinEcore.g:28049:1: ruleTypedRefCS
+            // InternalOCLinEcore.g:28106:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:28107:1: ruleTypedRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeParameterCSAccess().getOwnedExtendsTypedRefCSParserRuleCall_1_2_1_0()); 
@@ -81880,17 +82054,17 @@
 
 
     // $ANTLR start "rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1"
-    // InternalOCLinEcore.g:28058:1: rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 : ( ruleTypedRefCS ) ;
+    // InternalOCLinEcore.g:28116:1: rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1 : ( ruleTypedRefCS ) ;
     public final void rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // InternalOCLinEcore.g:28062:1: ( ( ruleTypedRefCS ) )
-            // InternalOCLinEcore.g:28063:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:28120:1: ( ( ruleTypedRefCS ) )
+            // InternalOCLinEcore.g:28121:1: ( ruleTypedRefCS )
             {
-            // InternalOCLinEcore.g:28063:1: ( ruleTypedRefCS )
-            // InternalOCLinEcore.g:28064:1: ruleTypedRefCS
+            // InternalOCLinEcore.g:28121:1: ( ruleTypedRefCS )
+            // InternalOCLinEcore.g:28122:1: ruleTypedRefCS
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getWildcardTypeRefCSAccess().getOwnedExtendsTypedRefCSParserRuleCall_2_1_0()); 
@@ -81923,13 +82097,13 @@
     }
     // $ANTLR end "rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_1"
 
-    // $ANTLR start synpred181_InternalOCLinEcore
-    public final void synpred181_InternalOCLinEcore_fragment() throws RecognitionException {   
-        // InternalOCLinEcore.g:5292:6: ( ( ruleTypeLiteralCS ) )
-        // InternalOCLinEcore.g:5292:6: ( ruleTypeLiteralCS )
+    // $ANTLR start synpred183_InternalOCLinEcore
+    public final void synpred183_InternalOCLinEcore_fragment() throws RecognitionException {   
+        // InternalOCLinEcore.g:5304:6: ( ( ruleTypeLiteralCS ) )
+        // InternalOCLinEcore.g:5304:6: ( ruleTypeLiteralCS )
         {
-        // InternalOCLinEcore.g:5292:6: ( ruleTypeLiteralCS )
-        // InternalOCLinEcore.g:5293:1: ruleTypeLiteralCS
+        // InternalOCLinEcore.g:5304:6: ( ruleTypeLiteralCS )
+        // InternalOCLinEcore.g:5305:1: ruleTypeLiteralCS
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getTypeExpCSAccess().getTypeLiteralCSParserRuleCall_0_1()); 
@@ -81945,21 +82119,21 @@
 
         }
     }
-    // $ANTLR end synpred181_InternalOCLinEcore
+    // $ANTLR end synpred183_InternalOCLinEcore
 
-    // $ANTLR start synpred182_InternalOCLinEcore
-    public final void synpred182_InternalOCLinEcore_fragment() throws RecognitionException {   
-        // InternalOCLinEcore.g:5314:1: ( ( ( rule__ExpCS__Group_0__0 ) ) )
-        // InternalOCLinEcore.g:5314:1: ( ( rule__ExpCS__Group_0__0 ) )
+    // $ANTLR start synpred184_InternalOCLinEcore
+    public final void synpred184_InternalOCLinEcore_fragment() throws RecognitionException {   
+        // InternalOCLinEcore.g:5326:1: ( ( ( rule__ExpCS__Group_0__0 ) ) )
+        // InternalOCLinEcore.g:5326:1: ( ( rule__ExpCS__Group_0__0 ) )
         {
-        // InternalOCLinEcore.g:5314:1: ( ( rule__ExpCS__Group_0__0 ) )
-        // InternalOCLinEcore.g:5315:1: ( rule__ExpCS__Group_0__0 )
+        // InternalOCLinEcore.g:5326:1: ( ( rule__ExpCS__Group_0__0 ) )
+        // InternalOCLinEcore.g:5327:1: ( rule__ExpCS__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getExpCSAccess().getGroup_0()); 
         }
-        // InternalOCLinEcore.g:5316:1: ( rule__ExpCS__Group_0__0 )
-        // InternalOCLinEcore.g:5316:2: rule__ExpCS__Group_0__0
+        // InternalOCLinEcore.g:5328:1: ( rule__ExpCS__Group_0__0 )
+        // InternalOCLinEcore.g:5328:2: rule__ExpCS__Group_0__0
         {
         pushFollow(FollowSets000.FOLLOW_2);
         rule__ExpCS__Group_0__0();
@@ -81975,15 +82149,15 @@
 
         }
     }
-    // $ANTLR end synpred182_InternalOCLinEcore
+    // $ANTLR end synpred184_InternalOCLinEcore
 
-    // $ANTLR start synpred189_InternalOCLinEcore
-    public final void synpred189_InternalOCLinEcore_fragment() throws RecognitionException {   
-        // InternalOCLinEcore.g:5404:6: ( ( ruleTupleLiteralExpCS ) )
-        // InternalOCLinEcore.g:5404:6: ( ruleTupleLiteralExpCS )
+    // $ANTLR start synpred191_InternalOCLinEcore
+    public final void synpred191_InternalOCLinEcore_fragment() throws RecognitionException {   
+        // InternalOCLinEcore.g:5416:6: ( ( ruleTupleLiteralExpCS ) )
+        // InternalOCLinEcore.g:5416:6: ( ruleTupleLiteralExpCS )
         {
-        // InternalOCLinEcore.g:5404:6: ( ruleTupleLiteralExpCS )
-        // InternalOCLinEcore.g:5405:1: ruleTupleLiteralExpCS
+        // InternalOCLinEcore.g:5416:6: ( ruleTupleLiteralExpCS )
+        // InternalOCLinEcore.g:5417:1: ruleTupleLiteralExpCS
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getPrimaryExpCSAccess().getTupleLiteralExpCSParserRuleCall_4()); 
@@ -81999,15 +82173,15 @@
 
         }
     }
-    // $ANTLR end synpred189_InternalOCLinEcore
+    // $ANTLR end synpred191_InternalOCLinEcore
 
-    // $ANTLR start synpred190_InternalOCLinEcore
-    public final void synpred190_InternalOCLinEcore_fragment() throws RecognitionException {   
-        // InternalOCLinEcore.g:5410:6: ( ( ruleMapLiteralExpCS ) )
-        // InternalOCLinEcore.g:5410:6: ( ruleMapLiteralExpCS )
+    // $ANTLR start synpred192_InternalOCLinEcore
+    public final void synpred192_InternalOCLinEcore_fragment() throws RecognitionException {   
+        // InternalOCLinEcore.g:5422:6: ( ( ruleMapLiteralExpCS ) )
+        // InternalOCLinEcore.g:5422:6: ( ruleMapLiteralExpCS )
         {
-        // InternalOCLinEcore.g:5410:6: ( ruleMapLiteralExpCS )
-        // InternalOCLinEcore.g:5411:1: ruleMapLiteralExpCS
+        // InternalOCLinEcore.g:5422:6: ( ruleMapLiteralExpCS )
+        // InternalOCLinEcore.g:5423:1: ruleMapLiteralExpCS
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getPrimaryExpCSAccess().getMapLiteralExpCSParserRuleCall_5()); 
@@ -82023,15 +82197,15 @@
 
         }
     }
-    // $ANTLR end synpred190_InternalOCLinEcore
+    // $ANTLR end synpred192_InternalOCLinEcore
 
-    // $ANTLR start synpred191_InternalOCLinEcore
-    public final void synpred191_InternalOCLinEcore_fragment() throws RecognitionException {   
-        // InternalOCLinEcore.g:5416:6: ( ( ruleCollectionLiteralExpCS ) )
-        // InternalOCLinEcore.g:5416:6: ( ruleCollectionLiteralExpCS )
+    // $ANTLR start synpred193_InternalOCLinEcore
+    public final void synpred193_InternalOCLinEcore_fragment() throws RecognitionException {   
+        // InternalOCLinEcore.g:5428:6: ( ( ruleCollectionLiteralExpCS ) )
+        // InternalOCLinEcore.g:5428:6: ( ruleCollectionLiteralExpCS )
         {
-        // InternalOCLinEcore.g:5416:6: ( ruleCollectionLiteralExpCS )
-        // InternalOCLinEcore.g:5417:1: ruleCollectionLiteralExpCS
+        // InternalOCLinEcore.g:5428:6: ( ruleCollectionLiteralExpCS )
+        // InternalOCLinEcore.g:5429:1: ruleCollectionLiteralExpCS
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getPrimaryExpCSAccess().getCollectionLiteralExpCSParserRuleCall_6()); 
@@ -82047,15 +82221,15 @@
 
         }
     }
-    // $ANTLR end synpred191_InternalOCLinEcore
+    // $ANTLR end synpred193_InternalOCLinEcore
 
-    // $ANTLR start synpred193_InternalOCLinEcore
-    public final void synpred193_InternalOCLinEcore_fragment() throws RecognitionException {   
-        // InternalOCLinEcore.g:5428:6: ( ( ruleTypeLiteralExpCS ) )
-        // InternalOCLinEcore.g:5428:6: ( ruleTypeLiteralExpCS )
+    // $ANTLR start synpred195_InternalOCLinEcore
+    public final void synpred195_InternalOCLinEcore_fragment() throws RecognitionException {   
+        // InternalOCLinEcore.g:5440:6: ( ( ruleTypeLiteralExpCS ) )
+        // InternalOCLinEcore.g:5440:6: ( ruleTypeLiteralExpCS )
         {
-        // InternalOCLinEcore.g:5428:6: ( ruleTypeLiteralExpCS )
-        // InternalOCLinEcore.g:5429:1: ruleTypeLiteralExpCS
+        // InternalOCLinEcore.g:5440:6: ( ruleTypeLiteralExpCS )
+        // InternalOCLinEcore.g:5441:1: ruleTypeLiteralExpCS
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getPrimaryExpCSAccess().getTypeLiteralExpCSParserRuleCall_8()); 
@@ -82071,15 +82245,15 @@
 
         }
     }
-    // $ANTLR end synpred193_InternalOCLinEcore
+    // $ANTLR end synpred195_InternalOCLinEcore
 
     // Delegated rules
 
-    public final boolean synpred181_InternalOCLinEcore() {
+    public final boolean synpred183_InternalOCLinEcore() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred181_InternalOCLinEcore_fragment(); // can never throw exception
+            synpred183_InternalOCLinEcore_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -82089,11 +82263,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred182_InternalOCLinEcore() {
+    public final boolean synpred184_InternalOCLinEcore() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred182_InternalOCLinEcore_fragment(); // can never throw exception
+            synpred184_InternalOCLinEcore_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -82117,25 +82291,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred189_InternalOCLinEcore() {
+    public final boolean synpred195_InternalOCLinEcore() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred189_InternalOCLinEcore_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred190_InternalOCLinEcore() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred190_InternalOCLinEcore_fragment(); // can never throw exception
+            synpred195_InternalOCLinEcore_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -82159,6 +82319,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred192_InternalOCLinEcore() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred192_InternalOCLinEcore_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
 
 
     protected DFA24 dfa24 = new DFA24(this);
@@ -82297,7 +82471,7 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "5135:1: rule__CollectionLiteralPartCS__Alternatives : ( ( ( rule__CollectionLiteralPartCS__Group_0__0 ) ) | ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) ) );";
+            return "5147:1: rule__CollectionLiteralPartCS__Alternatives : ( ( ( rule__CollectionLiteralPartCS__Group_0__0 ) ) | ( ( rule__CollectionLiteralPartCS__OwnedExpressionAssignment_1 ) ) );";
         }
     }
     static final String[] dfa_14s = {
@@ -82364,7 +82538,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "5157:1: rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 : ( ( ruleExpCS ) | ( rulePatternExpCS ) );";
+            return "5169:1: rule__ShadowPartCS__OwnedInitExpressionAlternatives_2_0 : ( ( ruleExpCS ) | ( rulePatternExpCS ) );";
         }
     }
     static final String dfa_15s = "\74\uffff";
@@ -82456,7 +82630,7 @@
             this.transition = dfa_20;
         }
         public String getDescription() {
-            return "5281:1: rule__TypeExpCS__Alternatives_0 : ( ( ruleTypeNameExpCS ) | ( ruleTypeLiteralCS ) | ( ruleCollectionPatternCS ) );";
+            return "5293:1: rule__TypeExpCS__Alternatives_0 : ( ( ruleTypeNameExpCS ) | ( ruleTypeLiteralCS ) | ( ruleCollectionPatternCS ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82469,7 +82643,7 @@
                         int index58_52 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred181_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred183_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -82484,7 +82658,7 @@
                         int index58_53 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred181_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred183_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -82499,7 +82673,7 @@
                         int index58_54 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred181_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred183_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -82514,7 +82688,7 @@
                         int index58_55 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred181_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred183_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -82529,7 +82703,7 @@
                         int index58_56 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred181_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred183_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -82647,7 +82821,7 @@
             this.transition = dfa_26;
         }
         public String getDescription() {
-            return "5309:1: rule__ExpCS__Alternatives : ( ( ( rule__ExpCS__Group_0__0 ) ) | ( rulePrefixedLetExpCS ) );";
+            return "5321:1: rule__ExpCS__Alternatives : ( ( ( rule__ExpCS__Group_0__0 ) ) | ( rulePrefixedLetExpCS ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82660,7 +82834,7 @@
                         int index59_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred182_InternalOCLinEcore()) ) {s = 3;}
+                        if ( (synpred184_InternalOCLinEcore()) ) {s = 3;}
 
                         else if ( (true) ) {s = 72;}
 
@@ -82675,7 +82849,7 @@
                         int index59_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred182_InternalOCLinEcore()) ) {s = 3;}
+                        if ( (synpred184_InternalOCLinEcore()) ) {s = 3;}
 
                         else if ( (true) ) {s = 72;}
 
@@ -82790,7 +82964,7 @@
             this.transition = dfa_31;
         }
         public String getDescription() {
-            return "5375:1: rule__PrimaryExpCS__Alternatives : ( ( ruleNestedExpCS ) | ( ruleIfExpCS ) | ( ruleSelfExpCS ) | ( rulePrimitiveLiteralExpCS ) | ( ruleTupleLiteralExpCS ) | ( ruleMapLiteralExpCS ) | ( ruleCollectionLiteralExpCS ) | ( ruleLambdaLiteralExpCS ) | ( ruleTypeLiteralExpCS ) | ( ruleNameExpCS ) );";
+            return "5387:1: rule__PrimaryExpCS__Alternatives : ( ( ruleNestedExpCS ) | ( ruleIfExpCS ) | ( ruleSelfExpCS ) | ( rulePrimitiveLiteralExpCS ) | ( ruleTupleLiteralExpCS ) | ( ruleMapLiteralExpCS ) | ( ruleCollectionLiteralExpCS ) | ( ruleLambdaLiteralExpCS ) | ( ruleTypeLiteralExpCS ) | ( ruleNameExpCS ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -82803,9 +82977,9 @@
                         int index62_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred189_InternalOCLinEcore()) ) {s = 70;}
+                        if ( (synpred191_InternalOCLinEcore()) ) {s = 70;}
 
-                        else if ( (synpred193_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred195_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index62_11);
@@ -82818,9 +82992,9 @@
                         int index62_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred190_InternalOCLinEcore()) ) {s = 71;}
+                        if ( (synpred192_InternalOCLinEcore()) ) {s = 71;}
 
-                        else if ( (synpred193_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred195_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index62_12);
@@ -82833,9 +83007,9 @@
                         int index62_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred191_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred193_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred193_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred195_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index62_13);
@@ -82848,9 +83022,9 @@
                         int index62_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred191_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred193_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred193_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred195_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index62_14);
@@ -82863,9 +83037,9 @@
                         int index62_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred191_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred193_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred193_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred195_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index62_15);
@@ -82878,9 +83052,9 @@
                         int index62_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred191_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred193_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred193_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred195_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index62_16);
@@ -82893,9 +83067,9 @@
                         int index62_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred191_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred193_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred193_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred195_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index62_17);
@@ -82973,7 +83147,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "5533:1: rule__IfExpCS__OwnedConditionAlternatives_1_0 : ( ( ruleExpCS ) | ( rulePatternExpCS ) );";
+            return "5545:1: rule__IfExpCS__OwnedConditionAlternatives_1_0 : ( ( ruleExpCS ) | ( rulePatternExpCS ) );";
         }
     }
     static final String dfa_33s = "\1\5\53\64\2\uffff";
@@ -83046,7 +83220,7 @@
             this.transition = dfa_36;
         }
         public String getDescription() {
-            return "10182:1: ( rule__ImportCS__Group_1__0 )?";
+            return "10194:1: ( rule__ImportCS__Group_1__0 )?";
         }
     }
  
@@ -83110,8 +83284,8 @@
         public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0FCFFFFFFFFE0180L,0x0000000100000004L});
         public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0FCFFFFFFFFE0180L,0x0000000200000000L});
         public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0010800000000000L,0x0000001400000000L});
-        public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0002002004000000L,0x9400000000000000L});
-        public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0002002004000002L,0x9400000000000000L});
+        public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0003002004000000L,0xD400000000000000L});
+        public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0003002004000002L,0xD400000000000000L});
         public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x08C0018000080000L,0x0000002000000000L});
         public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x08C0018000080002L});
         public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x08C0024008A20000L,0x0000002000000000L});
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/OCLinEcore.xtextbin b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/OCLinEcore.xtextbin
index a2caea3..a83ce97 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/OCLinEcore.xtextbin
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/OCLinEcore.xtextbin
Binary files differ
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/OCLinEcoreGrammarResource.java b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/OCLinEcoreGrammarResource.java
index 76d0768..18faa43 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/OCLinEcoreGrammarResource.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/OCLinEcoreGrammarResource.java
@@ -152,7 +152,7 @@
 			PR_InvariantConstraintCS.setAlternatives(createGroup(setCardinality("?", createAssignment("isCallable", "?=", createKeyword("callable"))), createAssignment("stereotype", "=", createKeyword("invariant")), setCardinality("?", createGroup(createAssignment("name", "=", createRuleCall(PR_UnrestrictedName)), setCardinality("?", createGroup(createKeyword("("), createAssignment("ownedMessageSpecification", "=", createRuleCall(PR_SpecificationCS)), createKeyword(")"))))), createAlternatives(createGroup(createKeyword(":"), setCardinality("?", createAssignment("ownedSpecification", "=", createRuleCall(PR_SpecificationCS))), createKeyword(";")), createKeyword(";"))));
 			PR_ModelElementCS.setAlternatives(createAlternatives(createRuleCall(PR_ClassCS), createRuleCall(PR_EnumerationLiteralCS), createRuleCall(PR_OperationCS), createRuleCall(PR_PackageCS), createRuleCall(PR_StructuralFeatureCS)));
 			PR_ModelElementRefCS.setAlternatives(createGroup(createKeyword("reference"), createAssignment("ownedPathName", "=", createRuleCall(_Base.PR_PathNameCS)), createKeyword(";")));
-			PR_OperationCS.setAlternatives(createGroup(setCardinality("?", createAlternatives(createGroup(createAssignment("qualifiers", "+=", createKeyword("static")), setCardinality("?", createAssignment("qualifiers", "+=", createKeyword("definition")))), createGroup(createAssignment("qualifiers", "+=", createKeyword("definition")), setCardinality("?", createAssignment("qualifiers", "+=", createKeyword("static")))))), createKeyword("operation"), setCardinality("?", createAssignment("ownedSignature", "=", createRuleCall(PR_TemplateSignatureCS))), createAssignment("name", "=", createRuleCall(PR_UnrestrictedName)), createKeyword("("), setCardinality("?", createGroup(createAssignment("ownedParameters", "+=", createRuleCall(PR_ParameterCS)), setCardinality("*", createGroup(createKeyword(","), createAssignment("ownedParameters", "+=", createRuleCall(PR_ParameterCS)))))), createKeyword(")"), setCardinality("?", createGroup(createKeyword(":"), createAssignment("ownedType", "=", createRuleCall(PR_TypedMultiplicityRefCS)))), setCardinality("?", createGroup(createKeyword("throws"), createAssignment("ownedExceptions", "+=", createRuleCall(PR_TypedRefCS)), setCardinality("*", createGroup(createKeyword(","), createAssignment("ownedExceptions", "+=", createRuleCall(PR_TypedRefCS)))))), setCardinality("?", createGroup(createKeyword("{"), setCardinality("+", createGroup(createAlternatives(createAssignment("qualifiers", "+=", createKeyword("derived")), createAssignment("qualifiers", "+=", createKeyword("!derived")), createAssignment("qualifiers", "+=", createKeyword("ordered")), createAssignment("qualifiers", "+=", createKeyword("!ordered")), createAssignment("qualifiers", "+=", createKeyword("unique")), createAssignment("qualifiers", "+=", createKeyword("!unique"))), setCardinality("?", createKeyword(",")))), createKeyword("}"))), createAlternatives(createGroup(createKeyword("{"), setCardinality("*", createAlternatives(createAssignment("ownedAnnotations", "+=", createRuleCall(PR_AnnotationElementCS)), createAssignment("ownedPreconditions", "+=", createRuleCall(PR_PreconditionConstraintCS)), createGroup(createKeyword("body"), setCardinality("?", createRuleCall(PR_UnrestrictedName)), createKeyword(":"), setCardinality("?", createAssignment("ownedBodyExpressions", "+=", createRuleCall(PR_SpecificationCS))), createKeyword(";")), createAssignment("ownedPostconditions", "+=", createRuleCall(PR_PostconditionConstraintCS)))), createKeyword("}")), createKeyword(";"))));
+			PR_OperationCS.setAlternatives(createGroup(setCardinality("?", createAlternatives(createGroup(createAssignment("qualifiers", "+=", createKeyword("static")), setCardinality("?", createAssignment("qualifiers", "+=", createKeyword("definition")))), createGroup(createAssignment("qualifiers", "+=", createKeyword("definition")), setCardinality("?", createAssignment("qualifiers", "+=", createKeyword("static")))))), createKeyword("operation"), setCardinality("?", createAssignment("ownedSignature", "=", createRuleCall(PR_TemplateSignatureCS))), createAssignment("name", "=", createRuleCall(PR_UnrestrictedName)), createKeyword("("), setCardinality("?", createGroup(createAssignment("ownedParameters", "+=", createRuleCall(PR_ParameterCS)), setCardinality("*", createGroup(createKeyword(","), createAssignment("ownedParameters", "+=", createRuleCall(PR_ParameterCS)))))), createKeyword(")"), setCardinality("?", createGroup(createKeyword(":"), createAssignment("ownedType", "=", createRuleCall(PR_TypedMultiplicityRefCS)))), setCardinality("?", createGroup(createKeyword("throws"), createAssignment("ownedExceptions", "+=", createRuleCall(PR_TypedRefCS)), setCardinality("*", createGroup(createKeyword(","), createAssignment("ownedExceptions", "+=", createRuleCall(PR_TypedRefCS)))))), setCardinality("?", createGroup(createKeyword("{"), setCardinality("+", createGroup(createAlternatives(createAssignment("qualifiers", "+=", createKeyword("derived")), createAssignment("qualifiers", "+=", createKeyword("!derived")), createAssignment("qualifiers", "+=", createKeyword("ordered")), createAssignment("qualifiers", "+=", createKeyword("!ordered")), createAssignment("qualifiers", "+=", createKeyword("transient")), createAssignment("qualifiers", "+=", createKeyword("!transient")), createAssignment("qualifiers", "+=", createKeyword("unique")), createAssignment("qualifiers", "+=", createKeyword("!unique"))), setCardinality("?", createKeyword(",")))), createKeyword("}"))), createAlternatives(createGroup(createKeyword("{"), setCardinality("*", createAlternatives(createAssignment("ownedAnnotations", "+=", createRuleCall(PR_AnnotationElementCS)), createAssignment("ownedPreconditions", "+=", createRuleCall(PR_PreconditionConstraintCS)), createGroup(createKeyword("body"), setCardinality("?", createRuleCall(PR_UnrestrictedName)), createKeyword(":"), setCardinality("?", createAssignment("ownedBodyExpressions", "+=", createRuleCall(PR_SpecificationCS))), createKeyword(";")), createAssignment("ownedPostconditions", "+=", createRuleCall(PR_PostconditionConstraintCS)))), createKeyword("}")), createKeyword(";"))));
 			PR_PackageCS.setAlternatives(createGroup(createKeyword("package"), createAssignment("name", "=", createRuleCall(PR_UnrestrictedName)), setCardinality("?", createGroup(createKeyword(":"), createAssignment("nsPrefix", "=", createRuleCall(PR_UnrestrictedName)))), setCardinality("?", createGroup(createKeyword("="), createAssignment("nsURI", "=", createRuleCall(_Base.PR_URI)))), createAlternatives(createGroup(createKeyword("{"), setCardinality("*", createAlternatives(createAssignment("ownedAnnotations", "+=", createRuleCall(PR_AnnotationElementCS)), createAssignment("ownedPackages", "+=", createRuleCall(PR_PackageCS)), createAssignment("ownedClasses", "+=", createRuleCall(PR_ClassCS)))), createKeyword("}")), createKeyword(";"))));
 			PR_ParameterCS.setAlternatives(createGroup(createAssignment("name", "=", createRuleCall(PR_UnrestrictedName)), setCardinality("?", createGroup(createKeyword(":"), createAssignment("ownedType", "=", createRuleCall(PR_TypedMultiplicityRefCS)))), setCardinality("?", createGroup(createKeyword("{"), setCardinality("+", createGroup(createAlternatives(createAssignment("qualifiers", "+=", createKeyword("ordered")), createAssignment("qualifiers", "+=", createKeyword("!ordered")), createAssignment("qualifiers", "+=", createKeyword("unique")), createAssignment("qualifiers", "+=", createKeyword("!unique"))), setCardinality("?", createKeyword(",")))), createKeyword("}"))), setCardinality("?", createGroup(createKeyword("{"), setCardinality("*", createAssignment("ownedAnnotations", "+=", createRuleCall(PR_AnnotationElementCS))), createKeyword("}")))));
 			PR_PostconditionConstraintCS.setAlternatives(createGroup(createAssignment("stereotype", "=", createKeyword("postcondition")), setCardinality("?", createGroup(createAssignment("name", "=", createRuleCall(PR_UnrestrictedName)), setCardinality("?", createGroup(createKeyword("("), createAssignment("ownedMessageSpecification", "=", createRuleCall(PR_SpecificationCS)), createKeyword(")"))))), createKeyword(":"), setCardinality("?", createAssignment("ownedSpecification", "=", createRuleCall(PR_SpecificationCS))), createKeyword(";")));
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcore.g b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcore.g
index ce151f8..178b0b9 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcore.g
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcore.g
@@ -2835,60 +2835,92 @@
 )
     |(
 (
-		lv_qualifiers_23_0=	'unique' 
+		lv_qualifiers_23_0=	'transient' 
     {
-        newLeafNode(lv_qualifiers_23_0, grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0());
+        newLeafNode(lv_qualifiers_23_0, grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0());
     }
  
 	    {
 	        if ($current==null) {
 	            $current = createModelElement(grammarAccess.getOperationCSRule());
 	        }
-       		addWithLastConsumed($current, "qualifiers", lv_qualifiers_23_0, "unique");
+       		addWithLastConsumed($current, "qualifiers", lv_qualifiers_23_0, "transient");
 	    }
 
 )
 )
     |(
 (
-		lv_qualifiers_24_0=	'!unique' 
+		lv_qualifiers_24_0=	'!transient' 
     {
-        newLeafNode(lv_qualifiers_24_0, grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0());
+        newLeafNode(lv_qualifiers_24_0, grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0());
     }
  
 	    {
 	        if ($current==null) {
 	            $current = createModelElement(grammarAccess.getOperationCSRule());
 	        }
-       		addWithLastConsumed($current, "qualifiers", lv_qualifiers_24_0, "!unique");
+       		addWithLastConsumed($current, "qualifiers", lv_qualifiers_24_0, "!transient");
 	    }
 
 )
-))(	otherlv_25=',' 
+)
+    |(
+(
+		lv_qualifiers_25_0=	'unique' 
     {
-    	newLeafNode(otherlv_25, grammarAccess.getOperationCSAccess().getCommaKeyword_9_1_1());
+        newLeafNode(lv_qualifiers_25_0, grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0());
     }
-)?)+	otherlv_26='}' 
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getOperationCSRule());
+	        }
+       		addWithLastConsumed($current, "qualifiers", lv_qualifiers_25_0, "unique");
+	    }
+
+)
+)
+    |(
+(
+		lv_qualifiers_26_0=	'!unique' 
     {
-    	newLeafNode(otherlv_26, grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2());
+        newLeafNode(lv_qualifiers_26_0, grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0());
     }
-)?((	otherlv_27='{' 
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getOperationCSRule());
+	        }
+       		addWithLastConsumed($current, "qualifiers", lv_qualifiers_26_0, "!unique");
+	    }
+
+)
+))(	otherlv_27=',' 
     {
-    	newLeafNode(otherlv_27, grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_10_0_0());
+    	newLeafNode(otherlv_27, grammarAccess.getOperationCSAccess().getCommaKeyword_9_1_1());
+    }
+)?)+	otherlv_28='}' 
+    {
+    	newLeafNode(otherlv_28, grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2());
+    }
+)?((	otherlv_29='{' 
+    {
+    	newLeafNode(otherlv_29, grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_10_0_0());
     }
 ((
 (
 		{ 
 	        newCompositeNode(grammarAccess.getOperationCSAccess().getOwnedAnnotationsAnnotationElementCSParserRuleCall_10_0_1_0_0()); 
 	    }
-		lv_ownedAnnotations_28_0=ruleAnnotationElementCS		{
+		lv_ownedAnnotations_30_0=ruleAnnotationElementCS		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getOperationCSRule());
 	        }
        		add(
        			$current, 
        			"ownedAnnotations",
-        		lv_ownedAnnotations_28_0, 
+        		lv_ownedAnnotations_30_0, 
         		"org.eclipse.ocl.xtext.oclinecore.OCLinEcore.AnnotationElementCS");
 	        afterParserOrEnumRuleCall();
 	    }
@@ -2900,23 +2932,23 @@
 		{ 
 	        newCompositeNode(grammarAccess.getOperationCSAccess().getOwnedPreconditionsPreconditionConstraintCSParserRuleCall_10_0_1_1_0()); 
 	    }
-		lv_ownedPreconditions_29_0=rulePreconditionConstraintCS		{
+		lv_ownedPreconditions_31_0=rulePreconditionConstraintCS		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getOperationCSRule());
 	        }
        		add(
        			$current, 
        			"ownedPreconditions",
-        		lv_ownedPreconditions_29_0, 
+        		lv_ownedPreconditions_31_0, 
         		"org.eclipse.ocl.xtext.oclinecore.OCLinEcore.PreconditionConstraintCS");
 	        afterParserOrEnumRuleCall();
 	    }
 
 )
 )
-    |(	otherlv_30='body' 
+    |(	otherlv_32='body' 
     {
-    	newLeafNode(otherlv_30, grammarAccess.getOperationCSAccess().getBodyKeyword_10_0_1_2_0());
+    	newLeafNode(otherlv_32, grammarAccess.getOperationCSAccess().getBodyKeyword_10_0_1_2_0());
     }
 (
 	{ 
@@ -2929,31 +2961,31 @@
     { 
         afterParserOrEnumRuleCall();
     }
-)?	otherlv_32=':' 
+)?	otherlv_34=':' 
     {
-    	newLeafNode(otherlv_32, grammarAccess.getOperationCSAccess().getColonKeyword_10_0_1_2_2());
+    	newLeafNode(otherlv_34, grammarAccess.getOperationCSAccess().getColonKeyword_10_0_1_2_2());
     }
 (
 (
 		{ 
 	        newCompositeNode(grammarAccess.getOperationCSAccess().getOwnedBodyExpressionsSpecificationCSParserRuleCall_10_0_1_2_3_0()); 
 	    }
-		lv_ownedBodyExpressions_33_0=ruleSpecificationCS		{
+		lv_ownedBodyExpressions_35_0=ruleSpecificationCS		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getOperationCSRule());
 	        }
        		add(
        			$current, 
        			"ownedBodyExpressions",
-        		lv_ownedBodyExpressions_33_0, 
+        		lv_ownedBodyExpressions_35_0, 
         		"org.eclipse.ocl.xtext.oclinecore.OCLinEcore.SpecificationCS");
 	        afterParserOrEnumRuleCall();
 	    }
 
 )
-)?	otherlv_34=';' 
+)?	otherlv_36=';' 
     {
-    	newLeafNode(otherlv_34, grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_0_1_2_4());
+    	newLeafNode(otherlv_36, grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_0_1_2_4());
     }
 )
     |(
@@ -2961,27 +2993,27 @@
 		{ 
 	        newCompositeNode(grammarAccess.getOperationCSAccess().getOwnedPostconditionsPostconditionConstraintCSParserRuleCall_10_0_1_3_0()); 
 	    }
-		lv_ownedPostconditions_35_0=rulePostconditionConstraintCS		{
+		lv_ownedPostconditions_37_0=rulePostconditionConstraintCS		{
 	        if ($current==null) {
 	            $current = createModelElementForParent(grammarAccess.getOperationCSRule());
 	        }
        		add(
        			$current, 
        			"ownedPostconditions",
-        		lv_ownedPostconditions_35_0, 
+        		lv_ownedPostconditions_37_0, 
         		"org.eclipse.ocl.xtext.oclinecore.OCLinEcore.PostconditionConstraintCS");
 	        afterParserOrEnumRuleCall();
 	    }
 
 )
-))*	otherlv_36='}' 
+))*	otherlv_38='}' 
     {
-    	newLeafNode(otherlv_36, grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_10_0_2());
+    	newLeafNode(otherlv_38, grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_10_0_2());
     }
 )
-    |	otherlv_37=';' 
+    |	otherlv_39=';' 
     {
-    	newLeafNode(otherlv_37, grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_1());
+    	newLeafNode(otherlv_39, grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_1());
     }
 ))
 ;
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcoreLexer.java b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcoreLexer.java
index cbcc2ed..cd16a26 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcoreLexer.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcoreLexer.java
@@ -2686,8 +2686,8 @@
         try {
             int _type = RULE_UNQUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9882:22: ( '\\u00A3$%^\\u00A3$%^' )
-            // InternalOCLinEcore.g:9882:24: '\\u00A3$%^\\u00A3$%^'
+            // InternalOCLinEcore.g:9914:22: ( '\\u00A3$%^\\u00A3$%^' )
+            // InternalOCLinEcore.g:9914:24: '\\u00A3$%^\\u00A3$%^'
             {
             match("\u00A3$%^\u00A3$%^"); 
 
@@ -2705,8 +2705,8 @@
     // $ANTLR start "RULE_ESCAPED_CHARACTER"
     public final void mRULE_ESCAPED_CHARACTER() throws RecognitionException {
         try {
-            // InternalOCLinEcore.g:9884:33: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) )
-            // InternalOCLinEcore.g:9884:35: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+            // InternalOCLinEcore.g:9916:33: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) )
+            // InternalOCLinEcore.g:9916:35: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
             {
             match('\\'); 
             if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@@ -2730,8 +2730,8 @@
     // $ANTLR start "RULE_LETTER_CHARACTER"
     public final void mRULE_LETTER_CHARACTER() throws RecognitionException {
         try {
-            // InternalOCLinEcore.g:9886:32: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) )
-            // InternalOCLinEcore.g:9886:34: ( 'a' .. 'z' | 'A' .. 'Z' | '_' )
+            // InternalOCLinEcore.g:9918:32: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) )
+            // InternalOCLinEcore.g:9918:34: ( 'a' .. 'z' | 'A' .. 'Z' | '_' )
             {
             if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                 input.consume();
@@ -2756,11 +2756,11 @@
         try {
             int _type = RULE_DOUBLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9888:27: ( '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalOCLinEcore.g:9888:29: '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalOCLinEcore.g:9920:27: ( '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalOCLinEcore.g:9920:29: '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalOCLinEcore.g:9888:33: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalOCLinEcore.g:9920:33: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )*
             loop1:
             do {
                 int alt1=3;
@@ -2776,14 +2776,14 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9888:34: RULE_ESCAPED_CHARACTER
+            	    // InternalOCLinEcore.g:9920:34: RULE_ESCAPED_CHARACTER
             	    {
             	    mRULE_ESCAPED_CHARACTER(); 
 
             	    }
             	    break;
             	case 2 :
-            	    // InternalOCLinEcore.g:9888:57: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalOCLinEcore.g:9920:57: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2820,11 +2820,11 @@
         try {
             int _type = RULE_SINGLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9890:27: ( '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalOCLinEcore.g:9890:29: '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalOCLinEcore.g:9922:27: ( '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalOCLinEcore.g:9922:29: '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalOCLinEcore.g:9890:34: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalOCLinEcore.g:9922:34: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop2:
             do {
                 int alt2=3;
@@ -2840,14 +2840,14 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9890:35: RULE_ESCAPED_CHARACTER
+            	    // InternalOCLinEcore.g:9922:35: RULE_ESCAPED_CHARACTER
             	    {
             	    mRULE_ESCAPED_CHARACTER(); 
 
             	    }
             	    break;
             	case 2 :
-            	    // InternalOCLinEcore.g:9890:58: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalOCLinEcore.g:9922:58: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2884,12 +2884,12 @@
         try {
             int _type = RULE_ML_SINGLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9892:30: ( '/\\'' ( options {greedy=false; } : . )* '\\'/' )
-            // InternalOCLinEcore.g:9892:32: '/\\'' ( options {greedy=false; } : . )* '\\'/'
+            // InternalOCLinEcore.g:9924:30: ( '/\\'' ( options {greedy=false; } : . )* '\\'/' )
+            // InternalOCLinEcore.g:9924:32: '/\\'' ( options {greedy=false; } : . )* '\\'/'
             {
             match("/'"); 
 
-            // InternalOCLinEcore.g:9892:38: ( options {greedy=false; } : . )*
+            // InternalOCLinEcore.g:9924:38: ( options {greedy=false; } : . )*
             loop3:
             do {
                 int alt3=2;
@@ -2914,7 +2914,7 @@
 
                 switch (alt3) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9892:66: .
+            	    // InternalOCLinEcore.g:9924:66: .
             	    {
             	    matchAny(); 
 
@@ -2944,11 +2944,11 @@
         try {
             int _type = RULE_SIMPLE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9894:16: ( RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )* )
-            // InternalOCLinEcore.g:9894:18: RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )*
+            // InternalOCLinEcore.g:9926:16: ( RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )* )
+            // InternalOCLinEcore.g:9926:18: RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )*
             {
             mRULE_LETTER_CHARACTER(); 
-            // InternalOCLinEcore.g:9894:40: ( RULE_LETTER_CHARACTER | '0' .. '9' )*
+            // InternalOCLinEcore.g:9926:40: ( RULE_LETTER_CHARACTER | '0' .. '9' )*
             loop4:
             do {
                 int alt4=2;
@@ -2997,8 +2997,8 @@
         try {
             int _type = RULE_ESCAPED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9896:17: ( '_' RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:9896:19: '_' RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:9928:17: ( '_' RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:9928:19: '_' RULE_SINGLE_QUOTED_STRING
             {
             match('_'); 
             mRULE_SINGLE_QUOTED_STRING(); 
@@ -3018,10 +3018,10 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9898:10: ( ( '0' .. '9' )+ )
-            // InternalOCLinEcore.g:9898:12: ( '0' .. '9' )+
+            // InternalOCLinEcore.g:9930:10: ( ( '0' .. '9' )+ )
+            // InternalOCLinEcore.g:9930:12: ( '0' .. '9' )+
             {
-            // InternalOCLinEcore.g:9898:12: ( '0' .. '9' )+
+            // InternalOCLinEcore.g:9930:12: ( '0' .. '9' )+
             int cnt5=0;
             loop5:
             do {
@@ -3035,7 +3035,7 @@
 
                 switch (alt5) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9898:13: '0' .. '9'
+            	    // InternalOCLinEcore.g:9930:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -3067,12 +3067,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9900:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalOCLinEcore.g:9900:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalOCLinEcore.g:9932:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalOCLinEcore.g:9932:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalOCLinEcore.g:9900:24: ( options {greedy=false; } : . )*
+            // InternalOCLinEcore.g:9932:24: ( options {greedy=false; } : . )*
             loop6:
             do {
                 int alt6=2;
@@ -3097,7 +3097,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9900:52: .
+            	    // InternalOCLinEcore.g:9932:52: .
             	    {
             	    matchAny(); 
 
@@ -3127,12 +3127,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9902:17: ( '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalOCLinEcore.g:9902:19: '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalOCLinEcore.g:9934:17: ( '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalOCLinEcore.g:9934:19: '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("--"); 
 
-            // InternalOCLinEcore.g:9902:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalOCLinEcore.g:9934:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop7:
             do {
                 int alt7=2;
@@ -3145,7 +3145,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9902:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalOCLinEcore.g:9934:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -3165,7 +3165,7 @@
                 }
             } while (true);
 
-            // InternalOCLinEcore.g:9902:40: ( ( '\\r' )? '\\n' )?
+            // InternalOCLinEcore.g:9934:40: ( ( '\\r' )? '\\n' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3174,9 +3174,9 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalOCLinEcore.g:9902:41: ( '\\r' )? '\\n'
+                    // InternalOCLinEcore.g:9934:41: ( '\\r' )? '\\n'
                     {
-                    // InternalOCLinEcore.g:9902:41: ( '\\r' )?
+                    // InternalOCLinEcore.g:9934:41: ( '\\r' )?
                     int alt8=2;
                     int LA8_0 = input.LA(1);
 
@@ -3185,7 +3185,7 @@
                     }
                     switch (alt8) {
                         case 1 :
-                            // InternalOCLinEcore.g:9902:41: '\\r'
+                            // InternalOCLinEcore.g:9934:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3217,10 +3217,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9904:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalOCLinEcore.g:9904:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalOCLinEcore.g:9936:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalOCLinEcore.g:9936:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalOCLinEcore.g:9904:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalOCLinEcore.g:9936:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt10=0;
             loop10:
             do {
@@ -3274,8 +3274,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOCLinEcore.g:9906:16: ( . )
-            // InternalOCLinEcore.g:9906:18: .
+            // InternalOCLinEcore.g:9938:16: ( . )
+            // InternalOCLinEcore.g:9938:18: .
             {
             matchAny(); 
 
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcoreParser.java b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcoreParser.java
index c4696b7..22004cf 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcoreParser.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/parser/antlr/internal/InternalOCLinEcoreParser.java
@@ -2688,12 +2688,12 @@
                             {
                             int LA21_4 = input.LA(2);
 
-                            if ( ((LA21_4>=RULE_SIMPLE_ID && LA21_4<=RULE_ESCAPED_ID)||LA21_4==17||(LA21_4>=19 && LA21_4<=53)||LA21_4==58||LA21_4==71||(LA21_4>=73 && LA21_4<=74)||LA21_4==79) ) {
-                                alt21=3;
-                            }
-                            else if ( (LA21_4==57||LA21_4==60||LA21_4==62) ) {
+                            if ( (LA21_4==57||LA21_4==60||LA21_4==62) ) {
                                 alt21=2;
                             }
+                            else if ( ((LA21_4>=RULE_SIMPLE_ID && LA21_4<=RULE_ESCAPED_ID)||LA21_4==17||(LA21_4>=19 && LA21_4<=53)||LA21_4==58||LA21_4==71||(LA21_4>=73 && LA21_4<=74)||LA21_4==79) ) {
+                                alt21=3;
+                            }
 
 
                             }
@@ -7468,7 +7468,7 @@
 
 
     // $ANTLR start "ruleOperationCS"
-    // InternalOCLinEcore.g:2549:1: ruleOperationCS returns [EObject current=null] : ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )? )+ otherlv_26= '}' )? ( (otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}' ) | otherlv_37= ';' ) ) ;
+    // InternalOCLinEcore.g:2549:1: ruleOperationCS returns [EObject current=null] : ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )? )+ otherlv_28= '}' )? ( (otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}' ) | otherlv_39= ';' ) ) ;
     public final EObject ruleOperationCS() throws RecognitionException {
         EObject current = null;
 
@@ -7490,14 +7490,16 @@
         Token lv_qualifiers_22_0=null;
         Token lv_qualifiers_23_0=null;
         Token lv_qualifiers_24_0=null;
-        Token otherlv_25=null;
-        Token otherlv_26=null;
+        Token lv_qualifiers_25_0=null;
+        Token lv_qualifiers_26_0=null;
         Token otherlv_27=null;
-        Token otherlv_30=null;
+        Token otherlv_28=null;
+        Token otherlv_29=null;
         Token otherlv_32=null;
         Token otherlv_34=null;
         Token otherlv_36=null;
-        Token otherlv_37=null;
+        Token otherlv_38=null;
+        Token otherlv_39=null;
         EObject lv_ownedSignature_5_0 = null;
 
         AntlrDatatypeRuleToken lv_name_6_0 = null;
@@ -7512,23 +7514,23 @@
 
         EObject lv_ownedExceptions_17_0 = null;
 
-        EObject lv_ownedAnnotations_28_0 = null;
+        EObject lv_ownedAnnotations_30_0 = null;
 
-        EObject lv_ownedPreconditions_29_0 = null;
+        EObject lv_ownedPreconditions_31_0 = null;
 
-        EObject lv_ownedBodyExpressions_33_0 = null;
+        EObject lv_ownedBodyExpressions_35_0 = null;
 
-        EObject lv_ownedPostconditions_35_0 = null;
+        EObject lv_ownedPostconditions_37_0 = null;
 
 
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:2552:28: ( ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )? )+ otherlv_26= '}' )? ( (otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}' ) | otherlv_37= ';' ) ) )
-            // InternalOCLinEcore.g:2553:1: ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )? )+ otherlv_26= '}' )? ( (otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}' ) | otherlv_37= ';' ) )
+            // InternalOCLinEcore.g:2552:28: ( ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )? )+ otherlv_28= '}' )? ( (otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}' ) | otherlv_39= ';' ) ) )
+            // InternalOCLinEcore.g:2553:1: ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )? )+ otherlv_28= '}' )? ( (otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}' ) | otherlv_39= ';' ) )
             {
-            // InternalOCLinEcore.g:2553:1: ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )? )+ otherlv_26= '}' )? ( (otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}' ) | otherlv_37= ';' ) )
-            // InternalOCLinEcore.g:2553:2: ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )? )+ otherlv_26= '}' )? ( (otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}' ) | otherlv_37= ';' )
+            // InternalOCLinEcore.g:2553:1: ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )? )+ otherlv_28= '}' )? ( (otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}' ) | otherlv_39= ';' ) )
+            // InternalOCLinEcore.g:2553:2: ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'operation' ( (lv_ownedSignature_5_0= ruleTemplateSignatureCS ) )? ( (lv_name_6_0= ruleUnrestrictedName ) ) otherlv_7= '(' ( ( (lv_ownedParameters_8_0= ruleParameterCS ) ) (otherlv_9= ',' ( (lv_ownedParameters_10_0= ruleParameterCS ) ) )* )? otherlv_11= ')' (otherlv_12= ':' ( (lv_ownedType_13_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_14= 'throws' ( (lv_ownedExceptions_15_0= ruleTypedRefCS ) ) (otherlv_16= ',' ( (lv_ownedExceptions_17_0= ruleTypedRefCS ) ) )* )? (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )? )+ otherlv_28= '}' )? ( (otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}' ) | otherlv_39= ';' )
             {
             // InternalOCLinEcore.g:2553:2: ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )?
             int alt69=3;
@@ -8091,20 +8093,20 @@
 
             }
 
-            // InternalOCLinEcore.g:2768:6: (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )? )+ otherlv_26= '}' )?
+            // InternalOCLinEcore.g:2768:6: (otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )? )+ otherlv_28= '}' )?
             int alt79=2;
             int LA79_0 = input.LA(1);
 
             if ( (LA79_0==60) ) {
                 int LA79_1 = input.LA(2);
 
-                if ( (LA79_1==28||LA79_1==38||LA79_1==50||LA79_1==63||LA79_1==65||LA79_1==68) ) {
+                if ( (LA79_1==28||LA79_1==38||(LA79_1>=49 && LA79_1<=50)||LA79_1==63||LA79_1==65||(LA79_1>=67 && LA79_1<=68)) ) {
                     alt79=1;
                 }
             }
             switch (alt79) {
                 case 1 :
-                    // InternalOCLinEcore.g:2768:8: otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )? )+ otherlv_26= '}'
+                    // InternalOCLinEcore.g:2768:8: otherlv_18= '{' ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )? )+ otherlv_28= '}'
                     {
                     otherlv_18=(Token)match(input,60,FollowSets000.FOLLOW_59); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -8112,24 +8114,24 @@
                           	newLeafNode(otherlv_18, grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_9_0());
                           
                     }
-                    // InternalOCLinEcore.g:2772:1: ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )? )+
+                    // InternalOCLinEcore.g:2772:1: ( ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )? )+
                     int cnt78=0;
                     loop78:
                     do {
                         int alt78=2;
                         int LA78_0 = input.LA(1);
 
-                        if ( (LA78_0==28||LA78_0==38||LA78_0==50||LA78_0==63||LA78_0==65||LA78_0==68) ) {
+                        if ( (LA78_0==28||LA78_0==38||(LA78_0>=49 && LA78_0<=50)||LA78_0==63||LA78_0==65||(LA78_0>=67 && LA78_0<=68)) ) {
                             alt78=1;
                         }
 
 
                         switch (alt78) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:2772:2: ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) ) (otherlv_25= ',' )?
+                    	    // InternalOCLinEcore.g:2772:2: ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) ) (otherlv_27= ',' )?
                     	    {
-                    	    // InternalOCLinEcore.g:2772:2: ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'unique' ) ) | ( (lv_qualifiers_24_0= '!unique' ) ) )
-                    	    int alt76=6;
+                    	    // InternalOCLinEcore.g:2772:2: ( ( (lv_qualifiers_19_0= 'derived' ) ) | ( (lv_qualifiers_20_0= '!derived' ) ) | ( (lv_qualifiers_21_0= 'ordered' ) ) | ( (lv_qualifiers_22_0= '!ordered' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) )
+                    	    int alt76=8;
                     	    switch ( input.LA(1) ) {
                     	    case 28:
                     	        {
@@ -8151,16 +8153,26 @@
                     	        alt76=4;
                     	        }
                     	        break;
-                    	    case 50:
+                    	    case 49:
                     	        {
                     	        alt76=5;
                     	        }
                     	        break;
-                    	    case 68:
+                    	    case 67:
                     	        {
                     	        alt76=6;
                     	        }
                     	        break;
+                    	    case 50:
+                    	        {
+                    	        alt76=7;
+                    	        }
+                    	        break;
+                    	    case 68:
+                    	        {
+                    	        alt76=8;
+                    	        }
+                    	        break;
                     	    default:
                     	        if (state.backtracking>0) {state.failed=true; return current;}
                     	        NoViableAltException nvae =
@@ -8299,18 +8311,18 @@
                     	            }
                     	            break;
                     	        case 5 :
-                    	            // InternalOCLinEcore.g:2836:6: ( (lv_qualifiers_23_0= 'unique' ) )
+                    	            // InternalOCLinEcore.g:2836:6: ( (lv_qualifiers_23_0= 'transient' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:2836:6: ( (lv_qualifiers_23_0= 'unique' ) )
-                    	            // InternalOCLinEcore.g:2837:1: (lv_qualifiers_23_0= 'unique' )
+                    	            // InternalOCLinEcore.g:2836:6: ( (lv_qualifiers_23_0= 'transient' ) )
+                    	            // InternalOCLinEcore.g:2837:1: (lv_qualifiers_23_0= 'transient' )
                     	            {
-                    	            // InternalOCLinEcore.g:2837:1: (lv_qualifiers_23_0= 'unique' )
-                    	            // InternalOCLinEcore.g:2838:3: lv_qualifiers_23_0= 'unique'
+                    	            // InternalOCLinEcore.g:2837:1: (lv_qualifiers_23_0= 'transient' )
+                    	            // InternalOCLinEcore.g:2838:3: lv_qualifiers_23_0= 'transient'
                     	            {
-                    	            lv_qualifiers_23_0=(Token)match(input,50,FollowSets000.FOLLOW_60); if (state.failed) return current;
+                    	            lv_qualifiers_23_0=(Token)match(input,49,FollowSets000.FOLLOW_60); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
-                    	                      newLeafNode(lv_qualifiers_23_0, grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0());
+                    	                      newLeafNode(lv_qualifiers_23_0, grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_4_0());
                     	                  
                     	            }
                     	            if ( state.backtracking==0 ) {
@@ -8318,7 +8330,7 @@
                     	              	        if (current==null) {
                     	              	            current = createModelElement(grammarAccess.getOperationCSRule());
                     	              	        }
-                    	                     		addWithLastConsumed(current, "qualifiers", lv_qualifiers_23_0, "unique");
+                    	                     		addWithLastConsumed(current, "qualifiers", lv_qualifiers_23_0, "transient");
                     	              	    
                     	            }
 
@@ -8331,18 +8343,18 @@
                     	            }
                     	            break;
                     	        case 6 :
-                    	            // InternalOCLinEcore.g:2852:6: ( (lv_qualifiers_24_0= '!unique' ) )
+                    	            // InternalOCLinEcore.g:2852:6: ( (lv_qualifiers_24_0= '!transient' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:2852:6: ( (lv_qualifiers_24_0= '!unique' ) )
-                    	            // InternalOCLinEcore.g:2853:1: (lv_qualifiers_24_0= '!unique' )
+                    	            // InternalOCLinEcore.g:2852:6: ( (lv_qualifiers_24_0= '!transient' ) )
+                    	            // InternalOCLinEcore.g:2853:1: (lv_qualifiers_24_0= '!transient' )
                     	            {
-                    	            // InternalOCLinEcore.g:2853:1: (lv_qualifiers_24_0= '!unique' )
-                    	            // InternalOCLinEcore.g:2854:3: lv_qualifiers_24_0= '!unique'
+                    	            // InternalOCLinEcore.g:2853:1: (lv_qualifiers_24_0= '!transient' )
+                    	            // InternalOCLinEcore.g:2854:3: lv_qualifiers_24_0= '!transient'
                     	            {
-                    	            lv_qualifiers_24_0=(Token)match(input,68,FollowSets000.FOLLOW_60); if (state.failed) return current;
+                    	            lv_qualifiers_24_0=(Token)match(input,67,FollowSets000.FOLLOW_60); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
-                    	                      newLeafNode(lv_qualifiers_24_0, grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0());
+                    	                      newLeafNode(lv_qualifiers_24_0, grammarAccess.getOperationCSAccess().getQualifiersTransientKeyword_9_1_0_5_0());
                     	                  
                     	            }
                     	            if ( state.backtracking==0 ) {
@@ -8350,7 +8362,71 @@
                     	              	        if (current==null) {
                     	              	            current = createModelElement(grammarAccess.getOperationCSRule());
                     	              	        }
-                    	                     		addWithLastConsumed(current, "qualifiers", lv_qualifiers_24_0, "!unique");
+                    	                     		addWithLastConsumed(current, "qualifiers", lv_qualifiers_24_0, "!transient");
+                    	              	    
+                    	            }
+
+                    	            }
+
+
+                    	            }
+
+
+                    	            }
+                    	            break;
+                    	        case 7 :
+                    	            // InternalOCLinEcore.g:2868:6: ( (lv_qualifiers_25_0= 'unique' ) )
+                    	            {
+                    	            // InternalOCLinEcore.g:2868:6: ( (lv_qualifiers_25_0= 'unique' ) )
+                    	            // InternalOCLinEcore.g:2869:1: (lv_qualifiers_25_0= 'unique' )
+                    	            {
+                    	            // InternalOCLinEcore.g:2869:1: (lv_qualifiers_25_0= 'unique' )
+                    	            // InternalOCLinEcore.g:2870:3: lv_qualifiers_25_0= 'unique'
+                    	            {
+                    	            lv_qualifiers_25_0=(Token)match(input,50,FollowSets000.FOLLOW_60); if (state.failed) return current;
+                    	            if ( state.backtracking==0 ) {
+
+                    	                      newLeafNode(lv_qualifiers_25_0, grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_6_0());
+                    	                  
+                    	            }
+                    	            if ( state.backtracking==0 ) {
+
+                    	              	        if (current==null) {
+                    	              	            current = createModelElement(grammarAccess.getOperationCSRule());
+                    	              	        }
+                    	                     		addWithLastConsumed(current, "qualifiers", lv_qualifiers_25_0, "unique");
+                    	              	    
+                    	            }
+
+                    	            }
+
+
+                    	            }
+
+
+                    	            }
+                    	            break;
+                    	        case 8 :
+                    	            // InternalOCLinEcore.g:2884:6: ( (lv_qualifiers_26_0= '!unique' ) )
+                    	            {
+                    	            // InternalOCLinEcore.g:2884:6: ( (lv_qualifiers_26_0= '!unique' ) )
+                    	            // InternalOCLinEcore.g:2885:1: (lv_qualifiers_26_0= '!unique' )
+                    	            {
+                    	            // InternalOCLinEcore.g:2885:1: (lv_qualifiers_26_0= '!unique' )
+                    	            // InternalOCLinEcore.g:2886:3: lv_qualifiers_26_0= '!unique'
+                    	            {
+                    	            lv_qualifiers_26_0=(Token)match(input,68,FollowSets000.FOLLOW_60); if (state.failed) return current;
+                    	            if ( state.backtracking==0 ) {
+
+                    	                      newLeafNode(lv_qualifiers_26_0, grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_7_0());
+                    	                  
+                    	            }
+                    	            if ( state.backtracking==0 ) {
+
+                    	              	        if (current==null) {
+                    	              	            current = createModelElement(grammarAccess.getOperationCSRule());
+                    	              	        }
+                    	                     		addWithLastConsumed(current, "qualifiers", lv_qualifiers_26_0, "!unique");
                     	              	    
                     	            }
 
@@ -8365,7 +8441,7 @@
 
                     	    }
 
-                    	    // InternalOCLinEcore.g:2867:3: (otherlv_25= ',' )?
+                    	    // InternalOCLinEcore.g:2899:3: (otherlv_27= ',' )?
                     	    int alt77=2;
                     	    int LA77_0 = input.LA(1);
 
@@ -8374,12 +8450,12 @@
                     	    }
                     	    switch (alt77) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:2867:5: otherlv_25= ','
+                    	            // InternalOCLinEcore.g:2899:5: otherlv_27= ','
                     	            {
-                    	            otherlv_25=(Token)match(input,59,FollowSets000.FOLLOW_61); if (state.failed) return current;
+                    	            otherlv_27=(Token)match(input,59,FollowSets000.FOLLOW_61); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
-                    	                  	newLeafNode(otherlv_25, grammarAccess.getOperationCSAccess().getCommaKeyword_9_1_1());
+                    	                  	newLeafNode(otherlv_27, grammarAccess.getOperationCSAccess().getCommaKeyword_9_1_1());
                     	                  
                     	            }
 
@@ -8402,10 +8478,10 @@
                         cnt78++;
                     } while (true);
 
-                    otherlv_26=(Token)match(input,61,FollowSets000.FOLLOW_22); if (state.failed) return current;
+                    otherlv_28=(Token)match(input,61,FollowSets000.FOLLOW_22); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_26, grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2());
+                          	newLeafNode(otherlv_28, grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2());
                           
                     }
 
@@ -8414,7 +8490,7 @@
 
             }
 
-            // InternalOCLinEcore.g:2875:3: ( (otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}' ) | otherlv_37= ';' )
+            // InternalOCLinEcore.g:2907:3: ( (otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}' ) | otherlv_39= ';' )
             int alt83=2;
             int LA83_0 = input.LA(1);
 
@@ -8433,18 +8509,18 @@
             }
             switch (alt83) {
                 case 1 :
-                    // InternalOCLinEcore.g:2875:4: (otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}' )
+                    // InternalOCLinEcore.g:2907:4: (otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}' )
                     {
-                    // InternalOCLinEcore.g:2875:4: (otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}' )
-                    // InternalOCLinEcore.g:2875:6: otherlv_27= '{' ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )* otherlv_36= '}'
+                    // InternalOCLinEcore.g:2907:4: (otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}' )
+                    // InternalOCLinEcore.g:2907:6: otherlv_29= '{' ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )* otherlv_38= '}'
                     {
-                    otherlv_27=(Token)match(input,60,FollowSets000.FOLLOW_62); if (state.failed) return current;
+                    otherlv_29=(Token)match(input,60,FollowSets000.FOLLOW_62); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_27, grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_10_0_0());
+                          	newLeafNode(otherlv_29, grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_10_0_0());
                           
                     }
-                    // InternalOCLinEcore.g:2879:1: ( ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) ) | (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' ) | ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) ) )*
+                    // InternalOCLinEcore.g:2911:1: ( ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) ) | (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' ) | ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) ) )*
                     loop82:
                     do {
                         int alt82=5;
@@ -8476,13 +8552,13 @@
 
                         switch (alt82) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:2879:2: ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) )
+                    	    // InternalOCLinEcore.g:2911:2: ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:2879:2: ( (lv_ownedAnnotations_28_0= ruleAnnotationElementCS ) )
-                    	    // InternalOCLinEcore.g:2880:1: (lv_ownedAnnotations_28_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:2911:2: ( (lv_ownedAnnotations_30_0= ruleAnnotationElementCS ) )
+                    	    // InternalOCLinEcore.g:2912:1: (lv_ownedAnnotations_30_0= ruleAnnotationElementCS )
                     	    {
-                    	    // InternalOCLinEcore.g:2880:1: (lv_ownedAnnotations_28_0= ruleAnnotationElementCS )
-                    	    // InternalOCLinEcore.g:2881:3: lv_ownedAnnotations_28_0= ruleAnnotationElementCS
+                    	    // InternalOCLinEcore.g:2912:1: (lv_ownedAnnotations_30_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:2913:3: lv_ownedAnnotations_30_0= ruleAnnotationElementCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -8490,7 +8566,7 @@
                     	      	    
                     	    }
                     	    pushFollow(FollowSets000.FOLLOW_62);
-                    	    lv_ownedAnnotations_28_0=ruleAnnotationElementCS();
+                    	    lv_ownedAnnotations_30_0=ruleAnnotationElementCS();
 
                     	    state._fsp--;
                     	    if (state.failed) return current;
@@ -8502,7 +8578,7 @@
                     	             		add(
                     	             			current, 
                     	             			"ownedAnnotations",
-                    	              		lv_ownedAnnotations_28_0, 
+                    	              		lv_ownedAnnotations_30_0, 
                     	              		"org.eclipse.ocl.xtext.oclinecore.OCLinEcore.AnnotationElementCS");
                     	      	        afterParserOrEnumRuleCall();
                     	      	    
@@ -8517,13 +8593,13 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalOCLinEcore.g:2898:6: ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) )
+                    	    // InternalOCLinEcore.g:2930:6: ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:2898:6: ( (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS ) )
-                    	    // InternalOCLinEcore.g:2899:1: (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS )
+                    	    // InternalOCLinEcore.g:2930:6: ( (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS ) )
+                    	    // InternalOCLinEcore.g:2931:1: (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS )
                     	    {
-                    	    // InternalOCLinEcore.g:2899:1: (lv_ownedPreconditions_29_0= rulePreconditionConstraintCS )
-                    	    // InternalOCLinEcore.g:2900:3: lv_ownedPreconditions_29_0= rulePreconditionConstraintCS
+                    	    // InternalOCLinEcore.g:2931:1: (lv_ownedPreconditions_31_0= rulePreconditionConstraintCS )
+                    	    // InternalOCLinEcore.g:2932:3: lv_ownedPreconditions_31_0= rulePreconditionConstraintCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -8531,7 +8607,7 @@
                     	      	    
                     	    }
                     	    pushFollow(FollowSets000.FOLLOW_62);
-                    	    lv_ownedPreconditions_29_0=rulePreconditionConstraintCS();
+                    	    lv_ownedPreconditions_31_0=rulePreconditionConstraintCS();
 
                     	    state._fsp--;
                     	    if (state.failed) return current;
@@ -8543,7 +8619,7 @@
                     	             		add(
                     	             			current, 
                     	             			"ownedPreconditions",
-                    	              		lv_ownedPreconditions_29_0, 
+                    	              		lv_ownedPreconditions_31_0, 
                     	              		"org.eclipse.ocl.xtext.oclinecore.OCLinEcore.PreconditionConstraintCS");
                     	      	        afterParserOrEnumRuleCall();
                     	      	    
@@ -8558,18 +8634,18 @@
                     	    }
                     	    break;
                     	case 3 :
-                    	    // InternalOCLinEcore.g:2917:6: (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' )
+                    	    // InternalOCLinEcore.g:2949:6: (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' )
                     	    {
-                    	    // InternalOCLinEcore.g:2917:6: (otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';' )
-                    	    // InternalOCLinEcore.g:2917:8: otherlv_30= 'body' ( ruleUnrestrictedName )? otherlv_32= ':' ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )? otherlv_34= ';'
+                    	    // InternalOCLinEcore.g:2949:6: (otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';' )
+                    	    // InternalOCLinEcore.g:2949:8: otherlv_32= 'body' ( ruleUnrestrictedName )? otherlv_34= ':' ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )? otherlv_36= ';'
                     	    {
-                    	    otherlv_30=(Token)match(input,21,FollowSets000.FOLLOW_15); if (state.failed) return current;
+                    	    otherlv_32=(Token)match(input,21,FollowSets000.FOLLOW_15); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
-                    	          	newLeafNode(otherlv_30, grammarAccess.getOperationCSAccess().getBodyKeyword_10_0_1_2_0());
+                    	          	newLeafNode(otherlv_32, grammarAccess.getOperationCSAccess().getBodyKeyword_10_0_1_2_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:2921:1: ( ruleUnrestrictedName )?
+                    	    // InternalOCLinEcore.g:2953:1: ( ruleUnrestrictedName )?
                     	    int alt80=2;
                     	    int LA80_0 = input.LA(1);
 
@@ -8578,7 +8654,7 @@
                     	    }
                     	    switch (alt80) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:2922:2: ruleUnrestrictedName
+                    	            // InternalOCLinEcore.g:2954:2: ruleUnrestrictedName
                     	            {
                     	            if ( state.backtracking==0 ) {
                     	               
@@ -8606,13 +8682,13 @@
 
                     	    }
 
-                    	    otherlv_32=(Token)match(input,56,FollowSets000.FOLLOW_13); if (state.failed) return current;
+                    	    otherlv_34=(Token)match(input,56,FollowSets000.FOLLOW_13); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
-                    	          	newLeafNode(otherlv_32, grammarAccess.getOperationCSAccess().getColonKeyword_10_0_1_2_2());
+                    	          	newLeafNode(otherlv_34, grammarAccess.getOperationCSAccess().getColonKeyword_10_0_1_2_2());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:2936:1: ( (lv_ownedBodyExpressions_33_0= ruleSpecificationCS ) )?
+                    	    // InternalOCLinEcore.g:2968:1: ( (lv_ownedBodyExpressions_35_0= ruleSpecificationCS ) )?
                     	    int alt81=2;
                     	    int LA81_0 = input.LA(1);
 
@@ -8621,10 +8697,10 @@
                     	    }
                     	    switch (alt81) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:2937:1: (lv_ownedBodyExpressions_33_0= ruleSpecificationCS )
+                    	            // InternalOCLinEcore.g:2969:1: (lv_ownedBodyExpressions_35_0= ruleSpecificationCS )
                     	            {
-                    	            // InternalOCLinEcore.g:2937:1: (lv_ownedBodyExpressions_33_0= ruleSpecificationCS )
-                    	            // InternalOCLinEcore.g:2938:3: lv_ownedBodyExpressions_33_0= ruleSpecificationCS
+                    	            // InternalOCLinEcore.g:2969:1: (lv_ownedBodyExpressions_35_0= ruleSpecificationCS )
+                    	            // InternalOCLinEcore.g:2970:3: lv_ownedBodyExpressions_35_0= ruleSpecificationCS
                     	            {
                     	            if ( state.backtracking==0 ) {
                     	               
@@ -8632,7 +8708,7 @@
                     	              	    
                     	            }
                     	            pushFollow(FollowSets000.FOLLOW_14);
-                    	            lv_ownedBodyExpressions_33_0=ruleSpecificationCS();
+                    	            lv_ownedBodyExpressions_35_0=ruleSpecificationCS();
 
                     	            state._fsp--;
                     	            if (state.failed) return current;
@@ -8644,7 +8720,7 @@
                     	                     		add(
                     	                     			current, 
                     	                     			"ownedBodyExpressions",
-                    	                      		lv_ownedBodyExpressions_33_0, 
+                    	                      		lv_ownedBodyExpressions_35_0, 
                     	                      		"org.eclipse.ocl.xtext.oclinecore.OCLinEcore.SpecificationCS");
                     	              	        afterParserOrEnumRuleCall();
                     	              	    
@@ -8658,10 +8734,10 @@
 
                     	    }
 
-                    	    otherlv_34=(Token)match(input,57,FollowSets000.FOLLOW_62); if (state.failed) return current;
+                    	    otherlv_36=(Token)match(input,57,FollowSets000.FOLLOW_62); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
-                    	          	newLeafNode(otherlv_34, grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_0_1_2_4());
+                    	          	newLeafNode(otherlv_36, grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_0_1_2_4());
                     	          
                     	    }
 
@@ -8671,13 +8747,13 @@
                     	    }
                     	    break;
                     	case 4 :
-                    	    // InternalOCLinEcore.g:2959:6: ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) )
+                    	    // InternalOCLinEcore.g:2991:6: ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:2959:6: ( (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS ) )
-                    	    // InternalOCLinEcore.g:2960:1: (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS )
+                    	    // InternalOCLinEcore.g:2991:6: ( (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS ) )
+                    	    // InternalOCLinEcore.g:2992:1: (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS )
                     	    {
-                    	    // InternalOCLinEcore.g:2960:1: (lv_ownedPostconditions_35_0= rulePostconditionConstraintCS )
-                    	    // InternalOCLinEcore.g:2961:3: lv_ownedPostconditions_35_0= rulePostconditionConstraintCS
+                    	    // InternalOCLinEcore.g:2992:1: (lv_ownedPostconditions_37_0= rulePostconditionConstraintCS )
+                    	    // InternalOCLinEcore.g:2993:3: lv_ownedPostconditions_37_0= rulePostconditionConstraintCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -8685,7 +8761,7 @@
                     	      	    
                     	    }
                     	    pushFollow(FollowSets000.FOLLOW_62);
-                    	    lv_ownedPostconditions_35_0=rulePostconditionConstraintCS();
+                    	    lv_ownedPostconditions_37_0=rulePostconditionConstraintCS();
 
                     	    state._fsp--;
                     	    if (state.failed) return current;
@@ -8697,7 +8773,7 @@
                     	             		add(
                     	             			current, 
                     	             			"ownedPostconditions",
-                    	              		lv_ownedPostconditions_35_0, 
+                    	              		lv_ownedPostconditions_37_0, 
                     	              		"org.eclipse.ocl.xtext.oclinecore.OCLinEcore.PostconditionConstraintCS");
                     	      	        afterParserOrEnumRuleCall();
                     	      	    
@@ -8717,10 +8793,10 @@
                         }
                     } while (true);
 
-                    otherlv_36=(Token)match(input,61,FollowSets000.FOLLOW_2); if (state.failed) return current;
+                    otherlv_38=(Token)match(input,61,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_36, grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_10_0_2());
+                          	newLeafNode(otherlv_38, grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_10_0_2());
                           
                     }
 
@@ -8730,12 +8806,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:2982:7: otherlv_37= ';'
+                    // InternalOCLinEcore.g:3014:7: otherlv_39= ';'
                     {
-                    otherlv_37=(Token)match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return current;
+                    otherlv_39=(Token)match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_37, grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_1());
+                          	newLeafNode(otherlv_39, grammarAccess.getOperationCSAccess().getSemicolonKeyword_10_1());
                           
                     }
 
@@ -8767,7 +8843,7 @@
 
 
     // $ANTLR start "entryRulePackageCS"
-    // InternalOCLinEcore.g:2994:1: entryRulePackageCS returns [EObject current=null] : iv_rulePackageCS= rulePackageCS EOF ;
+    // InternalOCLinEcore.g:3026:1: entryRulePackageCS returns [EObject current=null] : iv_rulePackageCS= rulePackageCS EOF ;
     public final EObject entryRulePackageCS() throws RecognitionException {
         EObject current = null;
 
@@ -8775,8 +8851,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:2995:2: (iv_rulePackageCS= rulePackageCS EOF )
-            // InternalOCLinEcore.g:2996:2: iv_rulePackageCS= rulePackageCS EOF
+            // InternalOCLinEcore.g:3027:2: (iv_rulePackageCS= rulePackageCS EOF )
+            // InternalOCLinEcore.g:3028:2: iv_rulePackageCS= rulePackageCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPackageCSRule()); 
@@ -8807,7 +8883,7 @@
 
 
     // $ANTLR start "rulePackageCS"
-    // InternalOCLinEcore.g:3003:1: rulePackageCS returns [EObject current=null] : (otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' ) ) ;
+    // InternalOCLinEcore.g:3035:1: rulePackageCS returns [EObject current=null] : (otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' ) ) ;
     public final EObject rulePackageCS() throws RecognitionException {
         EObject current = null;
 
@@ -8833,11 +8909,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:3006:28: ( (otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' ) ) )
-            // InternalOCLinEcore.g:3007:1: (otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' ) )
+            // InternalOCLinEcore.g:3038:28: ( (otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' ) ) )
+            // InternalOCLinEcore.g:3039:1: (otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' ) )
             {
-            // InternalOCLinEcore.g:3007:1: (otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' ) )
-            // InternalOCLinEcore.g:3007:3: otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' )
+            // InternalOCLinEcore.g:3039:1: (otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' ) )
+            // InternalOCLinEcore.g:3039:3: otherlv_0= 'package' ( (lv_name_1_0= ruleUnrestrictedName ) ) (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )? (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )? ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' )
             {
             otherlv_0=(Token)match(input,39,FollowSets000.FOLLOW_3); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -8845,11 +8921,11 @@
                   	newLeafNode(otherlv_0, grammarAccess.getPackageCSAccess().getPackageKeyword_0());
                   
             }
-            // InternalOCLinEcore.g:3011:1: ( (lv_name_1_0= ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:3012:1: (lv_name_1_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:3043:1: ( (lv_name_1_0= ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:3044:1: (lv_name_1_0= ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:3012:1: (lv_name_1_0= ruleUnrestrictedName )
-            // InternalOCLinEcore.g:3013:3: lv_name_1_0= ruleUnrestrictedName
+            // InternalOCLinEcore.g:3044:1: (lv_name_1_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:3045:3: lv_name_1_0= ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -8880,7 +8956,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3029:2: (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )?
+            // InternalOCLinEcore.g:3061:2: (otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) ) )?
             int alt84=2;
             int LA84_0 = input.LA(1);
 
@@ -8889,7 +8965,7 @@
             }
             switch (alt84) {
                 case 1 :
-                    // InternalOCLinEcore.g:3029:4: otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) )
+                    // InternalOCLinEcore.g:3061:4: otherlv_2= ':' ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) )
                     {
                     otherlv_2=(Token)match(input,56,FollowSets000.FOLLOW_3); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -8897,11 +8973,11 @@
                           	newLeafNode(otherlv_2, grammarAccess.getPackageCSAccess().getColonKeyword_2_0());
                           
                     }
-                    // InternalOCLinEcore.g:3033:1: ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) )
-                    // InternalOCLinEcore.g:3034:1: (lv_nsPrefix_3_0= ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:3065:1: ( (lv_nsPrefix_3_0= ruleUnrestrictedName ) )
+                    // InternalOCLinEcore.g:3066:1: (lv_nsPrefix_3_0= ruleUnrestrictedName )
                     {
-                    // InternalOCLinEcore.g:3034:1: (lv_nsPrefix_3_0= ruleUnrestrictedName )
-                    // InternalOCLinEcore.g:3035:3: lv_nsPrefix_3_0= ruleUnrestrictedName
+                    // InternalOCLinEcore.g:3066:1: (lv_nsPrefix_3_0= ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:3067:3: lv_nsPrefix_3_0= ruleUnrestrictedName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -8938,7 +9014,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3051:4: (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )?
+            // InternalOCLinEcore.g:3083:4: (otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) ) )?
             int alt85=2;
             int LA85_0 = input.LA(1);
 
@@ -8947,7 +9023,7 @@
             }
             switch (alt85) {
                 case 1 :
-                    // InternalOCLinEcore.g:3051:6: otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) )
+                    // InternalOCLinEcore.g:3083:6: otherlv_4= '=' ( (lv_nsURI_5_0= ruleURI ) )
                     {
                     otherlv_4=(Token)match(input,62,FollowSets000.FOLLOW_20); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -8955,11 +9031,11 @@
                           	newLeafNode(otherlv_4, grammarAccess.getPackageCSAccess().getEqualsSignKeyword_3_0());
                           
                     }
-                    // InternalOCLinEcore.g:3055:1: ( (lv_nsURI_5_0= ruleURI ) )
-                    // InternalOCLinEcore.g:3056:1: (lv_nsURI_5_0= ruleURI )
+                    // InternalOCLinEcore.g:3087:1: ( (lv_nsURI_5_0= ruleURI ) )
+                    // InternalOCLinEcore.g:3088:1: (lv_nsURI_5_0= ruleURI )
                     {
-                    // InternalOCLinEcore.g:3056:1: (lv_nsURI_5_0= ruleURI )
-                    // InternalOCLinEcore.g:3057:3: lv_nsURI_5_0= ruleURI
+                    // InternalOCLinEcore.g:3088:1: (lv_nsURI_5_0= ruleURI )
+                    // InternalOCLinEcore.g:3089:3: lv_nsURI_5_0= ruleURI
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -8996,7 +9072,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3073:4: ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' )
+            // InternalOCLinEcore.g:3105:4: ( (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' ) | otherlv_11= ';' )
             int alt87=2;
             int LA87_0 = input.LA(1);
 
@@ -9015,10 +9091,10 @@
             }
             switch (alt87) {
                 case 1 :
-                    // InternalOCLinEcore.g:3073:5: (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' )
+                    // InternalOCLinEcore.g:3105:5: (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' )
                     {
-                    // InternalOCLinEcore.g:3073:5: (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' )
-                    // InternalOCLinEcore.g:3073:7: otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}'
+                    // InternalOCLinEcore.g:3105:5: (otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}' )
+                    // InternalOCLinEcore.g:3105:7: otherlv_6= '{' ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )* otherlv_10= '}'
                     {
                     otherlv_6=(Token)match(input,60,FollowSets000.FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -9026,7 +9102,7 @@
                           	newLeafNode(otherlv_6, grammarAccess.getPackageCSAccess().getLeftCurlyBracketKeyword_4_0_0());
                           
                     }
-                    // InternalOCLinEcore.g:3077:1: ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )*
+                    // InternalOCLinEcore.g:3109:1: ( ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) ) | ( (lv_ownedPackages_8_0= rulePackageCS ) ) | ( (lv_ownedClasses_9_0= ruleClassCS ) ) )*
                     loop86:
                     do {
                         int alt86=4;
@@ -9057,13 +9133,13 @@
 
                         switch (alt86) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:3077:2: ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) )
+                    	    // InternalOCLinEcore.g:3109:2: ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:3077:2: ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) )
-                    	    // InternalOCLinEcore.g:3078:1: (lv_ownedAnnotations_7_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:3109:2: ( (lv_ownedAnnotations_7_0= ruleAnnotationElementCS ) )
+                    	    // InternalOCLinEcore.g:3110:1: (lv_ownedAnnotations_7_0= ruleAnnotationElementCS )
                     	    {
-                    	    // InternalOCLinEcore.g:3078:1: (lv_ownedAnnotations_7_0= ruleAnnotationElementCS )
-                    	    // InternalOCLinEcore.g:3079:3: lv_ownedAnnotations_7_0= ruleAnnotationElementCS
+                    	    // InternalOCLinEcore.g:3110:1: (lv_ownedAnnotations_7_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:3111:3: lv_ownedAnnotations_7_0= ruleAnnotationElementCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -9098,13 +9174,13 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalOCLinEcore.g:3096:6: ( (lv_ownedPackages_8_0= rulePackageCS ) )
+                    	    // InternalOCLinEcore.g:3128:6: ( (lv_ownedPackages_8_0= rulePackageCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:3096:6: ( (lv_ownedPackages_8_0= rulePackageCS ) )
-                    	    // InternalOCLinEcore.g:3097:1: (lv_ownedPackages_8_0= rulePackageCS )
+                    	    // InternalOCLinEcore.g:3128:6: ( (lv_ownedPackages_8_0= rulePackageCS ) )
+                    	    // InternalOCLinEcore.g:3129:1: (lv_ownedPackages_8_0= rulePackageCS )
                     	    {
-                    	    // InternalOCLinEcore.g:3097:1: (lv_ownedPackages_8_0= rulePackageCS )
-                    	    // InternalOCLinEcore.g:3098:3: lv_ownedPackages_8_0= rulePackageCS
+                    	    // InternalOCLinEcore.g:3129:1: (lv_ownedPackages_8_0= rulePackageCS )
+                    	    // InternalOCLinEcore.g:3130:3: lv_ownedPackages_8_0= rulePackageCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -9139,13 +9215,13 @@
                     	    }
                     	    break;
                     	case 3 :
-                    	    // InternalOCLinEcore.g:3115:6: ( (lv_ownedClasses_9_0= ruleClassCS ) )
+                    	    // InternalOCLinEcore.g:3147:6: ( (lv_ownedClasses_9_0= ruleClassCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:3115:6: ( (lv_ownedClasses_9_0= ruleClassCS ) )
-                    	    // InternalOCLinEcore.g:3116:1: (lv_ownedClasses_9_0= ruleClassCS )
+                    	    // InternalOCLinEcore.g:3147:6: ( (lv_ownedClasses_9_0= ruleClassCS ) )
+                    	    // InternalOCLinEcore.g:3148:1: (lv_ownedClasses_9_0= ruleClassCS )
                     	    {
-                    	    // InternalOCLinEcore.g:3116:1: (lv_ownedClasses_9_0= ruleClassCS )
-                    	    // InternalOCLinEcore.g:3117:3: lv_ownedClasses_9_0= ruleClassCS
+                    	    // InternalOCLinEcore.g:3148:1: (lv_ownedClasses_9_0= ruleClassCS )
+                    	    // InternalOCLinEcore.g:3149:3: lv_ownedClasses_9_0= ruleClassCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -9198,7 +9274,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:3138:7: otherlv_11= ';'
+                    // InternalOCLinEcore.g:3170:7: otherlv_11= ';'
                     {
                     otherlv_11=(Token)match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -9235,7 +9311,7 @@
 
 
     // $ANTLR start "entryRuleParameterCS"
-    // InternalOCLinEcore.g:3150:1: entryRuleParameterCS returns [EObject current=null] : iv_ruleParameterCS= ruleParameterCS EOF ;
+    // InternalOCLinEcore.g:3182:1: entryRuleParameterCS returns [EObject current=null] : iv_ruleParameterCS= ruleParameterCS EOF ;
     public final EObject entryRuleParameterCS() throws RecognitionException {
         EObject current = null;
 
@@ -9243,8 +9319,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:3151:2: (iv_ruleParameterCS= ruleParameterCS EOF )
-            // InternalOCLinEcore.g:3152:2: iv_ruleParameterCS= ruleParameterCS EOF
+            // InternalOCLinEcore.g:3183:2: (iv_ruleParameterCS= ruleParameterCS EOF )
+            // InternalOCLinEcore.g:3184:2: iv_ruleParameterCS= ruleParameterCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getParameterCSRule()); 
@@ -9275,7 +9351,7 @@
 
 
     // $ANTLR start "ruleParameterCS"
-    // InternalOCLinEcore.g:3159:1: ruleParameterCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )? ) ;
+    // InternalOCLinEcore.g:3191:1: ruleParameterCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )? ) ;
     public final EObject ruleParameterCS() throws RecognitionException {
         EObject current = null;
 
@@ -9299,17 +9375,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:3162:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )? ) )
-            // InternalOCLinEcore.g:3163:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )? )
+            // InternalOCLinEcore.g:3194:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )? ) )
+            // InternalOCLinEcore.g:3195:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )? )
             {
-            // InternalOCLinEcore.g:3163:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )? )
-            // InternalOCLinEcore.g:3163:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )?
+            // InternalOCLinEcore.g:3195:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )? )
+            // InternalOCLinEcore.g:3195:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )? (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )?
             {
-            // InternalOCLinEcore.g:3163:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:3164:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:3195:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:3196:1: (lv_name_0_0= ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:3164:1: (lv_name_0_0= ruleUnrestrictedName )
-            // InternalOCLinEcore.g:3165:3: lv_name_0_0= ruleUnrestrictedName
+            // InternalOCLinEcore.g:3196:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:3197:3: lv_name_0_0= ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -9340,7 +9416,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3181:2: (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )?
+            // InternalOCLinEcore.g:3213:2: (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) ) )?
             int alt88=2;
             int LA88_0 = input.LA(1);
 
@@ -9349,7 +9425,7 @@
             }
             switch (alt88) {
                 case 1 :
-                    // InternalOCLinEcore.g:3181:4: otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) )
+                    // InternalOCLinEcore.g:3213:4: otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) )
                     {
                     otherlv_1=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -9357,11 +9433,11 @@
                           	newLeafNode(otherlv_1, grammarAccess.getParameterCSAccess().getColonKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:3185:1: ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) )
-                    // InternalOCLinEcore.g:3186:1: (lv_ownedType_2_0= ruleTypedMultiplicityRefCS )
+                    // InternalOCLinEcore.g:3217:1: ( (lv_ownedType_2_0= ruleTypedMultiplicityRefCS ) )
+                    // InternalOCLinEcore.g:3218:1: (lv_ownedType_2_0= ruleTypedMultiplicityRefCS )
                     {
-                    // InternalOCLinEcore.g:3186:1: (lv_ownedType_2_0= ruleTypedMultiplicityRefCS )
-                    // InternalOCLinEcore.g:3187:3: lv_ownedType_2_0= ruleTypedMultiplicityRefCS
+                    // InternalOCLinEcore.g:3218:1: (lv_ownedType_2_0= ruleTypedMultiplicityRefCS )
+                    // InternalOCLinEcore.g:3219:3: lv_ownedType_2_0= ruleTypedMultiplicityRefCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -9398,7 +9474,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3203:4: (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )?
+            // InternalOCLinEcore.g:3235:4: (otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}' )?
             int alt92=2;
             int LA92_0 = input.LA(1);
 
@@ -9411,7 +9487,7 @@
             }
             switch (alt92) {
                 case 1 :
-                    // InternalOCLinEcore.g:3203:6: otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}'
+                    // InternalOCLinEcore.g:3235:6: otherlv_3= '{' ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+ otherlv_9= '}'
                     {
                     otherlv_3=(Token)match(input,60,FollowSets000.FOLLOW_66); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -9419,7 +9495,7 @@
                           	newLeafNode(otherlv_3, grammarAccess.getParameterCSAccess().getLeftCurlyBracketKeyword_2_0());
                           
                     }
-                    // InternalOCLinEcore.g:3207:1: ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+
+                    // InternalOCLinEcore.g:3239:1: ( ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )? )+
                     int cnt91=0;
                     loop91:
                     do {
@@ -9433,9 +9509,9 @@
 
                         switch (alt91) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:3207:2: ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )?
+                    	    // InternalOCLinEcore.g:3239:2: ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) ) (otherlv_8= ',' )?
                     	    {
-                    	    // InternalOCLinEcore.g:3207:2: ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) )
+                    	    // InternalOCLinEcore.g:3239:2: ( ( (lv_qualifiers_4_0= 'ordered' ) ) | ( (lv_qualifiers_5_0= '!ordered' ) ) | ( (lv_qualifiers_6_0= 'unique' ) ) | ( (lv_qualifiers_7_0= '!unique' ) ) )
                     	    int alt89=4;
                     	    switch ( input.LA(1) ) {
                     	    case 38:
@@ -9468,13 +9544,13 @@
 
                     	    switch (alt89) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:3207:3: ( (lv_qualifiers_4_0= 'ordered' ) )
+                    	            // InternalOCLinEcore.g:3239:3: ( (lv_qualifiers_4_0= 'ordered' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3207:3: ( (lv_qualifiers_4_0= 'ordered' ) )
-                    	            // InternalOCLinEcore.g:3208:1: (lv_qualifiers_4_0= 'ordered' )
+                    	            // InternalOCLinEcore.g:3239:3: ( (lv_qualifiers_4_0= 'ordered' ) )
+                    	            // InternalOCLinEcore.g:3240:1: (lv_qualifiers_4_0= 'ordered' )
                     	            {
-                    	            // InternalOCLinEcore.g:3208:1: (lv_qualifiers_4_0= 'ordered' )
-                    	            // InternalOCLinEcore.g:3209:3: lv_qualifiers_4_0= 'ordered'
+                    	            // InternalOCLinEcore.g:3240:1: (lv_qualifiers_4_0= 'ordered' )
+                    	            // InternalOCLinEcore.g:3241:3: lv_qualifiers_4_0= 'ordered'
                     	            {
                     	            lv_qualifiers_4_0=(Token)match(input,38,FollowSets000.FOLLOW_67); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -9500,13 +9576,13 @@
                     	            }
                     	            break;
                     	        case 2 :
-                    	            // InternalOCLinEcore.g:3223:6: ( (lv_qualifiers_5_0= '!ordered' ) )
+                    	            // InternalOCLinEcore.g:3255:6: ( (lv_qualifiers_5_0= '!ordered' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3223:6: ( (lv_qualifiers_5_0= '!ordered' ) )
-                    	            // InternalOCLinEcore.g:3224:1: (lv_qualifiers_5_0= '!ordered' )
+                    	            // InternalOCLinEcore.g:3255:6: ( (lv_qualifiers_5_0= '!ordered' ) )
+                    	            // InternalOCLinEcore.g:3256:1: (lv_qualifiers_5_0= '!ordered' )
                     	            {
-                    	            // InternalOCLinEcore.g:3224:1: (lv_qualifiers_5_0= '!ordered' )
-                    	            // InternalOCLinEcore.g:3225:3: lv_qualifiers_5_0= '!ordered'
+                    	            // InternalOCLinEcore.g:3256:1: (lv_qualifiers_5_0= '!ordered' )
+                    	            // InternalOCLinEcore.g:3257:3: lv_qualifiers_5_0= '!ordered'
                     	            {
                     	            lv_qualifiers_5_0=(Token)match(input,65,FollowSets000.FOLLOW_67); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -9532,13 +9608,13 @@
                     	            }
                     	            break;
                     	        case 3 :
-                    	            // InternalOCLinEcore.g:3239:6: ( (lv_qualifiers_6_0= 'unique' ) )
+                    	            // InternalOCLinEcore.g:3271:6: ( (lv_qualifiers_6_0= 'unique' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3239:6: ( (lv_qualifiers_6_0= 'unique' ) )
-                    	            // InternalOCLinEcore.g:3240:1: (lv_qualifiers_6_0= 'unique' )
+                    	            // InternalOCLinEcore.g:3271:6: ( (lv_qualifiers_6_0= 'unique' ) )
+                    	            // InternalOCLinEcore.g:3272:1: (lv_qualifiers_6_0= 'unique' )
                     	            {
-                    	            // InternalOCLinEcore.g:3240:1: (lv_qualifiers_6_0= 'unique' )
-                    	            // InternalOCLinEcore.g:3241:3: lv_qualifiers_6_0= 'unique'
+                    	            // InternalOCLinEcore.g:3272:1: (lv_qualifiers_6_0= 'unique' )
+                    	            // InternalOCLinEcore.g:3273:3: lv_qualifiers_6_0= 'unique'
                     	            {
                     	            lv_qualifiers_6_0=(Token)match(input,50,FollowSets000.FOLLOW_67); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -9564,13 +9640,13 @@
                     	            }
                     	            break;
                     	        case 4 :
-                    	            // InternalOCLinEcore.g:3255:6: ( (lv_qualifiers_7_0= '!unique' ) )
+                    	            // InternalOCLinEcore.g:3287:6: ( (lv_qualifiers_7_0= '!unique' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3255:6: ( (lv_qualifiers_7_0= '!unique' ) )
-                    	            // InternalOCLinEcore.g:3256:1: (lv_qualifiers_7_0= '!unique' )
+                    	            // InternalOCLinEcore.g:3287:6: ( (lv_qualifiers_7_0= '!unique' ) )
+                    	            // InternalOCLinEcore.g:3288:1: (lv_qualifiers_7_0= '!unique' )
                     	            {
-                    	            // InternalOCLinEcore.g:3256:1: (lv_qualifiers_7_0= '!unique' )
-                    	            // InternalOCLinEcore.g:3257:3: lv_qualifiers_7_0= '!unique'
+                    	            // InternalOCLinEcore.g:3288:1: (lv_qualifiers_7_0= '!unique' )
+                    	            // InternalOCLinEcore.g:3289:3: lv_qualifiers_7_0= '!unique'
                     	            {
                     	            lv_qualifiers_7_0=(Token)match(input,68,FollowSets000.FOLLOW_67); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -9598,7 +9674,7 @@
 
                     	    }
 
-                    	    // InternalOCLinEcore.g:3270:3: (otherlv_8= ',' )?
+                    	    // InternalOCLinEcore.g:3302:3: (otherlv_8= ',' )?
                     	    int alt90=2;
                     	    int LA90_0 = input.LA(1);
 
@@ -9607,7 +9683,7 @@
                     	    }
                     	    switch (alt90) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:3270:5: otherlv_8= ','
+                    	            // InternalOCLinEcore.g:3302:5: otherlv_8= ','
                     	            {
                     	            otherlv_8=(Token)match(input,59,FollowSets000.FOLLOW_68); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -9647,7 +9723,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3278:3: (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )?
+            // InternalOCLinEcore.g:3310:3: (otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}' )?
             int alt94=2;
             int LA94_0 = input.LA(1);
 
@@ -9656,7 +9732,7 @@
             }
             switch (alt94) {
                 case 1 :
-                    // InternalOCLinEcore.g:3278:5: otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}'
+                    // InternalOCLinEcore.g:3310:5: otherlv_10= '{' ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )* otherlv_12= '}'
                     {
                     otherlv_10=(Token)match(input,60,FollowSets000.FOLLOW_48); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -9664,7 +9740,7 @@
                           	newLeafNode(otherlv_10, grammarAccess.getParameterCSAccess().getLeftCurlyBracketKeyword_3_0());
                           
                     }
-                    // InternalOCLinEcore.g:3282:1: ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )*
+                    // InternalOCLinEcore.g:3314:1: ( (lv_ownedAnnotations_11_0= ruleAnnotationElementCS ) )*
                     loop93:
                     do {
                         int alt93=2;
@@ -9677,10 +9753,10 @@
 
                         switch (alt93) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:3283:1: (lv_ownedAnnotations_11_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:3315:1: (lv_ownedAnnotations_11_0= ruleAnnotationElementCS )
                     	    {
-                    	    // InternalOCLinEcore.g:3283:1: (lv_ownedAnnotations_11_0= ruleAnnotationElementCS )
-                    	    // InternalOCLinEcore.g:3284:3: lv_ownedAnnotations_11_0= ruleAnnotationElementCS
+                    	    // InternalOCLinEcore.g:3315:1: (lv_ownedAnnotations_11_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:3316:3: lv_ownedAnnotations_11_0= ruleAnnotationElementCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -9752,7 +9828,7 @@
 
 
     // $ANTLR start "entryRuleReferenceCS"
-    // InternalOCLinEcore.g:3312:1: entryRuleReferenceCS returns [EObject current=null] : iv_ruleReferenceCS= ruleReferenceCS EOF ;
+    // InternalOCLinEcore.g:3344:1: entryRuleReferenceCS returns [EObject current=null] : iv_ruleReferenceCS= ruleReferenceCS EOF ;
     public final EObject entryRuleReferenceCS() throws RecognitionException {
         EObject current = null;
 
@@ -9760,8 +9836,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:3313:2: (iv_ruleReferenceCS= ruleReferenceCS EOF )
-            // InternalOCLinEcore.g:3314:2: iv_ruleReferenceCS= ruleReferenceCS EOF
+            // InternalOCLinEcore.g:3345:2: (iv_ruleReferenceCS= ruleReferenceCS EOF )
+            // InternalOCLinEcore.g:3346:2: iv_ruleReferenceCS= ruleReferenceCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getReferenceCSRule()); 
@@ -9792,7 +9868,7 @@
 
 
     // $ANTLR start "ruleReferenceCS"
-    // InternalOCLinEcore.g:3321:1: ruleReferenceCS returns [EObject current=null] : ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' ) ) ;
+    // InternalOCLinEcore.g:3353:1: ruleReferenceCS returns [EObject current=null] : ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' ) ) ;
     public final EObject ruleReferenceCS() throws RecognitionException {
         EObject current = null;
 
@@ -9852,13 +9928,13 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:3324:28: ( ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' ) ) )
-            // InternalOCLinEcore.g:3325:1: ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' ) )
+            // InternalOCLinEcore.g:3356:28: ( ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' ) ) )
+            // InternalOCLinEcore.g:3357:1: ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' ) )
             {
-            // InternalOCLinEcore.g:3325:1: ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' ) )
-            // InternalOCLinEcore.g:3325:2: ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' )
+            // InternalOCLinEcore.g:3357:1: ( ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' ) )
+            // InternalOCLinEcore.g:3357:2: ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )? otherlv_4= 'property' ( (lv_name_5_0= ruleUnrestrictedName ) ) (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )? (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )? (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )? ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' )
             {
-            // InternalOCLinEcore.g:3325:2: ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )?
+            // InternalOCLinEcore.g:3357:2: ( ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? ) | ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? ) )?
             int alt97=3;
             int LA97_0 = input.LA(1);
 
@@ -9870,16 +9946,16 @@
             }
             switch (alt97) {
                 case 1 :
-                    // InternalOCLinEcore.g:3325:3: ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? )
+                    // InternalOCLinEcore.g:3357:3: ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? )
                     {
-                    // InternalOCLinEcore.g:3325:3: ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? )
-                    // InternalOCLinEcore.g:3325:4: ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )?
+                    // InternalOCLinEcore.g:3357:3: ( ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )? )
+                    // InternalOCLinEcore.g:3357:4: ( (lv_qualifiers_0_0= 'static' ) ) ( (lv_qualifiers_1_0= 'definition' ) )?
                     {
-                    // InternalOCLinEcore.g:3325:4: ( (lv_qualifiers_0_0= 'static' ) )
-                    // InternalOCLinEcore.g:3326:1: (lv_qualifiers_0_0= 'static' )
+                    // InternalOCLinEcore.g:3357:4: ( (lv_qualifiers_0_0= 'static' ) )
+                    // InternalOCLinEcore.g:3358:1: (lv_qualifiers_0_0= 'static' )
                     {
-                    // InternalOCLinEcore.g:3326:1: (lv_qualifiers_0_0= 'static' )
-                    // InternalOCLinEcore.g:3327:3: lv_qualifiers_0_0= 'static'
+                    // InternalOCLinEcore.g:3358:1: (lv_qualifiers_0_0= 'static' )
+                    // InternalOCLinEcore.g:3359:3: lv_qualifiers_0_0= 'static'
                     {
                     lv_qualifiers_0_0=(Token)match(input,47,FollowSets000.FOLLOW_69); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -9901,7 +9977,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:3340:2: ( (lv_qualifiers_1_0= 'definition' ) )?
+                    // InternalOCLinEcore.g:3372:2: ( (lv_qualifiers_1_0= 'definition' ) )?
                     int alt95=2;
                     int LA95_0 = input.LA(1);
 
@@ -9910,10 +9986,10 @@
                     }
                     switch (alt95) {
                         case 1 :
-                            // InternalOCLinEcore.g:3341:1: (lv_qualifiers_1_0= 'definition' )
+                            // InternalOCLinEcore.g:3373:1: (lv_qualifiers_1_0= 'definition' )
                             {
-                            // InternalOCLinEcore.g:3341:1: (lv_qualifiers_1_0= 'definition' )
-                            // InternalOCLinEcore.g:3342:3: lv_qualifiers_1_0= 'definition'
+                            // InternalOCLinEcore.g:3373:1: (lv_qualifiers_1_0= 'definition' )
+                            // InternalOCLinEcore.g:3374:3: lv_qualifiers_1_0= 'definition'
                             {
                             lv_qualifiers_1_0=(Token)match(input,26,FollowSets000.FOLLOW_70); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -9945,16 +10021,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:3356:6: ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? )
+                    // InternalOCLinEcore.g:3388:6: ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? )
                     {
-                    // InternalOCLinEcore.g:3356:6: ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? )
-                    // InternalOCLinEcore.g:3356:7: ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )?
+                    // InternalOCLinEcore.g:3388:6: ( ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )? )
+                    // InternalOCLinEcore.g:3388:7: ( (lv_qualifiers_2_0= 'definition' ) ) ( (lv_qualifiers_3_0= 'static' ) )?
                     {
-                    // InternalOCLinEcore.g:3356:7: ( (lv_qualifiers_2_0= 'definition' ) )
-                    // InternalOCLinEcore.g:3357:1: (lv_qualifiers_2_0= 'definition' )
+                    // InternalOCLinEcore.g:3388:7: ( (lv_qualifiers_2_0= 'definition' ) )
+                    // InternalOCLinEcore.g:3389:1: (lv_qualifiers_2_0= 'definition' )
                     {
-                    // InternalOCLinEcore.g:3357:1: (lv_qualifiers_2_0= 'definition' )
-                    // InternalOCLinEcore.g:3358:3: lv_qualifiers_2_0= 'definition'
+                    // InternalOCLinEcore.g:3389:1: (lv_qualifiers_2_0= 'definition' )
+                    // InternalOCLinEcore.g:3390:3: lv_qualifiers_2_0= 'definition'
                     {
                     lv_qualifiers_2_0=(Token)match(input,26,FollowSets000.FOLLOW_71); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -9976,7 +10052,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:3371:2: ( (lv_qualifiers_3_0= 'static' ) )?
+                    // InternalOCLinEcore.g:3403:2: ( (lv_qualifiers_3_0= 'static' ) )?
                     int alt96=2;
                     int LA96_0 = input.LA(1);
 
@@ -9985,10 +10061,10 @@
                     }
                     switch (alt96) {
                         case 1 :
-                            // InternalOCLinEcore.g:3372:1: (lv_qualifiers_3_0= 'static' )
+                            // InternalOCLinEcore.g:3404:1: (lv_qualifiers_3_0= 'static' )
                             {
-                            // InternalOCLinEcore.g:3372:1: (lv_qualifiers_3_0= 'static' )
-                            // InternalOCLinEcore.g:3373:3: lv_qualifiers_3_0= 'static'
+                            // InternalOCLinEcore.g:3404:1: (lv_qualifiers_3_0= 'static' )
+                            // InternalOCLinEcore.g:3405:3: lv_qualifiers_3_0= 'static'
                             {
                             lv_qualifiers_3_0=(Token)match(input,47,FollowSets000.FOLLOW_70); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -10028,11 +10104,11 @@
                   	newLeafNode(otherlv_4, grammarAccess.getReferenceCSAccess().getPropertyKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:3390:1: ( (lv_name_5_0= ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:3391:1: (lv_name_5_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:3422:1: ( (lv_name_5_0= ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:3423:1: (lv_name_5_0= ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:3391:1: (lv_name_5_0= ruleUnrestrictedName )
-            // InternalOCLinEcore.g:3392:3: lv_name_5_0= ruleUnrestrictedName
+            // InternalOCLinEcore.g:3423:1: (lv_name_5_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:3424:3: lv_name_5_0= ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -10063,7 +10139,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3408:2: (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )?
+            // InternalOCLinEcore.g:3440:2: (otherlv_6= '#' ( ( ruleUnrestrictedName ) ) )?
             int alt98=2;
             int LA98_0 = input.LA(1);
 
@@ -10072,7 +10148,7 @@
             }
             switch (alt98) {
                 case 1 :
-                    // InternalOCLinEcore.g:3408:4: otherlv_6= '#' ( ( ruleUnrestrictedName ) )
+                    // InternalOCLinEcore.g:3440:4: otherlv_6= '#' ( ( ruleUnrestrictedName ) )
                     {
                     otherlv_6=(Token)match(input,76,FollowSets000.FOLLOW_3); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -10080,11 +10156,11 @@
                           	newLeafNode(otherlv_6, grammarAccess.getReferenceCSAccess().getNumberSignKeyword_3_0());
                           
                     }
-                    // InternalOCLinEcore.g:3412:1: ( ( ruleUnrestrictedName ) )
-                    // InternalOCLinEcore.g:3413:1: ( ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:3444:1: ( ( ruleUnrestrictedName ) )
+                    // InternalOCLinEcore.g:3445:1: ( ruleUnrestrictedName )
                     {
-                    // InternalOCLinEcore.g:3413:1: ( ruleUnrestrictedName )
-                    // InternalOCLinEcore.g:3414:3: ruleUnrestrictedName
+                    // InternalOCLinEcore.g:3445:1: ( ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:3446:3: ruleUnrestrictedName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -10125,7 +10201,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3430:4: (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )?
+            // InternalOCLinEcore.g:3462:4: (otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) ) )?
             int alt99=2;
             int LA99_0 = input.LA(1);
 
@@ -10134,7 +10210,7 @@
             }
             switch (alt99) {
                 case 1 :
-                    // InternalOCLinEcore.g:3430:6: otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) )
+                    // InternalOCLinEcore.g:3462:6: otherlv_8= ':' ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) )
                     {
                     otherlv_8=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -10142,11 +10218,11 @@
                           	newLeafNode(otherlv_8, grammarAccess.getReferenceCSAccess().getColonKeyword_4_0());
                           
                     }
-                    // InternalOCLinEcore.g:3434:1: ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) )
-                    // InternalOCLinEcore.g:3435:1: (lv_ownedType_9_0= ruleTypedMultiplicityRefCS )
+                    // InternalOCLinEcore.g:3466:1: ( (lv_ownedType_9_0= ruleTypedMultiplicityRefCS ) )
+                    // InternalOCLinEcore.g:3467:1: (lv_ownedType_9_0= ruleTypedMultiplicityRefCS )
                     {
-                    // InternalOCLinEcore.g:3435:1: (lv_ownedType_9_0= ruleTypedMultiplicityRefCS )
-                    // InternalOCLinEcore.g:3436:3: lv_ownedType_9_0= ruleTypedMultiplicityRefCS
+                    // InternalOCLinEcore.g:3467:1: (lv_ownedType_9_0= ruleTypedMultiplicityRefCS )
+                    // InternalOCLinEcore.g:3468:3: lv_ownedType_9_0= ruleTypedMultiplicityRefCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -10183,7 +10259,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3452:4: (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )?
+            // InternalOCLinEcore.g:3484:4: (otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) ) )?
             int alt100=2;
             int LA100_0 = input.LA(1);
 
@@ -10192,7 +10268,7 @@
             }
             switch (alt100) {
                 case 1 :
-                    // InternalOCLinEcore.g:3452:6: otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) )
+                    // InternalOCLinEcore.g:3484:6: otherlv_10= '=' ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) )
                     {
                     otherlv_10=(Token)match(input,62,FollowSets000.FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -10200,11 +10276,11 @@
                           	newLeafNode(otherlv_10, grammarAccess.getReferenceCSAccess().getEqualsSignKeyword_5_0());
                           
                     }
-                    // InternalOCLinEcore.g:3456:1: ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) )
-                    // InternalOCLinEcore.g:3457:1: (lv_default_11_0= RULE_SINGLE_QUOTED_STRING )
+                    // InternalOCLinEcore.g:3488:1: ( (lv_default_11_0= RULE_SINGLE_QUOTED_STRING ) )
+                    // InternalOCLinEcore.g:3489:1: (lv_default_11_0= RULE_SINGLE_QUOTED_STRING )
                     {
-                    // InternalOCLinEcore.g:3457:1: (lv_default_11_0= RULE_SINGLE_QUOTED_STRING )
-                    // InternalOCLinEcore.g:3458:3: lv_default_11_0= RULE_SINGLE_QUOTED_STRING
+                    // InternalOCLinEcore.g:3489:1: (lv_default_11_0= RULE_SINGLE_QUOTED_STRING )
+                    // InternalOCLinEcore.g:3490:3: lv_default_11_0= RULE_SINGLE_QUOTED_STRING
                     {
                     lv_default_11_0=(Token)match(input,RULE_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_22); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -10236,7 +10312,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3474:4: (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )?
+            // InternalOCLinEcore.g:3506:4: (otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}' )?
             int alt104=2;
             int LA104_0 = input.LA(1);
 
@@ -10249,7 +10325,7 @@
             }
             switch (alt104) {
                 case 1 :
-                    // InternalOCLinEcore.g:3474:6: otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}'
+                    // InternalOCLinEcore.g:3506:6: otherlv_12= '{' ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+ otherlv_32= '}'
                     {
                     otherlv_12=(Token)match(input,60,FollowSets000.FOLLOW_73); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -10257,7 +10333,7 @@
                           	newLeafNode(otherlv_12, grammarAccess.getReferenceCSAccess().getLeftCurlyBracketKeyword_6_0());
                           
                     }
-                    // InternalOCLinEcore.g:3478:1: ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+
+                    // InternalOCLinEcore.g:3510:1: ( ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )? )+
                     int cnt103=0;
                     loop103:
                     do {
@@ -10271,9 +10347,9 @@
 
                         switch (alt103) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:3478:2: ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )?
+                    	    // InternalOCLinEcore.g:3510:2: ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) ) (otherlv_31= ',' )?
                     	    {
-                    	    // InternalOCLinEcore.g:3478:2: ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) )
+                    	    // InternalOCLinEcore.g:3510:2: ( ( (lv_qualifiers_13_0= 'composes' ) ) | ( (lv_qualifiers_14_0= '!composes' ) ) | ( (lv_qualifiers_15_0= 'derived' ) ) | ( (lv_qualifiers_16_0= '!derived' ) ) | ( (lv_qualifiers_17_0= 'ordered' ) ) | ( (lv_qualifiers_18_0= '!ordered' ) ) | ( (lv_qualifiers_19_0= 'readonly' ) ) | ( (lv_qualifiers_20_0= '!readonly' ) ) | ( (lv_qualifiers_21_0= 'resolve' ) ) | ( (lv_qualifiers_22_0= '!resolve' ) ) | ( (lv_qualifiers_23_0= 'transient' ) ) | ( (lv_qualifiers_24_0= '!transient' ) ) | ( (lv_qualifiers_25_0= 'unique' ) ) | ( (lv_qualifiers_26_0= '!unique' ) ) | ( (lv_qualifiers_27_0= 'unsettable' ) ) | ( (lv_qualifiers_28_0= '!unsettable' ) ) | ( (lv_qualifiers_29_0= 'volatile' ) ) | ( (lv_qualifiers_30_0= '!volatile' ) ) )
                     	    int alt101=18;
                     	    switch ( input.LA(1) ) {
                     	    case 24:
@@ -10376,13 +10452,13 @@
 
                     	    switch (alt101) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:3478:3: ( (lv_qualifiers_13_0= 'composes' ) )
+                    	            // InternalOCLinEcore.g:3510:3: ( (lv_qualifiers_13_0= 'composes' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3478:3: ( (lv_qualifiers_13_0= 'composes' ) )
-                    	            // InternalOCLinEcore.g:3479:1: (lv_qualifiers_13_0= 'composes' )
+                    	            // InternalOCLinEcore.g:3510:3: ( (lv_qualifiers_13_0= 'composes' ) )
+                    	            // InternalOCLinEcore.g:3511:1: (lv_qualifiers_13_0= 'composes' )
                     	            {
-                    	            // InternalOCLinEcore.g:3479:1: (lv_qualifiers_13_0= 'composes' )
-                    	            // InternalOCLinEcore.g:3480:3: lv_qualifiers_13_0= 'composes'
+                    	            // InternalOCLinEcore.g:3511:1: (lv_qualifiers_13_0= 'composes' )
+                    	            // InternalOCLinEcore.g:3512:3: lv_qualifiers_13_0= 'composes'
                     	            {
                     	            lv_qualifiers_13_0=(Token)match(input,24,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10408,13 +10484,13 @@
                     	            }
                     	            break;
                     	        case 2 :
-                    	            // InternalOCLinEcore.g:3494:6: ( (lv_qualifiers_14_0= '!composes' ) )
+                    	            // InternalOCLinEcore.g:3526:6: ( (lv_qualifiers_14_0= '!composes' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3494:6: ( (lv_qualifiers_14_0= '!composes' ) )
-                    	            // InternalOCLinEcore.g:3495:1: (lv_qualifiers_14_0= '!composes' )
+                    	            // InternalOCLinEcore.g:3526:6: ( (lv_qualifiers_14_0= '!composes' ) )
+                    	            // InternalOCLinEcore.g:3527:1: (lv_qualifiers_14_0= '!composes' )
                     	            {
-                    	            // InternalOCLinEcore.g:3495:1: (lv_qualifiers_14_0= '!composes' )
-                    	            // InternalOCLinEcore.g:3496:3: lv_qualifiers_14_0= '!composes'
+                    	            // InternalOCLinEcore.g:3527:1: (lv_qualifiers_14_0= '!composes' )
+                    	            // InternalOCLinEcore.g:3528:3: lv_qualifiers_14_0= '!composes'
                     	            {
                     	            lv_qualifiers_14_0=(Token)match(input,77,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10440,13 +10516,13 @@
                     	            }
                     	            break;
                     	        case 3 :
-                    	            // InternalOCLinEcore.g:3510:6: ( (lv_qualifiers_15_0= 'derived' ) )
+                    	            // InternalOCLinEcore.g:3542:6: ( (lv_qualifiers_15_0= 'derived' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3510:6: ( (lv_qualifiers_15_0= 'derived' ) )
-                    	            // InternalOCLinEcore.g:3511:1: (lv_qualifiers_15_0= 'derived' )
+                    	            // InternalOCLinEcore.g:3542:6: ( (lv_qualifiers_15_0= 'derived' ) )
+                    	            // InternalOCLinEcore.g:3543:1: (lv_qualifiers_15_0= 'derived' )
                     	            {
-                    	            // InternalOCLinEcore.g:3511:1: (lv_qualifiers_15_0= 'derived' )
-                    	            // InternalOCLinEcore.g:3512:3: lv_qualifiers_15_0= 'derived'
+                    	            // InternalOCLinEcore.g:3543:1: (lv_qualifiers_15_0= 'derived' )
+                    	            // InternalOCLinEcore.g:3544:3: lv_qualifiers_15_0= 'derived'
                     	            {
                     	            lv_qualifiers_15_0=(Token)match(input,28,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10472,13 +10548,13 @@
                     	            }
                     	            break;
                     	        case 4 :
-                    	            // InternalOCLinEcore.g:3526:6: ( (lv_qualifiers_16_0= '!derived' ) )
+                    	            // InternalOCLinEcore.g:3558:6: ( (lv_qualifiers_16_0= '!derived' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3526:6: ( (lv_qualifiers_16_0= '!derived' ) )
-                    	            // InternalOCLinEcore.g:3527:1: (lv_qualifiers_16_0= '!derived' )
+                    	            // InternalOCLinEcore.g:3558:6: ( (lv_qualifiers_16_0= '!derived' ) )
+                    	            // InternalOCLinEcore.g:3559:1: (lv_qualifiers_16_0= '!derived' )
                     	            {
-                    	            // InternalOCLinEcore.g:3527:1: (lv_qualifiers_16_0= '!derived' )
-                    	            // InternalOCLinEcore.g:3528:3: lv_qualifiers_16_0= '!derived'
+                    	            // InternalOCLinEcore.g:3559:1: (lv_qualifiers_16_0= '!derived' )
+                    	            // InternalOCLinEcore.g:3560:3: lv_qualifiers_16_0= '!derived'
                     	            {
                     	            lv_qualifiers_16_0=(Token)match(input,63,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10504,13 +10580,13 @@
                     	            }
                     	            break;
                     	        case 5 :
-                    	            // InternalOCLinEcore.g:3542:6: ( (lv_qualifiers_17_0= 'ordered' ) )
+                    	            // InternalOCLinEcore.g:3574:6: ( (lv_qualifiers_17_0= 'ordered' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3542:6: ( (lv_qualifiers_17_0= 'ordered' ) )
-                    	            // InternalOCLinEcore.g:3543:1: (lv_qualifiers_17_0= 'ordered' )
+                    	            // InternalOCLinEcore.g:3574:6: ( (lv_qualifiers_17_0= 'ordered' ) )
+                    	            // InternalOCLinEcore.g:3575:1: (lv_qualifiers_17_0= 'ordered' )
                     	            {
-                    	            // InternalOCLinEcore.g:3543:1: (lv_qualifiers_17_0= 'ordered' )
-                    	            // InternalOCLinEcore.g:3544:3: lv_qualifiers_17_0= 'ordered'
+                    	            // InternalOCLinEcore.g:3575:1: (lv_qualifiers_17_0= 'ordered' )
+                    	            // InternalOCLinEcore.g:3576:3: lv_qualifiers_17_0= 'ordered'
                     	            {
                     	            lv_qualifiers_17_0=(Token)match(input,38,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10536,13 +10612,13 @@
                     	            }
                     	            break;
                     	        case 6 :
-                    	            // InternalOCLinEcore.g:3558:6: ( (lv_qualifiers_18_0= '!ordered' ) )
+                    	            // InternalOCLinEcore.g:3590:6: ( (lv_qualifiers_18_0= '!ordered' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3558:6: ( (lv_qualifiers_18_0= '!ordered' ) )
-                    	            // InternalOCLinEcore.g:3559:1: (lv_qualifiers_18_0= '!ordered' )
+                    	            // InternalOCLinEcore.g:3590:6: ( (lv_qualifiers_18_0= '!ordered' ) )
+                    	            // InternalOCLinEcore.g:3591:1: (lv_qualifiers_18_0= '!ordered' )
                     	            {
-                    	            // InternalOCLinEcore.g:3559:1: (lv_qualifiers_18_0= '!ordered' )
-                    	            // InternalOCLinEcore.g:3560:3: lv_qualifiers_18_0= '!ordered'
+                    	            // InternalOCLinEcore.g:3591:1: (lv_qualifiers_18_0= '!ordered' )
+                    	            // InternalOCLinEcore.g:3592:3: lv_qualifiers_18_0= '!ordered'
                     	            {
                     	            lv_qualifiers_18_0=(Token)match(input,65,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10568,13 +10644,13 @@
                     	            }
                     	            break;
                     	        case 7 :
-                    	            // InternalOCLinEcore.g:3574:6: ( (lv_qualifiers_19_0= 'readonly' ) )
+                    	            // InternalOCLinEcore.g:3606:6: ( (lv_qualifiers_19_0= 'readonly' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3574:6: ( (lv_qualifiers_19_0= 'readonly' ) )
-                    	            // InternalOCLinEcore.g:3575:1: (lv_qualifiers_19_0= 'readonly' )
+                    	            // InternalOCLinEcore.g:3606:6: ( (lv_qualifiers_19_0= 'readonly' ) )
+                    	            // InternalOCLinEcore.g:3607:1: (lv_qualifiers_19_0= 'readonly' )
                     	            {
-                    	            // InternalOCLinEcore.g:3575:1: (lv_qualifiers_19_0= 'readonly' )
-                    	            // InternalOCLinEcore.g:3576:3: lv_qualifiers_19_0= 'readonly'
+                    	            // InternalOCLinEcore.g:3607:1: (lv_qualifiers_19_0= 'readonly' )
+                    	            // InternalOCLinEcore.g:3608:3: lv_qualifiers_19_0= 'readonly'
                     	            {
                     	            lv_qualifiers_19_0=(Token)match(input,44,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10600,13 +10676,13 @@
                     	            }
                     	            break;
                     	        case 8 :
-                    	            // InternalOCLinEcore.g:3590:6: ( (lv_qualifiers_20_0= '!readonly' ) )
+                    	            // InternalOCLinEcore.g:3622:6: ( (lv_qualifiers_20_0= '!readonly' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3590:6: ( (lv_qualifiers_20_0= '!readonly' ) )
-                    	            // InternalOCLinEcore.g:3591:1: (lv_qualifiers_20_0= '!readonly' )
+                    	            // InternalOCLinEcore.g:3622:6: ( (lv_qualifiers_20_0= '!readonly' ) )
+                    	            // InternalOCLinEcore.g:3623:1: (lv_qualifiers_20_0= '!readonly' )
                     	            {
-                    	            // InternalOCLinEcore.g:3591:1: (lv_qualifiers_20_0= '!readonly' )
-                    	            // InternalOCLinEcore.g:3592:3: lv_qualifiers_20_0= '!readonly'
+                    	            // InternalOCLinEcore.g:3623:1: (lv_qualifiers_20_0= '!readonly' )
+                    	            // InternalOCLinEcore.g:3624:3: lv_qualifiers_20_0= '!readonly'
                     	            {
                     	            lv_qualifiers_20_0=(Token)match(input,66,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10632,13 +10708,13 @@
                     	            }
                     	            break;
                     	        case 9 :
-                    	            // InternalOCLinEcore.g:3606:6: ( (lv_qualifiers_21_0= 'resolve' ) )
+                    	            // InternalOCLinEcore.g:3638:6: ( (lv_qualifiers_21_0= 'resolve' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3606:6: ( (lv_qualifiers_21_0= 'resolve' ) )
-                    	            // InternalOCLinEcore.g:3607:1: (lv_qualifiers_21_0= 'resolve' )
+                    	            // InternalOCLinEcore.g:3638:6: ( (lv_qualifiers_21_0= 'resolve' ) )
+                    	            // InternalOCLinEcore.g:3639:1: (lv_qualifiers_21_0= 'resolve' )
                     	            {
-                    	            // InternalOCLinEcore.g:3607:1: (lv_qualifiers_21_0= 'resolve' )
-                    	            // InternalOCLinEcore.g:3608:3: lv_qualifiers_21_0= 'resolve'
+                    	            // InternalOCLinEcore.g:3639:1: (lv_qualifiers_21_0= 'resolve' )
+                    	            // InternalOCLinEcore.g:3640:3: lv_qualifiers_21_0= 'resolve'
                     	            {
                     	            lv_qualifiers_21_0=(Token)match(input,46,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10664,13 +10740,13 @@
                     	            }
                     	            break;
                     	        case 10 :
-                    	            // InternalOCLinEcore.g:3622:6: ( (lv_qualifiers_22_0= '!resolve' ) )
+                    	            // InternalOCLinEcore.g:3654:6: ( (lv_qualifiers_22_0= '!resolve' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3622:6: ( (lv_qualifiers_22_0= '!resolve' ) )
-                    	            // InternalOCLinEcore.g:3623:1: (lv_qualifiers_22_0= '!resolve' )
+                    	            // InternalOCLinEcore.g:3654:6: ( (lv_qualifiers_22_0= '!resolve' ) )
+                    	            // InternalOCLinEcore.g:3655:1: (lv_qualifiers_22_0= '!resolve' )
                     	            {
-                    	            // InternalOCLinEcore.g:3623:1: (lv_qualifiers_22_0= '!resolve' )
-                    	            // InternalOCLinEcore.g:3624:3: lv_qualifiers_22_0= '!resolve'
+                    	            // InternalOCLinEcore.g:3655:1: (lv_qualifiers_22_0= '!resolve' )
+                    	            // InternalOCLinEcore.g:3656:3: lv_qualifiers_22_0= '!resolve'
                     	            {
                     	            lv_qualifiers_22_0=(Token)match(input,78,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10696,13 +10772,13 @@
                     	            }
                     	            break;
                     	        case 11 :
-                    	            // InternalOCLinEcore.g:3638:6: ( (lv_qualifiers_23_0= 'transient' ) )
+                    	            // InternalOCLinEcore.g:3670:6: ( (lv_qualifiers_23_0= 'transient' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3638:6: ( (lv_qualifiers_23_0= 'transient' ) )
-                    	            // InternalOCLinEcore.g:3639:1: (lv_qualifiers_23_0= 'transient' )
+                    	            // InternalOCLinEcore.g:3670:6: ( (lv_qualifiers_23_0= 'transient' ) )
+                    	            // InternalOCLinEcore.g:3671:1: (lv_qualifiers_23_0= 'transient' )
                     	            {
-                    	            // InternalOCLinEcore.g:3639:1: (lv_qualifiers_23_0= 'transient' )
-                    	            // InternalOCLinEcore.g:3640:3: lv_qualifiers_23_0= 'transient'
+                    	            // InternalOCLinEcore.g:3671:1: (lv_qualifiers_23_0= 'transient' )
+                    	            // InternalOCLinEcore.g:3672:3: lv_qualifiers_23_0= 'transient'
                     	            {
                     	            lv_qualifiers_23_0=(Token)match(input,49,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10728,13 +10804,13 @@
                     	            }
                     	            break;
                     	        case 12 :
-                    	            // InternalOCLinEcore.g:3654:6: ( (lv_qualifiers_24_0= '!transient' ) )
+                    	            // InternalOCLinEcore.g:3686:6: ( (lv_qualifiers_24_0= '!transient' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3654:6: ( (lv_qualifiers_24_0= '!transient' ) )
-                    	            // InternalOCLinEcore.g:3655:1: (lv_qualifiers_24_0= '!transient' )
+                    	            // InternalOCLinEcore.g:3686:6: ( (lv_qualifiers_24_0= '!transient' ) )
+                    	            // InternalOCLinEcore.g:3687:1: (lv_qualifiers_24_0= '!transient' )
                     	            {
-                    	            // InternalOCLinEcore.g:3655:1: (lv_qualifiers_24_0= '!transient' )
-                    	            // InternalOCLinEcore.g:3656:3: lv_qualifiers_24_0= '!transient'
+                    	            // InternalOCLinEcore.g:3687:1: (lv_qualifiers_24_0= '!transient' )
+                    	            // InternalOCLinEcore.g:3688:3: lv_qualifiers_24_0= '!transient'
                     	            {
                     	            lv_qualifiers_24_0=(Token)match(input,67,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10760,13 +10836,13 @@
                     	            }
                     	            break;
                     	        case 13 :
-                    	            // InternalOCLinEcore.g:3670:6: ( (lv_qualifiers_25_0= 'unique' ) )
+                    	            // InternalOCLinEcore.g:3702:6: ( (lv_qualifiers_25_0= 'unique' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3670:6: ( (lv_qualifiers_25_0= 'unique' ) )
-                    	            // InternalOCLinEcore.g:3671:1: (lv_qualifiers_25_0= 'unique' )
+                    	            // InternalOCLinEcore.g:3702:6: ( (lv_qualifiers_25_0= 'unique' ) )
+                    	            // InternalOCLinEcore.g:3703:1: (lv_qualifiers_25_0= 'unique' )
                     	            {
-                    	            // InternalOCLinEcore.g:3671:1: (lv_qualifiers_25_0= 'unique' )
-                    	            // InternalOCLinEcore.g:3672:3: lv_qualifiers_25_0= 'unique'
+                    	            // InternalOCLinEcore.g:3703:1: (lv_qualifiers_25_0= 'unique' )
+                    	            // InternalOCLinEcore.g:3704:3: lv_qualifiers_25_0= 'unique'
                     	            {
                     	            lv_qualifiers_25_0=(Token)match(input,50,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10792,13 +10868,13 @@
                     	            }
                     	            break;
                     	        case 14 :
-                    	            // InternalOCLinEcore.g:3686:6: ( (lv_qualifiers_26_0= '!unique' ) )
+                    	            // InternalOCLinEcore.g:3718:6: ( (lv_qualifiers_26_0= '!unique' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3686:6: ( (lv_qualifiers_26_0= '!unique' ) )
-                    	            // InternalOCLinEcore.g:3687:1: (lv_qualifiers_26_0= '!unique' )
+                    	            // InternalOCLinEcore.g:3718:6: ( (lv_qualifiers_26_0= '!unique' ) )
+                    	            // InternalOCLinEcore.g:3719:1: (lv_qualifiers_26_0= '!unique' )
                     	            {
-                    	            // InternalOCLinEcore.g:3687:1: (lv_qualifiers_26_0= '!unique' )
-                    	            // InternalOCLinEcore.g:3688:3: lv_qualifiers_26_0= '!unique'
+                    	            // InternalOCLinEcore.g:3719:1: (lv_qualifiers_26_0= '!unique' )
+                    	            // InternalOCLinEcore.g:3720:3: lv_qualifiers_26_0= '!unique'
                     	            {
                     	            lv_qualifiers_26_0=(Token)match(input,68,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10824,13 +10900,13 @@
                     	            }
                     	            break;
                     	        case 15 :
-                    	            // InternalOCLinEcore.g:3702:6: ( (lv_qualifiers_27_0= 'unsettable' ) )
+                    	            // InternalOCLinEcore.g:3734:6: ( (lv_qualifiers_27_0= 'unsettable' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3702:6: ( (lv_qualifiers_27_0= 'unsettable' ) )
-                    	            // InternalOCLinEcore.g:3703:1: (lv_qualifiers_27_0= 'unsettable' )
+                    	            // InternalOCLinEcore.g:3734:6: ( (lv_qualifiers_27_0= 'unsettable' ) )
+                    	            // InternalOCLinEcore.g:3735:1: (lv_qualifiers_27_0= 'unsettable' )
                     	            {
-                    	            // InternalOCLinEcore.g:3703:1: (lv_qualifiers_27_0= 'unsettable' )
-                    	            // InternalOCLinEcore.g:3704:3: lv_qualifiers_27_0= 'unsettable'
+                    	            // InternalOCLinEcore.g:3735:1: (lv_qualifiers_27_0= 'unsettable' )
+                    	            // InternalOCLinEcore.g:3736:3: lv_qualifiers_27_0= 'unsettable'
                     	            {
                     	            lv_qualifiers_27_0=(Token)match(input,51,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10856,13 +10932,13 @@
                     	            }
                     	            break;
                     	        case 16 :
-                    	            // InternalOCLinEcore.g:3718:6: ( (lv_qualifiers_28_0= '!unsettable' ) )
+                    	            // InternalOCLinEcore.g:3750:6: ( (lv_qualifiers_28_0= '!unsettable' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3718:6: ( (lv_qualifiers_28_0= '!unsettable' ) )
-                    	            // InternalOCLinEcore.g:3719:1: (lv_qualifiers_28_0= '!unsettable' )
+                    	            // InternalOCLinEcore.g:3750:6: ( (lv_qualifiers_28_0= '!unsettable' ) )
+                    	            // InternalOCLinEcore.g:3751:1: (lv_qualifiers_28_0= '!unsettable' )
                     	            {
-                    	            // InternalOCLinEcore.g:3719:1: (lv_qualifiers_28_0= '!unsettable' )
-                    	            // InternalOCLinEcore.g:3720:3: lv_qualifiers_28_0= '!unsettable'
+                    	            // InternalOCLinEcore.g:3751:1: (lv_qualifiers_28_0= '!unsettable' )
+                    	            // InternalOCLinEcore.g:3752:3: lv_qualifiers_28_0= '!unsettable'
                     	            {
                     	            lv_qualifiers_28_0=(Token)match(input,69,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10888,13 +10964,13 @@
                     	            }
                     	            break;
                     	        case 17 :
-                    	            // InternalOCLinEcore.g:3734:6: ( (lv_qualifiers_29_0= 'volatile' ) )
+                    	            // InternalOCLinEcore.g:3766:6: ( (lv_qualifiers_29_0= 'volatile' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3734:6: ( (lv_qualifiers_29_0= 'volatile' ) )
-                    	            // InternalOCLinEcore.g:3735:1: (lv_qualifiers_29_0= 'volatile' )
+                    	            // InternalOCLinEcore.g:3766:6: ( (lv_qualifiers_29_0= 'volatile' ) )
+                    	            // InternalOCLinEcore.g:3767:1: (lv_qualifiers_29_0= 'volatile' )
                     	            {
-                    	            // InternalOCLinEcore.g:3735:1: (lv_qualifiers_29_0= 'volatile' )
-                    	            // InternalOCLinEcore.g:3736:3: lv_qualifiers_29_0= 'volatile'
+                    	            // InternalOCLinEcore.g:3767:1: (lv_qualifiers_29_0= 'volatile' )
+                    	            // InternalOCLinEcore.g:3768:3: lv_qualifiers_29_0= 'volatile'
                     	            {
                     	            lv_qualifiers_29_0=(Token)match(input,52,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10920,13 +10996,13 @@
                     	            }
                     	            break;
                     	        case 18 :
-                    	            // InternalOCLinEcore.g:3750:6: ( (lv_qualifiers_30_0= '!volatile' ) )
+                    	            // InternalOCLinEcore.g:3782:6: ( (lv_qualifiers_30_0= '!volatile' ) )
                     	            {
-                    	            // InternalOCLinEcore.g:3750:6: ( (lv_qualifiers_30_0= '!volatile' ) )
-                    	            // InternalOCLinEcore.g:3751:1: (lv_qualifiers_30_0= '!volatile' )
+                    	            // InternalOCLinEcore.g:3782:6: ( (lv_qualifiers_30_0= '!volatile' ) )
+                    	            // InternalOCLinEcore.g:3783:1: (lv_qualifiers_30_0= '!volatile' )
                     	            {
-                    	            // InternalOCLinEcore.g:3751:1: (lv_qualifiers_30_0= '!volatile' )
-                    	            // InternalOCLinEcore.g:3752:3: lv_qualifiers_30_0= '!volatile'
+                    	            // InternalOCLinEcore.g:3783:1: (lv_qualifiers_30_0= '!volatile' )
+                    	            // InternalOCLinEcore.g:3784:3: lv_qualifiers_30_0= '!volatile'
                     	            {
                     	            lv_qualifiers_30_0=(Token)match(input,70,FollowSets000.FOLLOW_74); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -10954,7 +11030,7 @@
 
                     	    }
 
-                    	    // InternalOCLinEcore.g:3765:3: (otherlv_31= ',' )?
+                    	    // InternalOCLinEcore.g:3797:3: (otherlv_31= ',' )?
                     	    int alt102=2;
                     	    int LA102_0 = input.LA(1);
 
@@ -10963,7 +11039,7 @@
                     	    }
                     	    switch (alt102) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:3765:5: otherlv_31= ','
+                    	            // InternalOCLinEcore.g:3797:5: otherlv_31= ','
                     	            {
                     	            otherlv_31=(Token)match(input,59,FollowSets000.FOLLOW_75); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
@@ -11003,7 +11079,7 @@
 
             }
 
-            // InternalOCLinEcore.g:3773:3: ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' )
+            // InternalOCLinEcore.g:3805:3: ( (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' ) | otherlv_51= ';' )
             int alt111=2;
             int LA111_0 = input.LA(1);
 
@@ -11022,10 +11098,10 @@
             }
             switch (alt111) {
                 case 1 :
-                    // InternalOCLinEcore.g:3773:4: (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' )
+                    // InternalOCLinEcore.g:3805:4: (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' )
                     {
-                    // InternalOCLinEcore.g:3773:4: (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' )
-                    // InternalOCLinEcore.g:3773:6: otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}'
+                    // InternalOCLinEcore.g:3805:4: (otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}' )
+                    // InternalOCLinEcore.g:3805:6: otherlv_33= '{' ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )* otherlv_50= '}'
                     {
                     otherlv_33=(Token)match(input,60,FollowSets000.FOLLOW_76); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -11033,7 +11109,7 @@
                           	newLeafNode(otherlv_33, grammarAccess.getReferenceCSAccess().getLeftCurlyBracketKeyword_7_0_0());
                           
                     }
-                    // InternalOCLinEcore.g:3777:1: ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )*
+                    // InternalOCLinEcore.g:3809:1: ( ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) ) | (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' ) | (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' ) | (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' ) )*
                     loop110:
                     do {
                         int alt110=5;
@@ -11065,13 +11141,13 @@
 
                         switch (alt110) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:3777:2: ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) )
+                    	    // InternalOCLinEcore.g:3809:2: ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:3777:2: ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) )
-                    	    // InternalOCLinEcore.g:3778:1: (lv_ownedAnnotations_34_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:3809:2: ( (lv_ownedAnnotations_34_0= ruleAnnotationElementCS ) )
+                    	    // InternalOCLinEcore.g:3810:1: (lv_ownedAnnotations_34_0= ruleAnnotationElementCS )
                     	    {
-                    	    // InternalOCLinEcore.g:3778:1: (lv_ownedAnnotations_34_0= ruleAnnotationElementCS )
-                    	    // InternalOCLinEcore.g:3779:3: lv_ownedAnnotations_34_0= ruleAnnotationElementCS
+                    	    // InternalOCLinEcore.g:3810:1: (lv_ownedAnnotations_34_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:3811:3: lv_ownedAnnotations_34_0= ruleAnnotationElementCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -11106,10 +11182,10 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalOCLinEcore.g:3796:6: (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' )
+                    	    // InternalOCLinEcore.g:3828:6: (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' )
                     	    {
-                    	    // InternalOCLinEcore.g:3796:6: (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' )
-                    	    // InternalOCLinEcore.g:3796:8: otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';'
+                    	    // InternalOCLinEcore.g:3828:6: (otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';' )
+                    	    // InternalOCLinEcore.g:3828:8: otherlv_35= 'key' ( ( ruleUnrestrictedName ) ) (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )* otherlv_39= ';'
                     	    {
                     	    otherlv_35=(Token)match(input,35,FollowSets000.FOLLOW_3); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -11117,11 +11193,11 @@
                     	          	newLeafNode(otherlv_35, grammarAccess.getReferenceCSAccess().getKeyKeyword_7_0_1_1_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:3800:1: ( ( ruleUnrestrictedName ) )
-                    	    // InternalOCLinEcore.g:3801:1: ( ruleUnrestrictedName )
+                    	    // InternalOCLinEcore.g:3832:1: ( ( ruleUnrestrictedName ) )
+                    	    // InternalOCLinEcore.g:3833:1: ( ruleUnrestrictedName )
                     	    {
-                    	    // InternalOCLinEcore.g:3801:1: ( ruleUnrestrictedName )
-                    	    // InternalOCLinEcore.g:3802:3: ruleUnrestrictedName
+                    	    // InternalOCLinEcore.g:3833:1: ( ruleUnrestrictedName )
+                    	    // InternalOCLinEcore.g:3834:3: ruleUnrestrictedName
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -11156,7 +11232,7 @@
 
                     	    }
 
-                    	    // InternalOCLinEcore.g:3818:2: (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )*
+                    	    // InternalOCLinEcore.g:3850:2: (otherlv_37= ',' ( ( ruleUnrestrictedName ) ) )*
                     	    loop105:
                     	    do {
                     	        int alt105=2;
@@ -11169,7 +11245,7 @@
 
                     	        switch (alt105) {
                     	    	case 1 :
-                    	    	    // InternalOCLinEcore.g:3818:4: otherlv_37= ',' ( ( ruleUnrestrictedName ) )
+                    	    	    // InternalOCLinEcore.g:3850:4: otherlv_37= ',' ( ( ruleUnrestrictedName ) )
                     	    	    {
                     	    	    otherlv_37=(Token)match(input,59,FollowSets000.FOLLOW_3); if (state.failed) return current;
                     	    	    if ( state.backtracking==0 ) {
@@ -11177,11 +11253,11 @@
                     	    	          	newLeafNode(otherlv_37, grammarAccess.getReferenceCSAccess().getCommaKeyword_7_0_1_1_2_0());
                     	    	          
                     	    	    }
-                    	    	    // InternalOCLinEcore.g:3822:1: ( ( ruleUnrestrictedName ) )
-                    	    	    // InternalOCLinEcore.g:3823:1: ( ruleUnrestrictedName )
+                    	    	    // InternalOCLinEcore.g:3854:1: ( ( ruleUnrestrictedName ) )
+                    	    	    // InternalOCLinEcore.g:3855:1: ( ruleUnrestrictedName )
                     	    	    {
-                    	    	    // InternalOCLinEcore.g:3823:1: ( ruleUnrestrictedName )
-                    	    	    // InternalOCLinEcore.g:3824:3: ruleUnrestrictedName
+                    	    	    // InternalOCLinEcore.g:3855:1: ( ruleUnrestrictedName )
+                    	    	    // InternalOCLinEcore.g:3856:3: ruleUnrestrictedName
                     	    	    {
                     	    	    if ( state.backtracking==0 ) {
                     	    	       
@@ -11238,10 +11314,10 @@
                     	    }
                     	    break;
                     	case 3 :
-                    	    // InternalOCLinEcore.g:3845:6: (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' )
+                    	    // InternalOCLinEcore.g:3877:6: (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' )
                     	    {
-                    	    // InternalOCLinEcore.g:3845:6: (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' )
-                    	    // InternalOCLinEcore.g:3845:8: otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';'
+                    	    // InternalOCLinEcore.g:3877:6: (otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';' )
+                    	    // InternalOCLinEcore.g:3877:8: otherlv_40= 'initial' ( ruleUnrestrictedName )? otherlv_42= ':' ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )? otherlv_44= ';'
                     	    {
                     	    otherlv_40=(Token)match(input,33,FollowSets000.FOLLOW_15); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -11249,7 +11325,7 @@
                     	          	newLeafNode(otherlv_40, grammarAccess.getReferenceCSAccess().getInitialKeyword_7_0_1_2_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:3849:1: ( ruleUnrestrictedName )?
+                    	    // InternalOCLinEcore.g:3881:1: ( ruleUnrestrictedName )?
                     	    int alt106=2;
                     	    int LA106_0 = input.LA(1);
 
@@ -11258,7 +11334,7 @@
                     	    }
                     	    switch (alt106) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:3850:2: ruleUnrestrictedName
+                    	            // InternalOCLinEcore.g:3882:2: ruleUnrestrictedName
                     	            {
                     	            if ( state.backtracking==0 ) {
                     	               
@@ -11292,7 +11368,7 @@
                     	          	newLeafNode(otherlv_42, grammarAccess.getReferenceCSAccess().getColonKeyword_7_0_1_2_2());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:3864:1: ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )?
+                    	    // InternalOCLinEcore.g:3896:1: ( (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS ) )?
                     	    int alt107=2;
                     	    int LA107_0 = input.LA(1);
 
@@ -11301,10 +11377,10 @@
                     	    }
                     	    switch (alt107) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:3865:1: (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS )
+                    	            // InternalOCLinEcore.g:3897:1: (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS )
                     	            {
-                    	            // InternalOCLinEcore.g:3865:1: (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS )
-                    	            // InternalOCLinEcore.g:3866:3: lv_ownedDefaultExpressions_43_0= ruleSpecificationCS
+                    	            // InternalOCLinEcore.g:3897:1: (lv_ownedDefaultExpressions_43_0= ruleSpecificationCS )
+                    	            // InternalOCLinEcore.g:3898:3: lv_ownedDefaultExpressions_43_0= ruleSpecificationCS
                     	            {
                     	            if ( state.backtracking==0 ) {
                     	               
@@ -11351,10 +11427,10 @@
                     	    }
                     	    break;
                     	case 4 :
-                    	    // InternalOCLinEcore.g:3887:6: (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' )
+                    	    // InternalOCLinEcore.g:3919:6: (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' )
                     	    {
-                    	    // InternalOCLinEcore.g:3887:6: (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' )
-                    	    // InternalOCLinEcore.g:3887:8: otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';'
+                    	    // InternalOCLinEcore.g:3919:6: (otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';' )
+                    	    // InternalOCLinEcore.g:3919:8: otherlv_45= 'derivation' ( ruleUnrestrictedName )? otherlv_47= ':' ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )? otherlv_49= ';'
                     	    {
                     	    otherlv_45=(Token)match(input,27,FollowSets000.FOLLOW_15); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -11362,7 +11438,7 @@
                     	          	newLeafNode(otherlv_45, grammarAccess.getReferenceCSAccess().getDerivationKeyword_7_0_1_3_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:3891:1: ( ruleUnrestrictedName )?
+                    	    // InternalOCLinEcore.g:3923:1: ( ruleUnrestrictedName )?
                     	    int alt108=2;
                     	    int LA108_0 = input.LA(1);
 
@@ -11371,7 +11447,7 @@
                     	    }
                     	    switch (alt108) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:3892:2: ruleUnrestrictedName
+                    	            // InternalOCLinEcore.g:3924:2: ruleUnrestrictedName
                     	            {
                     	            if ( state.backtracking==0 ) {
                     	               
@@ -11405,7 +11481,7 @@
                     	          	newLeafNode(otherlv_47, grammarAccess.getReferenceCSAccess().getColonKeyword_7_0_1_3_2());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:3906:1: ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )?
+                    	    // InternalOCLinEcore.g:3938:1: ( (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS ) )?
                     	    int alt109=2;
                     	    int LA109_0 = input.LA(1);
 
@@ -11414,10 +11490,10 @@
                     	    }
                     	    switch (alt109) {
                     	        case 1 :
-                    	            // InternalOCLinEcore.g:3907:1: (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS )
+                    	            // InternalOCLinEcore.g:3939:1: (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS )
                     	            {
-                    	            // InternalOCLinEcore.g:3907:1: (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS )
-                    	            // InternalOCLinEcore.g:3908:3: lv_ownedDefaultExpressions_48_0= ruleSpecificationCS
+                    	            // InternalOCLinEcore.g:3939:1: (lv_ownedDefaultExpressions_48_0= ruleSpecificationCS )
+                    	            // InternalOCLinEcore.g:3940:3: lv_ownedDefaultExpressions_48_0= ruleSpecificationCS
                     	            {
                     	            if ( state.backtracking==0 ) {
                     	               
@@ -11482,7 +11558,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:3933:7: otherlv_51= ';'
+                    // InternalOCLinEcore.g:3965:7: otherlv_51= ';'
                     {
                     otherlv_51=(Token)match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -11519,7 +11595,7 @@
 
 
     // $ANTLR start "entryRuleSpecificationCS"
-    // InternalOCLinEcore.g:3945:1: entryRuleSpecificationCS returns [EObject current=null] : iv_ruleSpecificationCS= ruleSpecificationCS EOF ;
+    // InternalOCLinEcore.g:3977:1: entryRuleSpecificationCS returns [EObject current=null] : iv_ruleSpecificationCS= ruleSpecificationCS EOF ;
     public final EObject entryRuleSpecificationCS() throws RecognitionException {
         EObject current = null;
 
@@ -11527,8 +11603,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:3946:2: (iv_ruleSpecificationCS= ruleSpecificationCS EOF )
-            // InternalOCLinEcore.g:3947:2: iv_ruleSpecificationCS= ruleSpecificationCS EOF
+            // InternalOCLinEcore.g:3978:2: (iv_ruleSpecificationCS= ruleSpecificationCS EOF )
+            // InternalOCLinEcore.g:3979:2: iv_ruleSpecificationCS= ruleSpecificationCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSpecificationCSRule()); 
@@ -11559,7 +11635,7 @@
 
 
     // $ANTLR start "ruleSpecificationCS"
-    // InternalOCLinEcore.g:3954:1: ruleSpecificationCS returns [EObject current=null] : ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) | ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) ) ) ;
+    // InternalOCLinEcore.g:3986:1: ruleSpecificationCS returns [EObject current=null] : ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) | ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) ) ) ;
     public final EObject ruleSpecificationCS() throws RecognitionException {
         EObject current = null;
 
@@ -11570,10 +11646,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:3957:28: ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) | ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) ) ) )
-            // InternalOCLinEcore.g:3958:1: ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) | ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) ) )
+            // InternalOCLinEcore.g:3989:28: ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) | ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) ) ) )
+            // InternalOCLinEcore.g:3990:1: ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) | ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) ) )
             {
-            // InternalOCLinEcore.g:3958:1: ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) | ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) ) )
+            // InternalOCLinEcore.g:3990:1: ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) | ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) ) )
             int alt112=2;
             int LA112_0 = input.LA(1);
 
@@ -11592,13 +11668,13 @@
             }
             switch (alt112) {
                 case 1 :
-                    // InternalOCLinEcore.g:3958:2: ( (lv_ownedExpression_0_0= ruleExpCS ) )
+                    // InternalOCLinEcore.g:3990:2: ( (lv_ownedExpression_0_0= ruleExpCS ) )
                     {
-                    // InternalOCLinEcore.g:3958:2: ( (lv_ownedExpression_0_0= ruleExpCS ) )
-                    // InternalOCLinEcore.g:3959:1: (lv_ownedExpression_0_0= ruleExpCS )
+                    // InternalOCLinEcore.g:3990:2: ( (lv_ownedExpression_0_0= ruleExpCS ) )
+                    // InternalOCLinEcore.g:3991:1: (lv_ownedExpression_0_0= ruleExpCS )
                     {
-                    // InternalOCLinEcore.g:3959:1: (lv_ownedExpression_0_0= ruleExpCS )
-                    // InternalOCLinEcore.g:3960:3: lv_ownedExpression_0_0= ruleExpCS
+                    // InternalOCLinEcore.g:3991:1: (lv_ownedExpression_0_0= ruleExpCS )
+                    // InternalOCLinEcore.g:3992:3: lv_ownedExpression_0_0= ruleExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -11633,13 +11709,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:3977:6: ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) )
+                    // InternalOCLinEcore.g:4009:6: ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) )
                     {
-                    // InternalOCLinEcore.g:3977:6: ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) )
-                    // InternalOCLinEcore.g:3978:1: (lv_exprString_1_0= RULE_UNQUOTED_STRING )
+                    // InternalOCLinEcore.g:4009:6: ( (lv_exprString_1_0= RULE_UNQUOTED_STRING ) )
+                    // InternalOCLinEcore.g:4010:1: (lv_exprString_1_0= RULE_UNQUOTED_STRING )
                     {
-                    // InternalOCLinEcore.g:3978:1: (lv_exprString_1_0= RULE_UNQUOTED_STRING )
-                    // InternalOCLinEcore.g:3979:3: lv_exprString_1_0= RULE_UNQUOTED_STRING
+                    // InternalOCLinEcore.g:4010:1: (lv_exprString_1_0= RULE_UNQUOTED_STRING )
+                    // InternalOCLinEcore.g:4011:3: lv_exprString_1_0= RULE_UNQUOTED_STRING
                     {
                     lv_exprString_1_0=(Token)match(input,RULE_UNQUOTED_STRING,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -11691,7 +11767,7 @@
 
 
     // $ANTLR start "entryRuleStructuredClassCS"
-    // InternalOCLinEcore.g:4003:1: entryRuleStructuredClassCS returns [EObject current=null] : iv_ruleStructuredClassCS= ruleStructuredClassCS EOF ;
+    // InternalOCLinEcore.g:4035:1: entryRuleStructuredClassCS returns [EObject current=null] : iv_ruleStructuredClassCS= ruleStructuredClassCS EOF ;
     public final EObject entryRuleStructuredClassCS() throws RecognitionException {
         EObject current = null;
 
@@ -11699,8 +11775,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4004:2: (iv_ruleStructuredClassCS= ruleStructuredClassCS EOF )
-            // InternalOCLinEcore.g:4005:2: iv_ruleStructuredClassCS= ruleStructuredClassCS EOF
+            // InternalOCLinEcore.g:4036:2: (iv_ruleStructuredClassCS= ruleStructuredClassCS EOF )
+            // InternalOCLinEcore.g:4037:2: iv_ruleStructuredClassCS= ruleStructuredClassCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStructuredClassCSRule()); 
@@ -11731,7 +11807,7 @@
 
 
     // $ANTLR start "ruleStructuredClassCS"
-    // InternalOCLinEcore.g:4012:1: ruleStructuredClassCS returns [EObject current=null] : ( ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' ) ) ;
+    // InternalOCLinEcore.g:4044:1: ruleStructuredClassCS returns [EObject current=null] : ( ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' ) ) ;
     public final EObject ruleStructuredClassCS() throws RecognitionException {
         EObject current = null;
 
@@ -11767,13 +11843,13 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4015:28: ( ( ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' ) ) )
-            // InternalOCLinEcore.g:4016:1: ( ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' ) )
+            // InternalOCLinEcore.g:4047:28: ( ( ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' ) ) )
+            // InternalOCLinEcore.g:4048:1: ( ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' ) )
             {
-            // InternalOCLinEcore.g:4016:1: ( ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' ) )
-            // InternalOCLinEcore.g:4016:2: ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' )
+            // InternalOCLinEcore.g:4048:1: ( ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' ) )
+            // InternalOCLinEcore.g:4048:2: ( (lv_isAbstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleUnrestrictedName ) ) ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )? (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )? (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )? (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )? ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' )
             {
-            // InternalOCLinEcore.g:4016:2: ( (lv_isAbstract_0_0= 'abstract' ) )?
+            // InternalOCLinEcore.g:4048:2: ( (lv_isAbstract_0_0= 'abstract' ) )?
             int alt113=2;
             int LA113_0 = input.LA(1);
 
@@ -11782,10 +11858,10 @@
             }
             switch (alt113) {
                 case 1 :
-                    // InternalOCLinEcore.g:4017:1: (lv_isAbstract_0_0= 'abstract' )
+                    // InternalOCLinEcore.g:4049:1: (lv_isAbstract_0_0= 'abstract' )
                     {
-                    // InternalOCLinEcore.g:4017:1: (lv_isAbstract_0_0= 'abstract' )
-                    // InternalOCLinEcore.g:4018:3: lv_isAbstract_0_0= 'abstract'
+                    // InternalOCLinEcore.g:4049:1: (lv_isAbstract_0_0= 'abstract' )
+                    // InternalOCLinEcore.g:4050:3: lv_isAbstract_0_0= 'abstract'
                     {
                     lv_isAbstract_0_0=(Token)match(input,19,FollowSets000.FOLLOW_78); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -11816,11 +11892,11 @@
                   	newLeafNode(otherlv_1, grammarAccess.getStructuredClassCSAccess().getClassKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:4035:1: ( (lv_name_2_0= ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:4036:1: (lv_name_2_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:4067:1: ( (lv_name_2_0= ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:4068:1: (lv_name_2_0= ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:4036:1: (lv_name_2_0= ruleUnrestrictedName )
-            // InternalOCLinEcore.g:4037:3: lv_name_2_0= ruleUnrestrictedName
+            // InternalOCLinEcore.g:4068:1: (lv_name_2_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:4069:3: lv_name_2_0= ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -11851,7 +11927,7 @@
 
             }
 
-            // InternalOCLinEcore.g:4053:2: ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )?
+            // InternalOCLinEcore.g:4085:2: ( (lv_ownedSignature_3_0= ruleTemplateSignatureCS ) )?
             int alt114=2;
             int LA114_0 = input.LA(1);
 
@@ -11860,10 +11936,10 @@
             }
             switch (alt114) {
                 case 1 :
-                    // InternalOCLinEcore.g:4054:1: (lv_ownedSignature_3_0= ruleTemplateSignatureCS )
+                    // InternalOCLinEcore.g:4086:1: (lv_ownedSignature_3_0= ruleTemplateSignatureCS )
                     {
-                    // InternalOCLinEcore.g:4054:1: (lv_ownedSignature_3_0= ruleTemplateSignatureCS )
-                    // InternalOCLinEcore.g:4055:3: lv_ownedSignature_3_0= ruleTemplateSignatureCS
+                    // InternalOCLinEcore.g:4086:1: (lv_ownedSignature_3_0= ruleTemplateSignatureCS )
+                    // InternalOCLinEcore.g:4087:3: lv_ownedSignature_3_0= ruleTemplateSignatureCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -11897,7 +11973,7 @@
 
             }
 
-            // InternalOCLinEcore.g:4071:3: (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )?
+            // InternalOCLinEcore.g:4103:3: (otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )* )?
             int alt116=2;
             int LA116_0 = input.LA(1);
 
@@ -11906,7 +11982,7 @@
             }
             switch (alt116) {
                 case 1 :
-                    // InternalOCLinEcore.g:4071:5: otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )*
+                    // InternalOCLinEcore.g:4103:5: otherlv_4= 'extends' ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) ) (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )*
                     {
                     otherlv_4=(Token)match(input,30,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -11914,11 +11990,11 @@
                           	newLeafNode(otherlv_4, grammarAccess.getStructuredClassCSAccess().getExtendsKeyword_4_0());
                           
                     }
-                    // InternalOCLinEcore.g:4075:1: ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) )
-                    // InternalOCLinEcore.g:4076:1: (lv_ownedSuperTypes_5_0= ruleTypedRefCS )
+                    // InternalOCLinEcore.g:4107:1: ( (lv_ownedSuperTypes_5_0= ruleTypedRefCS ) )
+                    // InternalOCLinEcore.g:4108:1: (lv_ownedSuperTypes_5_0= ruleTypedRefCS )
                     {
-                    // InternalOCLinEcore.g:4076:1: (lv_ownedSuperTypes_5_0= ruleTypedRefCS )
-                    // InternalOCLinEcore.g:4077:3: lv_ownedSuperTypes_5_0= ruleTypedRefCS
+                    // InternalOCLinEcore.g:4108:1: (lv_ownedSuperTypes_5_0= ruleTypedRefCS )
+                    // InternalOCLinEcore.g:4109:3: lv_ownedSuperTypes_5_0= ruleTypedRefCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -11949,7 +12025,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:4093:2: (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )*
+                    // InternalOCLinEcore.g:4125:2: (otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) ) )*
                     loop115:
                     do {
                         int alt115=2;
@@ -11962,7 +12038,7 @@
 
                         switch (alt115) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:4093:4: otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) )
+                    	    // InternalOCLinEcore.g:4125:4: otherlv_6= ',' ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) )
                     	    {
                     	    otherlv_6=(Token)match(input,59,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -11970,11 +12046,11 @@
                     	          	newLeafNode(otherlv_6, grammarAccess.getStructuredClassCSAccess().getCommaKeyword_4_2_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:4097:1: ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) )
-                    	    // InternalOCLinEcore.g:4098:1: (lv_ownedSuperTypes_7_0= ruleTypedRefCS )
+                    	    // InternalOCLinEcore.g:4129:1: ( (lv_ownedSuperTypes_7_0= ruleTypedRefCS ) )
+                    	    // InternalOCLinEcore.g:4130:1: (lv_ownedSuperTypes_7_0= ruleTypedRefCS )
                     	    {
-                    	    // InternalOCLinEcore.g:4098:1: (lv_ownedSuperTypes_7_0= ruleTypedRefCS )
-                    	    // InternalOCLinEcore.g:4099:3: lv_ownedSuperTypes_7_0= ruleTypedRefCS
+                    	    // InternalOCLinEcore.g:4130:1: (lv_ownedSuperTypes_7_0= ruleTypedRefCS )
+                    	    // InternalOCLinEcore.g:4131:3: lv_ownedSuperTypes_7_0= ruleTypedRefCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -12020,7 +12096,7 @@
 
             }
 
-            // InternalOCLinEcore.g:4115:6: (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )?
+            // InternalOCLinEcore.g:4147:6: (otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) ) )?
             int alt117=2;
             int LA117_0 = input.LA(1);
 
@@ -12029,7 +12105,7 @@
             }
             switch (alt117) {
                 case 1 :
-                    // InternalOCLinEcore.g:4115:8: otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) )
+                    // InternalOCLinEcore.g:4147:8: otherlv_8= ':' ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) )
                     {
                     otherlv_8=(Token)match(input,56,FollowSets000.FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -12037,11 +12113,11 @@
                           	newLeafNode(otherlv_8, grammarAccess.getStructuredClassCSAccess().getColonKeyword_5_0());
                           
                     }
-                    // InternalOCLinEcore.g:4119:1: ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) )
-                    // InternalOCLinEcore.g:4120:1: (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING )
+                    // InternalOCLinEcore.g:4151:1: ( (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING ) )
+                    // InternalOCLinEcore.g:4152:1: (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING )
                     {
-                    // InternalOCLinEcore.g:4120:1: (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING )
-                    // InternalOCLinEcore.g:4121:3: lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING
+                    // InternalOCLinEcore.g:4152:1: (lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING )
+                    // InternalOCLinEcore.g:4153:3: lv_instanceClassName_9_0= RULE_SINGLE_QUOTED_STRING
                     {
                     lv_instanceClassName_9_0=(Token)match(input,RULE_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_22); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -12073,27 +12149,27 @@
 
             }
 
-            // InternalOCLinEcore.g:4137:4: (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )?
+            // InternalOCLinEcore.g:4169:4: (otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}' )?
             int alt119=2;
             int LA119_0 = input.LA(1);
 
             if ( (LA119_0==60) ) {
                 int LA119_1 = input.LA(2);
 
-                if ( (LA119_1==34) ) {
-                    alt119=1;
-                }
-                else if ( (LA119_1==61) ) {
-                    int LA119_4 = input.LA(3);
+                if ( (LA119_1==61) ) {
+                    int LA119_3 = input.LA(3);
 
-                    if ( (LA119_4==57||LA119_4==60) ) {
+                    if ( (LA119_3==57||LA119_3==60) ) {
                         alt119=1;
                     }
                 }
+                else if ( (LA119_1==34) ) {
+                    alt119=1;
+                }
             }
             switch (alt119) {
                 case 1 :
-                    // InternalOCLinEcore.g:4137:6: otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}'
+                    // InternalOCLinEcore.g:4169:6: otherlv_10= '{' ( (lv_isInterface_11_0= 'interface' ) )? otherlv_12= '}'
                     {
                     otherlv_10=(Token)match(input,60,FollowSets000.FOLLOW_82); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -12101,7 +12177,7 @@
                           	newLeafNode(otherlv_10, grammarAccess.getStructuredClassCSAccess().getLeftCurlyBracketKeyword_6_0());
                           
                     }
-                    // InternalOCLinEcore.g:4141:1: ( (lv_isInterface_11_0= 'interface' ) )?
+                    // InternalOCLinEcore.g:4173:1: ( (lv_isInterface_11_0= 'interface' ) )?
                     int alt118=2;
                     int LA118_0 = input.LA(1);
 
@@ -12110,10 +12186,10 @@
                     }
                     switch (alt118) {
                         case 1 :
-                            // InternalOCLinEcore.g:4142:1: (lv_isInterface_11_0= 'interface' )
+                            // InternalOCLinEcore.g:4174:1: (lv_isInterface_11_0= 'interface' )
                             {
-                            // InternalOCLinEcore.g:4142:1: (lv_isInterface_11_0= 'interface' )
-                            // InternalOCLinEcore.g:4143:3: lv_isInterface_11_0= 'interface'
+                            // InternalOCLinEcore.g:4174:1: (lv_isInterface_11_0= 'interface' )
+                            // InternalOCLinEcore.g:4175:3: lv_isInterface_11_0= 'interface'
                             {
                             lv_isInterface_11_0=(Token)match(input,34,FollowSets000.FOLLOW_40); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -12150,7 +12226,7 @@
 
             }
 
-            // InternalOCLinEcore.g:4160:3: ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' )
+            // InternalOCLinEcore.g:4192:3: ( (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' ) | otherlv_19= ';' )
             int alt121=2;
             int LA121_0 = input.LA(1);
 
@@ -12169,10 +12245,10 @@
             }
             switch (alt121) {
                 case 1 :
-                    // InternalOCLinEcore.g:4160:4: (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' )
+                    // InternalOCLinEcore.g:4192:4: (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' )
                     {
-                    // InternalOCLinEcore.g:4160:4: (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' )
-                    // InternalOCLinEcore.g:4160:6: otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}'
+                    // InternalOCLinEcore.g:4192:4: (otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}' )
+                    // InternalOCLinEcore.g:4192:6: otherlv_13= '{' ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )* otherlv_18= '}'
                     {
                     otherlv_13=(Token)match(input,60,FollowSets000.FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -12180,20 +12256,20 @@
                           	newLeafNode(otherlv_13, grammarAccess.getStructuredClassCSAccess().getLeftCurlyBracketKeyword_7_0_0());
                           
                     }
-                    // InternalOCLinEcore.g:4164:1: ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )*
+                    // InternalOCLinEcore.g:4196:1: ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )*
                     loop120:
                     do {
                         int alt120=5;
                         alt120 = dfa120.predict(input);
                         switch (alt120) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:4164:2: ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) )
+                    	    // InternalOCLinEcore.g:4196:2: ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:4164:2: ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) )
-                    	    // InternalOCLinEcore.g:4165:1: (lv_ownedAnnotations_14_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:4196:2: ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) )
+                    	    // InternalOCLinEcore.g:4197:1: (lv_ownedAnnotations_14_0= ruleAnnotationElementCS )
                     	    {
-                    	    // InternalOCLinEcore.g:4165:1: (lv_ownedAnnotations_14_0= ruleAnnotationElementCS )
-                    	    // InternalOCLinEcore.g:4166:3: lv_ownedAnnotations_14_0= ruleAnnotationElementCS
+                    	    // InternalOCLinEcore.g:4197:1: (lv_ownedAnnotations_14_0= ruleAnnotationElementCS )
+                    	    // InternalOCLinEcore.g:4198:3: lv_ownedAnnotations_14_0= ruleAnnotationElementCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -12228,13 +12304,13 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalOCLinEcore.g:4183:6: ( (lv_ownedOperations_15_0= ruleOperationCS ) )
+                    	    // InternalOCLinEcore.g:4215:6: ( (lv_ownedOperations_15_0= ruleOperationCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:4183:6: ( (lv_ownedOperations_15_0= ruleOperationCS ) )
-                    	    // InternalOCLinEcore.g:4184:1: (lv_ownedOperations_15_0= ruleOperationCS )
+                    	    // InternalOCLinEcore.g:4215:6: ( (lv_ownedOperations_15_0= ruleOperationCS ) )
+                    	    // InternalOCLinEcore.g:4216:1: (lv_ownedOperations_15_0= ruleOperationCS )
                     	    {
-                    	    // InternalOCLinEcore.g:4184:1: (lv_ownedOperations_15_0= ruleOperationCS )
-                    	    // InternalOCLinEcore.g:4185:3: lv_ownedOperations_15_0= ruleOperationCS
+                    	    // InternalOCLinEcore.g:4216:1: (lv_ownedOperations_15_0= ruleOperationCS )
+                    	    // InternalOCLinEcore.g:4217:3: lv_ownedOperations_15_0= ruleOperationCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -12269,13 +12345,13 @@
                     	    }
                     	    break;
                     	case 3 :
-                    	    // InternalOCLinEcore.g:4202:6: ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) )
+                    	    // InternalOCLinEcore.g:4234:6: ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:4202:6: ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) )
-                    	    // InternalOCLinEcore.g:4203:1: (lv_ownedProperties_16_0= ruleStructuralFeatureCS )
+                    	    // InternalOCLinEcore.g:4234:6: ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) )
+                    	    // InternalOCLinEcore.g:4235:1: (lv_ownedProperties_16_0= ruleStructuralFeatureCS )
                     	    {
-                    	    // InternalOCLinEcore.g:4203:1: (lv_ownedProperties_16_0= ruleStructuralFeatureCS )
-                    	    // InternalOCLinEcore.g:4204:3: lv_ownedProperties_16_0= ruleStructuralFeatureCS
+                    	    // InternalOCLinEcore.g:4235:1: (lv_ownedProperties_16_0= ruleStructuralFeatureCS )
+                    	    // InternalOCLinEcore.g:4236:3: lv_ownedProperties_16_0= ruleStructuralFeatureCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -12310,13 +12386,13 @@
                     	    }
                     	    break;
                     	case 4 :
-                    	    // InternalOCLinEcore.g:4221:6: ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) )
+                    	    // InternalOCLinEcore.g:4253:6: ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) )
                     	    {
-                    	    // InternalOCLinEcore.g:4221:6: ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) )
-                    	    // InternalOCLinEcore.g:4222:1: (lv_ownedConstraints_17_0= ruleInvariantConstraintCS )
+                    	    // InternalOCLinEcore.g:4253:6: ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) )
+                    	    // InternalOCLinEcore.g:4254:1: (lv_ownedConstraints_17_0= ruleInvariantConstraintCS )
                     	    {
-                    	    // InternalOCLinEcore.g:4222:1: (lv_ownedConstraints_17_0= ruleInvariantConstraintCS )
-                    	    // InternalOCLinEcore.g:4223:3: lv_ownedConstraints_17_0= ruleInvariantConstraintCS
+                    	    // InternalOCLinEcore.g:4254:1: (lv_ownedConstraints_17_0= ruleInvariantConstraintCS )
+                    	    // InternalOCLinEcore.g:4255:3: lv_ownedConstraints_17_0= ruleInvariantConstraintCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -12369,7 +12445,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4244:7: otherlv_19= ';'
+                    // InternalOCLinEcore.g:4276:7: otherlv_19= ';'
                     {
                     otherlv_19=(Token)match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -12406,7 +12482,7 @@
 
 
     // $ANTLR start "entryRuleStructuralFeatureCS"
-    // InternalOCLinEcore.g:4256:1: entryRuleStructuralFeatureCS returns [EObject current=null] : iv_ruleStructuralFeatureCS= ruleStructuralFeatureCS EOF ;
+    // InternalOCLinEcore.g:4288:1: entryRuleStructuralFeatureCS returns [EObject current=null] : iv_ruleStructuralFeatureCS= ruleStructuralFeatureCS EOF ;
     public final EObject entryRuleStructuralFeatureCS() throws RecognitionException {
         EObject current = null;
 
@@ -12414,8 +12490,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4257:2: (iv_ruleStructuralFeatureCS= ruleStructuralFeatureCS EOF )
-            // InternalOCLinEcore.g:4258:2: iv_ruleStructuralFeatureCS= ruleStructuralFeatureCS EOF
+            // InternalOCLinEcore.g:4289:2: (iv_ruleStructuralFeatureCS= ruleStructuralFeatureCS EOF )
+            // InternalOCLinEcore.g:4290:2: iv_ruleStructuralFeatureCS= ruleStructuralFeatureCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStructuralFeatureCSRule()); 
@@ -12446,7 +12522,7 @@
 
 
     // $ANTLR start "ruleStructuralFeatureCS"
-    // InternalOCLinEcore.g:4265:1: ruleStructuralFeatureCS returns [EObject current=null] : (this_AttributeCS_0= ruleAttributeCS | this_ReferenceCS_1= ruleReferenceCS ) ;
+    // InternalOCLinEcore.g:4297:1: ruleStructuralFeatureCS returns [EObject current=null] : (this_AttributeCS_0= ruleAttributeCS | this_ReferenceCS_1= ruleReferenceCS ) ;
     public final EObject ruleStructuralFeatureCS() throws RecognitionException {
         EObject current = null;
 
@@ -12458,10 +12534,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4268:28: ( (this_AttributeCS_0= ruleAttributeCS | this_ReferenceCS_1= ruleReferenceCS ) )
-            // InternalOCLinEcore.g:4269:1: (this_AttributeCS_0= ruleAttributeCS | this_ReferenceCS_1= ruleReferenceCS )
+            // InternalOCLinEcore.g:4300:28: ( (this_AttributeCS_0= ruleAttributeCS | this_ReferenceCS_1= ruleReferenceCS ) )
+            // InternalOCLinEcore.g:4301:1: (this_AttributeCS_0= ruleAttributeCS | this_ReferenceCS_1= ruleReferenceCS )
             {
-            // InternalOCLinEcore.g:4269:1: (this_AttributeCS_0= ruleAttributeCS | this_ReferenceCS_1= ruleReferenceCS )
+            // InternalOCLinEcore.g:4301:1: (this_AttributeCS_0= ruleAttributeCS | this_ReferenceCS_1= ruleReferenceCS )
             int alt122=2;
             switch ( input.LA(1) ) {
             case 47:
@@ -12568,7 +12644,7 @@
 
             switch (alt122) {
                 case 1 :
-                    // InternalOCLinEcore.g:4270:2: this_AttributeCS_0= ruleAttributeCS
+                    // InternalOCLinEcore.g:4302:2: this_AttributeCS_0= ruleAttributeCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -12595,7 +12671,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4283:2: this_ReferenceCS_1= ruleReferenceCS
+                    // InternalOCLinEcore.g:4315:2: this_ReferenceCS_1= ruleReferenceCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -12644,7 +12720,7 @@
 
 
     // $ANTLR start "entryRuleSysMLCS"
-    // InternalOCLinEcore.g:4302:1: entryRuleSysMLCS returns [EObject current=null] : iv_ruleSysMLCS= ruleSysMLCS EOF ;
+    // InternalOCLinEcore.g:4334:1: entryRuleSysMLCS returns [EObject current=null] : iv_ruleSysMLCS= ruleSysMLCS EOF ;
     public final EObject entryRuleSysMLCS() throws RecognitionException {
         EObject current = null;
 
@@ -12652,8 +12728,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4303:2: (iv_ruleSysMLCS= ruleSysMLCS EOF )
-            // InternalOCLinEcore.g:4304:2: iv_ruleSysMLCS= ruleSysMLCS EOF
+            // InternalOCLinEcore.g:4335:2: (iv_ruleSysMLCS= ruleSysMLCS EOF )
+            // InternalOCLinEcore.g:4336:2: iv_ruleSysMLCS= ruleSysMLCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSysMLCSRule()); 
@@ -12684,7 +12760,7 @@
 
 
     // $ANTLR start "ruleSysMLCS"
-    // InternalOCLinEcore.g:4311:1: ruleSysMLCS returns [EObject current=null] : ( () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) ) ) ;
+    // InternalOCLinEcore.g:4343:1: ruleSysMLCS returns [EObject current=null] : ( () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) ) ) ;
     public final EObject ruleSysMLCS() throws RecognitionException {
         EObject current = null;
 
@@ -12701,14 +12777,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4314:28: ( ( () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) ) ) )
-            // InternalOCLinEcore.g:4315:1: ( () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) ) )
+            // InternalOCLinEcore.g:4346:28: ( ( () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) ) ) )
+            // InternalOCLinEcore.g:4347:1: ( () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) ) )
             {
-            // InternalOCLinEcore.g:4315:1: ( () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) ) )
-            // InternalOCLinEcore.g:4315:2: () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) )
+            // InternalOCLinEcore.g:4347:1: ( () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) ) )
+            // InternalOCLinEcore.g:4347:2: () otherlv_1= 'sysml' ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) )
             {
-            // InternalOCLinEcore.g:4315:2: ()
-            // InternalOCLinEcore.g:4316:2: 
+            // InternalOCLinEcore.g:4347:2: ()
+            // InternalOCLinEcore.g:4348:2: 
             {
             if ( state.backtracking==0 ) {
                
@@ -12731,7 +12807,7 @@
                   	newLeafNode(otherlv_1, grammarAccess.getSysMLCSAccess().getSysmlKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:4328:1: ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) )
+            // InternalOCLinEcore.g:4360:1: ( ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' ) | (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' ) )
             int alt124=2;
             int LA124_0 = input.LA(1);
 
@@ -12750,16 +12826,16 @@
             }
             switch (alt124) {
                 case 1 :
-                    // InternalOCLinEcore.g:4328:2: ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' )
+                    // InternalOCLinEcore.g:4360:2: ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' )
                     {
-                    // InternalOCLinEcore.g:4328:2: ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' )
-                    // InternalOCLinEcore.g:4328:3: ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';'
+                    // InternalOCLinEcore.g:4360:2: ( ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';' )
+                    // InternalOCLinEcore.g:4360:3: ( (lv_ownedDetails_2_0= ruleDetailCS ) ) otherlv_3= ';'
                     {
-                    // InternalOCLinEcore.g:4328:3: ( (lv_ownedDetails_2_0= ruleDetailCS ) )
-                    // InternalOCLinEcore.g:4329:1: (lv_ownedDetails_2_0= ruleDetailCS )
+                    // InternalOCLinEcore.g:4360:3: ( (lv_ownedDetails_2_0= ruleDetailCS ) )
+                    // InternalOCLinEcore.g:4361:1: (lv_ownedDetails_2_0= ruleDetailCS )
                     {
-                    // InternalOCLinEcore.g:4329:1: (lv_ownedDetails_2_0= ruleDetailCS )
-                    // InternalOCLinEcore.g:4330:3: lv_ownedDetails_2_0= ruleDetailCS
+                    // InternalOCLinEcore.g:4361:1: (lv_ownedDetails_2_0= ruleDetailCS )
+                    // InternalOCLinEcore.g:4362:3: lv_ownedDetails_2_0= ruleDetailCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -12803,10 +12879,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4351:6: (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' )
+                    // InternalOCLinEcore.g:4383:6: (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' )
                     {
-                    // InternalOCLinEcore.g:4351:6: (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' )
-                    // InternalOCLinEcore.g:4351:8: otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}'
+                    // InternalOCLinEcore.g:4383:6: (otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}' )
+                    // InternalOCLinEcore.g:4383:8: otherlv_4= '{' ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )* otherlv_7= '}'
                     {
                     otherlv_4=(Token)match(input,60,FollowSets000.FOLLOW_84); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -12814,7 +12890,7 @@
                           	newLeafNode(otherlv_4, grammarAccess.getSysMLCSAccess().getLeftCurlyBracketKeyword_2_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:4355:1: ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )*
+                    // InternalOCLinEcore.g:4387:1: ( ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';' )*
                     loop123:
                     do {
                         int alt123=2;
@@ -12827,13 +12903,13 @@
 
                         switch (alt123) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:4355:2: ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';'
+                    	    // InternalOCLinEcore.g:4387:2: ( (lv_ownedDetails_5_0= ruleDetailCS ) ) otherlv_6= ';'
                     	    {
-                    	    // InternalOCLinEcore.g:4355:2: ( (lv_ownedDetails_5_0= ruleDetailCS ) )
-                    	    // InternalOCLinEcore.g:4356:1: (lv_ownedDetails_5_0= ruleDetailCS )
+                    	    // InternalOCLinEcore.g:4387:2: ( (lv_ownedDetails_5_0= ruleDetailCS ) )
+                    	    // InternalOCLinEcore.g:4388:1: (lv_ownedDetails_5_0= ruleDetailCS )
                     	    {
-                    	    // InternalOCLinEcore.g:4356:1: (lv_ownedDetails_5_0= ruleDetailCS )
-                    	    // InternalOCLinEcore.g:4357:3: lv_ownedDetails_5_0= ruleDetailCS
+                    	    // InternalOCLinEcore.g:4388:1: (lv_ownedDetails_5_0= ruleDetailCS )
+                    	    // InternalOCLinEcore.g:4389:3: lv_ownedDetails_5_0= ruleDetailCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -12917,7 +12993,7 @@
 
 
     // $ANTLR start "entryRuleTypedMultiplicityRefCS"
-    // InternalOCLinEcore.g:4391:1: entryRuleTypedMultiplicityRefCS returns [EObject current=null] : iv_ruleTypedMultiplicityRefCS= ruleTypedMultiplicityRefCS EOF ;
+    // InternalOCLinEcore.g:4423:1: entryRuleTypedMultiplicityRefCS returns [EObject current=null] : iv_ruleTypedMultiplicityRefCS= ruleTypedMultiplicityRefCS EOF ;
     public final EObject entryRuleTypedMultiplicityRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -12925,8 +13001,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4392:2: (iv_ruleTypedMultiplicityRefCS= ruleTypedMultiplicityRefCS EOF )
-            // InternalOCLinEcore.g:4393:2: iv_ruleTypedMultiplicityRefCS= ruleTypedMultiplicityRefCS EOF
+            // InternalOCLinEcore.g:4424:2: (iv_ruleTypedMultiplicityRefCS= ruleTypedMultiplicityRefCS EOF )
+            // InternalOCLinEcore.g:4425:2: iv_ruleTypedMultiplicityRefCS= ruleTypedMultiplicityRefCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypedMultiplicityRefCSRule()); 
@@ -12957,7 +13033,7 @@
 
 
     // $ANTLR start "ruleTypedMultiplicityRefCS"
-    // InternalOCLinEcore.g:4400:1: ruleTypedMultiplicityRefCS returns [EObject current=null] : (this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? ) ;
+    // InternalOCLinEcore.g:4432:1: ruleTypedMultiplicityRefCS returns [EObject current=null] : (this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? ) ;
     public final EObject ruleTypedMultiplicityRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -12969,11 +13045,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4403:28: ( (this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? ) )
-            // InternalOCLinEcore.g:4404:1: (this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? )
+            // InternalOCLinEcore.g:4435:28: ( (this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? ) )
+            // InternalOCLinEcore.g:4436:1: (this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? )
             {
-            // InternalOCLinEcore.g:4404:1: (this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? )
-            // InternalOCLinEcore.g:4405:2: this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )?
+            // InternalOCLinEcore.g:4436:1: (this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? )
+            // InternalOCLinEcore.g:4437:2: this_TypedRefCS_0= ruleTypedRefCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )?
             {
             if ( state.backtracking==0 ) {
                
@@ -12996,7 +13072,7 @@
                       afterParserOrEnumRuleCall();
                   
             }
-            // InternalOCLinEcore.g:4416:1: ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )?
+            // InternalOCLinEcore.g:4448:1: ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )?
             int alt125=2;
             int LA125_0 = input.LA(1);
 
@@ -13005,10 +13081,10 @@
             }
             switch (alt125) {
                 case 1 :
-                    // InternalOCLinEcore.g:4417:1: (lv_ownedMultiplicity_1_0= ruleMultiplicityCS )
+                    // InternalOCLinEcore.g:4449:1: (lv_ownedMultiplicity_1_0= ruleMultiplicityCS )
                     {
-                    // InternalOCLinEcore.g:4417:1: (lv_ownedMultiplicity_1_0= ruleMultiplicityCS )
-                    // InternalOCLinEcore.g:4418:3: lv_ownedMultiplicity_1_0= ruleMultiplicityCS
+                    // InternalOCLinEcore.g:4449:1: (lv_ownedMultiplicity_1_0= ruleMultiplicityCS )
+                    // InternalOCLinEcore.g:4450:3: lv_ownedMultiplicity_1_0= ruleMultiplicityCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -13065,7 +13141,7 @@
 
 
     // $ANTLR start "entryRuleTemplateSignatureCS"
-    // InternalOCLinEcore.g:4442:1: entryRuleTemplateSignatureCS returns [EObject current=null] : iv_ruleTemplateSignatureCS= ruleTemplateSignatureCS EOF ;
+    // InternalOCLinEcore.g:4474:1: entryRuleTemplateSignatureCS returns [EObject current=null] : iv_ruleTemplateSignatureCS= ruleTemplateSignatureCS EOF ;
     public final EObject entryRuleTemplateSignatureCS() throws RecognitionException {
         EObject current = null;
 
@@ -13073,8 +13149,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4443:2: (iv_ruleTemplateSignatureCS= ruleTemplateSignatureCS EOF )
-            // InternalOCLinEcore.g:4444:2: iv_ruleTemplateSignatureCS= ruleTemplateSignatureCS EOF
+            // InternalOCLinEcore.g:4475:2: (iv_ruleTemplateSignatureCS= ruleTemplateSignatureCS EOF )
+            // InternalOCLinEcore.g:4476:2: iv_ruleTemplateSignatureCS= ruleTemplateSignatureCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTemplateSignatureCSRule()); 
@@ -13105,7 +13181,7 @@
 
 
     // $ANTLR start "ruleTemplateSignatureCS"
-    // InternalOCLinEcore.g:4451:1: ruleTemplateSignatureCS returns [EObject current=null] : ( (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' ) | (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' ) ) ;
+    // InternalOCLinEcore.g:4483:1: ruleTemplateSignatureCS returns [EObject current=null] : ( (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' ) | (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' ) ) ;
     public final EObject ruleTemplateSignatureCS() throws RecognitionException {
         EObject current = null;
 
@@ -13127,10 +13203,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4454:28: ( ( (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' ) | (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' ) ) )
-            // InternalOCLinEcore.g:4455:1: ( (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' ) | (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' ) )
+            // InternalOCLinEcore.g:4486:28: ( ( (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' ) | (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' ) ) )
+            // InternalOCLinEcore.g:4487:1: ( (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' ) | (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' ) )
             {
-            // InternalOCLinEcore.g:4455:1: ( (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' ) | (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' ) )
+            // InternalOCLinEcore.g:4487:1: ( (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' ) | (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' ) )
             int alt128=2;
             int LA128_0 = input.LA(1);
 
@@ -13149,10 +13225,10 @@
             }
             switch (alt128) {
                 case 1 :
-                    // InternalOCLinEcore.g:4455:2: (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' )
+                    // InternalOCLinEcore.g:4487:2: (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' )
                     {
-                    // InternalOCLinEcore.g:4455:2: (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' )
-                    // InternalOCLinEcore.g:4455:4: otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')'
+                    // InternalOCLinEcore.g:4487:2: (otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')' )
+                    // InternalOCLinEcore.g:4487:4: otherlv_0= '(' ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) ) (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )* otherlv_4= ')'
                     {
                     otherlv_0=(Token)match(input,54,FollowSets000.FOLLOW_3); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -13160,11 +13236,11 @@
                           	newLeafNode(otherlv_0, grammarAccess.getTemplateSignatureCSAccess().getLeftParenthesisKeyword_0_0());
                           
                     }
-                    // InternalOCLinEcore.g:4459:1: ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) )
-                    // InternalOCLinEcore.g:4460:1: (lv_ownedParameters_1_0= ruleTypeParameterCS )
+                    // InternalOCLinEcore.g:4491:1: ( (lv_ownedParameters_1_0= ruleTypeParameterCS ) )
+                    // InternalOCLinEcore.g:4492:1: (lv_ownedParameters_1_0= ruleTypeParameterCS )
                     {
-                    // InternalOCLinEcore.g:4460:1: (lv_ownedParameters_1_0= ruleTypeParameterCS )
-                    // InternalOCLinEcore.g:4461:3: lv_ownedParameters_1_0= ruleTypeParameterCS
+                    // InternalOCLinEcore.g:4492:1: (lv_ownedParameters_1_0= ruleTypeParameterCS )
+                    // InternalOCLinEcore.g:4493:3: lv_ownedParameters_1_0= ruleTypeParameterCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -13195,7 +13271,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:4477:2: (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )*
+                    // InternalOCLinEcore.g:4509:2: (otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) ) )*
                     loop126:
                     do {
                         int alt126=2;
@@ -13208,7 +13284,7 @@
 
                         switch (alt126) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:4477:4: otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) )
+                    	    // InternalOCLinEcore.g:4509:4: otherlv_2= ',' ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) )
                     	    {
                     	    otherlv_2=(Token)match(input,59,FollowSets000.FOLLOW_3); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -13216,11 +13292,11 @@
                     	          	newLeafNode(otherlv_2, grammarAccess.getTemplateSignatureCSAccess().getCommaKeyword_0_2_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:4481:1: ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) )
-                    	    // InternalOCLinEcore.g:4482:1: (lv_ownedParameters_3_0= ruleTypeParameterCS )
+                    	    // InternalOCLinEcore.g:4513:1: ( (lv_ownedParameters_3_0= ruleTypeParameterCS ) )
+                    	    // InternalOCLinEcore.g:4514:1: (lv_ownedParameters_3_0= ruleTypeParameterCS )
                     	    {
-                    	    // InternalOCLinEcore.g:4482:1: (lv_ownedParameters_3_0= ruleTypeParameterCS )
-                    	    // InternalOCLinEcore.g:4483:3: lv_ownedParameters_3_0= ruleTypeParameterCS
+                    	    // InternalOCLinEcore.g:4514:1: (lv_ownedParameters_3_0= ruleTypeParameterCS )
+                    	    // InternalOCLinEcore.g:4515:3: lv_ownedParameters_3_0= ruleTypeParameterCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -13273,10 +13349,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4504:6: (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' )
+                    // InternalOCLinEcore.g:4536:6: (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' )
                     {
-                    // InternalOCLinEcore.g:4504:6: (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' )
-                    // InternalOCLinEcore.g:4504:8: otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>'
+                    // InternalOCLinEcore.g:4536:6: (otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>' )
+                    // InternalOCLinEcore.g:4536:8: otherlv_5= '<' ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) ) (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )* otherlv_9= '>'
                     {
                     otherlv_5=(Token)match(input,80,FollowSets000.FOLLOW_3); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -13284,11 +13360,11 @@
                           	newLeafNode(otherlv_5, grammarAccess.getTemplateSignatureCSAccess().getLessThanSignKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:4508:1: ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) )
-                    // InternalOCLinEcore.g:4509:1: (lv_ownedParameters_6_0= ruleTypeParameterCS )
+                    // InternalOCLinEcore.g:4540:1: ( (lv_ownedParameters_6_0= ruleTypeParameterCS ) )
+                    // InternalOCLinEcore.g:4541:1: (lv_ownedParameters_6_0= ruleTypeParameterCS )
                     {
-                    // InternalOCLinEcore.g:4509:1: (lv_ownedParameters_6_0= ruleTypeParameterCS )
-                    // InternalOCLinEcore.g:4510:3: lv_ownedParameters_6_0= ruleTypeParameterCS
+                    // InternalOCLinEcore.g:4541:1: (lv_ownedParameters_6_0= ruleTypeParameterCS )
+                    // InternalOCLinEcore.g:4542:3: lv_ownedParameters_6_0= ruleTypeParameterCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -13319,7 +13395,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:4526:2: (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )*
+                    // InternalOCLinEcore.g:4558:2: (otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) ) )*
                     loop127:
                     do {
                         int alt127=2;
@@ -13332,7 +13408,7 @@
 
                         switch (alt127) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:4526:4: otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) )
+                    	    // InternalOCLinEcore.g:4558:4: otherlv_7= ',' ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) )
                     	    {
                     	    otherlv_7=(Token)match(input,59,FollowSets000.FOLLOW_3); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -13340,11 +13416,11 @@
                     	          	newLeafNode(otherlv_7, grammarAccess.getTemplateSignatureCSAccess().getCommaKeyword_1_2_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:4530:1: ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) )
-                    	    // InternalOCLinEcore.g:4531:1: (lv_ownedParameters_8_0= ruleTypeParameterCS )
+                    	    // InternalOCLinEcore.g:4562:1: ( (lv_ownedParameters_8_0= ruleTypeParameterCS ) )
+                    	    // InternalOCLinEcore.g:4563:1: (lv_ownedParameters_8_0= ruleTypeParameterCS )
                     	    {
-                    	    // InternalOCLinEcore.g:4531:1: (lv_ownedParameters_8_0= ruleTypeParameterCS )
-                    	    // InternalOCLinEcore.g:4532:3: lv_ownedParameters_8_0= ruleTypeParameterCS
+                    	    // InternalOCLinEcore.g:4563:1: (lv_ownedParameters_8_0= ruleTypeParameterCS )
+                    	    // InternalOCLinEcore.g:4564:3: lv_ownedParameters_8_0= ruleTypeParameterCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -13419,7 +13495,7 @@
 
 
     // $ANTLR start "entryRuleTypedRefCS"
-    // InternalOCLinEcore.g:4560:1: entryRuleTypedRefCS returns [EObject current=null] : iv_ruleTypedRefCS= ruleTypedRefCS EOF ;
+    // InternalOCLinEcore.g:4592:1: entryRuleTypedRefCS returns [EObject current=null] : iv_ruleTypedRefCS= ruleTypedRefCS EOF ;
     public final EObject entryRuleTypedRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -13427,8 +13503,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4561:2: (iv_ruleTypedRefCS= ruleTypedRefCS EOF )
-            // InternalOCLinEcore.g:4562:2: iv_ruleTypedRefCS= ruleTypedRefCS EOF
+            // InternalOCLinEcore.g:4593:2: (iv_ruleTypedRefCS= ruleTypedRefCS EOF )
+            // InternalOCLinEcore.g:4594:2: iv_ruleTypedRefCS= ruleTypedRefCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypedRefCSRule()); 
@@ -13459,7 +13535,7 @@
 
 
     // $ANTLR start "ruleTypedRefCS"
-    // InternalOCLinEcore.g:4569:1: ruleTypedRefCS returns [EObject current=null] : (this_TypeLiteralCS_0= ruleTypeLiteralCS | this_TypedTypeRefCS_1= ruleTypedTypeRefCS ) ;
+    // InternalOCLinEcore.g:4601:1: ruleTypedRefCS returns [EObject current=null] : (this_TypeLiteralCS_0= ruleTypeLiteralCS | this_TypedTypeRefCS_1= ruleTypedTypeRefCS ) ;
     public final EObject ruleTypedRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -13471,10 +13547,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4572:28: ( (this_TypeLiteralCS_0= ruleTypeLiteralCS | this_TypedTypeRefCS_1= ruleTypedTypeRefCS ) )
-            // InternalOCLinEcore.g:4573:1: (this_TypeLiteralCS_0= ruleTypeLiteralCS | this_TypedTypeRefCS_1= ruleTypedTypeRefCS )
+            // InternalOCLinEcore.g:4604:28: ( (this_TypeLiteralCS_0= ruleTypeLiteralCS | this_TypedTypeRefCS_1= ruleTypedTypeRefCS ) )
+            // InternalOCLinEcore.g:4605:1: (this_TypeLiteralCS_0= ruleTypeLiteralCS | this_TypedTypeRefCS_1= ruleTypedTypeRefCS )
             {
-            // InternalOCLinEcore.g:4573:1: (this_TypeLiteralCS_0= ruleTypeLiteralCS | this_TypedTypeRefCS_1= ruleTypedTypeRefCS )
+            // InternalOCLinEcore.g:4605:1: (this_TypeLiteralCS_0= ruleTypeLiteralCS | this_TypedTypeRefCS_1= ruleTypedTypeRefCS )
             int alt129=2;
             int LA129_0 = input.LA(1);
 
@@ -13493,7 +13569,7 @@
             }
             switch (alt129) {
                 case 1 :
-                    // InternalOCLinEcore.g:4574:2: this_TypeLiteralCS_0= ruleTypeLiteralCS
+                    // InternalOCLinEcore.g:4606:2: this_TypeLiteralCS_0= ruleTypeLiteralCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -13520,7 +13596,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4587:2: this_TypedTypeRefCS_1= ruleTypedTypeRefCS
+                    // InternalOCLinEcore.g:4619:2: this_TypedTypeRefCS_1= ruleTypedTypeRefCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -13569,7 +13645,7 @@
 
 
     // $ANTLR start "entryRuleTypedTypeRefCS"
-    // InternalOCLinEcore.g:4606:1: entryRuleTypedTypeRefCS returns [EObject current=null] : iv_ruleTypedTypeRefCS= ruleTypedTypeRefCS EOF ;
+    // InternalOCLinEcore.g:4638:1: entryRuleTypedTypeRefCS returns [EObject current=null] : iv_ruleTypedTypeRefCS= ruleTypedTypeRefCS EOF ;
     public final EObject entryRuleTypedTypeRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -13577,8 +13653,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4607:2: (iv_ruleTypedTypeRefCS= ruleTypedTypeRefCS EOF )
-            // InternalOCLinEcore.g:4608:2: iv_ruleTypedTypeRefCS= ruleTypedTypeRefCS EOF
+            // InternalOCLinEcore.g:4639:2: (iv_ruleTypedTypeRefCS= ruleTypedTypeRefCS EOF )
+            // InternalOCLinEcore.g:4640:2: iv_ruleTypedTypeRefCS= ruleTypedTypeRefCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypedTypeRefCSRule()); 
@@ -13609,7 +13685,7 @@
 
 
     // $ANTLR start "ruleTypedTypeRefCS"
-    // InternalOCLinEcore.g:4615:1: ruleTypedTypeRefCS returns [EObject current=null] : ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )? ) ;
+    // InternalOCLinEcore.g:4647:1: ruleTypedTypeRefCS returns [EObject current=null] : ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )? ) ;
     public final EObject ruleTypedTypeRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -13627,17 +13703,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4618:28: ( ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )? ) )
-            // InternalOCLinEcore.g:4619:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )? )
+            // InternalOCLinEcore.g:4650:28: ( ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )? ) )
+            // InternalOCLinEcore.g:4651:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )? )
             {
-            // InternalOCLinEcore.g:4619:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )? )
-            // InternalOCLinEcore.g:4619:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )?
+            // InternalOCLinEcore.g:4651:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )? )
+            // InternalOCLinEcore.g:4651:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )?
             {
-            // InternalOCLinEcore.g:4619:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) )
-            // InternalOCLinEcore.g:4620:1: (lv_ownedPathName_0_0= rulePathNameCS )
+            // InternalOCLinEcore.g:4651:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) )
+            // InternalOCLinEcore.g:4652:1: (lv_ownedPathName_0_0= rulePathNameCS )
             {
-            // InternalOCLinEcore.g:4620:1: (lv_ownedPathName_0_0= rulePathNameCS )
-            // InternalOCLinEcore.g:4621:3: lv_ownedPathName_0_0= rulePathNameCS
+            // InternalOCLinEcore.g:4652:1: (lv_ownedPathName_0_0= rulePathNameCS )
+            // InternalOCLinEcore.g:4653:3: lv_ownedPathName_0_0= rulePathNameCS
             {
             if ( state.backtracking==0 ) {
                
@@ -13668,7 +13744,7 @@
 
             }
 
-            // InternalOCLinEcore.g:4637:2: ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )?
+            // InternalOCLinEcore.g:4669:2: ( (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' ) | (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' ) )?
             int alt130=3;
             int LA130_0 = input.LA(1);
 
@@ -13680,10 +13756,10 @@
             }
             switch (alt130) {
                 case 1 :
-                    // InternalOCLinEcore.g:4637:3: (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' )
+                    // InternalOCLinEcore.g:4669:3: (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' )
                     {
-                    // InternalOCLinEcore.g:4637:3: (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' )
-                    // InternalOCLinEcore.g:4637:5: otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')'
+                    // InternalOCLinEcore.g:4669:3: (otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')' )
+                    // InternalOCLinEcore.g:4669:5: otherlv_1= '(' ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) ) otherlv_3= ')'
                     {
                     otherlv_1=(Token)match(input,54,FollowSets000.FOLLOW_88); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -13691,11 +13767,11 @@
                           	newLeafNode(otherlv_1, grammarAccess.getTypedTypeRefCSAccess().getLeftParenthesisKeyword_1_0_0());
                           
                     }
-                    // InternalOCLinEcore.g:4641:1: ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) )
-                    // InternalOCLinEcore.g:4642:1: (lv_ownedBinding_2_0= ruleTemplateBindingCS )
+                    // InternalOCLinEcore.g:4673:1: ( (lv_ownedBinding_2_0= ruleTemplateBindingCS ) )
+                    // InternalOCLinEcore.g:4674:1: (lv_ownedBinding_2_0= ruleTemplateBindingCS )
                     {
-                    // InternalOCLinEcore.g:4642:1: (lv_ownedBinding_2_0= ruleTemplateBindingCS )
-                    // InternalOCLinEcore.g:4643:3: lv_ownedBinding_2_0= ruleTemplateBindingCS
+                    // InternalOCLinEcore.g:4674:1: (lv_ownedBinding_2_0= ruleTemplateBindingCS )
+                    // InternalOCLinEcore.g:4675:3: lv_ownedBinding_2_0= ruleTemplateBindingCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -13739,10 +13815,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4664:6: (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' )
+                    // InternalOCLinEcore.g:4696:6: (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' )
                     {
-                    // InternalOCLinEcore.g:4664:6: (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' )
-                    // InternalOCLinEcore.g:4664:8: otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>'
+                    // InternalOCLinEcore.g:4696:6: (otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>' )
+                    // InternalOCLinEcore.g:4696:8: otherlv_4= '<' ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) ) otherlv_6= '>'
                     {
                     otherlv_4=(Token)match(input,80,FollowSets000.FOLLOW_88); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -13750,11 +13826,11 @@
                           	newLeafNode(otherlv_4, grammarAccess.getTypedTypeRefCSAccess().getLessThanSignKeyword_1_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:4668:1: ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) )
-                    // InternalOCLinEcore.g:4669:1: (lv_ownedBinding_5_0= ruleTemplateBindingCS )
+                    // InternalOCLinEcore.g:4700:1: ( (lv_ownedBinding_5_0= ruleTemplateBindingCS ) )
+                    // InternalOCLinEcore.g:4701:1: (lv_ownedBinding_5_0= ruleTemplateBindingCS )
                     {
-                    // InternalOCLinEcore.g:4669:1: (lv_ownedBinding_5_0= ruleTemplateBindingCS )
-                    // InternalOCLinEcore.g:4670:3: lv_ownedBinding_5_0= ruleTemplateBindingCS
+                    // InternalOCLinEcore.g:4701:1: (lv_ownedBinding_5_0= ruleTemplateBindingCS )
+                    // InternalOCLinEcore.g:4702:3: lv_ownedBinding_5_0= ruleTemplateBindingCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -13823,7 +13899,7 @@
 
 
     // $ANTLR start "entryRuleUnrestrictedName"
-    // InternalOCLinEcore.g:4698:1: entryRuleUnrestrictedName returns [String current=null] : iv_ruleUnrestrictedName= ruleUnrestrictedName EOF ;
+    // InternalOCLinEcore.g:4730:1: entryRuleUnrestrictedName returns [String current=null] : iv_ruleUnrestrictedName= ruleUnrestrictedName EOF ;
     public final String entryRuleUnrestrictedName() throws RecognitionException {
         String current = null;
 
@@ -13831,8 +13907,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4699:2: (iv_ruleUnrestrictedName= ruleUnrestrictedName EOF )
-            // InternalOCLinEcore.g:4700:2: iv_ruleUnrestrictedName= ruleUnrestrictedName EOF
+            // InternalOCLinEcore.g:4731:2: (iv_ruleUnrestrictedName= ruleUnrestrictedName EOF )
+            // InternalOCLinEcore.g:4732:2: iv_ruleUnrestrictedName= ruleUnrestrictedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getUnrestrictedNameRule()); 
@@ -13863,7 +13939,7 @@
 
 
     // $ANTLR start "ruleUnrestrictedName"
-    // InternalOCLinEcore.g:4707:1: ruleUnrestrictedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_EnumerationLiteralName_0= ruleEnumerationLiteralName | kw= 'annotation' | kw= 'documentation' | kw= 'invariant' | kw= 'literal' | kw= 'serializable' | kw= 'sysml' ) ;
+    // InternalOCLinEcore.g:4739:1: ruleUnrestrictedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_EnumerationLiteralName_0= ruleEnumerationLiteralName | kw= 'annotation' | kw= 'documentation' | kw= 'invariant' | kw= 'literal' | kw= 'serializable' | kw= 'sysml' ) ;
     public final AntlrDatatypeRuleToken ruleUnrestrictedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -13874,10 +13950,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4710:28: ( (this_EnumerationLiteralName_0= ruleEnumerationLiteralName | kw= 'annotation' | kw= 'documentation' | kw= 'invariant' | kw= 'literal' | kw= 'serializable' | kw= 'sysml' ) )
-            // InternalOCLinEcore.g:4711:1: (this_EnumerationLiteralName_0= ruleEnumerationLiteralName | kw= 'annotation' | kw= 'documentation' | kw= 'invariant' | kw= 'literal' | kw= 'serializable' | kw= 'sysml' )
+            // InternalOCLinEcore.g:4742:28: ( (this_EnumerationLiteralName_0= ruleEnumerationLiteralName | kw= 'annotation' | kw= 'documentation' | kw= 'invariant' | kw= 'literal' | kw= 'serializable' | kw= 'sysml' ) )
+            // InternalOCLinEcore.g:4743:1: (this_EnumerationLiteralName_0= ruleEnumerationLiteralName | kw= 'annotation' | kw= 'documentation' | kw= 'invariant' | kw= 'literal' | kw= 'serializable' | kw= 'sysml' )
             {
-            // InternalOCLinEcore.g:4711:1: (this_EnumerationLiteralName_0= ruleEnumerationLiteralName | kw= 'annotation' | kw= 'documentation' | kw= 'invariant' | kw= 'literal' | kw= 'serializable' | kw= 'sysml' )
+            // InternalOCLinEcore.g:4743:1: (this_EnumerationLiteralName_0= ruleEnumerationLiteralName | kw= 'annotation' | kw= 'documentation' | kw= 'invariant' | kw= 'literal' | kw= 'serializable' | kw= 'sysml' )
             int alt131=7;
             switch ( input.LA(1) ) {
             case RULE_SIMPLE_ID:
@@ -13961,7 +14037,7 @@
 
             switch (alt131) {
                 case 1 :
-                    // InternalOCLinEcore.g:4712:5: this_EnumerationLiteralName_0= ruleEnumerationLiteralName
+                    // InternalOCLinEcore.g:4744:5: this_EnumerationLiteralName_0= ruleEnumerationLiteralName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -13987,7 +14063,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4724:2: kw= 'annotation'
+                    // InternalOCLinEcore.g:4756:2: kw= 'annotation'
                     {
                     kw=(Token)match(input,58,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14000,7 +14076,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4731:2: kw= 'documentation'
+                    // InternalOCLinEcore.g:4763:2: kw= 'documentation'
                     {
                     kw=(Token)match(input,73,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14013,7 +14089,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4738:2: kw= 'invariant'
+                    // InternalOCLinEcore.g:4770:2: kw= 'invariant'
                     {
                     kw=(Token)match(input,53,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14026,7 +14102,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:4745:2: kw= 'literal'
+                    // InternalOCLinEcore.g:4777:2: kw= 'literal'
                     {
                     kw=(Token)match(input,74,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14039,7 +14115,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:4752:2: kw= 'serializable'
+                    // InternalOCLinEcore.g:4784:2: kw= 'serializable'
                     {
                     kw=(Token)match(input,71,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14052,7 +14128,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:4759:2: kw= 'sysml'
+                    // InternalOCLinEcore.g:4791:2: kw= 'sysml'
                     {
                     kw=(Token)match(input,79,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14087,7 +14163,7 @@
 
 
     // $ANTLR start "entryRuleEssentialOCLUnaryOperatorName"
-    // InternalOCLinEcore.g:4776:1: entryRuleEssentialOCLUnaryOperatorName returns [String current=null] : iv_ruleEssentialOCLUnaryOperatorName= ruleEssentialOCLUnaryOperatorName EOF ;
+    // InternalOCLinEcore.g:4808:1: entryRuleEssentialOCLUnaryOperatorName returns [String current=null] : iv_ruleEssentialOCLUnaryOperatorName= ruleEssentialOCLUnaryOperatorName EOF ;
     public final String entryRuleEssentialOCLUnaryOperatorName() throws RecognitionException {
         String current = null;
 
@@ -14095,8 +14171,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4777:2: (iv_ruleEssentialOCLUnaryOperatorName= ruleEssentialOCLUnaryOperatorName EOF )
-            // InternalOCLinEcore.g:4778:2: iv_ruleEssentialOCLUnaryOperatorName= ruleEssentialOCLUnaryOperatorName EOF
+            // InternalOCLinEcore.g:4809:2: (iv_ruleEssentialOCLUnaryOperatorName= ruleEssentialOCLUnaryOperatorName EOF )
+            // InternalOCLinEcore.g:4810:2: iv_ruleEssentialOCLUnaryOperatorName= ruleEssentialOCLUnaryOperatorName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getEssentialOCLUnaryOperatorNameRule()); 
@@ -14127,7 +14203,7 @@
 
 
     // $ANTLR start "ruleEssentialOCLUnaryOperatorName"
-    // InternalOCLinEcore.g:4785:1: ruleEssentialOCLUnaryOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '-' | kw= 'not' ) ;
+    // InternalOCLinEcore.g:4817:1: ruleEssentialOCLUnaryOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '-' | kw= 'not' ) ;
     public final AntlrDatatypeRuleToken ruleEssentialOCLUnaryOperatorName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -14136,10 +14212,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4788:28: ( (kw= '-' | kw= 'not' ) )
-            // InternalOCLinEcore.g:4789:1: (kw= '-' | kw= 'not' )
+            // InternalOCLinEcore.g:4820:28: ( (kw= '-' | kw= 'not' ) )
+            // InternalOCLinEcore.g:4821:1: (kw= '-' | kw= 'not' )
             {
-            // InternalOCLinEcore.g:4789:1: (kw= '-' | kw= 'not' )
+            // InternalOCLinEcore.g:4821:1: (kw= '-' | kw= 'not' )
             int alt132=2;
             int LA132_0 = input.LA(1);
 
@@ -14158,7 +14234,7 @@
             }
             switch (alt132) {
                 case 1 :
-                    // InternalOCLinEcore.g:4790:2: kw= '-'
+                    // InternalOCLinEcore.g:4822:2: kw= '-'
                     {
                     kw=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14171,7 +14247,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4797:2: kw= 'not'
+                    // InternalOCLinEcore.g:4829:2: kw= 'not'
                     {
                     kw=(Token)match(input,82,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14206,7 +14282,7 @@
 
 
     // $ANTLR start "entryRuleEssentialOCLInfixOperatorName"
-    // InternalOCLinEcore.g:4810:1: entryRuleEssentialOCLInfixOperatorName returns [String current=null] : iv_ruleEssentialOCLInfixOperatorName= ruleEssentialOCLInfixOperatorName EOF ;
+    // InternalOCLinEcore.g:4842:1: entryRuleEssentialOCLInfixOperatorName returns [String current=null] : iv_ruleEssentialOCLInfixOperatorName= ruleEssentialOCLInfixOperatorName EOF ;
     public final String entryRuleEssentialOCLInfixOperatorName() throws RecognitionException {
         String current = null;
 
@@ -14214,8 +14290,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4811:2: (iv_ruleEssentialOCLInfixOperatorName= ruleEssentialOCLInfixOperatorName EOF )
-            // InternalOCLinEcore.g:4812:2: iv_ruleEssentialOCLInfixOperatorName= ruleEssentialOCLInfixOperatorName EOF
+            // InternalOCLinEcore.g:4843:2: (iv_ruleEssentialOCLInfixOperatorName= ruleEssentialOCLInfixOperatorName EOF )
+            // InternalOCLinEcore.g:4844:2: iv_ruleEssentialOCLInfixOperatorName= ruleEssentialOCLInfixOperatorName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getEssentialOCLInfixOperatorNameRule()); 
@@ -14246,7 +14322,7 @@
 
 
     // $ANTLR start "ruleEssentialOCLInfixOperatorName"
-    // InternalOCLinEcore.g:4819:1: ruleEssentialOCLInfixOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '/' | kw= '+' | kw= '-' | kw= '>' | kw= '<' | kw= '>=' | kw= '<=' | kw= '=' | kw= '<>' | kw= 'and' | kw= 'or' | kw= 'xor' | kw= 'implies' ) ;
+    // InternalOCLinEcore.g:4851:1: ruleEssentialOCLInfixOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '/' | kw= '+' | kw= '-' | kw= '>' | kw= '<' | kw= '>=' | kw= '<=' | kw= '=' | kw= '<>' | kw= 'and' | kw= 'or' | kw= 'xor' | kw= 'implies' ) ;
     public final AntlrDatatypeRuleToken ruleEssentialOCLInfixOperatorName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -14255,10 +14331,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4822:28: ( (kw= '*' | kw= '/' | kw= '+' | kw= '-' | kw= '>' | kw= '<' | kw= '>=' | kw= '<=' | kw= '=' | kw= '<>' | kw= 'and' | kw= 'or' | kw= 'xor' | kw= 'implies' ) )
-            // InternalOCLinEcore.g:4823:1: (kw= '*' | kw= '/' | kw= '+' | kw= '-' | kw= '>' | kw= '<' | kw= '>=' | kw= '<=' | kw= '=' | kw= '<>' | kw= 'and' | kw= 'or' | kw= 'xor' | kw= 'implies' )
+            // InternalOCLinEcore.g:4854:28: ( (kw= '*' | kw= '/' | kw= '+' | kw= '-' | kw= '>' | kw= '<' | kw= '>=' | kw= '<=' | kw= '=' | kw= '<>' | kw= 'and' | kw= 'or' | kw= 'xor' | kw= 'implies' ) )
+            // InternalOCLinEcore.g:4855:1: (kw= '*' | kw= '/' | kw= '+' | kw= '-' | kw= '>' | kw= '<' | kw= '>=' | kw= '<=' | kw= '=' | kw= '<>' | kw= 'and' | kw= 'or' | kw= 'xor' | kw= 'implies' )
             {
-            // InternalOCLinEcore.g:4823:1: (kw= '*' | kw= '/' | kw= '+' | kw= '-' | kw= '>' | kw= '<' | kw= '>=' | kw= '<=' | kw= '=' | kw= '<>' | kw= 'and' | kw= 'or' | kw= 'xor' | kw= 'implies' )
+            // InternalOCLinEcore.g:4855:1: (kw= '*' | kw= '/' | kw= '+' | kw= '-' | kw= '>' | kw= '<' | kw= '>=' | kw= '<=' | kw= '=' | kw= '<>' | kw= 'and' | kw= 'or' | kw= 'xor' | kw= 'implies' )
             int alt133=14;
             switch ( input.LA(1) ) {
             case 83:
@@ -14341,7 +14417,7 @@
 
             switch (alt133) {
                 case 1 :
-                    // InternalOCLinEcore.g:4824:2: kw= '*'
+                    // InternalOCLinEcore.g:4856:2: kw= '*'
                     {
                     kw=(Token)match(input,83,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14354,7 +14430,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4831:2: kw= '/'
+                    // InternalOCLinEcore.g:4863:2: kw= '/'
                     {
                     kw=(Token)match(input,84,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14367,7 +14443,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4838:2: kw= '+'
+                    // InternalOCLinEcore.g:4870:2: kw= '+'
                     {
                     kw=(Token)match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14380,7 +14456,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4845:2: kw= '-'
+                    // InternalOCLinEcore.g:4877:2: kw= '-'
                     {
                     kw=(Token)match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14393,7 +14469,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:4852:2: kw= '>'
+                    // InternalOCLinEcore.g:4884:2: kw= '>'
                     {
                     kw=(Token)match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14406,7 +14482,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:4859:2: kw= '<'
+                    // InternalOCLinEcore.g:4891:2: kw= '<'
                     {
                     kw=(Token)match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14419,7 +14495,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:4866:2: kw= '>='
+                    // InternalOCLinEcore.g:4898:2: kw= '>='
                     {
                     kw=(Token)match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14432,7 +14508,7 @@
                     }
                     break;
                 case 8 :
-                    // InternalOCLinEcore.g:4873:2: kw= '<='
+                    // InternalOCLinEcore.g:4905:2: kw= '<='
                     {
                     kw=(Token)match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14445,7 +14521,7 @@
                     }
                     break;
                 case 9 :
-                    // InternalOCLinEcore.g:4880:2: kw= '='
+                    // InternalOCLinEcore.g:4912:2: kw= '='
                     {
                     kw=(Token)match(input,62,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14458,7 +14534,7 @@
                     }
                     break;
                 case 10 :
-                    // InternalOCLinEcore.g:4887:2: kw= '<>'
+                    // InternalOCLinEcore.g:4919:2: kw= '<>'
                     {
                     kw=(Token)match(input,88,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14471,7 +14547,7 @@
                     }
                     break;
                 case 11 :
-                    // InternalOCLinEcore.g:4894:2: kw= 'and'
+                    // InternalOCLinEcore.g:4926:2: kw= 'and'
                     {
                     kw=(Token)match(input,89,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14484,7 +14560,7 @@
                     }
                     break;
                 case 12 :
-                    // InternalOCLinEcore.g:4901:2: kw= 'or'
+                    // InternalOCLinEcore.g:4933:2: kw= 'or'
                     {
                     kw=(Token)match(input,90,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14497,7 +14573,7 @@
                     }
                     break;
                 case 13 :
-                    // InternalOCLinEcore.g:4908:2: kw= 'xor'
+                    // InternalOCLinEcore.g:4940:2: kw= 'xor'
                     {
                     kw=(Token)match(input,91,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14510,7 +14586,7 @@
                     }
                     break;
                 case 14 :
-                    // InternalOCLinEcore.g:4915:2: kw= 'implies'
+                    // InternalOCLinEcore.g:4947:2: kw= 'implies'
                     {
                     kw=(Token)match(input,92,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14545,7 +14621,7 @@
 
 
     // $ANTLR start "entryRuleEssentialOCLNavigationOperatorName"
-    // InternalOCLinEcore.g:4928:1: entryRuleEssentialOCLNavigationOperatorName returns [String current=null] : iv_ruleEssentialOCLNavigationOperatorName= ruleEssentialOCLNavigationOperatorName EOF ;
+    // InternalOCLinEcore.g:4960:1: entryRuleEssentialOCLNavigationOperatorName returns [String current=null] : iv_ruleEssentialOCLNavigationOperatorName= ruleEssentialOCLNavigationOperatorName EOF ;
     public final String entryRuleEssentialOCLNavigationOperatorName() throws RecognitionException {
         String current = null;
 
@@ -14553,8 +14629,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4929:2: (iv_ruleEssentialOCLNavigationOperatorName= ruleEssentialOCLNavigationOperatorName EOF )
-            // InternalOCLinEcore.g:4930:2: iv_ruleEssentialOCLNavigationOperatorName= ruleEssentialOCLNavigationOperatorName EOF
+            // InternalOCLinEcore.g:4961:2: (iv_ruleEssentialOCLNavigationOperatorName= ruleEssentialOCLNavigationOperatorName EOF )
+            // InternalOCLinEcore.g:4962:2: iv_ruleEssentialOCLNavigationOperatorName= ruleEssentialOCLNavigationOperatorName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getEssentialOCLNavigationOperatorNameRule()); 
@@ -14585,7 +14661,7 @@
 
 
     // $ANTLR start "ruleEssentialOCLNavigationOperatorName"
-    // InternalOCLinEcore.g:4937:1: ruleEssentialOCLNavigationOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '.' | kw= '->' | kw= '?.' | kw= '?->' ) ;
+    // InternalOCLinEcore.g:4969:1: ruleEssentialOCLNavigationOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '.' | kw= '->' | kw= '?.' | kw= '?->' ) ;
     public final AntlrDatatypeRuleToken ruleEssentialOCLNavigationOperatorName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -14594,10 +14670,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4940:28: ( (kw= '.' | kw= '->' | kw= '?.' | kw= '?->' ) )
-            // InternalOCLinEcore.g:4941:1: (kw= '.' | kw= '->' | kw= '?.' | kw= '?->' )
+            // InternalOCLinEcore.g:4972:28: ( (kw= '.' | kw= '->' | kw= '?.' | kw= '?->' ) )
+            // InternalOCLinEcore.g:4973:1: (kw= '.' | kw= '->' | kw= '?.' | kw= '?->' )
             {
-            // InternalOCLinEcore.g:4941:1: (kw= '.' | kw= '->' | kw= '?.' | kw= '?->' )
+            // InternalOCLinEcore.g:4973:1: (kw= '.' | kw= '->' | kw= '?.' | kw= '?->' )
             int alt134=4;
             switch ( input.LA(1) ) {
             case 93:
@@ -14630,7 +14706,7 @@
 
             switch (alt134) {
                 case 1 :
-                    // InternalOCLinEcore.g:4942:2: kw= '.'
+                    // InternalOCLinEcore.g:4974:2: kw= '.'
                     {
                     kw=(Token)match(input,93,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14643,7 +14719,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:4949:2: kw= '->'
+                    // InternalOCLinEcore.g:4981:2: kw= '->'
                     {
                     kw=(Token)match(input,94,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14656,7 +14732,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:4956:2: kw= '?.'
+                    // InternalOCLinEcore.g:4988:2: kw= '?.'
                     {
                     kw=(Token)match(input,95,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14669,7 +14745,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:4963:2: kw= '?->'
+                    // InternalOCLinEcore.g:4995:2: kw= '?->'
                     {
                     kw=(Token)match(input,96,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -14704,7 +14780,7 @@
 
 
     // $ANTLR start "entryRuleBinaryOperatorName"
-    // InternalOCLinEcore.g:4976:1: entryRuleBinaryOperatorName returns [String current=null] : iv_ruleBinaryOperatorName= ruleBinaryOperatorName EOF ;
+    // InternalOCLinEcore.g:5008:1: entryRuleBinaryOperatorName returns [String current=null] : iv_ruleBinaryOperatorName= ruleBinaryOperatorName EOF ;
     public final String entryRuleBinaryOperatorName() throws RecognitionException {
         String current = null;
 
@@ -14712,8 +14788,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:4977:2: (iv_ruleBinaryOperatorName= ruleBinaryOperatorName EOF )
-            // InternalOCLinEcore.g:4978:2: iv_ruleBinaryOperatorName= ruleBinaryOperatorName EOF
+            // InternalOCLinEcore.g:5009:2: (iv_ruleBinaryOperatorName= ruleBinaryOperatorName EOF )
+            // InternalOCLinEcore.g:5010:2: iv_ruleBinaryOperatorName= ruleBinaryOperatorName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getBinaryOperatorNameRule()); 
@@ -14744,7 +14820,7 @@
 
 
     // $ANTLR start "ruleBinaryOperatorName"
-    // InternalOCLinEcore.g:4985:1: ruleBinaryOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_InfixOperatorName_0= ruleInfixOperatorName | this_NavigationOperatorName_1= ruleNavigationOperatorName ) ;
+    // InternalOCLinEcore.g:5017:1: ruleBinaryOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_InfixOperatorName_0= ruleInfixOperatorName | this_NavigationOperatorName_1= ruleNavigationOperatorName ) ;
     public final AntlrDatatypeRuleToken ruleBinaryOperatorName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -14756,10 +14832,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:4988:28: ( (this_InfixOperatorName_0= ruleInfixOperatorName | this_NavigationOperatorName_1= ruleNavigationOperatorName ) )
-            // InternalOCLinEcore.g:4989:1: (this_InfixOperatorName_0= ruleInfixOperatorName | this_NavigationOperatorName_1= ruleNavigationOperatorName )
+            // InternalOCLinEcore.g:5020:28: ( (this_InfixOperatorName_0= ruleInfixOperatorName | this_NavigationOperatorName_1= ruleNavigationOperatorName ) )
+            // InternalOCLinEcore.g:5021:1: (this_InfixOperatorName_0= ruleInfixOperatorName | this_NavigationOperatorName_1= ruleNavigationOperatorName )
             {
-            // InternalOCLinEcore.g:4989:1: (this_InfixOperatorName_0= ruleInfixOperatorName | this_NavigationOperatorName_1= ruleNavigationOperatorName )
+            // InternalOCLinEcore.g:5021:1: (this_InfixOperatorName_0= ruleInfixOperatorName | this_NavigationOperatorName_1= ruleNavigationOperatorName )
             int alt135=2;
             int LA135_0 = input.LA(1);
 
@@ -14778,7 +14854,7 @@
             }
             switch (alt135) {
                 case 1 :
-                    // InternalOCLinEcore.g:4990:5: this_InfixOperatorName_0= ruleInfixOperatorName
+                    // InternalOCLinEcore.g:5022:5: this_InfixOperatorName_0= ruleInfixOperatorName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -14804,7 +14880,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5002:5: this_NavigationOperatorName_1= ruleNavigationOperatorName
+                    // InternalOCLinEcore.g:5034:5: this_NavigationOperatorName_1= ruleNavigationOperatorName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -14852,7 +14928,7 @@
 
 
     // $ANTLR start "entryRuleInfixOperatorName"
-    // InternalOCLinEcore.g:5020:1: entryRuleInfixOperatorName returns [String current=null] : iv_ruleInfixOperatorName= ruleInfixOperatorName EOF ;
+    // InternalOCLinEcore.g:5052:1: entryRuleInfixOperatorName returns [String current=null] : iv_ruleInfixOperatorName= ruleInfixOperatorName EOF ;
     public final String entryRuleInfixOperatorName() throws RecognitionException {
         String current = null;
 
@@ -14860,8 +14936,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5021:2: (iv_ruleInfixOperatorName= ruleInfixOperatorName EOF )
-            // InternalOCLinEcore.g:5022:2: iv_ruleInfixOperatorName= ruleInfixOperatorName EOF
+            // InternalOCLinEcore.g:5053:2: (iv_ruleInfixOperatorName= ruleInfixOperatorName EOF )
+            // InternalOCLinEcore.g:5054:2: iv_ruleInfixOperatorName= ruleInfixOperatorName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getInfixOperatorNameRule()); 
@@ -14892,7 +14968,7 @@
 
 
     // $ANTLR start "ruleInfixOperatorName"
-    // InternalOCLinEcore.g:5029:1: ruleInfixOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_EssentialOCLInfixOperatorName_0= ruleEssentialOCLInfixOperatorName ;
+    // InternalOCLinEcore.g:5061:1: ruleInfixOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_EssentialOCLInfixOperatorName_0= ruleEssentialOCLInfixOperatorName ;
     public final AntlrDatatypeRuleToken ruleInfixOperatorName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -14902,8 +14978,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5032:28: (this_EssentialOCLInfixOperatorName_0= ruleEssentialOCLInfixOperatorName )
-            // InternalOCLinEcore.g:5034:5: this_EssentialOCLInfixOperatorName_0= ruleEssentialOCLInfixOperatorName
+            // InternalOCLinEcore.g:5064:28: (this_EssentialOCLInfixOperatorName_0= ruleEssentialOCLInfixOperatorName )
+            // InternalOCLinEcore.g:5066:5: this_EssentialOCLInfixOperatorName_0= ruleEssentialOCLInfixOperatorName
             {
             if ( state.backtracking==0 ) {
                
@@ -14945,7 +15021,7 @@
 
 
     // $ANTLR start "entryRuleNavigationOperatorName"
-    // InternalOCLinEcore.g:5052:1: entryRuleNavigationOperatorName returns [String current=null] : iv_ruleNavigationOperatorName= ruleNavigationOperatorName EOF ;
+    // InternalOCLinEcore.g:5084:1: entryRuleNavigationOperatorName returns [String current=null] : iv_ruleNavigationOperatorName= ruleNavigationOperatorName EOF ;
     public final String entryRuleNavigationOperatorName() throws RecognitionException {
         String current = null;
 
@@ -14953,8 +15029,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5053:2: (iv_ruleNavigationOperatorName= ruleNavigationOperatorName EOF )
-            // InternalOCLinEcore.g:5054:2: iv_ruleNavigationOperatorName= ruleNavigationOperatorName EOF
+            // InternalOCLinEcore.g:5085:2: (iv_ruleNavigationOperatorName= ruleNavigationOperatorName EOF )
+            // InternalOCLinEcore.g:5086:2: iv_ruleNavigationOperatorName= ruleNavigationOperatorName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNavigationOperatorNameRule()); 
@@ -14985,7 +15061,7 @@
 
 
     // $ANTLR start "ruleNavigationOperatorName"
-    // InternalOCLinEcore.g:5061:1: ruleNavigationOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_EssentialOCLNavigationOperatorName_0= ruleEssentialOCLNavigationOperatorName ;
+    // InternalOCLinEcore.g:5093:1: ruleNavigationOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_EssentialOCLNavigationOperatorName_0= ruleEssentialOCLNavigationOperatorName ;
     public final AntlrDatatypeRuleToken ruleNavigationOperatorName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -14995,8 +15071,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5064:28: (this_EssentialOCLNavigationOperatorName_0= ruleEssentialOCLNavigationOperatorName )
-            // InternalOCLinEcore.g:5066:5: this_EssentialOCLNavigationOperatorName_0= ruleEssentialOCLNavigationOperatorName
+            // InternalOCLinEcore.g:5096:28: (this_EssentialOCLNavigationOperatorName_0= ruleEssentialOCLNavigationOperatorName )
+            // InternalOCLinEcore.g:5098:5: this_EssentialOCLNavigationOperatorName_0= ruleEssentialOCLNavigationOperatorName
             {
             if ( state.backtracking==0 ) {
                
@@ -15038,7 +15114,7 @@
 
 
     // $ANTLR start "entryRuleUnaryOperatorName"
-    // InternalOCLinEcore.g:5084:1: entryRuleUnaryOperatorName returns [String current=null] : iv_ruleUnaryOperatorName= ruleUnaryOperatorName EOF ;
+    // InternalOCLinEcore.g:5116:1: entryRuleUnaryOperatorName returns [String current=null] : iv_ruleUnaryOperatorName= ruleUnaryOperatorName EOF ;
     public final String entryRuleUnaryOperatorName() throws RecognitionException {
         String current = null;
 
@@ -15046,8 +15122,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5085:2: (iv_ruleUnaryOperatorName= ruleUnaryOperatorName EOF )
-            // InternalOCLinEcore.g:5086:2: iv_ruleUnaryOperatorName= ruleUnaryOperatorName EOF
+            // InternalOCLinEcore.g:5117:2: (iv_ruleUnaryOperatorName= ruleUnaryOperatorName EOF )
+            // InternalOCLinEcore.g:5118:2: iv_ruleUnaryOperatorName= ruleUnaryOperatorName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getUnaryOperatorNameRule()); 
@@ -15078,7 +15154,7 @@
 
 
     // $ANTLR start "ruleUnaryOperatorName"
-    // InternalOCLinEcore.g:5093:1: ruleUnaryOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_EssentialOCLUnaryOperatorName_0= ruleEssentialOCLUnaryOperatorName ;
+    // InternalOCLinEcore.g:5125:1: ruleUnaryOperatorName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_EssentialOCLUnaryOperatorName_0= ruleEssentialOCLUnaryOperatorName ;
     public final AntlrDatatypeRuleToken ruleUnaryOperatorName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -15088,8 +15164,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5096:28: (this_EssentialOCLUnaryOperatorName_0= ruleEssentialOCLUnaryOperatorName )
-            // InternalOCLinEcore.g:5098:5: this_EssentialOCLUnaryOperatorName_0= ruleEssentialOCLUnaryOperatorName
+            // InternalOCLinEcore.g:5128:28: (this_EssentialOCLUnaryOperatorName_0= ruleEssentialOCLUnaryOperatorName )
+            // InternalOCLinEcore.g:5130:5: this_EssentialOCLUnaryOperatorName_0= ruleEssentialOCLUnaryOperatorName
             {
             if ( state.backtracking==0 ) {
                
@@ -15131,7 +15207,7 @@
 
 
     // $ANTLR start "entryRuleEssentialOCLUnrestrictedName"
-    // InternalOCLinEcore.g:5116:1: entryRuleEssentialOCLUnrestrictedName returns [String current=null] : iv_ruleEssentialOCLUnrestrictedName= ruleEssentialOCLUnrestrictedName EOF ;
+    // InternalOCLinEcore.g:5148:1: entryRuleEssentialOCLUnrestrictedName returns [String current=null] : iv_ruleEssentialOCLUnrestrictedName= ruleEssentialOCLUnrestrictedName EOF ;
     public final String entryRuleEssentialOCLUnrestrictedName() throws RecognitionException {
         String current = null;
 
@@ -15139,8 +15215,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5117:2: (iv_ruleEssentialOCLUnrestrictedName= ruleEssentialOCLUnrestrictedName EOF )
-            // InternalOCLinEcore.g:5118:2: iv_ruleEssentialOCLUnrestrictedName= ruleEssentialOCLUnrestrictedName EOF
+            // InternalOCLinEcore.g:5149:2: (iv_ruleEssentialOCLUnrestrictedName= ruleEssentialOCLUnrestrictedName EOF )
+            // InternalOCLinEcore.g:5150:2: iv_ruleEssentialOCLUnrestrictedName= ruleEssentialOCLUnrestrictedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getEssentialOCLUnrestrictedNameRule()); 
@@ -15171,7 +15247,7 @@
 
 
     // $ANTLR start "ruleEssentialOCLUnrestrictedName"
-    // InternalOCLinEcore.g:5125:1: ruleEssentialOCLUnrestrictedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_Identifier_0= ruleIdentifier ;
+    // InternalOCLinEcore.g:5157:1: ruleEssentialOCLUnrestrictedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_Identifier_0= ruleIdentifier ;
     public final AntlrDatatypeRuleToken ruleEssentialOCLUnrestrictedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -15181,8 +15257,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5128:28: (this_Identifier_0= ruleIdentifier )
-            // InternalOCLinEcore.g:5130:5: this_Identifier_0= ruleIdentifier
+            // InternalOCLinEcore.g:5160:28: (this_Identifier_0= ruleIdentifier )
+            // InternalOCLinEcore.g:5162:5: this_Identifier_0= ruleIdentifier
             {
             if ( state.backtracking==0 ) {
                
@@ -15224,7 +15300,7 @@
 
 
     // $ANTLR start "entryRuleEssentialOCLUnreservedName"
-    // InternalOCLinEcore.g:5148:1: entryRuleEssentialOCLUnreservedName returns [String current=null] : iv_ruleEssentialOCLUnreservedName= ruleEssentialOCLUnreservedName EOF ;
+    // InternalOCLinEcore.g:5180:1: entryRuleEssentialOCLUnreservedName returns [String current=null] : iv_ruleEssentialOCLUnreservedName= ruleEssentialOCLUnreservedName EOF ;
     public final String entryRuleEssentialOCLUnreservedName() throws RecognitionException {
         String current = null;
 
@@ -15232,8 +15308,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5149:2: (iv_ruleEssentialOCLUnreservedName= ruleEssentialOCLUnreservedName EOF )
-            // InternalOCLinEcore.g:5150:2: iv_ruleEssentialOCLUnreservedName= ruleEssentialOCLUnreservedName EOF
+            // InternalOCLinEcore.g:5181:2: (iv_ruleEssentialOCLUnreservedName= ruleEssentialOCLUnreservedName EOF )
+            // InternalOCLinEcore.g:5182:2: iv_ruleEssentialOCLUnreservedName= ruleEssentialOCLUnreservedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getEssentialOCLUnreservedNameRule()); 
@@ -15264,7 +15340,7 @@
 
 
     // $ANTLR start "ruleEssentialOCLUnreservedName"
-    // InternalOCLinEcore.g:5157:1: ruleEssentialOCLUnreservedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_UnrestrictedName_0= ruleUnrestrictedName | this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier | this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier | kw= 'Map' | kw= 'Tuple' ) ;
+    // InternalOCLinEcore.g:5189:1: ruleEssentialOCLUnreservedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_UnrestrictedName_0= ruleUnrestrictedName | this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier | this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier | kw= 'Map' | kw= 'Tuple' ) ;
     public final AntlrDatatypeRuleToken ruleEssentialOCLUnreservedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -15279,10 +15355,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5160:28: ( (this_UnrestrictedName_0= ruleUnrestrictedName | this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier | this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier | kw= 'Map' | kw= 'Tuple' ) )
-            // InternalOCLinEcore.g:5161:1: (this_UnrestrictedName_0= ruleUnrestrictedName | this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier | this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier | kw= 'Map' | kw= 'Tuple' )
+            // InternalOCLinEcore.g:5192:28: ( (this_UnrestrictedName_0= ruleUnrestrictedName | this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier | this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier | kw= 'Map' | kw= 'Tuple' ) )
+            // InternalOCLinEcore.g:5193:1: (this_UnrestrictedName_0= ruleUnrestrictedName | this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier | this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier | kw= 'Map' | kw= 'Tuple' )
             {
-            // InternalOCLinEcore.g:5161:1: (this_UnrestrictedName_0= ruleUnrestrictedName | this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier | this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier | kw= 'Map' | kw= 'Tuple' )
+            // InternalOCLinEcore.g:5193:1: (this_UnrestrictedName_0= ruleUnrestrictedName | this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier | this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier | kw= 'Map' | kw= 'Tuple' )
             int alt136=5;
             switch ( input.LA(1) ) {
             case RULE_SIMPLE_ID:
@@ -15373,7 +15449,7 @@
 
             switch (alt136) {
                 case 1 :
-                    // InternalOCLinEcore.g:5162:5: this_UnrestrictedName_0= ruleUnrestrictedName
+                    // InternalOCLinEcore.g:5194:5: this_UnrestrictedName_0= ruleUnrestrictedName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -15399,7 +15475,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5174:5: this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier
+                    // InternalOCLinEcore.g:5206:5: this_CollectionTypeIdentifier_1= ruleCollectionTypeIdentifier
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -15425,7 +15501,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5186:5: this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier
+                    // InternalOCLinEcore.g:5218:5: this_PrimitiveTypeIdentifier_2= rulePrimitiveTypeIdentifier
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -15451,7 +15527,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:5198:2: kw= 'Map'
+                    // InternalOCLinEcore.g:5230:2: kw= 'Map'
                     {
                     kw=(Token)match(input,97,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -15464,7 +15540,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:5205:2: kw= 'Tuple'
+                    // InternalOCLinEcore.g:5237:2: kw= 'Tuple'
                     {
                     kw=(Token)match(input,98,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -15499,7 +15575,7 @@
 
 
     // $ANTLR start "entryRuleUnreservedName"
-    // InternalOCLinEcore.g:5218:1: entryRuleUnreservedName returns [String current=null] : iv_ruleUnreservedName= ruleUnreservedName EOF ;
+    // InternalOCLinEcore.g:5250:1: entryRuleUnreservedName returns [String current=null] : iv_ruleUnreservedName= ruleUnreservedName EOF ;
     public final String entryRuleUnreservedName() throws RecognitionException {
         String current = null;
 
@@ -15507,8 +15583,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5219:2: (iv_ruleUnreservedName= ruleUnreservedName EOF )
-            // InternalOCLinEcore.g:5220:2: iv_ruleUnreservedName= ruleUnreservedName EOF
+            // InternalOCLinEcore.g:5251:2: (iv_ruleUnreservedName= ruleUnreservedName EOF )
+            // InternalOCLinEcore.g:5252:2: iv_ruleUnreservedName= ruleUnreservedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getUnreservedNameRule()); 
@@ -15539,7 +15615,7 @@
 
 
     // $ANTLR start "ruleUnreservedName"
-    // InternalOCLinEcore.g:5227:1: ruleUnreservedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_EssentialOCLUnreservedName_0= ruleEssentialOCLUnreservedName ;
+    // InternalOCLinEcore.g:5259:1: ruleUnreservedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_EssentialOCLUnreservedName_0= ruleEssentialOCLUnreservedName ;
     public final AntlrDatatypeRuleToken ruleUnreservedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -15549,8 +15625,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5230:28: (this_EssentialOCLUnreservedName_0= ruleEssentialOCLUnreservedName )
-            // InternalOCLinEcore.g:5232:5: this_EssentialOCLUnreservedName_0= ruleEssentialOCLUnreservedName
+            // InternalOCLinEcore.g:5262:28: (this_EssentialOCLUnreservedName_0= ruleEssentialOCLUnreservedName )
+            // InternalOCLinEcore.g:5264:5: this_EssentialOCLUnreservedName_0= ruleEssentialOCLUnreservedName
             {
             if ( state.backtracking==0 ) {
                
@@ -15592,7 +15668,7 @@
 
 
     // $ANTLR start "entryRuleURIPathNameCS"
-    // InternalOCLinEcore.g:5250:1: entryRuleURIPathNameCS returns [EObject current=null] : iv_ruleURIPathNameCS= ruleURIPathNameCS EOF ;
+    // InternalOCLinEcore.g:5282:1: entryRuleURIPathNameCS returns [EObject current=null] : iv_ruleURIPathNameCS= ruleURIPathNameCS EOF ;
     public final EObject entryRuleURIPathNameCS() throws RecognitionException {
         EObject current = null;
 
@@ -15600,8 +15676,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5251:2: (iv_ruleURIPathNameCS= ruleURIPathNameCS EOF )
-            // InternalOCLinEcore.g:5252:2: iv_ruleURIPathNameCS= ruleURIPathNameCS EOF
+            // InternalOCLinEcore.g:5283:2: (iv_ruleURIPathNameCS= ruleURIPathNameCS EOF )
+            // InternalOCLinEcore.g:5284:2: iv_ruleURIPathNameCS= ruleURIPathNameCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getURIPathNameCSRule()); 
@@ -15632,7 +15708,7 @@
 
 
     // $ANTLR start "ruleURIPathNameCS"
-    // InternalOCLinEcore.g:5259:1: ruleURIPathNameCS returns [EObject current=null] : ( ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* ) ;
+    // InternalOCLinEcore.g:5291:1: ruleURIPathNameCS returns [EObject current=null] : ( ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* ) ;
     public final EObject ruleURIPathNameCS() throws RecognitionException {
         EObject current = null;
 
@@ -15645,17 +15721,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5262:28: ( ( ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* ) )
-            // InternalOCLinEcore.g:5263:1: ( ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* )
+            // InternalOCLinEcore.g:5294:28: ( ( ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* ) )
+            // InternalOCLinEcore.g:5295:1: ( ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* )
             {
-            // InternalOCLinEcore.g:5263:1: ( ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* )
-            // InternalOCLinEcore.g:5263:2: ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )*
+            // InternalOCLinEcore.g:5295:1: ( ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* )
+            // InternalOCLinEcore.g:5295:2: ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )*
             {
-            // InternalOCLinEcore.g:5263:2: ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) )
-            // InternalOCLinEcore.g:5264:1: (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS )
+            // InternalOCLinEcore.g:5295:2: ( (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS ) )
+            // InternalOCLinEcore.g:5296:1: (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS )
             {
-            // InternalOCLinEcore.g:5264:1: (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS )
-            // InternalOCLinEcore.g:5265:3: lv_ownedPathElements_0_0= ruleURIFirstPathElementCS
+            // InternalOCLinEcore.g:5296:1: (lv_ownedPathElements_0_0= ruleURIFirstPathElementCS )
+            // InternalOCLinEcore.g:5297:3: lv_ownedPathElements_0_0= ruleURIFirstPathElementCS
             {
             if ( state.backtracking==0 ) {
                
@@ -15686,7 +15762,7 @@
 
             }
 
-            // InternalOCLinEcore.g:5281:2: (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )*
+            // InternalOCLinEcore.g:5313:2: (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )*
             loop137:
             do {
                 int alt137=2;
@@ -15699,7 +15775,7 @@
 
                 switch (alt137) {
             	case 1 :
-            	    // InternalOCLinEcore.g:5281:4: otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) )
+            	    // InternalOCLinEcore.g:5313:4: otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) )
             	    {
             	    otherlv_1=(Token)match(input,99,FollowSets000.FOLLOW_91); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -15707,11 +15783,11 @@
             	          	newLeafNode(otherlv_1, grammarAccess.getURIPathNameCSAccess().getColonColonKeyword_1_0());
             	          
             	    }
-            	    // InternalOCLinEcore.g:5285:1: ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) )
-            	    // InternalOCLinEcore.g:5286:1: (lv_ownedPathElements_2_0= ruleNextPathElementCS )
+            	    // InternalOCLinEcore.g:5317:1: ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) )
+            	    // InternalOCLinEcore.g:5318:1: (lv_ownedPathElements_2_0= ruleNextPathElementCS )
             	    {
-            	    // InternalOCLinEcore.g:5286:1: (lv_ownedPathElements_2_0= ruleNextPathElementCS )
-            	    // InternalOCLinEcore.g:5287:3: lv_ownedPathElements_2_0= ruleNextPathElementCS
+            	    // InternalOCLinEcore.g:5318:1: (lv_ownedPathElements_2_0= ruleNextPathElementCS )
+            	    // InternalOCLinEcore.g:5319:3: lv_ownedPathElements_2_0= ruleNextPathElementCS
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -15774,7 +15850,7 @@
 
 
     // $ANTLR start "entryRuleURIFirstPathElementCS"
-    // InternalOCLinEcore.g:5311:1: entryRuleURIFirstPathElementCS returns [EObject current=null] : iv_ruleURIFirstPathElementCS= ruleURIFirstPathElementCS EOF ;
+    // InternalOCLinEcore.g:5343:1: entryRuleURIFirstPathElementCS returns [EObject current=null] : iv_ruleURIFirstPathElementCS= ruleURIFirstPathElementCS EOF ;
     public final EObject entryRuleURIFirstPathElementCS() throws RecognitionException {
         EObject current = null;
 
@@ -15782,8 +15858,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5312:2: (iv_ruleURIFirstPathElementCS= ruleURIFirstPathElementCS EOF )
-            // InternalOCLinEcore.g:5313:2: iv_ruleURIFirstPathElementCS= ruleURIFirstPathElementCS EOF
+            // InternalOCLinEcore.g:5344:2: (iv_ruleURIFirstPathElementCS= ruleURIFirstPathElementCS EOF )
+            // InternalOCLinEcore.g:5345:2: iv_ruleURIFirstPathElementCS= ruleURIFirstPathElementCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getURIFirstPathElementCSRule()); 
@@ -15814,17 +15890,17 @@
 
 
     // $ANTLR start "ruleURIFirstPathElementCS"
-    // InternalOCLinEcore.g:5320:1: ruleURIFirstPathElementCS returns [EObject current=null] : ( ( ( ruleUnrestrictedName ) ) | ( () ( ( ruleURI ) ) ) ) ;
+    // InternalOCLinEcore.g:5352:1: ruleURIFirstPathElementCS returns [EObject current=null] : ( ( ( ruleUnrestrictedName ) ) | ( () ( ( ruleURI ) ) ) ) ;
     public final EObject ruleURIFirstPathElementCS() throws RecognitionException {
         EObject current = null;
 
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5323:28: ( ( ( ( ruleUnrestrictedName ) ) | ( () ( ( ruleURI ) ) ) ) )
-            // InternalOCLinEcore.g:5324:1: ( ( ( ruleUnrestrictedName ) ) | ( () ( ( ruleURI ) ) ) )
+            // InternalOCLinEcore.g:5355:28: ( ( ( ( ruleUnrestrictedName ) ) | ( () ( ( ruleURI ) ) ) ) )
+            // InternalOCLinEcore.g:5356:1: ( ( ( ruleUnrestrictedName ) ) | ( () ( ( ruleURI ) ) ) )
             {
-            // InternalOCLinEcore.g:5324:1: ( ( ( ruleUnrestrictedName ) ) | ( () ( ( ruleURI ) ) ) )
+            // InternalOCLinEcore.g:5356:1: ( ( ( ruleUnrestrictedName ) ) | ( () ( ( ruleURI ) ) ) )
             int alt138=2;
             int LA138_0 = input.LA(1);
 
@@ -15843,13 +15919,13 @@
             }
             switch (alt138) {
                 case 1 :
-                    // InternalOCLinEcore.g:5324:2: ( ( ruleUnrestrictedName ) )
+                    // InternalOCLinEcore.g:5356:2: ( ( ruleUnrestrictedName ) )
                     {
-                    // InternalOCLinEcore.g:5324:2: ( ( ruleUnrestrictedName ) )
-                    // InternalOCLinEcore.g:5325:1: ( ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:5356:2: ( ( ruleUnrestrictedName ) )
+                    // InternalOCLinEcore.g:5357:1: ( ruleUnrestrictedName )
                     {
-                    // InternalOCLinEcore.g:5325:1: ( ruleUnrestrictedName )
-                    // InternalOCLinEcore.g:5326:3: ruleUnrestrictedName
+                    // InternalOCLinEcore.g:5357:1: ( ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:5358:3: ruleUnrestrictedName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -15888,13 +15964,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5343:6: ( () ( ( ruleURI ) ) )
+                    // InternalOCLinEcore.g:5375:6: ( () ( ( ruleURI ) ) )
                     {
-                    // InternalOCLinEcore.g:5343:6: ( () ( ( ruleURI ) ) )
-                    // InternalOCLinEcore.g:5343:7: () ( ( ruleURI ) )
+                    // InternalOCLinEcore.g:5375:6: ( () ( ( ruleURI ) ) )
+                    // InternalOCLinEcore.g:5375:7: () ( ( ruleURI ) )
                     {
-                    // InternalOCLinEcore.g:5343:7: ()
-                    // InternalOCLinEcore.g:5344:2: 
+                    // InternalOCLinEcore.g:5375:7: ()
+                    // InternalOCLinEcore.g:5376:2: 
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -15911,11 +15987,11 @@
 
                     }
 
-                    // InternalOCLinEcore.g:5352:2: ( ( ruleURI ) )
-                    // InternalOCLinEcore.g:5353:1: ( ruleURI )
+                    // InternalOCLinEcore.g:5384:2: ( ( ruleURI ) )
+                    // InternalOCLinEcore.g:5385:1: ( ruleURI )
                     {
-                    // InternalOCLinEcore.g:5353:1: ( ruleURI )
-                    // InternalOCLinEcore.g:5354:3: ruleURI
+                    // InternalOCLinEcore.g:5385:1: ( ruleURI )
+                    // InternalOCLinEcore.g:5386:3: ruleURI
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -15979,7 +16055,7 @@
 
 
     // $ANTLR start "entryRulePrimitiveTypeIdentifier"
-    // InternalOCLinEcore.g:5378:1: entryRulePrimitiveTypeIdentifier returns [String current=null] : iv_rulePrimitiveTypeIdentifier= rulePrimitiveTypeIdentifier EOF ;
+    // InternalOCLinEcore.g:5410:1: entryRulePrimitiveTypeIdentifier returns [String current=null] : iv_rulePrimitiveTypeIdentifier= rulePrimitiveTypeIdentifier EOF ;
     public final String entryRulePrimitiveTypeIdentifier() throws RecognitionException {
         String current = null;
 
@@ -15987,8 +16063,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5379:2: (iv_rulePrimitiveTypeIdentifier= rulePrimitiveTypeIdentifier EOF )
-            // InternalOCLinEcore.g:5380:2: iv_rulePrimitiveTypeIdentifier= rulePrimitiveTypeIdentifier EOF
+            // InternalOCLinEcore.g:5411:2: (iv_rulePrimitiveTypeIdentifier= rulePrimitiveTypeIdentifier EOF )
+            // InternalOCLinEcore.g:5412:2: iv_rulePrimitiveTypeIdentifier= rulePrimitiveTypeIdentifier EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPrimitiveTypeIdentifierRule()); 
@@ -16019,7 +16095,7 @@
 
 
     // $ANTLR start "rulePrimitiveTypeIdentifier"
-    // InternalOCLinEcore.g:5387:1: rulePrimitiveTypeIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Boolean' | kw= 'Integer' | kw= 'Real' | kw= 'String' | kw= 'UnlimitedNatural' | kw= 'OclAny' | kw= 'OclInvalid' | kw= 'OclVoid' ) ;
+    // InternalOCLinEcore.g:5419:1: rulePrimitiveTypeIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Boolean' | kw= 'Integer' | kw= 'Real' | kw= 'String' | kw= 'UnlimitedNatural' | kw= 'OclAny' | kw= 'OclInvalid' | kw= 'OclVoid' ) ;
     public final AntlrDatatypeRuleToken rulePrimitiveTypeIdentifier() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -16028,10 +16104,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5390:28: ( (kw= 'Boolean' | kw= 'Integer' | kw= 'Real' | kw= 'String' | kw= 'UnlimitedNatural' | kw= 'OclAny' | kw= 'OclInvalid' | kw= 'OclVoid' ) )
-            // InternalOCLinEcore.g:5391:1: (kw= 'Boolean' | kw= 'Integer' | kw= 'Real' | kw= 'String' | kw= 'UnlimitedNatural' | kw= 'OclAny' | kw= 'OclInvalid' | kw= 'OclVoid' )
+            // InternalOCLinEcore.g:5422:28: ( (kw= 'Boolean' | kw= 'Integer' | kw= 'Real' | kw= 'String' | kw= 'UnlimitedNatural' | kw= 'OclAny' | kw= 'OclInvalid' | kw= 'OclVoid' ) )
+            // InternalOCLinEcore.g:5423:1: (kw= 'Boolean' | kw= 'Integer' | kw= 'Real' | kw= 'String' | kw= 'UnlimitedNatural' | kw= 'OclAny' | kw= 'OclInvalid' | kw= 'OclVoid' )
             {
-            // InternalOCLinEcore.g:5391:1: (kw= 'Boolean' | kw= 'Integer' | kw= 'Real' | kw= 'String' | kw= 'UnlimitedNatural' | kw= 'OclAny' | kw= 'OclInvalid' | kw= 'OclVoid' )
+            // InternalOCLinEcore.g:5423:1: (kw= 'Boolean' | kw= 'Integer' | kw= 'Real' | kw= 'String' | kw= 'UnlimitedNatural' | kw= 'OclAny' | kw= 'OclInvalid' | kw= 'OclVoid' )
             int alt139=8;
             switch ( input.LA(1) ) {
             case 100:
@@ -16084,7 +16160,7 @@
 
             switch (alt139) {
                 case 1 :
-                    // InternalOCLinEcore.g:5392:2: kw= 'Boolean'
+                    // InternalOCLinEcore.g:5424:2: kw= 'Boolean'
                     {
                     kw=(Token)match(input,100,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16097,7 +16173,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5399:2: kw= 'Integer'
+                    // InternalOCLinEcore.g:5431:2: kw= 'Integer'
                     {
                     kw=(Token)match(input,101,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16110,7 +16186,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5406:2: kw= 'Real'
+                    // InternalOCLinEcore.g:5438:2: kw= 'Real'
                     {
                     kw=(Token)match(input,102,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16123,7 +16199,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:5413:2: kw= 'String'
+                    // InternalOCLinEcore.g:5445:2: kw= 'String'
                     {
                     kw=(Token)match(input,103,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16136,7 +16212,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:5420:2: kw= 'UnlimitedNatural'
+                    // InternalOCLinEcore.g:5452:2: kw= 'UnlimitedNatural'
                     {
                     kw=(Token)match(input,104,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16149,7 +16225,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:5427:2: kw= 'OclAny'
+                    // InternalOCLinEcore.g:5459:2: kw= 'OclAny'
                     {
                     kw=(Token)match(input,105,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16162,7 +16238,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:5434:2: kw= 'OclInvalid'
+                    // InternalOCLinEcore.g:5466:2: kw= 'OclInvalid'
                     {
                     kw=(Token)match(input,106,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16175,7 +16251,7 @@
                     }
                     break;
                 case 8 :
-                    // InternalOCLinEcore.g:5441:2: kw= 'OclVoid'
+                    // InternalOCLinEcore.g:5473:2: kw= 'OclVoid'
                     {
                     kw=(Token)match(input,107,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16210,7 +16286,7 @@
 
 
     // $ANTLR start "entryRulePrimitiveTypeCS"
-    // InternalOCLinEcore.g:5454:1: entryRulePrimitiveTypeCS returns [EObject current=null] : iv_rulePrimitiveTypeCS= rulePrimitiveTypeCS EOF ;
+    // InternalOCLinEcore.g:5486:1: entryRulePrimitiveTypeCS returns [EObject current=null] : iv_rulePrimitiveTypeCS= rulePrimitiveTypeCS EOF ;
     public final EObject entryRulePrimitiveTypeCS() throws RecognitionException {
         EObject current = null;
 
@@ -16218,8 +16294,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5455:2: (iv_rulePrimitiveTypeCS= rulePrimitiveTypeCS EOF )
-            // InternalOCLinEcore.g:5456:2: iv_rulePrimitiveTypeCS= rulePrimitiveTypeCS EOF
+            // InternalOCLinEcore.g:5487:2: (iv_rulePrimitiveTypeCS= rulePrimitiveTypeCS EOF )
+            // InternalOCLinEcore.g:5488:2: iv_rulePrimitiveTypeCS= rulePrimitiveTypeCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPrimitiveTypeCSRule()); 
@@ -16250,7 +16326,7 @@
 
 
     // $ANTLR start "rulePrimitiveTypeCS"
-    // InternalOCLinEcore.g:5463:1: rulePrimitiveTypeCS returns [EObject current=null] : ( (lv_name_0_0= rulePrimitiveTypeIdentifier ) ) ;
+    // InternalOCLinEcore.g:5495:1: rulePrimitiveTypeCS returns [EObject current=null] : ( (lv_name_0_0= rulePrimitiveTypeIdentifier ) ) ;
     public final EObject rulePrimitiveTypeCS() throws RecognitionException {
         EObject current = null;
 
@@ -16260,14 +16336,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5466:28: ( ( (lv_name_0_0= rulePrimitiveTypeIdentifier ) ) )
-            // InternalOCLinEcore.g:5467:1: ( (lv_name_0_0= rulePrimitiveTypeIdentifier ) )
+            // InternalOCLinEcore.g:5498:28: ( ( (lv_name_0_0= rulePrimitiveTypeIdentifier ) ) )
+            // InternalOCLinEcore.g:5499:1: ( (lv_name_0_0= rulePrimitiveTypeIdentifier ) )
             {
-            // InternalOCLinEcore.g:5467:1: ( (lv_name_0_0= rulePrimitiveTypeIdentifier ) )
-            // InternalOCLinEcore.g:5468:1: (lv_name_0_0= rulePrimitiveTypeIdentifier )
+            // InternalOCLinEcore.g:5499:1: ( (lv_name_0_0= rulePrimitiveTypeIdentifier ) )
+            // InternalOCLinEcore.g:5500:1: (lv_name_0_0= rulePrimitiveTypeIdentifier )
             {
-            // InternalOCLinEcore.g:5468:1: (lv_name_0_0= rulePrimitiveTypeIdentifier )
-            // InternalOCLinEcore.g:5469:3: lv_name_0_0= rulePrimitiveTypeIdentifier
+            // InternalOCLinEcore.g:5500:1: (lv_name_0_0= rulePrimitiveTypeIdentifier )
+            // InternalOCLinEcore.g:5501:3: lv_name_0_0= rulePrimitiveTypeIdentifier
             {
             if ( state.backtracking==0 ) {
                
@@ -16318,7 +16394,7 @@
 
 
     // $ANTLR start "entryRuleCollectionTypeIdentifier"
-    // InternalOCLinEcore.g:5493:1: entryRuleCollectionTypeIdentifier returns [String current=null] : iv_ruleCollectionTypeIdentifier= ruleCollectionTypeIdentifier EOF ;
+    // InternalOCLinEcore.g:5525:1: entryRuleCollectionTypeIdentifier returns [String current=null] : iv_ruleCollectionTypeIdentifier= ruleCollectionTypeIdentifier EOF ;
     public final String entryRuleCollectionTypeIdentifier() throws RecognitionException {
         String current = null;
 
@@ -16326,8 +16402,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5494:2: (iv_ruleCollectionTypeIdentifier= ruleCollectionTypeIdentifier EOF )
-            // InternalOCLinEcore.g:5495:2: iv_ruleCollectionTypeIdentifier= ruleCollectionTypeIdentifier EOF
+            // InternalOCLinEcore.g:5526:2: (iv_ruleCollectionTypeIdentifier= ruleCollectionTypeIdentifier EOF )
+            // InternalOCLinEcore.g:5527:2: iv_ruleCollectionTypeIdentifier= ruleCollectionTypeIdentifier EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCollectionTypeIdentifierRule()); 
@@ -16358,7 +16434,7 @@
 
 
     // $ANTLR start "ruleCollectionTypeIdentifier"
-    // InternalOCLinEcore.g:5502:1: ruleCollectionTypeIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Set' | kw= 'Bag' | kw= 'Sequence' | kw= 'Collection' | kw= 'OrderedSet' ) ;
+    // InternalOCLinEcore.g:5534:1: ruleCollectionTypeIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'Set' | kw= 'Bag' | kw= 'Sequence' | kw= 'Collection' | kw= 'OrderedSet' ) ;
     public final AntlrDatatypeRuleToken ruleCollectionTypeIdentifier() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -16367,10 +16443,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5505:28: ( (kw= 'Set' | kw= 'Bag' | kw= 'Sequence' | kw= 'Collection' | kw= 'OrderedSet' ) )
-            // InternalOCLinEcore.g:5506:1: (kw= 'Set' | kw= 'Bag' | kw= 'Sequence' | kw= 'Collection' | kw= 'OrderedSet' )
+            // InternalOCLinEcore.g:5537:28: ( (kw= 'Set' | kw= 'Bag' | kw= 'Sequence' | kw= 'Collection' | kw= 'OrderedSet' ) )
+            // InternalOCLinEcore.g:5538:1: (kw= 'Set' | kw= 'Bag' | kw= 'Sequence' | kw= 'Collection' | kw= 'OrderedSet' )
             {
-            // InternalOCLinEcore.g:5506:1: (kw= 'Set' | kw= 'Bag' | kw= 'Sequence' | kw= 'Collection' | kw= 'OrderedSet' )
+            // InternalOCLinEcore.g:5538:1: (kw= 'Set' | kw= 'Bag' | kw= 'Sequence' | kw= 'Collection' | kw= 'OrderedSet' )
             int alt140=5;
             switch ( input.LA(1) ) {
             case 108:
@@ -16408,7 +16484,7 @@
 
             switch (alt140) {
                 case 1 :
-                    // InternalOCLinEcore.g:5507:2: kw= 'Set'
+                    // InternalOCLinEcore.g:5539:2: kw= 'Set'
                     {
                     kw=(Token)match(input,108,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16421,7 +16497,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5514:2: kw= 'Bag'
+                    // InternalOCLinEcore.g:5546:2: kw= 'Bag'
                     {
                     kw=(Token)match(input,109,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16434,7 +16510,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:5521:2: kw= 'Sequence'
+                    // InternalOCLinEcore.g:5553:2: kw= 'Sequence'
                     {
                     kw=(Token)match(input,110,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16447,7 +16523,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:5528:2: kw= 'Collection'
+                    // InternalOCLinEcore.g:5560:2: kw= 'Collection'
                     {
                     kw=(Token)match(input,111,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16460,7 +16536,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:5535:2: kw= 'OrderedSet'
+                    // InternalOCLinEcore.g:5567:2: kw= 'OrderedSet'
                     {
                     kw=(Token)match(input,112,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16495,7 +16571,7 @@
 
 
     // $ANTLR start "entryRuleCollectionTypeCS"
-    // InternalOCLinEcore.g:5548:1: entryRuleCollectionTypeCS returns [EObject current=null] : iv_ruleCollectionTypeCS= ruleCollectionTypeCS EOF ;
+    // InternalOCLinEcore.g:5580:1: entryRuleCollectionTypeCS returns [EObject current=null] : iv_ruleCollectionTypeCS= ruleCollectionTypeCS EOF ;
     public final EObject entryRuleCollectionTypeCS() throws RecognitionException {
         EObject current = null;
 
@@ -16503,8 +16579,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5549:2: (iv_ruleCollectionTypeCS= ruleCollectionTypeCS EOF )
-            // InternalOCLinEcore.g:5550:2: iv_ruleCollectionTypeCS= ruleCollectionTypeCS EOF
+            // InternalOCLinEcore.g:5581:2: (iv_ruleCollectionTypeCS= ruleCollectionTypeCS EOF )
+            // InternalOCLinEcore.g:5582:2: iv_ruleCollectionTypeCS= ruleCollectionTypeCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCollectionTypeCSRule()); 
@@ -16535,7 +16611,7 @@
 
 
     // $ANTLR start "ruleCollectionTypeCS"
-    // InternalOCLinEcore.g:5557:1: ruleCollectionTypeCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )? ) ;
+    // InternalOCLinEcore.g:5589:1: ruleCollectionTypeCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )? ) ;
     public final EObject ruleCollectionTypeCS() throws RecognitionException {
         EObject current = null;
 
@@ -16549,17 +16625,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5560:28: ( ( ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )? ) )
-            // InternalOCLinEcore.g:5561:1: ( ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )? )
+            // InternalOCLinEcore.g:5592:28: ( ( ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )? ) )
+            // InternalOCLinEcore.g:5593:1: ( ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )? )
             {
-            // InternalOCLinEcore.g:5561:1: ( ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )? )
-            // InternalOCLinEcore.g:5561:2: ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )?
+            // InternalOCLinEcore.g:5593:1: ( ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )? )
+            // InternalOCLinEcore.g:5593:2: ( (lv_name_0_0= ruleCollectionTypeIdentifier ) ) (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )?
             {
-            // InternalOCLinEcore.g:5561:2: ( (lv_name_0_0= ruleCollectionTypeIdentifier ) )
-            // InternalOCLinEcore.g:5562:1: (lv_name_0_0= ruleCollectionTypeIdentifier )
+            // InternalOCLinEcore.g:5593:2: ( (lv_name_0_0= ruleCollectionTypeIdentifier ) )
+            // InternalOCLinEcore.g:5594:1: (lv_name_0_0= ruleCollectionTypeIdentifier )
             {
-            // InternalOCLinEcore.g:5562:1: (lv_name_0_0= ruleCollectionTypeIdentifier )
-            // InternalOCLinEcore.g:5563:3: lv_name_0_0= ruleCollectionTypeIdentifier
+            // InternalOCLinEcore.g:5594:1: (lv_name_0_0= ruleCollectionTypeIdentifier )
+            // InternalOCLinEcore.g:5595:3: lv_name_0_0= ruleCollectionTypeIdentifier
             {
             if ( state.backtracking==0 ) {
                
@@ -16590,7 +16666,7 @@
 
             }
 
-            // InternalOCLinEcore.g:5579:2: (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )?
+            // InternalOCLinEcore.g:5611:2: (otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')' )?
             int alt141=2;
             int LA141_0 = input.LA(1);
 
@@ -16599,7 +16675,7 @@
             }
             switch (alt141) {
                 case 1 :
-                    // InternalOCLinEcore.g:5579:4: otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')'
+                    // InternalOCLinEcore.g:5611:4: otherlv_1= '(' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) otherlv_3= ')'
                     {
                     otherlv_1=(Token)match(input,54,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16607,11 +16683,11 @@
                           	newLeafNode(otherlv_1, grammarAccess.getCollectionTypeCSAccess().getLeftParenthesisKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:5583:1: ( (lv_ownedType_2_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:5584:1: (lv_ownedType_2_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:5615:1: ( (lv_ownedType_2_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:5616:1: (lv_ownedType_2_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:5584:1: (lv_ownedType_2_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:5585:3: lv_ownedType_2_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:5616:1: (lv_ownedType_2_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:5617:3: lv_ownedType_2_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -16677,7 +16753,7 @@
 
 
     // $ANTLR start "entryRuleMapTypeCS"
-    // InternalOCLinEcore.g:5613:1: entryRuleMapTypeCS returns [EObject current=null] : iv_ruleMapTypeCS= ruleMapTypeCS EOF ;
+    // InternalOCLinEcore.g:5645:1: entryRuleMapTypeCS returns [EObject current=null] : iv_ruleMapTypeCS= ruleMapTypeCS EOF ;
     public final EObject entryRuleMapTypeCS() throws RecognitionException {
         EObject current = null;
 
@@ -16685,8 +16761,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5614:2: (iv_ruleMapTypeCS= ruleMapTypeCS EOF )
-            // InternalOCLinEcore.g:5615:2: iv_ruleMapTypeCS= ruleMapTypeCS EOF
+            // InternalOCLinEcore.g:5646:2: (iv_ruleMapTypeCS= ruleMapTypeCS EOF )
+            // InternalOCLinEcore.g:5647:2: iv_ruleMapTypeCS= ruleMapTypeCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMapTypeCSRule()); 
@@ -16717,7 +16793,7 @@
 
 
     // $ANTLR start "ruleMapTypeCS"
-    // InternalOCLinEcore.g:5622:1: ruleMapTypeCS returns [EObject current=null] : ( ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )? ) ;
+    // InternalOCLinEcore.g:5654:1: ruleMapTypeCS returns [EObject current=null] : ( ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )? ) ;
     public final EObject ruleMapTypeCS() throws RecognitionException {
         EObject current = null;
 
@@ -16733,17 +16809,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5625:28: ( ( ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )? ) )
-            // InternalOCLinEcore.g:5626:1: ( ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )? )
+            // InternalOCLinEcore.g:5657:28: ( ( ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )? ) )
+            // InternalOCLinEcore.g:5658:1: ( ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )? )
             {
-            // InternalOCLinEcore.g:5626:1: ( ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )? )
-            // InternalOCLinEcore.g:5626:2: ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )?
+            // InternalOCLinEcore.g:5658:1: ( ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )? )
+            // InternalOCLinEcore.g:5658:2: ( (lv_name_0_0= 'Map' ) ) (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )?
             {
-            // InternalOCLinEcore.g:5626:2: ( (lv_name_0_0= 'Map' ) )
-            // InternalOCLinEcore.g:5627:1: (lv_name_0_0= 'Map' )
+            // InternalOCLinEcore.g:5658:2: ( (lv_name_0_0= 'Map' ) )
+            // InternalOCLinEcore.g:5659:1: (lv_name_0_0= 'Map' )
             {
-            // InternalOCLinEcore.g:5627:1: (lv_name_0_0= 'Map' )
-            // InternalOCLinEcore.g:5628:3: lv_name_0_0= 'Map'
+            // InternalOCLinEcore.g:5659:1: (lv_name_0_0= 'Map' )
+            // InternalOCLinEcore.g:5660:3: lv_name_0_0= 'Map'
             {
             lv_name_0_0=(Token)match(input,97,FollowSets000.FOLLOW_92); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -16765,7 +16841,7 @@
 
             }
 
-            // InternalOCLinEcore.g:5641:2: (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )?
+            // InternalOCLinEcore.g:5673:2: (otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')' )?
             int alt142=2;
             int LA142_0 = input.LA(1);
 
@@ -16774,7 +16850,7 @@
             }
             switch (alt142) {
                 case 1 :
-                    // InternalOCLinEcore.g:5641:4: otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')'
+                    // InternalOCLinEcore.g:5673:4: otherlv_1= '(' ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) ) otherlv_3= ',' ( (lv_ownedValueType_4_0= ruleTypeExpCS ) ) otherlv_5= ')'
                     {
                     otherlv_1=(Token)match(input,54,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16782,11 +16858,11 @@
                           	newLeafNode(otherlv_1, grammarAccess.getMapTypeCSAccess().getLeftParenthesisKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:5645:1: ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:5646:1: (lv_ownedKeyType_2_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:5677:1: ( (lv_ownedKeyType_2_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:5678:1: (lv_ownedKeyType_2_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:5646:1: (lv_ownedKeyType_2_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:5647:3: lv_ownedKeyType_2_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:5678:1: (lv_ownedKeyType_2_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:5679:3: lv_ownedKeyType_2_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -16823,11 +16899,11 @@
                           	newLeafNode(otherlv_3, grammarAccess.getMapTypeCSAccess().getCommaKeyword_1_2());
                           
                     }
-                    // InternalOCLinEcore.g:5667:1: ( (lv_ownedValueType_4_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:5668:1: (lv_ownedValueType_4_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:5699:1: ( (lv_ownedValueType_4_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:5700:1: (lv_ownedValueType_4_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:5668:1: (lv_ownedValueType_4_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:5669:3: lv_ownedValueType_4_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:5700:1: (lv_ownedValueType_4_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:5701:3: lv_ownedValueType_4_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -16893,7 +16969,7 @@
 
 
     // $ANTLR start "entryRuleTupleTypeCS"
-    // InternalOCLinEcore.g:5697:1: entryRuleTupleTypeCS returns [EObject current=null] : iv_ruleTupleTypeCS= ruleTupleTypeCS EOF ;
+    // InternalOCLinEcore.g:5729:1: entryRuleTupleTypeCS returns [EObject current=null] : iv_ruleTupleTypeCS= ruleTupleTypeCS EOF ;
     public final EObject entryRuleTupleTypeCS() throws RecognitionException {
         EObject current = null;
 
@@ -16901,8 +16977,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5698:2: (iv_ruleTupleTypeCS= ruleTupleTypeCS EOF )
-            // InternalOCLinEcore.g:5699:2: iv_ruleTupleTypeCS= ruleTupleTypeCS EOF
+            // InternalOCLinEcore.g:5730:2: (iv_ruleTupleTypeCS= ruleTupleTypeCS EOF )
+            // InternalOCLinEcore.g:5731:2: iv_ruleTupleTypeCS= ruleTupleTypeCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTupleTypeCSRule()); 
@@ -16933,7 +17009,7 @@
 
 
     // $ANTLR start "ruleTupleTypeCS"
-    // InternalOCLinEcore.g:5706:1: ruleTupleTypeCS returns [EObject current=null] : ( ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )? ) ;
+    // InternalOCLinEcore.g:5738:1: ruleTupleTypeCS returns [EObject current=null] : ( ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )? ) ;
     public final EObject ruleTupleTypeCS() throws RecognitionException {
         EObject current = null;
 
@@ -16949,17 +17025,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5709:28: ( ( ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )? ) )
-            // InternalOCLinEcore.g:5710:1: ( ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )? )
+            // InternalOCLinEcore.g:5741:28: ( ( ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )? ) )
+            // InternalOCLinEcore.g:5742:1: ( ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )? )
             {
-            // InternalOCLinEcore.g:5710:1: ( ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )? )
-            // InternalOCLinEcore.g:5710:2: ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )?
+            // InternalOCLinEcore.g:5742:1: ( ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )? )
+            // InternalOCLinEcore.g:5742:2: ( (lv_name_0_0= 'Tuple' ) ) (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )?
             {
-            // InternalOCLinEcore.g:5710:2: ( (lv_name_0_0= 'Tuple' ) )
-            // InternalOCLinEcore.g:5711:1: (lv_name_0_0= 'Tuple' )
+            // InternalOCLinEcore.g:5742:2: ( (lv_name_0_0= 'Tuple' ) )
+            // InternalOCLinEcore.g:5743:1: (lv_name_0_0= 'Tuple' )
             {
-            // InternalOCLinEcore.g:5711:1: (lv_name_0_0= 'Tuple' )
-            // InternalOCLinEcore.g:5712:3: lv_name_0_0= 'Tuple'
+            // InternalOCLinEcore.g:5743:1: (lv_name_0_0= 'Tuple' )
+            // InternalOCLinEcore.g:5744:3: lv_name_0_0= 'Tuple'
             {
             lv_name_0_0=(Token)match(input,98,FollowSets000.FOLLOW_92); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -16981,7 +17057,7 @@
 
             }
 
-            // InternalOCLinEcore.g:5725:2: (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )?
+            // InternalOCLinEcore.g:5757:2: (otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')' )?
             int alt145=2;
             int LA145_0 = input.LA(1);
 
@@ -16990,7 +17066,7 @@
             }
             switch (alt145) {
                 case 1 :
-                    // InternalOCLinEcore.g:5725:4: otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')'
+                    // InternalOCLinEcore.g:5757:4: otherlv_1= '(' ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )? otherlv_5= ')'
                     {
                     otherlv_1=(Token)match(input,54,FollowSets000.FOLLOW_55); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -16998,7 +17074,7 @@
                           	newLeafNode(otherlv_1, grammarAccess.getTupleTypeCSAccess().getLeftParenthesisKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:5729:1: ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )?
+                    // InternalOCLinEcore.g:5761:1: ( ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )* )?
                     int alt144=2;
                     int LA144_0 = input.LA(1);
 
@@ -17007,13 +17083,13 @@
                     }
                     switch (alt144) {
                         case 1 :
-                            // InternalOCLinEcore.g:5729:2: ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )*
+                            // InternalOCLinEcore.g:5761:2: ( (lv_ownedParts_2_0= ruleTuplePartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )*
                             {
-                            // InternalOCLinEcore.g:5729:2: ( (lv_ownedParts_2_0= ruleTuplePartCS ) )
-                            // InternalOCLinEcore.g:5730:1: (lv_ownedParts_2_0= ruleTuplePartCS )
+                            // InternalOCLinEcore.g:5761:2: ( (lv_ownedParts_2_0= ruleTuplePartCS ) )
+                            // InternalOCLinEcore.g:5762:1: (lv_ownedParts_2_0= ruleTuplePartCS )
                             {
-                            // InternalOCLinEcore.g:5730:1: (lv_ownedParts_2_0= ruleTuplePartCS )
-                            // InternalOCLinEcore.g:5731:3: lv_ownedParts_2_0= ruleTuplePartCS
+                            // InternalOCLinEcore.g:5762:1: (lv_ownedParts_2_0= ruleTuplePartCS )
+                            // InternalOCLinEcore.g:5763:3: lv_ownedParts_2_0= ruleTuplePartCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -17044,7 +17120,7 @@
 
                             }
 
-                            // InternalOCLinEcore.g:5747:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )*
+                            // InternalOCLinEcore.g:5779:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) ) )*
                             loop143:
                             do {
                                 int alt143=2;
@@ -17057,7 +17133,7 @@
 
                                 switch (alt143) {
                             	case 1 :
-                            	    // InternalOCLinEcore.g:5747:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) )
+                            	    // InternalOCLinEcore.g:5779:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTuplePartCS ) )
                             	    {
                             	    otherlv_3=(Token)match(input,59,FollowSets000.FOLLOW_3); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
@@ -17065,11 +17141,11 @@
                             	          	newLeafNode(otherlv_3, grammarAccess.getTupleTypeCSAccess().getCommaKeyword_1_1_1_0());
                             	          
                             	    }
-                            	    // InternalOCLinEcore.g:5751:1: ( (lv_ownedParts_4_0= ruleTuplePartCS ) )
-                            	    // InternalOCLinEcore.g:5752:1: (lv_ownedParts_4_0= ruleTuplePartCS )
+                            	    // InternalOCLinEcore.g:5783:1: ( (lv_ownedParts_4_0= ruleTuplePartCS ) )
+                            	    // InternalOCLinEcore.g:5784:1: (lv_ownedParts_4_0= ruleTuplePartCS )
                             	    {
-                            	    // InternalOCLinEcore.g:5752:1: (lv_ownedParts_4_0= ruleTuplePartCS )
-                            	    // InternalOCLinEcore.g:5753:3: lv_ownedParts_4_0= ruleTuplePartCS
+                            	    // InternalOCLinEcore.g:5784:1: (lv_ownedParts_4_0= ruleTuplePartCS )
+                            	    // InternalOCLinEcore.g:5785:3: lv_ownedParts_4_0= ruleTuplePartCS
                             	    {
                             	    if ( state.backtracking==0 ) {
                             	       
@@ -17150,7 +17226,7 @@
 
 
     // $ANTLR start "entryRuleTuplePartCS"
-    // InternalOCLinEcore.g:5781:1: entryRuleTuplePartCS returns [EObject current=null] : iv_ruleTuplePartCS= ruleTuplePartCS EOF ;
+    // InternalOCLinEcore.g:5813:1: entryRuleTuplePartCS returns [EObject current=null] : iv_ruleTuplePartCS= ruleTuplePartCS EOF ;
     public final EObject entryRuleTuplePartCS() throws RecognitionException {
         EObject current = null;
 
@@ -17158,8 +17234,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5782:2: (iv_ruleTuplePartCS= ruleTuplePartCS EOF )
-            // InternalOCLinEcore.g:5783:2: iv_ruleTuplePartCS= ruleTuplePartCS EOF
+            // InternalOCLinEcore.g:5814:2: (iv_ruleTuplePartCS= ruleTuplePartCS EOF )
+            // InternalOCLinEcore.g:5815:2: iv_ruleTuplePartCS= ruleTuplePartCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTuplePartCSRule()); 
@@ -17190,7 +17266,7 @@
 
 
     // $ANTLR start "ruleTuplePartCS"
-    // InternalOCLinEcore.g:5790:1: ruleTuplePartCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) ) ;
+    // InternalOCLinEcore.g:5822:1: ruleTuplePartCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) ) ;
     public final EObject ruleTuplePartCS() throws RecognitionException {
         EObject current = null;
 
@@ -17203,17 +17279,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5793:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) ) )
-            // InternalOCLinEcore.g:5794:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )
+            // InternalOCLinEcore.g:5825:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) ) )
+            // InternalOCLinEcore.g:5826:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )
             {
-            // InternalOCLinEcore.g:5794:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )
-            // InternalOCLinEcore.g:5794:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:5826:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )
+            // InternalOCLinEcore.g:5826:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) )
             {
-            // InternalOCLinEcore.g:5794:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:5795:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:5826:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:5827:1: (lv_name_0_0= ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:5795:1: (lv_name_0_0= ruleUnrestrictedName )
-            // InternalOCLinEcore.g:5796:3: lv_name_0_0= ruleUnrestrictedName
+            // InternalOCLinEcore.g:5827:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:5828:3: lv_name_0_0= ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -17250,11 +17326,11 @@
                   	newLeafNode(otherlv_1, grammarAccess.getTuplePartCSAccess().getColonKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:5816:1: ( (lv_ownedType_2_0= ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:5817:1: (lv_ownedType_2_0= ruleTypeExpCS )
+            // InternalOCLinEcore.g:5848:1: ( (lv_ownedType_2_0= ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:5849:1: (lv_ownedType_2_0= ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:5817:1: (lv_ownedType_2_0= ruleTypeExpCS )
-            // InternalOCLinEcore.g:5818:3: lv_ownedType_2_0= ruleTypeExpCS
+            // InternalOCLinEcore.g:5849:1: (lv_ownedType_2_0= ruleTypeExpCS )
+            // InternalOCLinEcore.g:5850:3: lv_ownedType_2_0= ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -17308,7 +17384,7 @@
 
 
     // $ANTLR start "entryRuleCollectionLiteralExpCS"
-    // InternalOCLinEcore.g:5842:1: entryRuleCollectionLiteralExpCS returns [EObject current=null] : iv_ruleCollectionLiteralExpCS= ruleCollectionLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:5874:1: entryRuleCollectionLiteralExpCS returns [EObject current=null] : iv_ruleCollectionLiteralExpCS= ruleCollectionLiteralExpCS EOF ;
     public final EObject entryRuleCollectionLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -17316,8 +17392,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5843:2: (iv_ruleCollectionLiteralExpCS= ruleCollectionLiteralExpCS EOF )
-            // InternalOCLinEcore.g:5844:2: iv_ruleCollectionLiteralExpCS= ruleCollectionLiteralExpCS EOF
+            // InternalOCLinEcore.g:5875:2: (iv_ruleCollectionLiteralExpCS= ruleCollectionLiteralExpCS EOF )
+            // InternalOCLinEcore.g:5876:2: iv_ruleCollectionLiteralExpCS= ruleCollectionLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCollectionLiteralExpCSRule()); 
@@ -17348,7 +17424,7 @@
 
 
     // $ANTLR start "ruleCollectionLiteralExpCS"
-    // InternalOCLinEcore.g:5851:1: ruleCollectionLiteralExpCS returns [EObject current=null] : ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}' ) ;
+    // InternalOCLinEcore.g:5883:1: ruleCollectionLiteralExpCS returns [EObject current=null] : ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}' ) ;
     public final EObject ruleCollectionLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -17365,17 +17441,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5854:28: ( ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}' ) )
-            // InternalOCLinEcore.g:5855:1: ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}' )
+            // InternalOCLinEcore.g:5886:28: ( ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}' ) )
+            // InternalOCLinEcore.g:5887:1: ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}' )
             {
-            // InternalOCLinEcore.g:5855:1: ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}' )
-            // InternalOCLinEcore.g:5855:2: ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}'
+            // InternalOCLinEcore.g:5887:1: ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}' )
+            // InternalOCLinEcore.g:5887:2: ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )? otherlv_5= '}'
             {
-            // InternalOCLinEcore.g:5855:2: ( (lv_ownedType_0_0= ruleCollectionTypeCS ) )
-            // InternalOCLinEcore.g:5856:1: (lv_ownedType_0_0= ruleCollectionTypeCS )
+            // InternalOCLinEcore.g:5887:2: ( (lv_ownedType_0_0= ruleCollectionTypeCS ) )
+            // InternalOCLinEcore.g:5888:1: (lv_ownedType_0_0= ruleCollectionTypeCS )
             {
-            // InternalOCLinEcore.g:5856:1: (lv_ownedType_0_0= ruleCollectionTypeCS )
-            // InternalOCLinEcore.g:5857:3: lv_ownedType_0_0= ruleCollectionTypeCS
+            // InternalOCLinEcore.g:5888:1: (lv_ownedType_0_0= ruleCollectionTypeCS )
+            // InternalOCLinEcore.g:5889:3: lv_ownedType_0_0= ruleCollectionTypeCS
             {
             if ( state.backtracking==0 ) {
                
@@ -17412,7 +17488,7 @@
                   	newLeafNode(otherlv_1, grammarAccess.getCollectionLiteralExpCSAccess().getLeftCurlyBracketKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:5877:1: ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )?
+            // InternalOCLinEcore.g:5909:1: ( ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )* )?
             int alt147=2;
             int LA147_0 = input.LA(1);
 
@@ -17421,13 +17497,13 @@
             }
             switch (alt147) {
                 case 1 :
-                    // InternalOCLinEcore.g:5877:2: ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )*
+                    // InternalOCLinEcore.g:5909:2: ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )*
                     {
-                    // InternalOCLinEcore.g:5877:2: ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) )
-                    // InternalOCLinEcore.g:5878:1: (lv_ownedParts_2_0= ruleCollectionLiteralPartCS )
+                    // InternalOCLinEcore.g:5909:2: ( (lv_ownedParts_2_0= ruleCollectionLiteralPartCS ) )
+                    // InternalOCLinEcore.g:5910:1: (lv_ownedParts_2_0= ruleCollectionLiteralPartCS )
                     {
-                    // InternalOCLinEcore.g:5878:1: (lv_ownedParts_2_0= ruleCollectionLiteralPartCS )
-                    // InternalOCLinEcore.g:5879:3: lv_ownedParts_2_0= ruleCollectionLiteralPartCS
+                    // InternalOCLinEcore.g:5910:1: (lv_ownedParts_2_0= ruleCollectionLiteralPartCS )
+                    // InternalOCLinEcore.g:5911:3: lv_ownedParts_2_0= ruleCollectionLiteralPartCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -17458,7 +17534,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:5895:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )*
+                    // InternalOCLinEcore.g:5927:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) ) )*
                     loop146:
                     do {
                         int alt146=2;
@@ -17471,7 +17547,7 @@
 
                         switch (alt146) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:5895:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) )
+                    	    // InternalOCLinEcore.g:5927:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) )
                     	    {
                     	    otherlv_3=(Token)match(input,59,FollowSets000.FOLLOW_97); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -17479,11 +17555,11 @@
                     	          	newLeafNode(otherlv_3, grammarAccess.getCollectionLiteralExpCSAccess().getCommaKeyword_2_1_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:5899:1: ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) )
-                    	    // InternalOCLinEcore.g:5900:1: (lv_ownedParts_4_0= ruleCollectionLiteralPartCS )
+                    	    // InternalOCLinEcore.g:5931:1: ( (lv_ownedParts_4_0= ruleCollectionLiteralPartCS ) )
+                    	    // InternalOCLinEcore.g:5932:1: (lv_ownedParts_4_0= ruleCollectionLiteralPartCS )
                     	    {
-                    	    // InternalOCLinEcore.g:5900:1: (lv_ownedParts_4_0= ruleCollectionLiteralPartCS )
-                    	    // InternalOCLinEcore.g:5901:3: lv_ownedParts_4_0= ruleCollectionLiteralPartCS
+                    	    // InternalOCLinEcore.g:5932:1: (lv_ownedParts_4_0= ruleCollectionLiteralPartCS )
+                    	    // InternalOCLinEcore.g:5933:3: lv_ownedParts_4_0= ruleCollectionLiteralPartCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -17558,7 +17634,7 @@
 
 
     // $ANTLR start "entryRuleCollectionLiteralPartCS"
-    // InternalOCLinEcore.g:5929:1: entryRuleCollectionLiteralPartCS returns [EObject current=null] : iv_ruleCollectionLiteralPartCS= ruleCollectionLiteralPartCS EOF ;
+    // InternalOCLinEcore.g:5961:1: entryRuleCollectionLiteralPartCS returns [EObject current=null] : iv_ruleCollectionLiteralPartCS= ruleCollectionLiteralPartCS EOF ;
     public final EObject entryRuleCollectionLiteralPartCS() throws RecognitionException {
         EObject current = null;
 
@@ -17566,8 +17642,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:5930:2: (iv_ruleCollectionLiteralPartCS= ruleCollectionLiteralPartCS EOF )
-            // InternalOCLinEcore.g:5931:2: iv_ruleCollectionLiteralPartCS= ruleCollectionLiteralPartCS EOF
+            // InternalOCLinEcore.g:5962:2: (iv_ruleCollectionLiteralPartCS= ruleCollectionLiteralPartCS EOF )
+            // InternalOCLinEcore.g:5963:2: iv_ruleCollectionLiteralPartCS= ruleCollectionLiteralPartCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCollectionLiteralPartCSRule()); 
@@ -17598,7 +17674,7 @@
 
 
     // $ANTLR start "ruleCollectionLiteralPartCS"
-    // InternalOCLinEcore.g:5938:1: ruleCollectionLiteralPartCS returns [EObject current=null] : ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) ) ;
+    // InternalOCLinEcore.g:5970:1: ruleCollectionLiteralPartCS returns [EObject current=null] : ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) ) ;
     public final EObject ruleCollectionLiteralPartCS() throws RecognitionException {
         EObject current = null;
 
@@ -17613,24 +17689,24 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:5941:28: ( ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) ) )
-            // InternalOCLinEcore.g:5942:1: ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) )
+            // InternalOCLinEcore.g:5973:28: ( ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) ) )
+            // InternalOCLinEcore.g:5974:1: ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) )
             {
-            // InternalOCLinEcore.g:5942:1: ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) )
+            // InternalOCLinEcore.g:5974:1: ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) )
             int alt149=2;
             alt149 = dfa149.predict(input);
             switch (alt149) {
                 case 1 :
-                    // InternalOCLinEcore.g:5942:2: ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? )
+                    // InternalOCLinEcore.g:5974:2: ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? )
                     {
-                    // InternalOCLinEcore.g:5942:2: ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? )
-                    // InternalOCLinEcore.g:5942:3: ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:5974:2: ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? )
+                    // InternalOCLinEcore.g:5974:3: ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )?
                     {
-                    // InternalOCLinEcore.g:5942:3: ( (lv_ownedExpression_0_0= ruleExpCS ) )
-                    // InternalOCLinEcore.g:5943:1: (lv_ownedExpression_0_0= ruleExpCS )
+                    // InternalOCLinEcore.g:5974:3: ( (lv_ownedExpression_0_0= ruleExpCS ) )
+                    // InternalOCLinEcore.g:5975:1: (lv_ownedExpression_0_0= ruleExpCS )
                     {
-                    // InternalOCLinEcore.g:5943:1: (lv_ownedExpression_0_0= ruleExpCS )
-                    // InternalOCLinEcore.g:5944:3: lv_ownedExpression_0_0= ruleExpCS
+                    // InternalOCLinEcore.g:5975:1: (lv_ownedExpression_0_0= ruleExpCS )
+                    // InternalOCLinEcore.g:5976:3: lv_ownedExpression_0_0= ruleExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -17661,7 +17737,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:5960:2: (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:5992:2: (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )?
                     int alt148=2;
                     int LA148_0 = input.LA(1);
 
@@ -17670,7 +17746,7 @@
                     }
                     switch (alt148) {
                         case 1 :
-                            // InternalOCLinEcore.g:5960:4: otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:5992:4: otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) )
                             {
                             otherlv_1=(Token)match(input,113,FollowSets000.FOLLOW_99); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -17678,11 +17754,11 @@
                                   	newLeafNode(otherlv_1, grammarAccess.getCollectionLiteralPartCSAccess().getFullStopFullStopKeyword_0_1_0());
                                   
                             }
-                            // InternalOCLinEcore.g:5964:1: ( (lv_ownedLastExpression_2_0= ruleExpCS ) )
-                            // InternalOCLinEcore.g:5965:1: (lv_ownedLastExpression_2_0= ruleExpCS )
+                            // InternalOCLinEcore.g:5996:1: ( (lv_ownedLastExpression_2_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:5997:1: (lv_ownedLastExpression_2_0= ruleExpCS )
                             {
-                            // InternalOCLinEcore.g:5965:1: (lv_ownedLastExpression_2_0= ruleExpCS )
-                            // InternalOCLinEcore.g:5966:3: lv_ownedLastExpression_2_0= ruleExpCS
+                            // InternalOCLinEcore.g:5997:1: (lv_ownedLastExpression_2_0= ruleExpCS )
+                            // InternalOCLinEcore.g:5998:3: lv_ownedLastExpression_2_0= ruleExpCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -17726,13 +17802,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:5983:6: ( (lv_ownedExpression_3_0= rulePatternExpCS ) )
+                    // InternalOCLinEcore.g:6015:6: ( (lv_ownedExpression_3_0= rulePatternExpCS ) )
                     {
-                    // InternalOCLinEcore.g:5983:6: ( (lv_ownedExpression_3_0= rulePatternExpCS ) )
-                    // InternalOCLinEcore.g:5984:1: (lv_ownedExpression_3_0= rulePatternExpCS )
+                    // InternalOCLinEcore.g:6015:6: ( (lv_ownedExpression_3_0= rulePatternExpCS ) )
+                    // InternalOCLinEcore.g:6016:1: (lv_ownedExpression_3_0= rulePatternExpCS )
                     {
-                    // InternalOCLinEcore.g:5984:1: (lv_ownedExpression_3_0= rulePatternExpCS )
-                    // InternalOCLinEcore.g:5985:3: lv_ownedExpression_3_0= rulePatternExpCS
+                    // InternalOCLinEcore.g:6016:1: (lv_ownedExpression_3_0= rulePatternExpCS )
+                    // InternalOCLinEcore.g:6017:3: lv_ownedExpression_3_0= rulePatternExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -17789,7 +17865,7 @@
 
 
     // $ANTLR start "entryRuleCollectionPatternCS"
-    // InternalOCLinEcore.g:6009:1: entryRuleCollectionPatternCS returns [EObject current=null] : iv_ruleCollectionPatternCS= ruleCollectionPatternCS EOF ;
+    // InternalOCLinEcore.g:6041:1: entryRuleCollectionPatternCS returns [EObject current=null] : iv_ruleCollectionPatternCS= ruleCollectionPatternCS EOF ;
     public final EObject entryRuleCollectionPatternCS() throws RecognitionException {
         EObject current = null;
 
@@ -17797,8 +17873,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6010:2: (iv_ruleCollectionPatternCS= ruleCollectionPatternCS EOF )
-            // InternalOCLinEcore.g:6011:2: iv_ruleCollectionPatternCS= ruleCollectionPatternCS EOF
+            // InternalOCLinEcore.g:6042:2: (iv_ruleCollectionPatternCS= ruleCollectionPatternCS EOF )
+            // InternalOCLinEcore.g:6043:2: iv_ruleCollectionPatternCS= ruleCollectionPatternCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCollectionPatternCSRule()); 
@@ -17829,7 +17905,7 @@
 
 
     // $ANTLR start "ruleCollectionPatternCS"
-    // InternalOCLinEcore.g:6018:1: ruleCollectionPatternCS returns [EObject current=null] : ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}' ) ;
+    // InternalOCLinEcore.g:6050:1: ruleCollectionPatternCS returns [EObject current=null] : ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}' ) ;
     public final EObject ruleCollectionPatternCS() throws RecognitionException {
         EObject current = null;
 
@@ -17849,17 +17925,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6021:28: ( ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}' ) )
-            // InternalOCLinEcore.g:6022:1: ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}' )
+            // InternalOCLinEcore.g:6053:28: ( ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}' ) )
+            // InternalOCLinEcore.g:6054:1: ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}' )
             {
-            // InternalOCLinEcore.g:6022:1: ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}' )
-            // InternalOCLinEcore.g:6022:2: ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}'
+            // InternalOCLinEcore.g:6054:1: ( ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}' )
+            // InternalOCLinEcore.g:6054:2: ( (lv_ownedType_0_0= ruleCollectionTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )? otherlv_7= '}'
             {
-            // InternalOCLinEcore.g:6022:2: ( (lv_ownedType_0_0= ruleCollectionTypeCS ) )
-            // InternalOCLinEcore.g:6023:1: (lv_ownedType_0_0= ruleCollectionTypeCS )
+            // InternalOCLinEcore.g:6054:2: ( (lv_ownedType_0_0= ruleCollectionTypeCS ) )
+            // InternalOCLinEcore.g:6055:1: (lv_ownedType_0_0= ruleCollectionTypeCS )
             {
-            // InternalOCLinEcore.g:6023:1: (lv_ownedType_0_0= ruleCollectionTypeCS )
-            // InternalOCLinEcore.g:6024:3: lv_ownedType_0_0= ruleCollectionTypeCS
+            // InternalOCLinEcore.g:6055:1: (lv_ownedType_0_0= ruleCollectionTypeCS )
+            // InternalOCLinEcore.g:6056:3: lv_ownedType_0_0= ruleCollectionTypeCS
             {
             if ( state.backtracking==0 ) {
                
@@ -17896,7 +17972,7 @@
                   	newLeafNode(otherlv_1, grammarAccess.getCollectionPatternCSAccess().getLeftCurlyBracketKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:6044:1: ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )?
+            // InternalOCLinEcore.g:6076:1: ( ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) ) )?
             int alt151=2;
             int LA151_0 = input.LA(1);
 
@@ -17905,13 +17981,13 @@
             }
             switch (alt151) {
                 case 1 :
-                    // InternalOCLinEcore.g:6044:2: ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) )
+                    // InternalOCLinEcore.g:6076:2: ( (lv_ownedParts_2_0= rulePatternExpCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )* (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) )
                     {
-                    // InternalOCLinEcore.g:6044:2: ( (lv_ownedParts_2_0= rulePatternExpCS ) )
-                    // InternalOCLinEcore.g:6045:1: (lv_ownedParts_2_0= rulePatternExpCS )
+                    // InternalOCLinEcore.g:6076:2: ( (lv_ownedParts_2_0= rulePatternExpCS ) )
+                    // InternalOCLinEcore.g:6077:1: (lv_ownedParts_2_0= rulePatternExpCS )
                     {
-                    // InternalOCLinEcore.g:6045:1: (lv_ownedParts_2_0= rulePatternExpCS )
-                    // InternalOCLinEcore.g:6046:3: lv_ownedParts_2_0= rulePatternExpCS
+                    // InternalOCLinEcore.g:6077:1: (lv_ownedParts_2_0= rulePatternExpCS )
+                    // InternalOCLinEcore.g:6078:3: lv_ownedParts_2_0= rulePatternExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -17942,7 +18018,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:6062:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )*
+                    // InternalOCLinEcore.g:6094:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) ) )*
                     loop150:
                     do {
                         int alt150=2;
@@ -17955,7 +18031,7 @@
 
                         switch (alt150) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:6062:4: otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) )
+                    	    // InternalOCLinEcore.g:6094:4: otherlv_3= ',' ( (lv_ownedParts_4_0= rulePatternExpCS ) )
                     	    {
                     	    otherlv_3=(Token)match(input,59,FollowSets000.FOLLOW_97); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -17963,11 +18039,11 @@
                     	          	newLeafNode(otherlv_3, grammarAccess.getCollectionPatternCSAccess().getCommaKeyword_2_1_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:6066:1: ( (lv_ownedParts_4_0= rulePatternExpCS ) )
-                    	    // InternalOCLinEcore.g:6067:1: (lv_ownedParts_4_0= rulePatternExpCS )
+                    	    // InternalOCLinEcore.g:6098:1: ( (lv_ownedParts_4_0= rulePatternExpCS ) )
+                    	    // InternalOCLinEcore.g:6099:1: (lv_ownedParts_4_0= rulePatternExpCS )
                     	    {
-                    	    // InternalOCLinEcore.g:6067:1: (lv_ownedParts_4_0= rulePatternExpCS )
-                    	    // InternalOCLinEcore.g:6068:3: lv_ownedParts_4_0= rulePatternExpCS
+                    	    // InternalOCLinEcore.g:6099:1: (lv_ownedParts_4_0= rulePatternExpCS )
+                    	    // InternalOCLinEcore.g:6100:3: lv_ownedParts_4_0= rulePatternExpCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -18007,8 +18083,8 @@
                         }
                     } while (true);
 
-                    // InternalOCLinEcore.g:6084:4: (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) )
-                    // InternalOCLinEcore.g:6084:6: otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) )
+                    // InternalOCLinEcore.g:6116:4: (otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) ) )
+                    // InternalOCLinEcore.g:6116:6: otherlv_5= '++' ( (lv_restVariableName_6_0= ruleIdentifier ) )
                     {
                     otherlv_5=(Token)match(input,114,FollowSets000.FOLLOW_101); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -18016,11 +18092,11 @@
                           	newLeafNode(otherlv_5, grammarAccess.getCollectionPatternCSAccess().getPlusSignPlusSignKeyword_2_2_0());
                           
                     }
-                    // InternalOCLinEcore.g:6088:1: ( (lv_restVariableName_6_0= ruleIdentifier ) )
-                    // InternalOCLinEcore.g:6089:1: (lv_restVariableName_6_0= ruleIdentifier )
+                    // InternalOCLinEcore.g:6120:1: ( (lv_restVariableName_6_0= ruleIdentifier ) )
+                    // InternalOCLinEcore.g:6121:1: (lv_restVariableName_6_0= ruleIdentifier )
                     {
-                    // InternalOCLinEcore.g:6089:1: (lv_restVariableName_6_0= ruleIdentifier )
-                    // InternalOCLinEcore.g:6090:3: lv_restVariableName_6_0= ruleIdentifier
+                    // InternalOCLinEcore.g:6121:1: (lv_restVariableName_6_0= ruleIdentifier )
+                    // InternalOCLinEcore.g:6122:3: lv_restVariableName_6_0= ruleIdentifier
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -18089,7 +18165,7 @@
 
 
     // $ANTLR start "entryRuleShadowPartCS"
-    // InternalOCLinEcore.g:6118:1: entryRuleShadowPartCS returns [EObject current=null] : iv_ruleShadowPartCS= ruleShadowPartCS EOF ;
+    // InternalOCLinEcore.g:6150:1: entryRuleShadowPartCS returns [EObject current=null] : iv_ruleShadowPartCS= ruleShadowPartCS EOF ;
     public final EObject entryRuleShadowPartCS() throws RecognitionException {
         EObject current = null;
 
@@ -18097,8 +18173,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6119:2: (iv_ruleShadowPartCS= ruleShadowPartCS EOF )
-            // InternalOCLinEcore.g:6120:2: iv_ruleShadowPartCS= ruleShadowPartCS EOF
+            // InternalOCLinEcore.g:6151:2: (iv_ruleShadowPartCS= ruleShadowPartCS EOF )
+            // InternalOCLinEcore.g:6152:2: iv_ruleShadowPartCS= ruleShadowPartCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getShadowPartCSRule()); 
@@ -18129,7 +18205,7 @@
 
 
     // $ANTLR start "ruleShadowPartCS"
-    // InternalOCLinEcore.g:6127:1: ruleShadowPartCS returns [EObject current=null] : ( ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) ) ) ;
+    // InternalOCLinEcore.g:6159:1: ruleShadowPartCS returns [EObject current=null] : ( ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) ) ) ;
     public final EObject ruleShadowPartCS() throws RecognitionException {
         EObject current = null;
 
@@ -18142,17 +18218,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6130:28: ( ( ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) ) ) )
-            // InternalOCLinEcore.g:6131:1: ( ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) ) )
+            // InternalOCLinEcore.g:6162:28: ( ( ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) ) ) )
+            // InternalOCLinEcore.g:6163:1: ( ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) ) )
             {
-            // InternalOCLinEcore.g:6131:1: ( ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) ) )
-            // InternalOCLinEcore.g:6131:2: ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) )
+            // InternalOCLinEcore.g:6163:1: ( ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) ) )
+            // InternalOCLinEcore.g:6163:2: ( ( ruleUnrestrictedName ) ) otherlv_1= '=' ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) )
             {
-            // InternalOCLinEcore.g:6131:2: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:6132:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:6163:2: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:6164:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:6132:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:6133:3: ruleUnrestrictedName
+            // InternalOCLinEcore.g:6164:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:6165:3: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -18193,18 +18269,18 @@
                   	newLeafNode(otherlv_1, grammarAccess.getShadowPartCSAccess().getEqualsSignKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:6153:1: ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) )
-            // InternalOCLinEcore.g:6154:1: ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) )
+            // InternalOCLinEcore.g:6185:1: ( ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) ) )
+            // InternalOCLinEcore.g:6186:1: ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) )
             {
-            // InternalOCLinEcore.g:6154:1: ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) )
-            // InternalOCLinEcore.g:6155:1: (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS )
+            // InternalOCLinEcore.g:6186:1: ( (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS ) )
+            // InternalOCLinEcore.g:6187:1: (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS )
             {
-            // InternalOCLinEcore.g:6155:1: (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS )
+            // InternalOCLinEcore.g:6187:1: (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS )
             int alt152=2;
             alt152 = dfa152.predict(input);
             switch (alt152) {
                 case 1 :
-                    // InternalOCLinEcore.g:6156:3: lv_ownedInitExpression_2_1= ruleExpCS
+                    // InternalOCLinEcore.g:6188:3: lv_ownedInitExpression_2_1= ruleExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -18233,7 +18309,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:6171:8: lv_ownedInitExpression_2_2= rulePatternExpCS
+                    // InternalOCLinEcore.g:6203:8: lv_ownedInitExpression_2_2= rulePatternExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -18293,7 +18369,7 @@
 
 
     // $ANTLR start "entryRulePatternExpCS"
-    // InternalOCLinEcore.g:6197:1: entryRulePatternExpCS returns [EObject current=null] : iv_rulePatternExpCS= rulePatternExpCS EOF ;
+    // InternalOCLinEcore.g:6229:1: entryRulePatternExpCS returns [EObject current=null] : iv_rulePatternExpCS= rulePatternExpCS EOF ;
     public final EObject entryRulePatternExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -18301,8 +18377,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6198:2: (iv_rulePatternExpCS= rulePatternExpCS EOF )
-            // InternalOCLinEcore.g:6199:2: iv_rulePatternExpCS= rulePatternExpCS EOF
+            // InternalOCLinEcore.g:6230:2: (iv_rulePatternExpCS= rulePatternExpCS EOF )
+            // InternalOCLinEcore.g:6231:2: iv_rulePatternExpCS= rulePatternExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPatternExpCSRule()); 
@@ -18333,7 +18409,7 @@
 
 
     // $ANTLR start "rulePatternExpCS"
-    // InternalOCLinEcore.g:6206:1: rulePatternExpCS returns [EObject current=null] : ( ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) ) ) ;
+    // InternalOCLinEcore.g:6238:1: rulePatternExpCS returns [EObject current=null] : ( ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) ) ) ;
     public final EObject rulePatternExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -18346,13 +18422,13 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6209:28: ( ( ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) ) ) )
-            // InternalOCLinEcore.g:6210:1: ( ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) ) )
+            // InternalOCLinEcore.g:6241:28: ( ( ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) ) ) )
+            // InternalOCLinEcore.g:6242:1: ( ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) ) )
             {
-            // InternalOCLinEcore.g:6210:1: ( ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) ) )
-            // InternalOCLinEcore.g:6210:2: ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:6242:1: ( ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) ) )
+            // InternalOCLinEcore.g:6242:2: ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )? otherlv_1= ':' ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) )
             {
-            // InternalOCLinEcore.g:6210:2: ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )?
+            // InternalOCLinEcore.g:6242:2: ( (lv_patternVariableName_0_0= ruleUnrestrictedName ) )?
             int alt153=2;
             int LA153_0 = input.LA(1);
 
@@ -18361,10 +18437,10 @@
             }
             switch (alt153) {
                 case 1 :
-                    // InternalOCLinEcore.g:6211:1: (lv_patternVariableName_0_0= ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:6243:1: (lv_patternVariableName_0_0= ruleUnrestrictedName )
                     {
-                    // InternalOCLinEcore.g:6211:1: (lv_patternVariableName_0_0= ruleUnrestrictedName )
-                    // InternalOCLinEcore.g:6212:3: lv_patternVariableName_0_0= ruleUnrestrictedName
+                    // InternalOCLinEcore.g:6243:1: (lv_patternVariableName_0_0= ruleUnrestrictedName )
+                    // InternalOCLinEcore.g:6244:3: lv_patternVariableName_0_0= ruleUnrestrictedName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -18404,11 +18480,11 @@
                   	newLeafNode(otherlv_1, grammarAccess.getPatternExpCSAccess().getColonKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:6232:1: ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) )
-            // InternalOCLinEcore.g:6233:1: (lv_ownedPatternType_2_0= ruleTypeExpCS )
+            // InternalOCLinEcore.g:6264:1: ( (lv_ownedPatternType_2_0= ruleTypeExpCS ) )
+            // InternalOCLinEcore.g:6265:1: (lv_ownedPatternType_2_0= ruleTypeExpCS )
             {
-            // InternalOCLinEcore.g:6233:1: (lv_ownedPatternType_2_0= ruleTypeExpCS )
-            // InternalOCLinEcore.g:6234:3: lv_ownedPatternType_2_0= ruleTypeExpCS
+            // InternalOCLinEcore.g:6265:1: (lv_ownedPatternType_2_0= ruleTypeExpCS )
+            // InternalOCLinEcore.g:6266:3: lv_ownedPatternType_2_0= ruleTypeExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -18462,7 +18538,7 @@
 
 
     // $ANTLR start "entryRuleLambdaLiteralExpCS"
-    // InternalOCLinEcore.g:6258:1: entryRuleLambdaLiteralExpCS returns [EObject current=null] : iv_ruleLambdaLiteralExpCS= ruleLambdaLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6290:1: entryRuleLambdaLiteralExpCS returns [EObject current=null] : iv_ruleLambdaLiteralExpCS= ruleLambdaLiteralExpCS EOF ;
     public final EObject entryRuleLambdaLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -18470,8 +18546,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6259:2: (iv_ruleLambdaLiteralExpCS= ruleLambdaLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6260:2: iv_ruleLambdaLiteralExpCS= ruleLambdaLiteralExpCS EOF
+            // InternalOCLinEcore.g:6291:2: (iv_ruleLambdaLiteralExpCS= ruleLambdaLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6292:2: iv_ruleLambdaLiteralExpCS= ruleLambdaLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLambdaLiteralExpCSRule()); 
@@ -18502,7 +18578,7 @@
 
 
     // $ANTLR start "ruleLambdaLiteralExpCS"
-    // InternalOCLinEcore.g:6267:1: ruleLambdaLiteralExpCS returns [EObject current=null] : (otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}' ) ;
+    // InternalOCLinEcore.g:6299:1: ruleLambdaLiteralExpCS returns [EObject current=null] : (otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}' ) ;
     public final EObject ruleLambdaLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -18515,11 +18591,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6270:28: ( (otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}' ) )
-            // InternalOCLinEcore.g:6271:1: (otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}' )
+            // InternalOCLinEcore.g:6302:28: ( (otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}' ) )
+            // InternalOCLinEcore.g:6303:1: (otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}' )
             {
-            // InternalOCLinEcore.g:6271:1: (otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}' )
-            // InternalOCLinEcore.g:6271:3: otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}'
+            // InternalOCLinEcore.g:6303:1: (otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}' )
+            // InternalOCLinEcore.g:6303:3: otherlv_0= 'Lambda' otherlv_1= '{' ( (lv_ownedExpressionCS_2_0= ruleExpCS ) ) otherlv_3= '}'
             {
             otherlv_0=(Token)match(input,115,FollowSets000.FOLLOW_94); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -18533,11 +18609,11 @@
                   	newLeafNode(otherlv_1, grammarAccess.getLambdaLiteralExpCSAccess().getLeftCurlyBracketKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:6279:1: ( (lv_ownedExpressionCS_2_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:6280:1: (lv_ownedExpressionCS_2_0= ruleExpCS )
+            // InternalOCLinEcore.g:6311:1: ( (lv_ownedExpressionCS_2_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:6312:1: (lv_ownedExpressionCS_2_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:6280:1: (lv_ownedExpressionCS_2_0= ruleExpCS )
-            // InternalOCLinEcore.g:6281:3: lv_ownedExpressionCS_2_0= ruleExpCS
+            // InternalOCLinEcore.g:6312:1: (lv_ownedExpressionCS_2_0= ruleExpCS )
+            // InternalOCLinEcore.g:6313:3: lv_ownedExpressionCS_2_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -18597,7 +18673,7 @@
 
 
     // $ANTLR start "entryRuleMapLiteralExpCS"
-    // InternalOCLinEcore.g:6309:1: entryRuleMapLiteralExpCS returns [EObject current=null] : iv_ruleMapLiteralExpCS= ruleMapLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6341:1: entryRuleMapLiteralExpCS returns [EObject current=null] : iv_ruleMapLiteralExpCS= ruleMapLiteralExpCS EOF ;
     public final EObject entryRuleMapLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -18605,8 +18681,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6310:2: (iv_ruleMapLiteralExpCS= ruleMapLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6311:2: iv_ruleMapLiteralExpCS= ruleMapLiteralExpCS EOF
+            // InternalOCLinEcore.g:6342:2: (iv_ruleMapLiteralExpCS= ruleMapLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6343:2: iv_ruleMapLiteralExpCS= ruleMapLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMapLiteralExpCSRule()); 
@@ -18637,7 +18713,7 @@
 
 
     // $ANTLR start "ruleMapLiteralExpCS"
-    // InternalOCLinEcore.g:6318:1: ruleMapLiteralExpCS returns [EObject current=null] : ( ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}' ) ;
+    // InternalOCLinEcore.g:6350:1: ruleMapLiteralExpCS returns [EObject current=null] : ( ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}' ) ;
     public final EObject ruleMapLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -18654,17 +18730,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6321:28: ( ( ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}' ) )
-            // InternalOCLinEcore.g:6322:1: ( ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}' )
+            // InternalOCLinEcore.g:6353:28: ( ( ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}' ) )
+            // InternalOCLinEcore.g:6354:1: ( ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}' )
             {
-            // InternalOCLinEcore.g:6322:1: ( ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}' )
-            // InternalOCLinEcore.g:6322:2: ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}'
+            // InternalOCLinEcore.g:6354:1: ( ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}' )
+            // InternalOCLinEcore.g:6354:2: ( (lv_ownedType_0_0= ruleMapTypeCS ) ) otherlv_1= '{' ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )? otherlv_5= '}'
             {
-            // InternalOCLinEcore.g:6322:2: ( (lv_ownedType_0_0= ruleMapTypeCS ) )
-            // InternalOCLinEcore.g:6323:1: (lv_ownedType_0_0= ruleMapTypeCS )
+            // InternalOCLinEcore.g:6354:2: ( (lv_ownedType_0_0= ruleMapTypeCS ) )
+            // InternalOCLinEcore.g:6355:1: (lv_ownedType_0_0= ruleMapTypeCS )
             {
-            // InternalOCLinEcore.g:6323:1: (lv_ownedType_0_0= ruleMapTypeCS )
-            // InternalOCLinEcore.g:6324:3: lv_ownedType_0_0= ruleMapTypeCS
+            // InternalOCLinEcore.g:6355:1: (lv_ownedType_0_0= ruleMapTypeCS )
+            // InternalOCLinEcore.g:6356:3: lv_ownedType_0_0= ruleMapTypeCS
             {
             if ( state.backtracking==0 ) {
                
@@ -18701,7 +18777,7 @@
                   	newLeafNode(otherlv_1, grammarAccess.getMapLiteralExpCSAccess().getLeftCurlyBracketKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:6344:1: ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )?
+            // InternalOCLinEcore.g:6376:1: ( ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )* )?
             int alt155=2;
             int LA155_0 = input.LA(1);
 
@@ -18710,13 +18786,13 @@
             }
             switch (alt155) {
                 case 1 :
-                    // InternalOCLinEcore.g:6344:2: ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )*
+                    // InternalOCLinEcore.g:6376:2: ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )*
                     {
-                    // InternalOCLinEcore.g:6344:2: ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) )
-                    // InternalOCLinEcore.g:6345:1: (lv_ownedParts_2_0= ruleMapLiteralPartCS )
+                    // InternalOCLinEcore.g:6376:2: ( (lv_ownedParts_2_0= ruleMapLiteralPartCS ) )
+                    // InternalOCLinEcore.g:6377:1: (lv_ownedParts_2_0= ruleMapLiteralPartCS )
                     {
-                    // InternalOCLinEcore.g:6345:1: (lv_ownedParts_2_0= ruleMapLiteralPartCS )
-                    // InternalOCLinEcore.g:6346:3: lv_ownedParts_2_0= ruleMapLiteralPartCS
+                    // InternalOCLinEcore.g:6377:1: (lv_ownedParts_2_0= ruleMapLiteralPartCS )
+                    // InternalOCLinEcore.g:6378:3: lv_ownedParts_2_0= ruleMapLiteralPartCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -18747,7 +18823,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:6362:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )*
+                    // InternalOCLinEcore.g:6394:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) ) )*
                     loop154:
                     do {
                         int alt154=2;
@@ -18760,7 +18836,7 @@
 
                         switch (alt154) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:6362:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) )
+                    	    // InternalOCLinEcore.g:6394:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) )
                     	    {
                     	    otherlv_3=(Token)match(input,59,FollowSets000.FOLLOW_99); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -18768,11 +18844,11 @@
                     	          	newLeafNode(otherlv_3, grammarAccess.getMapLiteralExpCSAccess().getCommaKeyword_2_1_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:6366:1: ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) )
-                    	    // InternalOCLinEcore.g:6367:1: (lv_ownedParts_4_0= ruleMapLiteralPartCS )
+                    	    // InternalOCLinEcore.g:6398:1: ( (lv_ownedParts_4_0= ruleMapLiteralPartCS ) )
+                    	    // InternalOCLinEcore.g:6399:1: (lv_ownedParts_4_0= ruleMapLiteralPartCS )
                     	    {
-                    	    // InternalOCLinEcore.g:6367:1: (lv_ownedParts_4_0= ruleMapLiteralPartCS )
-                    	    // InternalOCLinEcore.g:6368:3: lv_ownedParts_4_0= ruleMapLiteralPartCS
+                    	    // InternalOCLinEcore.g:6399:1: (lv_ownedParts_4_0= ruleMapLiteralPartCS )
+                    	    // InternalOCLinEcore.g:6400:3: lv_ownedParts_4_0= ruleMapLiteralPartCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -18847,7 +18923,7 @@
 
 
     // $ANTLR start "entryRuleMapLiteralPartCS"
-    // InternalOCLinEcore.g:6396:1: entryRuleMapLiteralPartCS returns [EObject current=null] : iv_ruleMapLiteralPartCS= ruleMapLiteralPartCS EOF ;
+    // InternalOCLinEcore.g:6428:1: entryRuleMapLiteralPartCS returns [EObject current=null] : iv_ruleMapLiteralPartCS= ruleMapLiteralPartCS EOF ;
     public final EObject entryRuleMapLiteralPartCS() throws RecognitionException {
         EObject current = null;
 
@@ -18855,8 +18931,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6397:2: (iv_ruleMapLiteralPartCS= ruleMapLiteralPartCS EOF )
-            // InternalOCLinEcore.g:6398:2: iv_ruleMapLiteralPartCS= ruleMapLiteralPartCS EOF
+            // InternalOCLinEcore.g:6429:2: (iv_ruleMapLiteralPartCS= ruleMapLiteralPartCS EOF )
+            // InternalOCLinEcore.g:6430:2: iv_ruleMapLiteralPartCS= ruleMapLiteralPartCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMapLiteralPartCSRule()); 
@@ -18887,7 +18963,7 @@
 
 
     // $ANTLR start "ruleMapLiteralPartCS"
-    // InternalOCLinEcore.g:6405:1: ruleMapLiteralPartCS returns [EObject current=null] : ( ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) ) ) ;
+    // InternalOCLinEcore.g:6437:1: ruleMapLiteralPartCS returns [EObject current=null] : ( ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) ) ) ;
     public final EObject ruleMapLiteralPartCS() throws RecognitionException {
         EObject current = null;
 
@@ -18900,17 +18976,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6408:28: ( ( ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) ) ) )
-            // InternalOCLinEcore.g:6409:1: ( ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:6440:28: ( ( ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) ) ) )
+            // InternalOCLinEcore.g:6441:1: ( ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) ) )
             {
-            // InternalOCLinEcore.g:6409:1: ( ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) ) )
-            // InternalOCLinEcore.g:6409:2: ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:6441:1: ( ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:6441:2: ( (lv_ownedKey_0_0= ruleExpCS ) ) otherlv_1= '<-' ( (lv_ownedValue_2_0= ruleExpCS ) )
             {
-            // InternalOCLinEcore.g:6409:2: ( (lv_ownedKey_0_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:6410:1: (lv_ownedKey_0_0= ruleExpCS )
+            // InternalOCLinEcore.g:6441:2: ( (lv_ownedKey_0_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:6442:1: (lv_ownedKey_0_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:6410:1: (lv_ownedKey_0_0= ruleExpCS )
-            // InternalOCLinEcore.g:6411:3: lv_ownedKey_0_0= ruleExpCS
+            // InternalOCLinEcore.g:6442:1: (lv_ownedKey_0_0= ruleExpCS )
+            // InternalOCLinEcore.g:6443:3: lv_ownedKey_0_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -18947,11 +19023,11 @@
                   	newLeafNode(otherlv_1, grammarAccess.getMapLiteralPartCSAccess().getLessThanSignHyphenMinusKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:6431:1: ( (lv_ownedValue_2_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:6432:1: (lv_ownedValue_2_0= ruleExpCS )
+            // InternalOCLinEcore.g:6463:1: ( (lv_ownedValue_2_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:6464:1: (lv_ownedValue_2_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:6432:1: (lv_ownedValue_2_0= ruleExpCS )
-            // InternalOCLinEcore.g:6433:3: lv_ownedValue_2_0= ruleExpCS
+            // InternalOCLinEcore.g:6464:1: (lv_ownedValue_2_0= ruleExpCS )
+            // InternalOCLinEcore.g:6465:3: lv_ownedValue_2_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -19005,7 +19081,7 @@
 
 
     // $ANTLR start "entryRulePrimitiveLiteralExpCS"
-    // InternalOCLinEcore.g:6457:1: entryRulePrimitiveLiteralExpCS returns [EObject current=null] : iv_rulePrimitiveLiteralExpCS= rulePrimitiveLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6489:1: entryRulePrimitiveLiteralExpCS returns [EObject current=null] : iv_rulePrimitiveLiteralExpCS= rulePrimitiveLiteralExpCS EOF ;
     public final EObject entryRulePrimitiveLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19013,8 +19089,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6458:2: (iv_rulePrimitiveLiteralExpCS= rulePrimitiveLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6459:2: iv_rulePrimitiveLiteralExpCS= rulePrimitiveLiteralExpCS EOF
+            // InternalOCLinEcore.g:6490:2: (iv_rulePrimitiveLiteralExpCS= rulePrimitiveLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6491:2: iv_rulePrimitiveLiteralExpCS= rulePrimitiveLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPrimitiveLiteralExpCSRule()); 
@@ -19045,7 +19121,7 @@
 
 
     // $ANTLR start "rulePrimitiveLiteralExpCS"
-    // InternalOCLinEcore.g:6466:1: rulePrimitiveLiteralExpCS returns [EObject current=null] : (this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS | this_StringLiteralExpCS_1= ruleStringLiteralExpCS | this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS | this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS | this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS | this_NullLiteralExpCS_5= ruleNullLiteralExpCS ) ;
+    // InternalOCLinEcore.g:6498:1: rulePrimitiveLiteralExpCS returns [EObject current=null] : (this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS | this_StringLiteralExpCS_1= ruleStringLiteralExpCS | this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS | this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS | this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS | this_NullLiteralExpCS_5= ruleNullLiteralExpCS ) ;
     public final EObject rulePrimitiveLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19065,10 +19141,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6469:28: ( (this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS | this_StringLiteralExpCS_1= ruleStringLiteralExpCS | this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS | this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS | this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS | this_NullLiteralExpCS_5= ruleNullLiteralExpCS ) )
-            // InternalOCLinEcore.g:6470:1: (this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS | this_StringLiteralExpCS_1= ruleStringLiteralExpCS | this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS | this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS | this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS | this_NullLiteralExpCS_5= ruleNullLiteralExpCS )
+            // InternalOCLinEcore.g:6501:28: ( (this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS | this_StringLiteralExpCS_1= ruleStringLiteralExpCS | this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS | this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS | this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS | this_NullLiteralExpCS_5= ruleNullLiteralExpCS ) )
+            // InternalOCLinEcore.g:6502:1: (this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS | this_StringLiteralExpCS_1= ruleStringLiteralExpCS | this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS | this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS | this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS | this_NullLiteralExpCS_5= ruleNullLiteralExpCS )
             {
-            // InternalOCLinEcore.g:6470:1: (this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS | this_StringLiteralExpCS_1= ruleStringLiteralExpCS | this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS | this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS | this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS | this_NullLiteralExpCS_5= ruleNullLiteralExpCS )
+            // InternalOCLinEcore.g:6502:1: (this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS | this_StringLiteralExpCS_1= ruleStringLiteralExpCS | this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS | this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS | this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS | this_NullLiteralExpCS_5= ruleNullLiteralExpCS )
             int alt156=6;
             switch ( input.LA(1) ) {
             case RULE_INT:
@@ -19112,7 +19188,7 @@
 
             switch (alt156) {
                 case 1 :
-                    // InternalOCLinEcore.g:6471:2: this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS
+                    // InternalOCLinEcore.g:6503:2: this_NumberLiteralExpCS_0= ruleNumberLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -19139,7 +19215,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:6484:2: this_StringLiteralExpCS_1= ruleStringLiteralExpCS
+                    // InternalOCLinEcore.g:6516:2: this_StringLiteralExpCS_1= ruleStringLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -19166,7 +19242,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:6497:2: this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS
+                    // InternalOCLinEcore.g:6529:2: this_BooleanLiteralExpCS_2= ruleBooleanLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -19193,7 +19269,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:6510:2: this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS
+                    // InternalOCLinEcore.g:6542:2: this_UnlimitedNaturalLiteralExpCS_3= ruleUnlimitedNaturalLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -19220,7 +19296,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:6523:2: this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS
+                    // InternalOCLinEcore.g:6555:2: this_InvalidLiteralExpCS_4= ruleInvalidLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -19247,7 +19323,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:6536:2: this_NullLiteralExpCS_5= ruleNullLiteralExpCS
+                    // InternalOCLinEcore.g:6568:2: this_NullLiteralExpCS_5= ruleNullLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -19296,7 +19372,7 @@
 
 
     // $ANTLR start "entryRuleTupleLiteralExpCS"
-    // InternalOCLinEcore.g:6555:1: entryRuleTupleLiteralExpCS returns [EObject current=null] : iv_ruleTupleLiteralExpCS= ruleTupleLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6587:1: entryRuleTupleLiteralExpCS returns [EObject current=null] : iv_ruleTupleLiteralExpCS= ruleTupleLiteralExpCS EOF ;
     public final EObject entryRuleTupleLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19304,8 +19380,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6556:2: (iv_ruleTupleLiteralExpCS= ruleTupleLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6557:2: iv_ruleTupleLiteralExpCS= ruleTupleLiteralExpCS EOF
+            // InternalOCLinEcore.g:6588:2: (iv_ruleTupleLiteralExpCS= ruleTupleLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6589:2: iv_ruleTupleLiteralExpCS= ruleTupleLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTupleLiteralExpCSRule()); 
@@ -19336,7 +19412,7 @@
 
 
     // $ANTLR start "ruleTupleLiteralExpCS"
-    // InternalOCLinEcore.g:6564:1: ruleTupleLiteralExpCS returns [EObject current=null] : (otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}' ) ;
+    // InternalOCLinEcore.g:6596:1: ruleTupleLiteralExpCS returns [EObject current=null] : (otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}' ) ;
     public final EObject ruleTupleLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19352,11 +19428,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6567:28: ( (otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}' ) )
-            // InternalOCLinEcore.g:6568:1: (otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}' )
+            // InternalOCLinEcore.g:6599:28: ( (otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}' ) )
+            // InternalOCLinEcore.g:6600:1: (otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}' )
             {
-            // InternalOCLinEcore.g:6568:1: (otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}' )
-            // InternalOCLinEcore.g:6568:3: otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}'
+            // InternalOCLinEcore.g:6600:1: (otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}' )
+            // InternalOCLinEcore.g:6600:3: otherlv_0= 'Tuple' otherlv_1= '{' ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )* otherlv_5= '}'
             {
             otherlv_0=(Token)match(input,98,FollowSets000.FOLLOW_94); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -19370,11 +19446,11 @@
                   	newLeafNode(otherlv_1, grammarAccess.getTupleLiteralExpCSAccess().getLeftCurlyBracketKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:6576:1: ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) )
-            // InternalOCLinEcore.g:6577:1: (lv_ownedParts_2_0= ruleTupleLiteralPartCS )
+            // InternalOCLinEcore.g:6608:1: ( (lv_ownedParts_2_0= ruleTupleLiteralPartCS ) )
+            // InternalOCLinEcore.g:6609:1: (lv_ownedParts_2_0= ruleTupleLiteralPartCS )
             {
-            // InternalOCLinEcore.g:6577:1: (lv_ownedParts_2_0= ruleTupleLiteralPartCS )
-            // InternalOCLinEcore.g:6578:3: lv_ownedParts_2_0= ruleTupleLiteralPartCS
+            // InternalOCLinEcore.g:6609:1: (lv_ownedParts_2_0= ruleTupleLiteralPartCS )
+            // InternalOCLinEcore.g:6610:3: lv_ownedParts_2_0= ruleTupleLiteralPartCS
             {
             if ( state.backtracking==0 ) {
                
@@ -19405,7 +19481,7 @@
 
             }
 
-            // InternalOCLinEcore.g:6594:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )*
+            // InternalOCLinEcore.g:6626:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) ) )*
             loop157:
             do {
                 int alt157=2;
@@ -19418,7 +19494,7 @@
 
                 switch (alt157) {
             	case 1 :
-            	    // InternalOCLinEcore.g:6594:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) )
+            	    // InternalOCLinEcore.g:6626:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) )
             	    {
             	    otherlv_3=(Token)match(input,59,FollowSets000.FOLLOW_3); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -19426,11 +19502,11 @@
             	          	newLeafNode(otherlv_3, grammarAccess.getTupleLiteralExpCSAccess().getCommaKeyword_3_0());
             	          
             	    }
-            	    // InternalOCLinEcore.g:6598:1: ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) )
-            	    // InternalOCLinEcore.g:6599:1: (lv_ownedParts_4_0= ruleTupleLiteralPartCS )
+            	    // InternalOCLinEcore.g:6630:1: ( (lv_ownedParts_4_0= ruleTupleLiteralPartCS ) )
+            	    // InternalOCLinEcore.g:6631:1: (lv_ownedParts_4_0= ruleTupleLiteralPartCS )
             	    {
-            	    // InternalOCLinEcore.g:6599:1: (lv_ownedParts_4_0= ruleTupleLiteralPartCS )
-            	    // InternalOCLinEcore.g:6600:3: lv_ownedParts_4_0= ruleTupleLiteralPartCS
+            	    // InternalOCLinEcore.g:6631:1: (lv_ownedParts_4_0= ruleTupleLiteralPartCS )
+            	    // InternalOCLinEcore.g:6632:3: lv_ownedParts_4_0= ruleTupleLiteralPartCS
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -19499,7 +19575,7 @@
 
 
     // $ANTLR start "entryRuleTupleLiteralPartCS"
-    // InternalOCLinEcore.g:6628:1: entryRuleTupleLiteralPartCS returns [EObject current=null] : iv_ruleTupleLiteralPartCS= ruleTupleLiteralPartCS EOF ;
+    // InternalOCLinEcore.g:6660:1: entryRuleTupleLiteralPartCS returns [EObject current=null] : iv_ruleTupleLiteralPartCS= ruleTupleLiteralPartCS EOF ;
     public final EObject entryRuleTupleLiteralPartCS() throws RecognitionException {
         EObject current = null;
 
@@ -19507,8 +19583,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6629:2: (iv_ruleTupleLiteralPartCS= ruleTupleLiteralPartCS EOF )
-            // InternalOCLinEcore.g:6630:2: iv_ruleTupleLiteralPartCS= ruleTupleLiteralPartCS EOF
+            // InternalOCLinEcore.g:6661:2: (iv_ruleTupleLiteralPartCS= ruleTupleLiteralPartCS EOF )
+            // InternalOCLinEcore.g:6662:2: iv_ruleTupleLiteralPartCS= ruleTupleLiteralPartCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTupleLiteralPartCSRule()); 
@@ -19539,7 +19615,7 @@
 
 
     // $ANTLR start "ruleTupleLiteralPartCS"
-    // InternalOCLinEcore.g:6637:1: ruleTupleLiteralPartCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) ) ;
+    // InternalOCLinEcore.g:6669:1: ruleTupleLiteralPartCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) ) ;
     public final EObject ruleTupleLiteralPartCS() throws RecognitionException {
         EObject current = null;
 
@@ -19555,17 +19631,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6640:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) ) )
-            // InternalOCLinEcore.g:6641:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:6672:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) ) )
+            // InternalOCLinEcore.g:6673:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )
             {
-            // InternalOCLinEcore.g:6641:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )
-            // InternalOCLinEcore.g:6641:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:6673:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:6673:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )? otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) )
             {
-            // InternalOCLinEcore.g:6641:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:6642:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:6673:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:6674:1: (lv_name_0_0= ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:6642:1: (lv_name_0_0= ruleUnrestrictedName )
-            // InternalOCLinEcore.g:6643:3: lv_name_0_0= ruleUnrestrictedName
+            // InternalOCLinEcore.g:6674:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:6675:3: lv_name_0_0= ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -19596,7 +19672,7 @@
 
             }
 
-            // InternalOCLinEcore.g:6659:2: (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )?
+            // InternalOCLinEcore.g:6691:2: (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) )?
             int alt158=2;
             int LA158_0 = input.LA(1);
 
@@ -19605,7 +19681,7 @@
             }
             switch (alt158) {
                 case 1 :
-                    // InternalOCLinEcore.g:6659:4: otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:6691:4: otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) )
                     {
                     otherlv_1=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -19613,11 +19689,11 @@
                           	newLeafNode(otherlv_1, grammarAccess.getTupleLiteralPartCSAccess().getColonKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:6663:1: ( (lv_ownedType_2_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:6664:1: (lv_ownedType_2_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:6695:1: ( (lv_ownedType_2_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:6696:1: (lv_ownedType_2_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:6664:1: (lv_ownedType_2_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:6665:3: lv_ownedType_2_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:6696:1: (lv_ownedType_2_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:6697:3: lv_ownedType_2_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -19660,11 +19736,11 @@
                   	newLeafNode(otherlv_3, grammarAccess.getTupleLiteralPartCSAccess().getEqualsSignKeyword_2());
                   
             }
-            // InternalOCLinEcore.g:6685:1: ( (lv_ownedInitExpression_4_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:6686:1: (lv_ownedInitExpression_4_0= ruleExpCS )
+            // InternalOCLinEcore.g:6717:1: ( (lv_ownedInitExpression_4_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:6718:1: (lv_ownedInitExpression_4_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:6686:1: (lv_ownedInitExpression_4_0= ruleExpCS )
-            // InternalOCLinEcore.g:6687:3: lv_ownedInitExpression_4_0= ruleExpCS
+            // InternalOCLinEcore.g:6718:1: (lv_ownedInitExpression_4_0= ruleExpCS )
+            // InternalOCLinEcore.g:6719:3: lv_ownedInitExpression_4_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -19718,7 +19794,7 @@
 
 
     // $ANTLR start "entryRuleNumberLiteralExpCS"
-    // InternalOCLinEcore.g:6711:1: entryRuleNumberLiteralExpCS returns [EObject current=null] : iv_ruleNumberLiteralExpCS= ruleNumberLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6743:1: entryRuleNumberLiteralExpCS returns [EObject current=null] : iv_ruleNumberLiteralExpCS= ruleNumberLiteralExpCS EOF ;
     public final EObject entryRuleNumberLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19726,8 +19802,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6712:2: (iv_ruleNumberLiteralExpCS= ruleNumberLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6713:2: iv_ruleNumberLiteralExpCS= ruleNumberLiteralExpCS EOF
+            // InternalOCLinEcore.g:6744:2: (iv_ruleNumberLiteralExpCS= ruleNumberLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6745:2: iv_ruleNumberLiteralExpCS= ruleNumberLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNumberLiteralExpCSRule()); 
@@ -19758,7 +19834,7 @@
 
 
     // $ANTLR start "ruleNumberLiteralExpCS"
-    // InternalOCLinEcore.g:6720:1: ruleNumberLiteralExpCS returns [EObject current=null] : ( (lv_symbol_0_0= ruleNUMBER_LITERAL ) ) ;
+    // InternalOCLinEcore.g:6752:1: ruleNumberLiteralExpCS returns [EObject current=null] : ( (lv_symbol_0_0= ruleNUMBER_LITERAL ) ) ;
     public final EObject ruleNumberLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19768,14 +19844,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6723:28: ( ( (lv_symbol_0_0= ruleNUMBER_LITERAL ) ) )
-            // InternalOCLinEcore.g:6724:1: ( (lv_symbol_0_0= ruleNUMBER_LITERAL ) )
+            // InternalOCLinEcore.g:6755:28: ( ( (lv_symbol_0_0= ruleNUMBER_LITERAL ) ) )
+            // InternalOCLinEcore.g:6756:1: ( (lv_symbol_0_0= ruleNUMBER_LITERAL ) )
             {
-            // InternalOCLinEcore.g:6724:1: ( (lv_symbol_0_0= ruleNUMBER_LITERAL ) )
-            // InternalOCLinEcore.g:6725:1: (lv_symbol_0_0= ruleNUMBER_LITERAL )
+            // InternalOCLinEcore.g:6756:1: ( (lv_symbol_0_0= ruleNUMBER_LITERAL ) )
+            // InternalOCLinEcore.g:6757:1: (lv_symbol_0_0= ruleNUMBER_LITERAL )
             {
-            // InternalOCLinEcore.g:6725:1: (lv_symbol_0_0= ruleNUMBER_LITERAL )
-            // InternalOCLinEcore.g:6726:3: lv_symbol_0_0= ruleNUMBER_LITERAL
+            // InternalOCLinEcore.g:6757:1: (lv_symbol_0_0= ruleNUMBER_LITERAL )
+            // InternalOCLinEcore.g:6758:3: lv_symbol_0_0= ruleNUMBER_LITERAL
             {
             if ( state.backtracking==0 ) {
                
@@ -19826,7 +19902,7 @@
 
 
     // $ANTLR start "entryRuleStringLiteralExpCS"
-    // InternalOCLinEcore.g:6750:1: entryRuleStringLiteralExpCS returns [EObject current=null] : iv_ruleStringLiteralExpCS= ruleStringLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6782:1: entryRuleStringLiteralExpCS returns [EObject current=null] : iv_ruleStringLiteralExpCS= ruleStringLiteralExpCS EOF ;
     public final EObject entryRuleStringLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19834,8 +19910,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6751:2: (iv_ruleStringLiteralExpCS= ruleStringLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6752:2: iv_ruleStringLiteralExpCS= ruleStringLiteralExpCS EOF
+            // InternalOCLinEcore.g:6783:2: (iv_ruleStringLiteralExpCS= ruleStringLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6784:2: iv_ruleStringLiteralExpCS= ruleStringLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStringLiteralExpCSRule()); 
@@ -19866,7 +19942,7 @@
 
 
     // $ANTLR start "ruleStringLiteralExpCS"
-    // InternalOCLinEcore.g:6759:1: ruleStringLiteralExpCS returns [EObject current=null] : ( (lv_segments_0_0= ruleStringLiteral ) )+ ;
+    // InternalOCLinEcore.g:6791:1: ruleStringLiteralExpCS returns [EObject current=null] : ( (lv_segments_0_0= ruleStringLiteral ) )+ ;
     public final EObject ruleStringLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19876,10 +19952,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6762:28: ( ( (lv_segments_0_0= ruleStringLiteral ) )+ )
-            // InternalOCLinEcore.g:6763:1: ( (lv_segments_0_0= ruleStringLiteral ) )+
+            // InternalOCLinEcore.g:6794:28: ( ( (lv_segments_0_0= ruleStringLiteral ) )+ )
+            // InternalOCLinEcore.g:6795:1: ( (lv_segments_0_0= ruleStringLiteral ) )+
             {
-            // InternalOCLinEcore.g:6763:1: ( (lv_segments_0_0= ruleStringLiteral ) )+
+            // InternalOCLinEcore.g:6795:1: ( (lv_segments_0_0= ruleStringLiteral ) )+
             int cnt159=0;
             loop159:
             do {
@@ -19893,10 +19969,10 @@
 
                 switch (alt159) {
             	case 1 :
-            	    // InternalOCLinEcore.g:6764:1: (lv_segments_0_0= ruleStringLiteral )
+            	    // InternalOCLinEcore.g:6796:1: (lv_segments_0_0= ruleStringLiteral )
             	    {
-            	    // InternalOCLinEcore.g:6764:1: (lv_segments_0_0= ruleStringLiteral )
-            	    // InternalOCLinEcore.g:6765:3: lv_segments_0_0= ruleStringLiteral
+            	    // InternalOCLinEcore.g:6796:1: (lv_segments_0_0= ruleStringLiteral )
+            	    // InternalOCLinEcore.g:6797:3: lv_segments_0_0= ruleStringLiteral
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -19958,7 +20034,7 @@
 
 
     // $ANTLR start "entryRuleBooleanLiteralExpCS"
-    // InternalOCLinEcore.g:6789:1: entryRuleBooleanLiteralExpCS returns [EObject current=null] : iv_ruleBooleanLiteralExpCS= ruleBooleanLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6821:1: entryRuleBooleanLiteralExpCS returns [EObject current=null] : iv_ruleBooleanLiteralExpCS= ruleBooleanLiteralExpCS EOF ;
     public final EObject entryRuleBooleanLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -19966,8 +20042,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6790:2: (iv_ruleBooleanLiteralExpCS= ruleBooleanLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6791:2: iv_ruleBooleanLiteralExpCS= ruleBooleanLiteralExpCS EOF
+            // InternalOCLinEcore.g:6822:2: (iv_ruleBooleanLiteralExpCS= ruleBooleanLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6823:2: iv_ruleBooleanLiteralExpCS= ruleBooleanLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getBooleanLiteralExpCSRule()); 
@@ -19998,7 +20074,7 @@
 
 
     // $ANTLR start "ruleBooleanLiteralExpCS"
-    // InternalOCLinEcore.g:6798:1: ruleBooleanLiteralExpCS returns [EObject current=null] : ( ( (lv_symbol_0_0= 'true' ) ) | ( (lv_symbol_1_0= 'false' ) ) ) ;
+    // InternalOCLinEcore.g:6830:1: ruleBooleanLiteralExpCS returns [EObject current=null] : ( ( (lv_symbol_0_0= 'true' ) ) | ( (lv_symbol_1_0= 'false' ) ) ) ;
     public final EObject ruleBooleanLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20008,10 +20084,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6801:28: ( ( ( (lv_symbol_0_0= 'true' ) ) | ( (lv_symbol_1_0= 'false' ) ) ) )
-            // InternalOCLinEcore.g:6802:1: ( ( (lv_symbol_0_0= 'true' ) ) | ( (lv_symbol_1_0= 'false' ) ) )
+            // InternalOCLinEcore.g:6833:28: ( ( ( (lv_symbol_0_0= 'true' ) ) | ( (lv_symbol_1_0= 'false' ) ) ) )
+            // InternalOCLinEcore.g:6834:1: ( ( (lv_symbol_0_0= 'true' ) ) | ( (lv_symbol_1_0= 'false' ) ) )
             {
-            // InternalOCLinEcore.g:6802:1: ( ( (lv_symbol_0_0= 'true' ) ) | ( (lv_symbol_1_0= 'false' ) ) )
+            // InternalOCLinEcore.g:6834:1: ( ( (lv_symbol_0_0= 'true' ) ) | ( (lv_symbol_1_0= 'false' ) ) )
             int alt160=2;
             int LA160_0 = input.LA(1);
 
@@ -20030,13 +20106,13 @@
             }
             switch (alt160) {
                 case 1 :
-                    // InternalOCLinEcore.g:6802:2: ( (lv_symbol_0_0= 'true' ) )
+                    // InternalOCLinEcore.g:6834:2: ( (lv_symbol_0_0= 'true' ) )
                     {
-                    // InternalOCLinEcore.g:6802:2: ( (lv_symbol_0_0= 'true' ) )
-                    // InternalOCLinEcore.g:6803:1: (lv_symbol_0_0= 'true' )
+                    // InternalOCLinEcore.g:6834:2: ( (lv_symbol_0_0= 'true' ) )
+                    // InternalOCLinEcore.g:6835:1: (lv_symbol_0_0= 'true' )
                     {
-                    // InternalOCLinEcore.g:6803:1: (lv_symbol_0_0= 'true' )
-                    // InternalOCLinEcore.g:6804:3: lv_symbol_0_0= 'true'
+                    // InternalOCLinEcore.g:6835:1: (lv_symbol_0_0= 'true' )
+                    // InternalOCLinEcore.g:6836:3: lv_symbol_0_0= 'true'
                     {
                     lv_symbol_0_0=(Token)match(input,117,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -20062,13 +20138,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:6818:6: ( (lv_symbol_1_0= 'false' ) )
+                    // InternalOCLinEcore.g:6850:6: ( (lv_symbol_1_0= 'false' ) )
                     {
-                    // InternalOCLinEcore.g:6818:6: ( (lv_symbol_1_0= 'false' ) )
-                    // InternalOCLinEcore.g:6819:1: (lv_symbol_1_0= 'false' )
+                    // InternalOCLinEcore.g:6850:6: ( (lv_symbol_1_0= 'false' ) )
+                    // InternalOCLinEcore.g:6851:1: (lv_symbol_1_0= 'false' )
                     {
-                    // InternalOCLinEcore.g:6819:1: (lv_symbol_1_0= 'false' )
-                    // InternalOCLinEcore.g:6820:3: lv_symbol_1_0= 'false'
+                    // InternalOCLinEcore.g:6851:1: (lv_symbol_1_0= 'false' )
+                    // InternalOCLinEcore.g:6852:3: lv_symbol_1_0= 'false'
                     {
                     lv_symbol_1_0=(Token)match(input,118,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -20116,7 +20192,7 @@
 
 
     // $ANTLR start "entryRuleUnlimitedNaturalLiteralExpCS"
-    // InternalOCLinEcore.g:6841:1: entryRuleUnlimitedNaturalLiteralExpCS returns [EObject current=null] : iv_ruleUnlimitedNaturalLiteralExpCS= ruleUnlimitedNaturalLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6873:1: entryRuleUnlimitedNaturalLiteralExpCS returns [EObject current=null] : iv_ruleUnlimitedNaturalLiteralExpCS= ruleUnlimitedNaturalLiteralExpCS EOF ;
     public final EObject entryRuleUnlimitedNaturalLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20124,8 +20200,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6842:2: (iv_ruleUnlimitedNaturalLiteralExpCS= ruleUnlimitedNaturalLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6843:2: iv_ruleUnlimitedNaturalLiteralExpCS= ruleUnlimitedNaturalLiteralExpCS EOF
+            // InternalOCLinEcore.g:6874:2: (iv_ruleUnlimitedNaturalLiteralExpCS= ruleUnlimitedNaturalLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6875:2: iv_ruleUnlimitedNaturalLiteralExpCS= ruleUnlimitedNaturalLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getUnlimitedNaturalLiteralExpCSRule()); 
@@ -20156,7 +20232,7 @@
 
 
     // $ANTLR start "ruleUnlimitedNaturalLiteralExpCS"
-    // InternalOCLinEcore.g:6850:1: ruleUnlimitedNaturalLiteralExpCS returns [EObject current=null] : ( () otherlv_1= '*' ) ;
+    // InternalOCLinEcore.g:6882:1: ruleUnlimitedNaturalLiteralExpCS returns [EObject current=null] : ( () otherlv_1= '*' ) ;
     public final EObject ruleUnlimitedNaturalLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20165,14 +20241,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6853:28: ( ( () otherlv_1= '*' ) )
-            // InternalOCLinEcore.g:6854:1: ( () otherlv_1= '*' )
+            // InternalOCLinEcore.g:6885:28: ( ( () otherlv_1= '*' ) )
+            // InternalOCLinEcore.g:6886:1: ( () otherlv_1= '*' )
             {
-            // InternalOCLinEcore.g:6854:1: ( () otherlv_1= '*' )
-            // InternalOCLinEcore.g:6854:2: () otherlv_1= '*'
+            // InternalOCLinEcore.g:6886:1: ( () otherlv_1= '*' )
+            // InternalOCLinEcore.g:6886:2: () otherlv_1= '*'
             {
-            // InternalOCLinEcore.g:6854:2: ()
-            // InternalOCLinEcore.g:6855:2: 
+            // InternalOCLinEcore.g:6886:2: ()
+            // InternalOCLinEcore.g:6887:2: 
             {
             if ( state.backtracking==0 ) {
                
@@ -20218,7 +20294,7 @@
 
 
     // $ANTLR start "entryRuleInvalidLiteralExpCS"
-    // InternalOCLinEcore.g:6875:1: entryRuleInvalidLiteralExpCS returns [EObject current=null] : iv_ruleInvalidLiteralExpCS= ruleInvalidLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6907:1: entryRuleInvalidLiteralExpCS returns [EObject current=null] : iv_ruleInvalidLiteralExpCS= ruleInvalidLiteralExpCS EOF ;
     public final EObject entryRuleInvalidLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20226,8 +20302,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6876:2: (iv_ruleInvalidLiteralExpCS= ruleInvalidLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6877:2: iv_ruleInvalidLiteralExpCS= ruleInvalidLiteralExpCS EOF
+            // InternalOCLinEcore.g:6908:2: (iv_ruleInvalidLiteralExpCS= ruleInvalidLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6909:2: iv_ruleInvalidLiteralExpCS= ruleInvalidLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getInvalidLiteralExpCSRule()); 
@@ -20258,7 +20334,7 @@
 
 
     // $ANTLR start "ruleInvalidLiteralExpCS"
-    // InternalOCLinEcore.g:6884:1: ruleInvalidLiteralExpCS returns [EObject current=null] : ( () otherlv_1= 'invalid' ) ;
+    // InternalOCLinEcore.g:6916:1: ruleInvalidLiteralExpCS returns [EObject current=null] : ( () otherlv_1= 'invalid' ) ;
     public final EObject ruleInvalidLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20267,14 +20343,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6887:28: ( ( () otherlv_1= 'invalid' ) )
-            // InternalOCLinEcore.g:6888:1: ( () otherlv_1= 'invalid' )
+            // InternalOCLinEcore.g:6919:28: ( ( () otherlv_1= 'invalid' ) )
+            // InternalOCLinEcore.g:6920:1: ( () otherlv_1= 'invalid' )
             {
-            // InternalOCLinEcore.g:6888:1: ( () otherlv_1= 'invalid' )
-            // InternalOCLinEcore.g:6888:2: () otherlv_1= 'invalid'
+            // InternalOCLinEcore.g:6920:1: ( () otherlv_1= 'invalid' )
+            // InternalOCLinEcore.g:6920:2: () otherlv_1= 'invalid'
             {
-            // InternalOCLinEcore.g:6888:2: ()
-            // InternalOCLinEcore.g:6889:2: 
+            // InternalOCLinEcore.g:6920:2: ()
+            // InternalOCLinEcore.g:6921:2: 
             {
             if ( state.backtracking==0 ) {
                
@@ -20320,7 +20396,7 @@
 
 
     // $ANTLR start "entryRuleNullLiteralExpCS"
-    // InternalOCLinEcore.g:6909:1: entryRuleNullLiteralExpCS returns [EObject current=null] : iv_ruleNullLiteralExpCS= ruleNullLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:6941:1: entryRuleNullLiteralExpCS returns [EObject current=null] : iv_ruleNullLiteralExpCS= ruleNullLiteralExpCS EOF ;
     public final EObject entryRuleNullLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20328,8 +20404,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6910:2: (iv_ruleNullLiteralExpCS= ruleNullLiteralExpCS EOF )
-            // InternalOCLinEcore.g:6911:2: iv_ruleNullLiteralExpCS= ruleNullLiteralExpCS EOF
+            // InternalOCLinEcore.g:6942:2: (iv_ruleNullLiteralExpCS= ruleNullLiteralExpCS EOF )
+            // InternalOCLinEcore.g:6943:2: iv_ruleNullLiteralExpCS= ruleNullLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNullLiteralExpCSRule()); 
@@ -20360,7 +20436,7 @@
 
 
     // $ANTLR start "ruleNullLiteralExpCS"
-    // InternalOCLinEcore.g:6918:1: ruleNullLiteralExpCS returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+    // InternalOCLinEcore.g:6950:1: ruleNullLiteralExpCS returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
     public final EObject ruleNullLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20369,14 +20445,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6921:28: ( ( () otherlv_1= 'null' ) )
-            // InternalOCLinEcore.g:6922:1: ( () otherlv_1= 'null' )
+            // InternalOCLinEcore.g:6953:28: ( ( () otherlv_1= 'null' ) )
+            // InternalOCLinEcore.g:6954:1: ( () otherlv_1= 'null' )
             {
-            // InternalOCLinEcore.g:6922:1: ( () otherlv_1= 'null' )
-            // InternalOCLinEcore.g:6922:2: () otherlv_1= 'null'
+            // InternalOCLinEcore.g:6954:1: ( () otherlv_1= 'null' )
+            // InternalOCLinEcore.g:6954:2: () otherlv_1= 'null'
             {
-            // InternalOCLinEcore.g:6922:2: ()
-            // InternalOCLinEcore.g:6923:2: 
+            // InternalOCLinEcore.g:6954:2: ()
+            // InternalOCLinEcore.g:6955:2: 
             {
             if ( state.backtracking==0 ) {
                
@@ -20422,7 +20498,7 @@
 
 
     // $ANTLR start "entryRuleTypeLiteralCS"
-    // InternalOCLinEcore.g:6943:1: entryRuleTypeLiteralCS returns [EObject current=null] : iv_ruleTypeLiteralCS= ruleTypeLiteralCS EOF ;
+    // InternalOCLinEcore.g:6975:1: entryRuleTypeLiteralCS returns [EObject current=null] : iv_ruleTypeLiteralCS= ruleTypeLiteralCS EOF ;
     public final EObject entryRuleTypeLiteralCS() throws RecognitionException {
         EObject current = null;
 
@@ -20430,8 +20506,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:6944:2: (iv_ruleTypeLiteralCS= ruleTypeLiteralCS EOF )
-            // InternalOCLinEcore.g:6945:2: iv_ruleTypeLiteralCS= ruleTypeLiteralCS EOF
+            // InternalOCLinEcore.g:6976:2: (iv_ruleTypeLiteralCS= ruleTypeLiteralCS EOF )
+            // InternalOCLinEcore.g:6977:2: iv_ruleTypeLiteralCS= ruleTypeLiteralCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeLiteralCSRule()); 
@@ -20462,7 +20538,7 @@
 
 
     // $ANTLR start "ruleTypeLiteralCS"
-    // InternalOCLinEcore.g:6952:1: ruleTypeLiteralCS returns [EObject current=null] : (this_PrimitiveTypeCS_0= rulePrimitiveTypeCS | this_CollectionTypeCS_1= ruleCollectionTypeCS | this_MapTypeCS_2= ruleMapTypeCS | this_TupleTypeCS_3= ruleTupleTypeCS ) ;
+    // InternalOCLinEcore.g:6984:1: ruleTypeLiteralCS returns [EObject current=null] : (this_PrimitiveTypeCS_0= rulePrimitiveTypeCS | this_CollectionTypeCS_1= ruleCollectionTypeCS | this_MapTypeCS_2= ruleMapTypeCS | this_TupleTypeCS_3= ruleTupleTypeCS ) ;
     public final EObject ruleTypeLiteralCS() throws RecognitionException {
         EObject current = null;
 
@@ -20478,10 +20554,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:6955:28: ( (this_PrimitiveTypeCS_0= rulePrimitiveTypeCS | this_CollectionTypeCS_1= ruleCollectionTypeCS | this_MapTypeCS_2= ruleMapTypeCS | this_TupleTypeCS_3= ruleTupleTypeCS ) )
-            // InternalOCLinEcore.g:6956:1: (this_PrimitiveTypeCS_0= rulePrimitiveTypeCS | this_CollectionTypeCS_1= ruleCollectionTypeCS | this_MapTypeCS_2= ruleMapTypeCS | this_TupleTypeCS_3= ruleTupleTypeCS )
+            // InternalOCLinEcore.g:6987:28: ( (this_PrimitiveTypeCS_0= rulePrimitiveTypeCS | this_CollectionTypeCS_1= ruleCollectionTypeCS | this_MapTypeCS_2= ruleMapTypeCS | this_TupleTypeCS_3= ruleTupleTypeCS ) )
+            // InternalOCLinEcore.g:6988:1: (this_PrimitiveTypeCS_0= rulePrimitiveTypeCS | this_CollectionTypeCS_1= ruleCollectionTypeCS | this_MapTypeCS_2= ruleMapTypeCS | this_TupleTypeCS_3= ruleTupleTypeCS )
             {
-            // InternalOCLinEcore.g:6956:1: (this_PrimitiveTypeCS_0= rulePrimitiveTypeCS | this_CollectionTypeCS_1= ruleCollectionTypeCS | this_MapTypeCS_2= ruleMapTypeCS | this_TupleTypeCS_3= ruleTupleTypeCS )
+            // InternalOCLinEcore.g:6988:1: (this_PrimitiveTypeCS_0= rulePrimitiveTypeCS | this_CollectionTypeCS_1= ruleCollectionTypeCS | this_MapTypeCS_2= ruleMapTypeCS | this_TupleTypeCS_3= ruleTupleTypeCS )
             int alt161=4;
             switch ( input.LA(1) ) {
             case 100:
@@ -20525,7 +20601,7 @@
 
             switch (alt161) {
                 case 1 :
-                    // InternalOCLinEcore.g:6957:2: this_PrimitiveTypeCS_0= rulePrimitiveTypeCS
+                    // InternalOCLinEcore.g:6989:2: this_PrimitiveTypeCS_0= rulePrimitiveTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -20552,7 +20628,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:6970:2: this_CollectionTypeCS_1= ruleCollectionTypeCS
+                    // InternalOCLinEcore.g:7002:2: this_CollectionTypeCS_1= ruleCollectionTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -20579,7 +20655,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:6983:2: this_MapTypeCS_2= ruleMapTypeCS
+                    // InternalOCLinEcore.g:7015:2: this_MapTypeCS_2= ruleMapTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -20606,7 +20682,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:6996:2: this_TupleTypeCS_3= ruleTupleTypeCS
+                    // InternalOCLinEcore.g:7028:2: this_TupleTypeCS_3= ruleTupleTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -20655,7 +20731,7 @@
 
 
     // $ANTLR start "entryRuleTypeLiteralWithMultiplicityCS"
-    // InternalOCLinEcore.g:7015:1: entryRuleTypeLiteralWithMultiplicityCS returns [EObject current=null] : iv_ruleTypeLiteralWithMultiplicityCS= ruleTypeLiteralWithMultiplicityCS EOF ;
+    // InternalOCLinEcore.g:7047:1: entryRuleTypeLiteralWithMultiplicityCS returns [EObject current=null] : iv_ruleTypeLiteralWithMultiplicityCS= ruleTypeLiteralWithMultiplicityCS EOF ;
     public final EObject entryRuleTypeLiteralWithMultiplicityCS() throws RecognitionException {
         EObject current = null;
 
@@ -20663,8 +20739,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7016:2: (iv_ruleTypeLiteralWithMultiplicityCS= ruleTypeLiteralWithMultiplicityCS EOF )
-            // InternalOCLinEcore.g:7017:2: iv_ruleTypeLiteralWithMultiplicityCS= ruleTypeLiteralWithMultiplicityCS EOF
+            // InternalOCLinEcore.g:7048:2: (iv_ruleTypeLiteralWithMultiplicityCS= ruleTypeLiteralWithMultiplicityCS EOF )
+            // InternalOCLinEcore.g:7049:2: iv_ruleTypeLiteralWithMultiplicityCS= ruleTypeLiteralWithMultiplicityCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeLiteralWithMultiplicityCSRule()); 
@@ -20695,7 +20771,7 @@
 
 
     // $ANTLR start "ruleTypeLiteralWithMultiplicityCS"
-    // InternalOCLinEcore.g:7024:1: ruleTypeLiteralWithMultiplicityCS returns [EObject current=null] : (this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? ) ;
+    // InternalOCLinEcore.g:7056:1: ruleTypeLiteralWithMultiplicityCS returns [EObject current=null] : (this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? ) ;
     public final EObject ruleTypeLiteralWithMultiplicityCS() throws RecognitionException {
         EObject current = null;
 
@@ -20707,11 +20783,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7027:28: ( (this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? ) )
-            // InternalOCLinEcore.g:7028:1: (this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? )
+            // InternalOCLinEcore.g:7059:28: ( (this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? ) )
+            // InternalOCLinEcore.g:7060:1: (this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? )
             {
-            // InternalOCLinEcore.g:7028:1: (this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? )
-            // InternalOCLinEcore.g:7029:2: this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )?
+            // InternalOCLinEcore.g:7060:1: (this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )? )
+            // InternalOCLinEcore.g:7061:2: this_TypeLiteralCS_0= ruleTypeLiteralCS ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )?
             {
             if ( state.backtracking==0 ) {
                
@@ -20734,7 +20810,7 @@
                       afterParserOrEnumRuleCall();
                   
             }
-            // InternalOCLinEcore.g:7040:1: ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )?
+            // InternalOCLinEcore.g:7072:1: ( (lv_ownedMultiplicity_1_0= ruleMultiplicityCS ) )?
             int alt162=2;
             int LA162_0 = input.LA(1);
 
@@ -20743,10 +20819,10 @@
             }
             switch (alt162) {
                 case 1 :
-                    // InternalOCLinEcore.g:7041:1: (lv_ownedMultiplicity_1_0= ruleMultiplicityCS )
+                    // InternalOCLinEcore.g:7073:1: (lv_ownedMultiplicity_1_0= ruleMultiplicityCS )
                     {
-                    // InternalOCLinEcore.g:7041:1: (lv_ownedMultiplicity_1_0= ruleMultiplicityCS )
-                    // InternalOCLinEcore.g:7042:3: lv_ownedMultiplicity_1_0= ruleMultiplicityCS
+                    // InternalOCLinEcore.g:7073:1: (lv_ownedMultiplicity_1_0= ruleMultiplicityCS )
+                    // InternalOCLinEcore.g:7074:3: lv_ownedMultiplicity_1_0= ruleMultiplicityCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -20803,7 +20879,7 @@
 
 
     // $ANTLR start "entryRuleTypeLiteralExpCS"
-    // InternalOCLinEcore.g:7066:1: entryRuleTypeLiteralExpCS returns [EObject current=null] : iv_ruleTypeLiteralExpCS= ruleTypeLiteralExpCS EOF ;
+    // InternalOCLinEcore.g:7098:1: entryRuleTypeLiteralExpCS returns [EObject current=null] : iv_ruleTypeLiteralExpCS= ruleTypeLiteralExpCS EOF ;
     public final EObject entryRuleTypeLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20811,8 +20887,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7067:2: (iv_ruleTypeLiteralExpCS= ruleTypeLiteralExpCS EOF )
-            // InternalOCLinEcore.g:7068:2: iv_ruleTypeLiteralExpCS= ruleTypeLiteralExpCS EOF
+            // InternalOCLinEcore.g:7099:2: (iv_ruleTypeLiteralExpCS= ruleTypeLiteralExpCS EOF )
+            // InternalOCLinEcore.g:7100:2: iv_ruleTypeLiteralExpCS= ruleTypeLiteralExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeLiteralExpCSRule()); 
@@ -20843,7 +20919,7 @@
 
 
     // $ANTLR start "ruleTypeLiteralExpCS"
-    // InternalOCLinEcore.g:7075:1: ruleTypeLiteralExpCS returns [EObject current=null] : ( (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS ) ) ;
+    // InternalOCLinEcore.g:7107:1: ruleTypeLiteralExpCS returns [EObject current=null] : ( (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS ) ) ;
     public final EObject ruleTypeLiteralExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20853,14 +20929,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7078:28: ( ( (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS ) ) )
-            // InternalOCLinEcore.g:7079:1: ( (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS ) )
+            // InternalOCLinEcore.g:7110:28: ( ( (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS ) ) )
+            // InternalOCLinEcore.g:7111:1: ( (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS ) )
             {
-            // InternalOCLinEcore.g:7079:1: ( (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS ) )
-            // InternalOCLinEcore.g:7080:1: (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS )
+            // InternalOCLinEcore.g:7111:1: ( (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS ) )
+            // InternalOCLinEcore.g:7112:1: (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS )
             {
-            // InternalOCLinEcore.g:7080:1: (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS )
-            // InternalOCLinEcore.g:7081:3: lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS
+            // InternalOCLinEcore.g:7112:1: (lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS )
+            // InternalOCLinEcore.g:7113:3: lv_ownedType_0_0= ruleTypeLiteralWithMultiplicityCS
             {
             if ( state.backtracking==0 ) {
                
@@ -20911,7 +20987,7 @@
 
 
     // $ANTLR start "entryRuleTypeNameExpCS"
-    // InternalOCLinEcore.g:7105:1: entryRuleTypeNameExpCS returns [EObject current=null] : iv_ruleTypeNameExpCS= ruleTypeNameExpCS EOF ;
+    // InternalOCLinEcore.g:7137:1: entryRuleTypeNameExpCS returns [EObject current=null] : iv_ruleTypeNameExpCS= ruleTypeNameExpCS EOF ;
     public final EObject entryRuleTypeNameExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20919,8 +20995,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7106:2: (iv_ruleTypeNameExpCS= ruleTypeNameExpCS EOF )
-            // InternalOCLinEcore.g:7107:2: iv_ruleTypeNameExpCS= ruleTypeNameExpCS EOF
+            // InternalOCLinEcore.g:7138:2: (iv_ruleTypeNameExpCS= ruleTypeNameExpCS EOF )
+            // InternalOCLinEcore.g:7139:2: iv_ruleTypeNameExpCS= ruleTypeNameExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeNameExpCSRule()); 
@@ -20951,7 +21027,7 @@
 
 
     // $ANTLR start "ruleTypeNameExpCS"
-    // InternalOCLinEcore.g:7114:1: ruleTypeNameExpCS returns [EObject current=null] : ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )? ) ;
+    // InternalOCLinEcore.g:7146:1: ruleTypeNameExpCS returns [EObject current=null] : ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )? ) ;
     public final EObject ruleTypeNameExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -20967,17 +21043,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7117:28: ( ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )? ) )
-            // InternalOCLinEcore.g:7118:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )? )
+            // InternalOCLinEcore.g:7149:28: ( ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )? ) )
+            // InternalOCLinEcore.g:7150:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )? )
             {
-            // InternalOCLinEcore.g:7118:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )? )
-            // InternalOCLinEcore.g:7118:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )?
+            // InternalOCLinEcore.g:7150:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )? )
+            // InternalOCLinEcore.g:7150:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )?
             {
-            // InternalOCLinEcore.g:7118:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) )
-            // InternalOCLinEcore.g:7119:1: (lv_ownedPathName_0_0= rulePathNameCS )
+            // InternalOCLinEcore.g:7150:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) )
+            // InternalOCLinEcore.g:7151:1: (lv_ownedPathName_0_0= rulePathNameCS )
             {
-            // InternalOCLinEcore.g:7119:1: (lv_ownedPathName_0_0= rulePathNameCS )
-            // InternalOCLinEcore.g:7120:3: lv_ownedPathName_0_0= rulePathNameCS
+            // InternalOCLinEcore.g:7151:1: (lv_ownedPathName_0_0= rulePathNameCS )
+            // InternalOCLinEcore.g:7152:3: lv_ownedPathName_0_0= rulePathNameCS
             {
             if ( state.backtracking==0 ) {
                
@@ -21008,7 +21084,7 @@
 
             }
 
-            // InternalOCLinEcore.g:7136:2: ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )?
+            // InternalOCLinEcore.g:7168:2: ( ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )? )?
             int alt164=2;
             int LA164_0 = input.LA(1);
 
@@ -21017,13 +21093,13 @@
             }
             switch (alt164) {
                 case 1 :
-                    // InternalOCLinEcore.g:7136:3: ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )?
+                    // InternalOCLinEcore.g:7168:3: ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) ) (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )?
                     {
-                    // InternalOCLinEcore.g:7136:3: ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) )
-                    // InternalOCLinEcore.g:7137:1: (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS )
+                    // InternalOCLinEcore.g:7168:3: ( (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS ) )
+                    // InternalOCLinEcore.g:7169:1: (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS )
                     {
-                    // InternalOCLinEcore.g:7137:1: (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS )
-                    // InternalOCLinEcore.g:7138:3: lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS
+                    // InternalOCLinEcore.g:7169:1: (lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS )
+                    // InternalOCLinEcore.g:7170:3: lv_ownedCurlyBracketedClause_1_0= ruleCurlyBracketedClauseCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21054,7 +21130,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:7154:2: (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )?
+                    // InternalOCLinEcore.g:7186:2: (otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}' )?
                     int alt163=2;
                     int LA163_0 = input.LA(1);
 
@@ -21063,7 +21139,7 @@
                     }
                     switch (alt163) {
                         case 1 :
-                            // InternalOCLinEcore.g:7154:4: otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}'
+                            // InternalOCLinEcore.g:7186:4: otherlv_2= '{' ( (lv_ownedPatternGuard_3_0= ruleExpCS ) ) otherlv_4= '}'
                             {
                             otherlv_2=(Token)match(input,60,FollowSets000.FOLLOW_99); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -21071,11 +21147,11 @@
                                   	newLeafNode(otherlv_2, grammarAccess.getTypeNameExpCSAccess().getLeftCurlyBracketKeyword_1_1_0());
                                   
                             }
-                            // InternalOCLinEcore.g:7158:1: ( (lv_ownedPatternGuard_3_0= ruleExpCS ) )
-                            // InternalOCLinEcore.g:7159:1: (lv_ownedPatternGuard_3_0= ruleExpCS )
+                            // InternalOCLinEcore.g:7190:1: ( (lv_ownedPatternGuard_3_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:7191:1: (lv_ownedPatternGuard_3_0= ruleExpCS )
                             {
-                            // InternalOCLinEcore.g:7159:1: (lv_ownedPatternGuard_3_0= ruleExpCS )
-                            // InternalOCLinEcore.g:7160:3: lv_ownedPatternGuard_3_0= ruleExpCS
+                            // InternalOCLinEcore.g:7191:1: (lv_ownedPatternGuard_3_0= ruleExpCS )
+                            // InternalOCLinEcore.g:7192:3: lv_ownedPatternGuard_3_0= ruleExpCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -21147,7 +21223,7 @@
 
 
     // $ANTLR start "entryRuleTypeExpCS"
-    // InternalOCLinEcore.g:7188:1: entryRuleTypeExpCS returns [EObject current=null] : iv_ruleTypeExpCS= ruleTypeExpCS EOF ;
+    // InternalOCLinEcore.g:7220:1: entryRuleTypeExpCS returns [EObject current=null] : iv_ruleTypeExpCS= ruleTypeExpCS EOF ;
     public final EObject entryRuleTypeExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -21155,8 +21231,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7189:2: (iv_ruleTypeExpCS= ruleTypeExpCS EOF )
-            // InternalOCLinEcore.g:7190:2: iv_ruleTypeExpCS= ruleTypeExpCS EOF
+            // InternalOCLinEcore.g:7221:2: (iv_ruleTypeExpCS= ruleTypeExpCS EOF )
+            // InternalOCLinEcore.g:7222:2: iv_ruleTypeExpCS= ruleTypeExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeExpCSRule()); 
@@ -21187,7 +21263,7 @@
 
 
     // $ANTLR start "ruleTypeExpCS"
-    // InternalOCLinEcore.g:7197:1: ruleTypeExpCS returns [EObject current=null] : ( (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? ) ;
+    // InternalOCLinEcore.g:7229:1: ruleTypeExpCS returns [EObject current=null] : ( (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? ) ;
     public final EObject ruleTypeExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -21203,18 +21279,18 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7200:28: ( ( (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? ) )
-            // InternalOCLinEcore.g:7201:1: ( (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? )
+            // InternalOCLinEcore.g:7232:28: ( ( (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? ) )
+            // InternalOCLinEcore.g:7233:1: ( (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? )
             {
-            // InternalOCLinEcore.g:7201:1: ( (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? )
-            // InternalOCLinEcore.g:7201:2: (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )?
+            // InternalOCLinEcore.g:7233:1: ( (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? )
+            // InternalOCLinEcore.g:7233:2: (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS ) ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )?
             {
-            // InternalOCLinEcore.g:7201:2: (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS )
+            // InternalOCLinEcore.g:7233:2: (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS )
             int alt165=3;
             alt165 = dfa165.predict(input);
             switch (alt165) {
                 case 1 :
-                    // InternalOCLinEcore.g:7202:2: this_TypeNameExpCS_0= ruleTypeNameExpCS
+                    // InternalOCLinEcore.g:7234:2: this_TypeNameExpCS_0= ruleTypeNameExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21241,7 +21317,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:7215:2: this_TypeLiteralCS_1= ruleTypeLiteralCS
+                    // InternalOCLinEcore.g:7247:2: this_TypeLiteralCS_1= ruleTypeLiteralCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21268,7 +21344,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:7228:2: this_CollectionPatternCS_2= ruleCollectionPatternCS
+                    // InternalOCLinEcore.g:7260:2: this_CollectionPatternCS_2= ruleCollectionPatternCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21297,7 +21373,7 @@
 
             }
 
-            // InternalOCLinEcore.g:7239:2: ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )?
+            // InternalOCLinEcore.g:7271:2: ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )?
             int alt166=2;
             int LA166_0 = input.LA(1);
 
@@ -21306,10 +21382,10 @@
             }
             switch (alt166) {
                 case 1 :
-                    // InternalOCLinEcore.g:7240:1: (lv_ownedMultiplicity_3_0= ruleMultiplicityCS )
+                    // InternalOCLinEcore.g:7272:1: (lv_ownedMultiplicity_3_0= ruleMultiplicityCS )
                     {
-                    // InternalOCLinEcore.g:7240:1: (lv_ownedMultiplicity_3_0= ruleMultiplicityCS )
-                    // InternalOCLinEcore.g:7241:3: lv_ownedMultiplicity_3_0= ruleMultiplicityCS
+                    // InternalOCLinEcore.g:7272:1: (lv_ownedMultiplicity_3_0= ruleMultiplicityCS )
+                    // InternalOCLinEcore.g:7273:3: lv_ownedMultiplicity_3_0= ruleMultiplicityCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21366,7 +21442,7 @@
 
 
     // $ANTLR start "entryRuleExpCS"
-    // InternalOCLinEcore.g:7265:1: entryRuleExpCS returns [EObject current=null] : iv_ruleExpCS= ruleExpCS EOF ;
+    // InternalOCLinEcore.g:7297:1: entryRuleExpCS returns [EObject current=null] : iv_ruleExpCS= ruleExpCS EOF ;
     public final EObject entryRuleExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -21374,8 +21450,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7266:2: (iv_ruleExpCS= ruleExpCS EOF )
-            // InternalOCLinEcore.g:7267:2: iv_ruleExpCS= ruleExpCS EOF
+            // InternalOCLinEcore.g:7298:2: (iv_ruleExpCS= ruleExpCS EOF )
+            // InternalOCLinEcore.g:7299:2: iv_ruleExpCS= ruleExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getExpCSRule()); 
@@ -21406,7 +21482,7 @@
 
 
     // $ANTLR start "ruleExpCS"
-    // InternalOCLinEcore.g:7274:1: ruleExpCS returns [EObject current=null] : ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS ) ;
+    // InternalOCLinEcore.g:7306:1: ruleExpCS returns [EObject current=null] : ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS ) ;
     public final EObject ruleExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -21422,18 +21498,18 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7277:28: ( ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS ) )
-            // InternalOCLinEcore.g:7278:1: ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS )
+            // InternalOCLinEcore.g:7309:28: ( ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS ) )
+            // InternalOCLinEcore.g:7310:1: ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS )
             {
-            // InternalOCLinEcore.g:7278:1: ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS )
+            // InternalOCLinEcore.g:7310:1: ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS )
             int alt168=2;
             alt168 = dfa168.predict(input);
             switch (alt168) {
                 case 1 :
-                    // InternalOCLinEcore.g:7278:2: (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? )
+                    // InternalOCLinEcore.g:7310:2: (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? )
                     {
-                    // InternalOCLinEcore.g:7278:2: (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? )
-                    // InternalOCLinEcore.g:7279:2: this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:7310:2: (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? )
+                    // InternalOCLinEcore.g:7311:2: this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )?
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21456,7 +21532,7 @@
                               afterParserOrEnumRuleCall();
                           
                     }
-                    // InternalOCLinEcore.g:7290:1: ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:7322:1: ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )?
                     int alt167=2;
                     int LA167_0 = input.LA(1);
 
@@ -21465,10 +21541,10 @@
                     }
                     switch (alt167) {
                         case 1 :
-                            // InternalOCLinEcore.g:7290:2: () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:7322:2: () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) )
                             {
-                            // InternalOCLinEcore.g:7290:2: ()
-                            // InternalOCLinEcore.g:7291:2: 
+                            // InternalOCLinEcore.g:7322:2: ()
+                            // InternalOCLinEcore.g:7323:2: 
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -21485,11 +21561,11 @@
 
                             }
 
-                            // InternalOCLinEcore.g:7299:2: ( (lv_name_2_0= ruleBinaryOperatorName ) )
-                            // InternalOCLinEcore.g:7300:1: (lv_name_2_0= ruleBinaryOperatorName )
+                            // InternalOCLinEcore.g:7331:2: ( (lv_name_2_0= ruleBinaryOperatorName ) )
+                            // InternalOCLinEcore.g:7332:1: (lv_name_2_0= ruleBinaryOperatorName )
                             {
-                            // InternalOCLinEcore.g:7300:1: (lv_name_2_0= ruleBinaryOperatorName )
-                            // InternalOCLinEcore.g:7301:3: lv_name_2_0= ruleBinaryOperatorName
+                            // InternalOCLinEcore.g:7332:1: (lv_name_2_0= ruleBinaryOperatorName )
+                            // InternalOCLinEcore.g:7333:3: lv_name_2_0= ruleBinaryOperatorName
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -21520,11 +21596,11 @@
 
                             }
 
-                            // InternalOCLinEcore.g:7317:2: ( (lv_ownedRight_3_0= ruleExpCS ) )
-                            // InternalOCLinEcore.g:7318:1: (lv_ownedRight_3_0= ruleExpCS )
+                            // InternalOCLinEcore.g:7349:2: ( (lv_ownedRight_3_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:7350:1: (lv_ownedRight_3_0= ruleExpCS )
                             {
-                            // InternalOCLinEcore.g:7318:1: (lv_ownedRight_3_0= ruleExpCS )
-                            // InternalOCLinEcore.g:7319:3: lv_ownedRight_3_0= ruleExpCS
+                            // InternalOCLinEcore.g:7350:1: (lv_ownedRight_3_0= ruleExpCS )
+                            // InternalOCLinEcore.g:7351:3: lv_ownedRight_3_0= ruleExpCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -21568,7 +21644,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:7337:2: this_PrefixedLetExpCS_4= rulePrefixedLetExpCS
+                    // InternalOCLinEcore.g:7369:2: this_PrefixedLetExpCS_4= rulePrefixedLetExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21617,7 +21693,7 @@
 
 
     // $ANTLR start "entryRulePrefixedLetExpCS"
-    // InternalOCLinEcore.g:7356:1: entryRulePrefixedLetExpCS returns [EObject current=null] : iv_rulePrefixedLetExpCS= rulePrefixedLetExpCS EOF ;
+    // InternalOCLinEcore.g:7388:1: entryRulePrefixedLetExpCS returns [EObject current=null] : iv_rulePrefixedLetExpCS= rulePrefixedLetExpCS EOF ;
     public final EObject entryRulePrefixedLetExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -21625,8 +21701,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7357:2: (iv_rulePrefixedLetExpCS= rulePrefixedLetExpCS EOF )
-            // InternalOCLinEcore.g:7358:2: iv_rulePrefixedLetExpCS= rulePrefixedLetExpCS EOF
+            // InternalOCLinEcore.g:7389:2: (iv_rulePrefixedLetExpCS= rulePrefixedLetExpCS EOF )
+            // InternalOCLinEcore.g:7390:2: iv_rulePrefixedLetExpCS= rulePrefixedLetExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPrefixedLetExpCSRule()); 
@@ -21657,7 +21733,7 @@
 
 
     // $ANTLR start "rulePrefixedLetExpCS"
-    // InternalOCLinEcore.g:7365:1: rulePrefixedLetExpCS returns [EObject current=null] : ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) ) | this_LetExpCS_3= ruleLetExpCS ) ;
+    // InternalOCLinEcore.g:7397:1: rulePrefixedLetExpCS returns [EObject current=null] : ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) ) | this_LetExpCS_3= ruleLetExpCS ) ;
     public final EObject rulePrefixedLetExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -21671,10 +21747,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7368:28: ( ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) ) | this_LetExpCS_3= ruleLetExpCS ) )
-            // InternalOCLinEcore.g:7369:1: ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) ) | this_LetExpCS_3= ruleLetExpCS )
+            // InternalOCLinEcore.g:7400:28: ( ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) ) | this_LetExpCS_3= ruleLetExpCS ) )
+            // InternalOCLinEcore.g:7401:1: ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) ) | this_LetExpCS_3= ruleLetExpCS )
             {
-            // InternalOCLinEcore.g:7369:1: ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) ) | this_LetExpCS_3= ruleLetExpCS )
+            // InternalOCLinEcore.g:7401:1: ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) ) | this_LetExpCS_3= ruleLetExpCS )
             int alt169=2;
             int LA169_0 = input.LA(1);
 
@@ -21693,13 +21769,13 @@
             }
             switch (alt169) {
                 case 1 :
-                    // InternalOCLinEcore.g:7369:2: ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) )
+                    // InternalOCLinEcore.g:7401:2: ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) )
                     {
-                    // InternalOCLinEcore.g:7369:2: ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) )
-                    // InternalOCLinEcore.g:7369:3: () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) )
+                    // InternalOCLinEcore.g:7401:2: ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) ) )
+                    // InternalOCLinEcore.g:7401:3: () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) )
                     {
-                    // InternalOCLinEcore.g:7369:3: ()
-                    // InternalOCLinEcore.g:7370:2: 
+                    // InternalOCLinEcore.g:7401:3: ()
+                    // InternalOCLinEcore.g:7402:2: 
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21716,11 +21792,11 @@
 
                     }
 
-                    // InternalOCLinEcore.g:7378:2: ( (lv_name_1_0= ruleUnaryOperatorName ) )
-                    // InternalOCLinEcore.g:7379:1: (lv_name_1_0= ruleUnaryOperatorName )
+                    // InternalOCLinEcore.g:7410:2: ( (lv_name_1_0= ruleUnaryOperatorName ) )
+                    // InternalOCLinEcore.g:7411:1: (lv_name_1_0= ruleUnaryOperatorName )
                     {
-                    // InternalOCLinEcore.g:7379:1: (lv_name_1_0= ruleUnaryOperatorName )
-                    // InternalOCLinEcore.g:7380:3: lv_name_1_0= ruleUnaryOperatorName
+                    // InternalOCLinEcore.g:7411:1: (lv_name_1_0= ruleUnaryOperatorName )
+                    // InternalOCLinEcore.g:7412:3: lv_name_1_0= ruleUnaryOperatorName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21751,11 +21827,11 @@
 
                     }
 
-                    // InternalOCLinEcore.g:7396:2: ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) )
-                    // InternalOCLinEcore.g:7397:1: (lv_ownedRight_2_0= rulePrefixedLetExpCS )
+                    // InternalOCLinEcore.g:7428:2: ( (lv_ownedRight_2_0= rulePrefixedLetExpCS ) )
+                    // InternalOCLinEcore.g:7429:1: (lv_ownedRight_2_0= rulePrefixedLetExpCS )
                     {
-                    // InternalOCLinEcore.g:7397:1: (lv_ownedRight_2_0= rulePrefixedLetExpCS )
-                    // InternalOCLinEcore.g:7398:3: lv_ownedRight_2_0= rulePrefixedLetExpCS
+                    // InternalOCLinEcore.g:7429:1: (lv_ownedRight_2_0= rulePrefixedLetExpCS )
+                    // InternalOCLinEcore.g:7430:3: lv_ownedRight_2_0= rulePrefixedLetExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21793,7 +21869,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:7416:2: this_LetExpCS_3= ruleLetExpCS
+                    // InternalOCLinEcore.g:7448:2: this_LetExpCS_3= ruleLetExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21842,7 +21918,7 @@
 
 
     // $ANTLR start "entryRulePrefixedPrimaryExpCS"
-    // InternalOCLinEcore.g:7435:1: entryRulePrefixedPrimaryExpCS returns [EObject current=null] : iv_rulePrefixedPrimaryExpCS= rulePrefixedPrimaryExpCS EOF ;
+    // InternalOCLinEcore.g:7467:1: entryRulePrefixedPrimaryExpCS returns [EObject current=null] : iv_rulePrefixedPrimaryExpCS= rulePrefixedPrimaryExpCS EOF ;
     public final EObject entryRulePrefixedPrimaryExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -21850,8 +21926,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7436:2: (iv_rulePrefixedPrimaryExpCS= rulePrefixedPrimaryExpCS EOF )
-            // InternalOCLinEcore.g:7437:2: iv_rulePrefixedPrimaryExpCS= rulePrefixedPrimaryExpCS EOF
+            // InternalOCLinEcore.g:7468:2: (iv_rulePrefixedPrimaryExpCS= rulePrefixedPrimaryExpCS EOF )
+            // InternalOCLinEcore.g:7469:2: iv_rulePrefixedPrimaryExpCS= rulePrefixedPrimaryExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPrefixedPrimaryExpCSRule()); 
@@ -21882,7 +21958,7 @@
 
 
     // $ANTLR start "rulePrefixedPrimaryExpCS"
-    // InternalOCLinEcore.g:7444:1: rulePrefixedPrimaryExpCS returns [EObject current=null] : ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) ) | this_PrimaryExpCS_3= rulePrimaryExpCS ) ;
+    // InternalOCLinEcore.g:7476:1: rulePrefixedPrimaryExpCS returns [EObject current=null] : ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) ) | this_PrimaryExpCS_3= rulePrimaryExpCS ) ;
     public final EObject rulePrefixedPrimaryExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -21896,10 +21972,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7447:28: ( ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) ) | this_PrimaryExpCS_3= rulePrimaryExpCS ) )
-            // InternalOCLinEcore.g:7448:1: ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) ) | this_PrimaryExpCS_3= rulePrimaryExpCS )
+            // InternalOCLinEcore.g:7479:28: ( ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) ) | this_PrimaryExpCS_3= rulePrimaryExpCS ) )
+            // InternalOCLinEcore.g:7480:1: ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) ) | this_PrimaryExpCS_3= rulePrimaryExpCS )
             {
-            // InternalOCLinEcore.g:7448:1: ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) ) | this_PrimaryExpCS_3= rulePrimaryExpCS )
+            // InternalOCLinEcore.g:7480:1: ( ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) ) | this_PrimaryExpCS_3= rulePrimaryExpCS )
             int alt170=2;
             int LA170_0 = input.LA(1);
 
@@ -21918,13 +21994,13 @@
             }
             switch (alt170) {
                 case 1 :
-                    // InternalOCLinEcore.g:7448:2: ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) )
+                    // InternalOCLinEcore.g:7480:2: ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) )
                     {
-                    // InternalOCLinEcore.g:7448:2: ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) )
-                    // InternalOCLinEcore.g:7448:3: () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) )
+                    // InternalOCLinEcore.g:7480:2: ( () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) ) )
+                    // InternalOCLinEcore.g:7480:3: () ( (lv_name_1_0= ruleUnaryOperatorName ) ) ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) )
                     {
-                    // InternalOCLinEcore.g:7448:3: ()
-                    // InternalOCLinEcore.g:7449:2: 
+                    // InternalOCLinEcore.g:7480:3: ()
+                    // InternalOCLinEcore.g:7481:2: 
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21941,11 +22017,11 @@
 
                     }
 
-                    // InternalOCLinEcore.g:7457:2: ( (lv_name_1_0= ruleUnaryOperatorName ) )
-                    // InternalOCLinEcore.g:7458:1: (lv_name_1_0= ruleUnaryOperatorName )
+                    // InternalOCLinEcore.g:7489:2: ( (lv_name_1_0= ruleUnaryOperatorName ) )
+                    // InternalOCLinEcore.g:7490:1: (lv_name_1_0= ruleUnaryOperatorName )
                     {
-                    // InternalOCLinEcore.g:7458:1: (lv_name_1_0= ruleUnaryOperatorName )
-                    // InternalOCLinEcore.g:7459:3: lv_name_1_0= ruleUnaryOperatorName
+                    // InternalOCLinEcore.g:7490:1: (lv_name_1_0= ruleUnaryOperatorName )
+                    // InternalOCLinEcore.g:7491:3: lv_name_1_0= ruleUnaryOperatorName
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -21976,11 +22052,11 @@
 
                     }
 
-                    // InternalOCLinEcore.g:7475:2: ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) )
-                    // InternalOCLinEcore.g:7476:1: (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS )
+                    // InternalOCLinEcore.g:7507:2: ( (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS ) )
+                    // InternalOCLinEcore.g:7508:1: (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS )
                     {
-                    // InternalOCLinEcore.g:7476:1: (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS )
-                    // InternalOCLinEcore.g:7477:3: lv_ownedRight_2_0= rulePrefixedPrimaryExpCS
+                    // InternalOCLinEcore.g:7508:1: (lv_ownedRight_2_0= rulePrefixedPrimaryExpCS )
+                    // InternalOCLinEcore.g:7509:3: lv_ownedRight_2_0= rulePrefixedPrimaryExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22018,7 +22094,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:7495:2: this_PrimaryExpCS_3= rulePrimaryExpCS
+                    // InternalOCLinEcore.g:7527:2: this_PrimaryExpCS_3= rulePrimaryExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22067,7 +22143,7 @@
 
 
     // $ANTLR start "entryRulePrimaryExpCS"
-    // InternalOCLinEcore.g:7514:1: entryRulePrimaryExpCS returns [EObject current=null] : iv_rulePrimaryExpCS= rulePrimaryExpCS EOF ;
+    // InternalOCLinEcore.g:7546:1: entryRulePrimaryExpCS returns [EObject current=null] : iv_rulePrimaryExpCS= rulePrimaryExpCS EOF ;
     public final EObject entryRulePrimaryExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -22075,8 +22151,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7515:2: (iv_rulePrimaryExpCS= rulePrimaryExpCS EOF )
-            // InternalOCLinEcore.g:7516:2: iv_rulePrimaryExpCS= rulePrimaryExpCS EOF
+            // InternalOCLinEcore.g:7547:2: (iv_rulePrimaryExpCS= rulePrimaryExpCS EOF )
+            // InternalOCLinEcore.g:7548:2: iv_rulePrimaryExpCS= rulePrimaryExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPrimaryExpCSRule()); 
@@ -22107,7 +22183,7 @@
 
 
     // $ANTLR start "rulePrimaryExpCS"
-    // InternalOCLinEcore.g:7523:1: rulePrimaryExpCS returns [EObject current=null] : (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS ) ;
+    // InternalOCLinEcore.g:7555:1: rulePrimaryExpCS returns [EObject current=null] : (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS ) ;
     public final EObject rulePrimaryExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -22135,15 +22211,15 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7526:28: ( (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS ) )
-            // InternalOCLinEcore.g:7527:1: (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS )
+            // InternalOCLinEcore.g:7558:28: ( (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS ) )
+            // InternalOCLinEcore.g:7559:1: (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS )
             {
-            // InternalOCLinEcore.g:7527:1: (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS )
+            // InternalOCLinEcore.g:7559:1: (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS )
             int alt171=10;
             alt171 = dfa171.predict(input);
             switch (alt171) {
                 case 1 :
-                    // InternalOCLinEcore.g:7528:2: this_NestedExpCS_0= ruleNestedExpCS
+                    // InternalOCLinEcore.g:7560:2: this_NestedExpCS_0= ruleNestedExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22170,7 +22246,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:7541:2: this_IfExpCS_1= ruleIfExpCS
+                    // InternalOCLinEcore.g:7573:2: this_IfExpCS_1= ruleIfExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22197,7 +22273,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:7554:2: this_SelfExpCS_2= ruleSelfExpCS
+                    // InternalOCLinEcore.g:7586:2: this_SelfExpCS_2= ruleSelfExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22224,7 +22300,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalOCLinEcore.g:7567:2: this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS
+                    // InternalOCLinEcore.g:7599:2: this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22251,7 +22327,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalOCLinEcore.g:7580:2: this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS
+                    // InternalOCLinEcore.g:7612:2: this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22278,7 +22354,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalOCLinEcore.g:7593:2: this_MapLiteralExpCS_5= ruleMapLiteralExpCS
+                    // InternalOCLinEcore.g:7625:2: this_MapLiteralExpCS_5= ruleMapLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22305,7 +22381,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalOCLinEcore.g:7606:2: this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS
+                    // InternalOCLinEcore.g:7638:2: this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22332,7 +22408,7 @@
                     }
                     break;
                 case 8 :
-                    // InternalOCLinEcore.g:7619:2: this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS
+                    // InternalOCLinEcore.g:7651:2: this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22359,7 +22435,7 @@
                     }
                     break;
                 case 9 :
-                    // InternalOCLinEcore.g:7632:2: this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS
+                    // InternalOCLinEcore.g:7664:2: this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22386,7 +22462,7 @@
                     }
                     break;
                 case 10 :
-                    // InternalOCLinEcore.g:7645:2: this_NameExpCS_9= ruleNameExpCS
+                    // InternalOCLinEcore.g:7677:2: this_NameExpCS_9= ruleNameExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22435,7 +22511,7 @@
 
 
     // $ANTLR start "entryRuleNameExpCS"
-    // InternalOCLinEcore.g:7664:1: entryRuleNameExpCS returns [EObject current=null] : iv_ruleNameExpCS= ruleNameExpCS EOF ;
+    // InternalOCLinEcore.g:7696:1: entryRuleNameExpCS returns [EObject current=null] : iv_ruleNameExpCS= ruleNameExpCS EOF ;
     public final EObject entryRuleNameExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -22443,8 +22519,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7665:2: (iv_ruleNameExpCS= ruleNameExpCS EOF )
-            // InternalOCLinEcore.g:7666:2: iv_ruleNameExpCS= ruleNameExpCS EOF
+            // InternalOCLinEcore.g:7697:2: (iv_ruleNameExpCS= ruleNameExpCS EOF )
+            // InternalOCLinEcore.g:7698:2: iv_ruleNameExpCS= ruleNameExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNameExpCSRule()); 
@@ -22475,7 +22551,7 @@
 
 
     // $ANTLR start "ruleNameExpCS"
-    // InternalOCLinEcore.g:7673:1: ruleNameExpCS returns [EObject current=null] : ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )? ) ;
+    // InternalOCLinEcore.g:7705:1: ruleNameExpCS returns [EObject current=null] : ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )? ) ;
     public final EObject ruleNameExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -22493,17 +22569,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7676:28: ( ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )? ) )
-            // InternalOCLinEcore.g:7677:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )? )
+            // InternalOCLinEcore.g:7708:28: ( ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )? ) )
+            // InternalOCLinEcore.g:7709:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )? )
             {
-            // InternalOCLinEcore.g:7677:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )? )
-            // InternalOCLinEcore.g:7677:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )?
+            // InternalOCLinEcore.g:7709:1: ( ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )? )
+            // InternalOCLinEcore.g:7709:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) ) ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )* ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )? ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )? ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )?
             {
-            // InternalOCLinEcore.g:7677:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) )
-            // InternalOCLinEcore.g:7678:1: (lv_ownedPathName_0_0= rulePathNameCS )
+            // InternalOCLinEcore.g:7709:2: ( (lv_ownedPathName_0_0= rulePathNameCS ) )
+            // InternalOCLinEcore.g:7710:1: (lv_ownedPathName_0_0= rulePathNameCS )
             {
-            // InternalOCLinEcore.g:7678:1: (lv_ownedPathName_0_0= rulePathNameCS )
-            // InternalOCLinEcore.g:7679:3: lv_ownedPathName_0_0= rulePathNameCS
+            // InternalOCLinEcore.g:7710:1: (lv_ownedPathName_0_0= rulePathNameCS )
+            // InternalOCLinEcore.g:7711:3: lv_ownedPathName_0_0= rulePathNameCS
             {
             if ( state.backtracking==0 ) {
                
@@ -22534,7 +22610,7 @@
 
             }
 
-            // InternalOCLinEcore.g:7695:2: ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )*
+            // InternalOCLinEcore.g:7727:2: ( (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS ) )*
             loop172:
             do {
                 int alt172=2;
@@ -22547,10 +22623,10 @@
 
                 switch (alt172) {
             	case 1 :
-            	    // InternalOCLinEcore.g:7696:1: (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS )
+            	    // InternalOCLinEcore.g:7728:1: (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS )
             	    {
-            	    // InternalOCLinEcore.g:7696:1: (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS )
-            	    // InternalOCLinEcore.g:7697:3: lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS
+            	    // InternalOCLinEcore.g:7728:1: (lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS )
+            	    // InternalOCLinEcore.g:7729:3: lv_ownedSquareBracketedClauses_1_0= ruleSquareBracketedClauseCS
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -22587,7 +22663,7 @@
                 }
             } while (true);
 
-            // InternalOCLinEcore.g:7713:3: ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )?
+            // InternalOCLinEcore.g:7745:3: ( (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS ) )?
             int alt173=2;
             int LA173_0 = input.LA(1);
 
@@ -22596,10 +22672,10 @@
             }
             switch (alt173) {
                 case 1 :
-                    // InternalOCLinEcore.g:7714:1: (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS )
+                    // InternalOCLinEcore.g:7746:1: (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS )
                     {
-                    // InternalOCLinEcore.g:7714:1: (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS )
-                    // InternalOCLinEcore.g:7715:3: lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS
+                    // InternalOCLinEcore.g:7746:1: (lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS )
+                    // InternalOCLinEcore.g:7747:3: lv_ownedRoundBracketedClause_2_0= ruleRoundBracketedClauseCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22633,7 +22709,7 @@
 
             }
 
-            // InternalOCLinEcore.g:7731:3: ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )?
+            // InternalOCLinEcore.g:7763:3: ( (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS ) )?
             int alt174=2;
             int LA174_0 = input.LA(1);
 
@@ -22642,10 +22718,10 @@
             }
             switch (alt174) {
                 case 1 :
-                    // InternalOCLinEcore.g:7732:1: (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS )
+                    // InternalOCLinEcore.g:7764:1: (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS )
                     {
-                    // InternalOCLinEcore.g:7732:1: (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS )
-                    // InternalOCLinEcore.g:7733:3: lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS
+                    // InternalOCLinEcore.g:7764:1: (lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS )
+                    // InternalOCLinEcore.g:7765:3: lv_ownedCurlyBracketedClause_3_0= ruleCurlyBracketedClauseCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -22679,7 +22755,7 @@
 
             }
 
-            // InternalOCLinEcore.g:7749:3: ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )?
+            // InternalOCLinEcore.g:7781:3: ( ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre' )?
             int alt175=2;
             int LA175_0 = input.LA(1);
 
@@ -22688,13 +22764,13 @@
             }
             switch (alt175) {
                 case 1 :
-                    // InternalOCLinEcore.g:7749:4: ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre'
+                    // InternalOCLinEcore.g:7781:4: ( (lv_isPre_4_0= '@' ) ) otherlv_5= 'pre'
                     {
-                    // InternalOCLinEcore.g:7749:4: ( (lv_isPre_4_0= '@' ) )
-                    // InternalOCLinEcore.g:7750:1: (lv_isPre_4_0= '@' )
+                    // InternalOCLinEcore.g:7781:4: ( (lv_isPre_4_0= '@' ) )
+                    // InternalOCLinEcore.g:7782:1: (lv_isPre_4_0= '@' )
                     {
-                    // InternalOCLinEcore.g:7750:1: (lv_isPre_4_0= '@' )
-                    // InternalOCLinEcore.g:7751:3: lv_isPre_4_0= '@'
+                    // InternalOCLinEcore.g:7782:1: (lv_isPre_4_0= '@' )
+                    // InternalOCLinEcore.g:7783:3: lv_isPre_4_0= '@'
                     {
                     lv_isPre_4_0=(Token)match(input,121,FollowSets000.FOLLOW_110); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -22751,7 +22827,7 @@
 
 
     // $ANTLR start "entryRuleCurlyBracketedClauseCS"
-    // InternalOCLinEcore.g:7776:1: entryRuleCurlyBracketedClauseCS returns [EObject current=null] : iv_ruleCurlyBracketedClauseCS= ruleCurlyBracketedClauseCS EOF ;
+    // InternalOCLinEcore.g:7808:1: entryRuleCurlyBracketedClauseCS returns [EObject current=null] : iv_ruleCurlyBracketedClauseCS= ruleCurlyBracketedClauseCS EOF ;
     public final EObject entryRuleCurlyBracketedClauseCS() throws RecognitionException {
         EObject current = null;
 
@@ -22759,8 +22835,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7777:2: (iv_ruleCurlyBracketedClauseCS= ruleCurlyBracketedClauseCS EOF )
-            // InternalOCLinEcore.g:7778:2: iv_ruleCurlyBracketedClauseCS= ruleCurlyBracketedClauseCS EOF
+            // InternalOCLinEcore.g:7809:2: (iv_ruleCurlyBracketedClauseCS= ruleCurlyBracketedClauseCS EOF )
+            // InternalOCLinEcore.g:7810:2: iv_ruleCurlyBracketedClauseCS= ruleCurlyBracketedClauseCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCurlyBracketedClauseCSRule()); 
@@ -22791,7 +22867,7 @@
 
 
     // $ANTLR start "ruleCurlyBracketedClauseCS"
-    // InternalOCLinEcore.g:7785:1: ruleCurlyBracketedClauseCS returns [EObject current=null] : ( () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}' ) ;
+    // InternalOCLinEcore.g:7817:1: ruleCurlyBracketedClauseCS returns [EObject current=null] : ( () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}' ) ;
     public final EObject ruleCurlyBracketedClauseCS() throws RecognitionException {
         EObject current = null;
 
@@ -22808,14 +22884,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7788:28: ( ( () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}' ) )
-            // InternalOCLinEcore.g:7789:1: ( () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}' )
+            // InternalOCLinEcore.g:7820:28: ( ( () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}' ) )
+            // InternalOCLinEcore.g:7821:1: ( () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}' )
             {
-            // InternalOCLinEcore.g:7789:1: ( () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}' )
-            // InternalOCLinEcore.g:7789:2: () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}'
+            // InternalOCLinEcore.g:7821:1: ( () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}' )
+            // InternalOCLinEcore.g:7821:2: () otherlv_1= '{' ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) ) otherlv_6= '}'
             {
-            // InternalOCLinEcore.g:7789:2: ()
-            // InternalOCLinEcore.g:7790:2: 
+            // InternalOCLinEcore.g:7821:2: ()
+            // InternalOCLinEcore.g:7822:2: 
             {
             if ( state.backtracking==0 ) {
                
@@ -22838,7 +22914,7 @@
                   	newLeafNode(otherlv_1, grammarAccess.getCurlyBracketedClauseCSAccess().getLeftCurlyBracketKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:7802:1: ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) )
+            // InternalOCLinEcore.g:7834:1: ( ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )? | ( (lv_value_5_0= ruleStringLiteral ) ) )
             int alt178=2;
             int LA178_0 = input.LA(1);
 
@@ -22857,9 +22933,9 @@
             }
             switch (alt178) {
                 case 1 :
-                    // InternalOCLinEcore.g:7802:2: ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )?
+                    // InternalOCLinEcore.g:7834:2: ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )?
                     {
-                    // InternalOCLinEcore.g:7802:2: ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )?
+                    // InternalOCLinEcore.g:7834:2: ( ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )* )?
                     int alt177=2;
                     int LA177_0 = input.LA(1);
 
@@ -22868,13 +22944,13 @@
                     }
                     switch (alt177) {
                         case 1 :
-                            // InternalOCLinEcore.g:7802:3: ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )*
+                            // InternalOCLinEcore.g:7834:3: ( (lv_ownedParts_2_0= ruleShadowPartCS ) ) (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )*
                             {
-                            // InternalOCLinEcore.g:7802:3: ( (lv_ownedParts_2_0= ruleShadowPartCS ) )
-                            // InternalOCLinEcore.g:7803:1: (lv_ownedParts_2_0= ruleShadowPartCS )
+                            // InternalOCLinEcore.g:7834:3: ( (lv_ownedParts_2_0= ruleShadowPartCS ) )
+                            // InternalOCLinEcore.g:7835:1: (lv_ownedParts_2_0= ruleShadowPartCS )
                             {
-                            // InternalOCLinEcore.g:7803:1: (lv_ownedParts_2_0= ruleShadowPartCS )
-                            // InternalOCLinEcore.g:7804:3: lv_ownedParts_2_0= ruleShadowPartCS
+                            // InternalOCLinEcore.g:7835:1: (lv_ownedParts_2_0= ruleShadowPartCS )
+                            // InternalOCLinEcore.g:7836:3: lv_ownedParts_2_0= ruleShadowPartCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -22905,7 +22981,7 @@
 
                             }
 
-                            // InternalOCLinEcore.g:7820:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )*
+                            // InternalOCLinEcore.g:7852:2: (otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) ) )*
                             loop176:
                             do {
                                 int alt176=2;
@@ -22918,7 +22994,7 @@
 
                                 switch (alt176) {
                             	case 1 :
-                            	    // InternalOCLinEcore.g:7820:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) )
+                            	    // InternalOCLinEcore.g:7852:4: otherlv_3= ',' ( (lv_ownedParts_4_0= ruleShadowPartCS ) )
                             	    {
                             	    otherlv_3=(Token)match(input,59,FollowSets000.FOLLOW_3); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
@@ -22926,11 +23002,11 @@
                             	          	newLeafNode(otherlv_3, grammarAccess.getCurlyBracketedClauseCSAccess().getCommaKeyword_2_0_1_0());
                             	          
                             	    }
-                            	    // InternalOCLinEcore.g:7824:1: ( (lv_ownedParts_4_0= ruleShadowPartCS ) )
-                            	    // InternalOCLinEcore.g:7825:1: (lv_ownedParts_4_0= ruleShadowPartCS )
+                            	    // InternalOCLinEcore.g:7856:1: ( (lv_ownedParts_4_0= ruleShadowPartCS ) )
+                            	    // InternalOCLinEcore.g:7857:1: (lv_ownedParts_4_0= ruleShadowPartCS )
                             	    {
-                            	    // InternalOCLinEcore.g:7825:1: (lv_ownedParts_4_0= ruleShadowPartCS )
-                            	    // InternalOCLinEcore.g:7826:3: lv_ownedParts_4_0= ruleShadowPartCS
+                            	    // InternalOCLinEcore.g:7857:1: (lv_ownedParts_4_0= ruleShadowPartCS )
+                            	    // InternalOCLinEcore.g:7858:3: lv_ownedParts_4_0= ruleShadowPartCS
                             	    {
                             	    if ( state.backtracking==0 ) {
                             	       
@@ -22980,13 +23056,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:7843:6: ( (lv_value_5_0= ruleStringLiteral ) )
+                    // InternalOCLinEcore.g:7875:6: ( (lv_value_5_0= ruleStringLiteral ) )
                     {
-                    // InternalOCLinEcore.g:7843:6: ( (lv_value_5_0= ruleStringLiteral ) )
-                    // InternalOCLinEcore.g:7844:1: (lv_value_5_0= ruleStringLiteral )
+                    // InternalOCLinEcore.g:7875:6: ( (lv_value_5_0= ruleStringLiteral ) )
+                    // InternalOCLinEcore.g:7876:1: (lv_value_5_0= ruleStringLiteral )
                     {
-                    // InternalOCLinEcore.g:7844:1: (lv_value_5_0= ruleStringLiteral )
-                    // InternalOCLinEcore.g:7845:3: lv_value_5_0= ruleStringLiteral
+                    // InternalOCLinEcore.g:7876:1: (lv_value_5_0= ruleStringLiteral )
+                    // InternalOCLinEcore.g:7877:3: lv_value_5_0= ruleStringLiteral
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -23052,7 +23128,7 @@
 
 
     // $ANTLR start "entryRuleRoundBracketedClauseCS"
-    // InternalOCLinEcore.g:7873:1: entryRuleRoundBracketedClauseCS returns [EObject current=null] : iv_ruleRoundBracketedClauseCS= ruleRoundBracketedClauseCS EOF ;
+    // InternalOCLinEcore.g:7905:1: entryRuleRoundBracketedClauseCS returns [EObject current=null] : iv_ruleRoundBracketedClauseCS= ruleRoundBracketedClauseCS EOF ;
     public final EObject entryRuleRoundBracketedClauseCS() throws RecognitionException {
         EObject current = null;
 
@@ -23060,8 +23136,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:7874:2: (iv_ruleRoundBracketedClauseCS= ruleRoundBracketedClauseCS EOF )
-            // InternalOCLinEcore.g:7875:2: iv_ruleRoundBracketedClauseCS= ruleRoundBracketedClauseCS EOF
+            // InternalOCLinEcore.g:7906:2: (iv_ruleRoundBracketedClauseCS= ruleRoundBracketedClauseCS EOF )
+            // InternalOCLinEcore.g:7907:2: iv_ruleRoundBracketedClauseCS= ruleRoundBracketedClauseCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getRoundBracketedClauseCSRule()); 
@@ -23092,7 +23168,7 @@
 
 
     // $ANTLR start "ruleRoundBracketedClauseCS"
-    // InternalOCLinEcore.g:7882:1: ruleRoundBracketedClauseCS returns [EObject current=null] : ( () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')' ) ;
+    // InternalOCLinEcore.g:7914:1: ruleRoundBracketedClauseCS returns [EObject current=null] : ( () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')' ) ;
     public final EObject ruleRoundBracketedClauseCS() throws RecognitionException {
         EObject current = null;
 
@@ -23114,14 +23190,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:7885:28: ( ( () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')' ) )
-            // InternalOCLinEcore.g:7886:1: ( () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')' )
+            // InternalOCLinEcore.g:7917:28: ( ( () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')' ) )
+            // InternalOCLinEcore.g:7918:1: ( () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')' )
             {
-            // InternalOCLinEcore.g:7886:1: ( () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')' )
-            // InternalOCLinEcore.g:7886:2: () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')'
+            // InternalOCLinEcore.g:7918:1: ( () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')' )
+            // InternalOCLinEcore.g:7918:2: () otherlv_1= '(' ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )? otherlv_8= ')'
             {
-            // InternalOCLinEcore.g:7886:2: ()
-            // InternalOCLinEcore.g:7887:2: 
+            // InternalOCLinEcore.g:7918:2: ()
+            // InternalOCLinEcore.g:7919:2: 
             {
             if ( state.backtracking==0 ) {
                
@@ -23144,7 +23220,7 @@
                   	newLeafNode(otherlv_1, grammarAccess.getRoundBracketedClauseCSAccess().getLeftParenthesisKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:7899:1: ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )?
+            // InternalOCLinEcore.g:7931:1: ( ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )* )?
             int alt184=2;
             int LA184_0 = input.LA(1);
 
@@ -23153,13 +23229,13 @@
             }
             switch (alt184) {
                 case 1 :
-                    // InternalOCLinEcore.g:7899:2: ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )*
+                    // InternalOCLinEcore.g:7931:2: ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) ) ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )* ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )? ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )*
                     {
-                    // InternalOCLinEcore.g:7899:2: ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) )
-                    // InternalOCLinEcore.g:7900:1: (lv_ownedArguments_2_0= ruleNavigatingArgCS )
+                    // InternalOCLinEcore.g:7931:2: ( (lv_ownedArguments_2_0= ruleNavigatingArgCS ) )
+                    // InternalOCLinEcore.g:7932:1: (lv_ownedArguments_2_0= ruleNavigatingArgCS )
                     {
-                    // InternalOCLinEcore.g:7900:1: (lv_ownedArguments_2_0= ruleNavigatingArgCS )
-                    // InternalOCLinEcore.g:7901:3: lv_ownedArguments_2_0= ruleNavigatingArgCS
+                    // InternalOCLinEcore.g:7932:1: (lv_ownedArguments_2_0= ruleNavigatingArgCS )
+                    // InternalOCLinEcore.g:7933:3: lv_ownedArguments_2_0= ruleNavigatingArgCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -23190,7 +23266,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:7917:2: ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )*
+                    // InternalOCLinEcore.g:7949:2: ( (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS ) )*
                     loop179:
                     do {
                         int alt179=2;
@@ -23203,10 +23279,10 @@
 
                         switch (alt179) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:7918:1: (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS )
+                    	    // InternalOCLinEcore.g:7950:1: (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS )
                     	    {
-                    	    // InternalOCLinEcore.g:7918:1: (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS )
-                    	    // InternalOCLinEcore.g:7919:3: lv_ownedArguments_3_0= ruleNavigatingCommaArgCS
+                    	    // InternalOCLinEcore.g:7950:1: (lv_ownedArguments_3_0= ruleNavigatingCommaArgCS )
+                    	    // InternalOCLinEcore.g:7951:3: lv_ownedArguments_3_0= ruleNavigatingCommaArgCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -23243,7 +23319,7 @@
                         }
                     } while (true);
 
-                    // InternalOCLinEcore.g:7935:3: ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )?
+                    // InternalOCLinEcore.g:7967:3: ( ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )* )?
                     int alt181=2;
                     int LA181_0 = input.LA(1);
 
@@ -23252,13 +23328,13 @@
                     }
                     switch (alt181) {
                         case 1 :
-                            // InternalOCLinEcore.g:7935:4: ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )*
+                            // InternalOCLinEcore.g:7967:4: ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) ) ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )*
                             {
-                            // InternalOCLinEcore.g:7935:4: ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) )
-                            // InternalOCLinEcore.g:7936:1: (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS )
+                            // InternalOCLinEcore.g:7967:4: ( (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS ) )
+                            // InternalOCLinEcore.g:7968:1: (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS )
                             {
-                            // InternalOCLinEcore.g:7936:1: (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS )
-                            // InternalOCLinEcore.g:7937:3: lv_ownedArguments_4_0= ruleNavigatingSemiArgCS
+                            // InternalOCLinEcore.g:7968:1: (lv_ownedArguments_4_0= ruleNavigatingSemiArgCS )
+                            // InternalOCLinEcore.g:7969:3: lv_ownedArguments_4_0= ruleNavigatingSemiArgCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -23289,7 +23365,7 @@
 
                             }
 
-                            // InternalOCLinEcore.g:7953:2: ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )*
+                            // InternalOCLinEcore.g:7985:2: ( (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS ) )*
                             loop180:
                             do {
                                 int alt180=2;
@@ -23302,10 +23378,10 @@
 
                                 switch (alt180) {
                             	case 1 :
-                            	    // InternalOCLinEcore.g:7954:1: (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS )
+                            	    // InternalOCLinEcore.g:7986:1: (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS )
                             	    {
-                            	    // InternalOCLinEcore.g:7954:1: (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS )
-                            	    // InternalOCLinEcore.g:7955:3: lv_ownedArguments_5_0= ruleNavigatingCommaArgCS
+                            	    // InternalOCLinEcore.g:7986:1: (lv_ownedArguments_5_0= ruleNavigatingCommaArgCS )
+                            	    // InternalOCLinEcore.g:7987:3: lv_ownedArguments_5_0= ruleNavigatingCommaArgCS
                             	    {
                             	    if ( state.backtracking==0 ) {
                             	       
@@ -23348,7 +23424,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:7971:5: ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )*
+                    // InternalOCLinEcore.g:8003:5: ( ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )* )*
                     loop183:
                     do {
                         int alt183=2;
@@ -23361,13 +23437,13 @@
 
                         switch (alt183) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:7971:6: ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )*
+                    	    // InternalOCLinEcore.g:8003:6: ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) ) ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )*
                     	    {
-                    	    // InternalOCLinEcore.g:7971:6: ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) )
-                    	    // InternalOCLinEcore.g:7972:1: (lv_ownedArguments_6_0= ruleNavigatingBarArgCS )
+                    	    // InternalOCLinEcore.g:8003:6: ( (lv_ownedArguments_6_0= ruleNavigatingBarArgCS ) )
+                    	    // InternalOCLinEcore.g:8004:1: (lv_ownedArguments_6_0= ruleNavigatingBarArgCS )
                     	    {
-                    	    // InternalOCLinEcore.g:7972:1: (lv_ownedArguments_6_0= ruleNavigatingBarArgCS )
-                    	    // InternalOCLinEcore.g:7973:3: lv_ownedArguments_6_0= ruleNavigatingBarArgCS
+                    	    // InternalOCLinEcore.g:8004:1: (lv_ownedArguments_6_0= ruleNavigatingBarArgCS )
+                    	    // InternalOCLinEcore.g:8005:3: lv_ownedArguments_6_0= ruleNavigatingBarArgCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -23398,7 +23474,7 @@
 
                     	    }
 
-                    	    // InternalOCLinEcore.g:7989:2: ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )*
+                    	    // InternalOCLinEcore.g:8021:2: ( (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS ) )*
                     	    loop182:
                     	    do {
                     	        int alt182=2;
@@ -23411,10 +23487,10 @@
 
                     	        switch (alt182) {
                     	    	case 1 :
-                    	    	    // InternalOCLinEcore.g:7990:1: (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS )
+                    	    	    // InternalOCLinEcore.g:8022:1: (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS )
                     	    	    {
-                    	    	    // InternalOCLinEcore.g:7990:1: (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS )
-                    	    	    // InternalOCLinEcore.g:7991:3: lv_ownedArguments_7_0= ruleNavigatingCommaArgCS
+                    	    	    // InternalOCLinEcore.g:8022:1: (lv_ownedArguments_7_0= ruleNavigatingCommaArgCS )
+                    	    	    // InternalOCLinEcore.g:8023:3: lv_ownedArguments_7_0= ruleNavigatingCommaArgCS
                     	    	    {
                     	    	    if ( state.backtracking==0 ) {
                     	    	       
@@ -23495,7 +23571,7 @@
 
 
     // $ANTLR start "entryRuleSquareBracketedClauseCS"
-    // InternalOCLinEcore.g:8019:1: entryRuleSquareBracketedClauseCS returns [EObject current=null] : iv_ruleSquareBracketedClauseCS= ruleSquareBracketedClauseCS EOF ;
+    // InternalOCLinEcore.g:8051:1: entryRuleSquareBracketedClauseCS returns [EObject current=null] : iv_ruleSquareBracketedClauseCS= ruleSquareBracketedClauseCS EOF ;
     public final EObject entryRuleSquareBracketedClauseCS() throws RecognitionException {
         EObject current = null;
 
@@ -23503,8 +23579,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8020:2: (iv_ruleSquareBracketedClauseCS= ruleSquareBracketedClauseCS EOF )
-            // InternalOCLinEcore.g:8021:2: iv_ruleSquareBracketedClauseCS= ruleSquareBracketedClauseCS EOF
+            // InternalOCLinEcore.g:8052:2: (iv_ruleSquareBracketedClauseCS= ruleSquareBracketedClauseCS EOF )
+            // InternalOCLinEcore.g:8053:2: iv_ruleSquareBracketedClauseCS= ruleSquareBracketedClauseCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSquareBracketedClauseCSRule()); 
@@ -23535,7 +23611,7 @@
 
 
     // $ANTLR start "ruleSquareBracketedClauseCS"
-    // InternalOCLinEcore.g:8028:1: ruleSquareBracketedClauseCS returns [EObject current=null] : (otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']' ) ;
+    // InternalOCLinEcore.g:8060:1: ruleSquareBracketedClauseCS returns [EObject current=null] : (otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']' ) ;
     public final EObject ruleSquareBracketedClauseCS() throws RecognitionException {
         EObject current = null;
 
@@ -23550,11 +23626,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8031:28: ( (otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']' ) )
-            // InternalOCLinEcore.g:8032:1: (otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']' )
+            // InternalOCLinEcore.g:8063:28: ( (otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']' ) )
+            // InternalOCLinEcore.g:8064:1: (otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']' )
             {
-            // InternalOCLinEcore.g:8032:1: (otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']' )
-            // InternalOCLinEcore.g:8032:3: otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']'
+            // InternalOCLinEcore.g:8064:1: (otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']' )
+            // InternalOCLinEcore.g:8064:3: otherlv_0= '[' ( (lv_ownedTerms_1_0= ruleExpCS ) ) (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )* otherlv_4= ']'
             {
             otherlv_0=(Token)match(input,123,FollowSets000.FOLLOW_99); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -23562,11 +23638,11 @@
                   	newLeafNode(otherlv_0, grammarAccess.getSquareBracketedClauseCSAccess().getLeftSquareBracketKeyword_0());
                   
             }
-            // InternalOCLinEcore.g:8036:1: ( (lv_ownedTerms_1_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:8037:1: (lv_ownedTerms_1_0= ruleExpCS )
+            // InternalOCLinEcore.g:8068:1: ( (lv_ownedTerms_1_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8069:1: (lv_ownedTerms_1_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:8037:1: (lv_ownedTerms_1_0= ruleExpCS )
-            // InternalOCLinEcore.g:8038:3: lv_ownedTerms_1_0= ruleExpCS
+            // InternalOCLinEcore.g:8069:1: (lv_ownedTerms_1_0= ruleExpCS )
+            // InternalOCLinEcore.g:8070:3: lv_ownedTerms_1_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -23597,7 +23673,7 @@
 
             }
 
-            // InternalOCLinEcore.g:8054:2: (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )*
+            // InternalOCLinEcore.g:8086:2: (otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) ) )*
             loop185:
             do {
                 int alt185=2;
@@ -23610,7 +23686,7 @@
 
                 switch (alt185) {
             	case 1 :
-            	    // InternalOCLinEcore.g:8054:4: otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) )
+            	    // InternalOCLinEcore.g:8086:4: otherlv_2= ',' ( (lv_ownedTerms_3_0= ruleExpCS ) )
             	    {
             	    otherlv_2=(Token)match(input,59,FollowSets000.FOLLOW_99); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -23618,11 +23694,11 @@
             	          	newLeafNode(otherlv_2, grammarAccess.getSquareBracketedClauseCSAccess().getCommaKeyword_2_0());
             	          
             	    }
-            	    // InternalOCLinEcore.g:8058:1: ( (lv_ownedTerms_3_0= ruleExpCS ) )
-            	    // InternalOCLinEcore.g:8059:1: (lv_ownedTerms_3_0= ruleExpCS )
+            	    // InternalOCLinEcore.g:8090:1: ( (lv_ownedTerms_3_0= ruleExpCS ) )
+            	    // InternalOCLinEcore.g:8091:1: (lv_ownedTerms_3_0= ruleExpCS )
             	    {
-            	    // InternalOCLinEcore.g:8059:1: (lv_ownedTerms_3_0= ruleExpCS )
-            	    // InternalOCLinEcore.g:8060:3: lv_ownedTerms_3_0= ruleExpCS
+            	    // InternalOCLinEcore.g:8091:1: (lv_ownedTerms_3_0= ruleExpCS )
+            	    // InternalOCLinEcore.g:8092:3: lv_ownedTerms_3_0= ruleExpCS
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -23691,7 +23767,7 @@
 
 
     // $ANTLR start "entryRuleNavigatingArgCS"
-    // InternalOCLinEcore.g:8088:1: entryRuleNavigatingArgCS returns [EObject current=null] : iv_ruleNavigatingArgCS= ruleNavigatingArgCS EOF ;
+    // InternalOCLinEcore.g:8120:1: entryRuleNavigatingArgCS returns [EObject current=null] : iv_ruleNavigatingArgCS= ruleNavigatingArgCS EOF ;
     public final EObject entryRuleNavigatingArgCS() throws RecognitionException {
         EObject current = null;
 
@@ -23699,8 +23775,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8089:2: (iv_ruleNavigatingArgCS= ruleNavigatingArgCS EOF )
-            // InternalOCLinEcore.g:8090:2: iv_ruleNavigatingArgCS= ruleNavigatingArgCS EOF
+            // InternalOCLinEcore.g:8121:2: (iv_ruleNavigatingArgCS= ruleNavigatingArgCS EOF )
+            // InternalOCLinEcore.g:8122:2: iv_ruleNavigatingArgCS= ruleNavigatingArgCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNavigatingArgCSRule()); 
@@ -23731,7 +23807,7 @@
 
 
     // $ANTLR start "ruleNavigatingArgCS"
-    // InternalOCLinEcore.g:8097:1: ruleNavigatingArgCS returns [EObject current=null] : ( ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? ) | (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) ) ) ;
+    // InternalOCLinEcore.g:8129:1: ruleNavigatingArgCS returns [EObject current=null] : ( ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? ) | (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) ) ) ;
     public final EObject ruleNavigatingArgCS() throws RecognitionException {
         EObject current = null;
 
@@ -23753,10 +23829,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8100:28: ( ( ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? ) | (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) ) ) )
-            // InternalOCLinEcore.g:8101:1: ( ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? ) | (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) ) )
+            // InternalOCLinEcore.g:8132:28: ( ( ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? ) | (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) ) ) )
+            // InternalOCLinEcore.g:8133:1: ( ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? ) | (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) ) )
             {
-            // InternalOCLinEcore.g:8101:1: ( ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? ) | (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) ) )
+            // InternalOCLinEcore.g:8133:1: ( ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? ) | (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) ) )
             int alt188=2;
             int LA188_0 = input.LA(1);
 
@@ -23775,16 +23851,16 @@
             }
             switch (alt188) {
                 case 1 :
-                    // InternalOCLinEcore.g:8101:2: ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? )
+                    // InternalOCLinEcore.g:8133:2: ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? )
                     {
-                    // InternalOCLinEcore.g:8101:2: ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? )
-                    // InternalOCLinEcore.g:8101:3: ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )?
+                    // InternalOCLinEcore.g:8133:2: ( ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )? )
+                    // InternalOCLinEcore.g:8133:3: ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) ) ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )?
                     {
-                    // InternalOCLinEcore.g:8101:3: ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) )
-                    // InternalOCLinEcore.g:8102:1: (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS )
+                    // InternalOCLinEcore.g:8133:3: ( (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS ) )
+                    // InternalOCLinEcore.g:8134:1: (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS )
                     {
-                    // InternalOCLinEcore.g:8102:1: (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS )
-                    // InternalOCLinEcore.g:8103:3: lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS
+                    // InternalOCLinEcore.g:8134:1: (lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS )
+                    // InternalOCLinEcore.g:8135:3: lv_ownedNameExpression_0_0= ruleNavigatingArgExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -23815,7 +23891,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:8119:2: ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )?
+                    // InternalOCLinEcore.g:8151:2: ( (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? ) | (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) ) )?
                     int alt187=3;
                     int LA187_0 = input.LA(1);
 
@@ -23827,10 +23903,10 @@
                     }
                     switch (alt187) {
                         case 1 :
-                            // InternalOCLinEcore.g:8119:3: (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? )
+                            // InternalOCLinEcore.g:8151:3: (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? )
                             {
-                            // InternalOCLinEcore.g:8119:3: (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? )
-                            // InternalOCLinEcore.g:8119:5: otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )?
+                            // InternalOCLinEcore.g:8151:3: (otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )? )
+                            // InternalOCLinEcore.g:8151:5: otherlv_1= ':' ( (lv_ownedType_2_0= ruleTypeExpCS ) ) (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )?
                             {
                             otherlv_1=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -23838,11 +23914,11 @@
                                   	newLeafNode(otherlv_1, grammarAccess.getNavigatingArgCSAccess().getColonKeyword_0_1_0_0());
                                   
                             }
-                            // InternalOCLinEcore.g:8123:1: ( (lv_ownedType_2_0= ruleTypeExpCS ) )
-                            // InternalOCLinEcore.g:8124:1: (lv_ownedType_2_0= ruleTypeExpCS )
+                            // InternalOCLinEcore.g:8155:1: ( (lv_ownedType_2_0= ruleTypeExpCS ) )
+                            // InternalOCLinEcore.g:8156:1: (lv_ownedType_2_0= ruleTypeExpCS )
                             {
-                            // InternalOCLinEcore.g:8124:1: (lv_ownedType_2_0= ruleTypeExpCS )
-                            // InternalOCLinEcore.g:8125:3: lv_ownedType_2_0= ruleTypeExpCS
+                            // InternalOCLinEcore.g:8156:1: (lv_ownedType_2_0= ruleTypeExpCS )
+                            // InternalOCLinEcore.g:8157:3: lv_ownedType_2_0= ruleTypeExpCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -23873,7 +23949,7 @@
 
                             }
 
-                            // InternalOCLinEcore.g:8141:2: (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )?
+                            // InternalOCLinEcore.g:8173:2: (otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) ) )?
                             int alt186=2;
                             int LA186_0 = input.LA(1);
 
@@ -23882,7 +23958,7 @@
                             }
                             switch (alt186) {
                                 case 1 :
-                                    // InternalOCLinEcore.g:8141:4: otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) )
+                                    // InternalOCLinEcore.g:8173:4: otherlv_3= '=' ( (lv_ownedInitExpression_4_0= ruleExpCS ) )
                                     {
                                     otherlv_3=(Token)match(input,62,FollowSets000.FOLLOW_99); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -23890,11 +23966,11 @@
                                           	newLeafNode(otherlv_3, grammarAccess.getNavigatingArgCSAccess().getEqualsSignKeyword_0_1_0_2_0());
                                           
                                     }
-                                    // InternalOCLinEcore.g:8145:1: ( (lv_ownedInitExpression_4_0= ruleExpCS ) )
-                                    // InternalOCLinEcore.g:8146:1: (lv_ownedInitExpression_4_0= ruleExpCS )
+                                    // InternalOCLinEcore.g:8177:1: ( (lv_ownedInitExpression_4_0= ruleExpCS ) )
+                                    // InternalOCLinEcore.g:8178:1: (lv_ownedInitExpression_4_0= ruleExpCS )
                                     {
-                                    // InternalOCLinEcore.g:8146:1: (lv_ownedInitExpression_4_0= ruleExpCS )
-                                    // InternalOCLinEcore.g:8147:3: lv_ownedInitExpression_4_0= ruleExpCS
+                                    // InternalOCLinEcore.g:8178:1: (lv_ownedInitExpression_4_0= ruleExpCS )
+                                    // InternalOCLinEcore.g:8179:3: lv_ownedInitExpression_4_0= ruleExpCS
                                     {
                                     if ( state.backtracking==0 ) {
                                        
@@ -23938,10 +24014,10 @@
                             }
                             break;
                         case 2 :
-                            // InternalOCLinEcore.g:8164:6: (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) )
+                            // InternalOCLinEcore.g:8196:6: (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) )
                             {
-                            // InternalOCLinEcore.g:8164:6: (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) )
-                            // InternalOCLinEcore.g:8164:8: otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:8196:6: (otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) ) )
+                            // InternalOCLinEcore.g:8196:8: otherlv_5= 'in' ( (lv_ownedInitExpression_6_0= ruleExpCS ) )
                             {
                             otherlv_5=(Token)match(input,125,FollowSets000.FOLLOW_99); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -23949,11 +24025,11 @@
                                   	newLeafNode(otherlv_5, grammarAccess.getNavigatingArgCSAccess().getInKeyword_0_1_1_0());
                                   
                             }
-                            // InternalOCLinEcore.g:8168:1: ( (lv_ownedInitExpression_6_0= ruleExpCS ) )
-                            // InternalOCLinEcore.g:8169:1: (lv_ownedInitExpression_6_0= ruleExpCS )
+                            // InternalOCLinEcore.g:8200:1: ( (lv_ownedInitExpression_6_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:8201:1: (lv_ownedInitExpression_6_0= ruleExpCS )
                             {
-                            // InternalOCLinEcore.g:8169:1: (lv_ownedInitExpression_6_0= ruleExpCS )
-                            // InternalOCLinEcore.g:8170:3: lv_ownedInitExpression_6_0= ruleExpCS
+                            // InternalOCLinEcore.g:8201:1: (lv_ownedInitExpression_6_0= ruleExpCS )
+                            // InternalOCLinEcore.g:8202:3: lv_ownedInitExpression_6_0= ruleExpCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -24000,10 +24076,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:8187:6: (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) )
+                    // InternalOCLinEcore.g:8219:6: (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) )
                     {
-                    // InternalOCLinEcore.g:8187:6: (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) )
-                    // InternalOCLinEcore.g:8187:8: otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:8219:6: (otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) ) )
+                    // InternalOCLinEcore.g:8219:8: otherlv_7= ':' ( (lv_ownedType_8_0= ruleTypeExpCS ) )
                     {
                     otherlv_7=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -24011,11 +24087,11 @@
                           	newLeafNode(otherlv_7, grammarAccess.getNavigatingArgCSAccess().getColonKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:8191:1: ( (lv_ownedType_8_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:8192:1: (lv_ownedType_8_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8223:1: ( (lv_ownedType_8_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:8224:1: (lv_ownedType_8_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:8192:1: (lv_ownedType_8_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:8193:3: lv_ownedType_8_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:8224:1: (lv_ownedType_8_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8225:3: lv_ownedType_8_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -24075,7 +24151,7 @@
 
 
     // $ANTLR start "entryRuleNavigatingBarArgCS"
-    // InternalOCLinEcore.g:8217:1: entryRuleNavigatingBarArgCS returns [EObject current=null] : iv_ruleNavigatingBarArgCS= ruleNavigatingBarArgCS EOF ;
+    // InternalOCLinEcore.g:8249:1: entryRuleNavigatingBarArgCS returns [EObject current=null] : iv_ruleNavigatingBarArgCS= ruleNavigatingBarArgCS EOF ;
     public final EObject entryRuleNavigatingBarArgCS() throws RecognitionException {
         EObject current = null;
 
@@ -24083,8 +24159,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8218:2: (iv_ruleNavigatingBarArgCS= ruleNavigatingBarArgCS EOF )
-            // InternalOCLinEcore.g:8219:2: iv_ruleNavigatingBarArgCS= ruleNavigatingBarArgCS EOF
+            // InternalOCLinEcore.g:8250:2: (iv_ruleNavigatingBarArgCS= ruleNavigatingBarArgCS EOF )
+            // InternalOCLinEcore.g:8251:2: iv_ruleNavigatingBarArgCS= ruleNavigatingBarArgCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNavigatingBarArgCSRule()); 
@@ -24115,7 +24191,7 @@
 
 
     // $ANTLR start "ruleNavigatingBarArgCS"
-    // InternalOCLinEcore.g:8226:1: ruleNavigatingBarArgCS returns [EObject current=null] : ( ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? ) ;
+    // InternalOCLinEcore.g:8258:1: ruleNavigatingBarArgCS returns [EObject current=null] : ( ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? ) ;
     public final EObject ruleNavigatingBarArgCS() throws RecognitionException {
         EObject current = null;
 
@@ -24132,17 +24208,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8229:28: ( ( ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? ) )
-            // InternalOCLinEcore.g:8230:1: ( ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? )
+            // InternalOCLinEcore.g:8261:28: ( ( ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? ) )
+            // InternalOCLinEcore.g:8262:1: ( ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? )
             {
-            // InternalOCLinEcore.g:8230:1: ( ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? )
-            // InternalOCLinEcore.g:8230:2: ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )?
+            // InternalOCLinEcore.g:8262:1: ( ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? )
+            // InternalOCLinEcore.g:8262:2: ( (lv_prefix_0_0= '|' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )?
             {
-            // InternalOCLinEcore.g:8230:2: ( (lv_prefix_0_0= '|' ) )
-            // InternalOCLinEcore.g:8231:1: (lv_prefix_0_0= '|' )
+            // InternalOCLinEcore.g:8262:2: ( (lv_prefix_0_0= '|' ) )
+            // InternalOCLinEcore.g:8263:1: (lv_prefix_0_0= '|' )
             {
-            // InternalOCLinEcore.g:8231:1: (lv_prefix_0_0= '|' )
-            // InternalOCLinEcore.g:8232:3: lv_prefix_0_0= '|'
+            // InternalOCLinEcore.g:8263:1: (lv_prefix_0_0= '|' )
+            // InternalOCLinEcore.g:8264:3: lv_prefix_0_0= '|'
             {
             lv_prefix_0_0=(Token)match(input,126,FollowSets000.FOLLOW_99); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -24164,11 +24240,11 @@
 
             }
 
-            // InternalOCLinEcore.g:8245:2: ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) )
-            // InternalOCLinEcore.g:8246:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:8277:2: ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) )
+            // InternalOCLinEcore.g:8278:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
             {
-            // InternalOCLinEcore.g:8246:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
-            // InternalOCLinEcore.g:8247:3: lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS
+            // InternalOCLinEcore.g:8278:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:8279:3: lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -24199,7 +24275,7 @@
 
             }
 
-            // InternalOCLinEcore.g:8263:2: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )?
+            // InternalOCLinEcore.g:8295:2: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )?
             int alt190=2;
             int LA190_0 = input.LA(1);
 
@@ -24208,7 +24284,7 @@
             }
             switch (alt190) {
                 case 1 :
-                    // InternalOCLinEcore.g:8263:4: otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:8295:4: otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
                     {
                     otherlv_2=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -24216,11 +24292,11 @@
                           	newLeafNode(otherlv_2, grammarAccess.getNavigatingBarArgCSAccess().getColonKeyword_2_0());
                           
                     }
-                    // InternalOCLinEcore.g:8267:1: ( (lv_ownedType_3_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:8268:1: (lv_ownedType_3_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8299:1: ( (lv_ownedType_3_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:8300:1: (lv_ownedType_3_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:8268:1: (lv_ownedType_3_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:8269:3: lv_ownedType_3_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:8300:1: (lv_ownedType_3_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8301:3: lv_ownedType_3_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -24251,7 +24327,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:8285:2: (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:8317:2: (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
                     int alt189=2;
                     int LA189_0 = input.LA(1);
 
@@ -24260,7 +24336,7 @@
                     }
                     switch (alt189) {
                         case 1 :
-                            // InternalOCLinEcore.g:8285:4: otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:8317:4: otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
                             {
                             otherlv_4=(Token)match(input,62,FollowSets000.FOLLOW_99); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -24268,11 +24344,11 @@
                                   	newLeafNode(otherlv_4, grammarAccess.getNavigatingBarArgCSAccess().getEqualsSignKeyword_2_2_0());
                                   
                             }
-                            // InternalOCLinEcore.g:8289:1: ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
-                            // InternalOCLinEcore.g:8290:1: (lv_ownedInitExpression_5_0= ruleExpCS )
+                            // InternalOCLinEcore.g:8321:1: ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:8322:1: (lv_ownedInitExpression_5_0= ruleExpCS )
                             {
-                            // InternalOCLinEcore.g:8290:1: (lv_ownedInitExpression_5_0= ruleExpCS )
-                            // InternalOCLinEcore.g:8291:3: lv_ownedInitExpression_5_0= ruleExpCS
+                            // InternalOCLinEcore.g:8322:1: (lv_ownedInitExpression_5_0= ruleExpCS )
+                            // InternalOCLinEcore.g:8323:3: lv_ownedInitExpression_5_0= ruleExpCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -24338,7 +24414,7 @@
 
 
     // $ANTLR start "entryRuleNavigatingCommaArgCS"
-    // InternalOCLinEcore.g:8315:1: entryRuleNavigatingCommaArgCS returns [EObject current=null] : iv_ruleNavigatingCommaArgCS= ruleNavigatingCommaArgCS EOF ;
+    // InternalOCLinEcore.g:8347:1: entryRuleNavigatingCommaArgCS returns [EObject current=null] : iv_ruleNavigatingCommaArgCS= ruleNavigatingCommaArgCS EOF ;
     public final EObject entryRuleNavigatingCommaArgCS() throws RecognitionException {
         EObject current = null;
 
@@ -24346,8 +24422,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8316:2: (iv_ruleNavigatingCommaArgCS= ruleNavigatingCommaArgCS EOF )
-            // InternalOCLinEcore.g:8317:2: iv_ruleNavigatingCommaArgCS= ruleNavigatingCommaArgCS EOF
+            // InternalOCLinEcore.g:8348:2: (iv_ruleNavigatingCommaArgCS= ruleNavigatingCommaArgCS EOF )
+            // InternalOCLinEcore.g:8349:2: iv_ruleNavigatingCommaArgCS= ruleNavigatingCommaArgCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNavigatingCommaArgCSRule()); 
@@ -24378,7 +24454,7 @@
 
 
     // $ANTLR start "ruleNavigatingCommaArgCS"
-    // InternalOCLinEcore.g:8324:1: ruleNavigatingCommaArgCS returns [EObject current=null] : ( ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )? ) ;
+    // InternalOCLinEcore.g:8356:1: ruleNavigatingCommaArgCS returns [EObject current=null] : ( ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )? ) ;
     public final EObject ruleNavigatingCommaArgCS() throws RecognitionException {
         EObject current = null;
 
@@ -24398,17 +24474,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8327:28: ( ( ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )? ) )
-            // InternalOCLinEcore.g:8328:1: ( ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )? )
+            // InternalOCLinEcore.g:8359:28: ( ( ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )? ) )
+            // InternalOCLinEcore.g:8360:1: ( ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )? )
             {
-            // InternalOCLinEcore.g:8328:1: ( ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )? )
-            // InternalOCLinEcore.g:8328:2: ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )?
+            // InternalOCLinEcore.g:8360:1: ( ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )? )
+            // InternalOCLinEcore.g:8360:2: ( (lv_prefix_0_0= ',' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )?
             {
-            // InternalOCLinEcore.g:8328:2: ( (lv_prefix_0_0= ',' ) )
-            // InternalOCLinEcore.g:8329:1: (lv_prefix_0_0= ',' )
+            // InternalOCLinEcore.g:8360:2: ( (lv_prefix_0_0= ',' ) )
+            // InternalOCLinEcore.g:8361:1: (lv_prefix_0_0= ',' )
             {
-            // InternalOCLinEcore.g:8329:1: (lv_prefix_0_0= ',' )
-            // InternalOCLinEcore.g:8330:3: lv_prefix_0_0= ','
+            // InternalOCLinEcore.g:8361:1: (lv_prefix_0_0= ',' )
+            // InternalOCLinEcore.g:8362:3: lv_prefix_0_0= ','
             {
             lv_prefix_0_0=(Token)match(input,59,FollowSets000.FOLLOW_99); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -24430,11 +24506,11 @@
 
             }
 
-            // InternalOCLinEcore.g:8343:2: ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) )
-            // InternalOCLinEcore.g:8344:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:8375:2: ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) )
+            // InternalOCLinEcore.g:8376:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
             {
-            // InternalOCLinEcore.g:8344:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
-            // InternalOCLinEcore.g:8345:3: lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS
+            // InternalOCLinEcore.g:8376:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:8377:3: lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -24465,7 +24541,7 @@
 
             }
 
-            // InternalOCLinEcore.g:8361:2: ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )?
+            // InternalOCLinEcore.g:8393:2: ( (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? ) | (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) ) )?
             int alt192=3;
             int LA192_0 = input.LA(1);
 
@@ -24477,10 +24553,10 @@
             }
             switch (alt192) {
                 case 1 :
-                    // InternalOCLinEcore.g:8361:3: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )
+                    // InternalOCLinEcore.g:8393:3: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )
                     {
-                    // InternalOCLinEcore.g:8361:3: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )
-                    // InternalOCLinEcore.g:8361:5: otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:8393:3: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )
+                    // InternalOCLinEcore.g:8393:5: otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
                     {
                     otherlv_2=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -24488,11 +24564,11 @@
                           	newLeafNode(otherlv_2, grammarAccess.getNavigatingCommaArgCSAccess().getColonKeyword_2_0_0());
                           
                     }
-                    // InternalOCLinEcore.g:8365:1: ( (lv_ownedType_3_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:8366:1: (lv_ownedType_3_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8397:1: ( (lv_ownedType_3_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:8398:1: (lv_ownedType_3_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:8366:1: (lv_ownedType_3_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:8367:3: lv_ownedType_3_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:8398:1: (lv_ownedType_3_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8399:3: lv_ownedType_3_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -24523,7 +24599,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:8383:2: (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:8415:2: (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
                     int alt191=2;
                     int LA191_0 = input.LA(1);
 
@@ -24532,7 +24608,7 @@
                     }
                     switch (alt191) {
                         case 1 :
-                            // InternalOCLinEcore.g:8383:4: otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:8415:4: otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
                             {
                             otherlv_4=(Token)match(input,62,FollowSets000.FOLLOW_99); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -24540,11 +24616,11 @@
                                   	newLeafNode(otherlv_4, grammarAccess.getNavigatingCommaArgCSAccess().getEqualsSignKeyword_2_0_2_0());
                                   
                             }
-                            // InternalOCLinEcore.g:8387:1: ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
-                            // InternalOCLinEcore.g:8388:1: (lv_ownedInitExpression_5_0= ruleExpCS )
+                            // InternalOCLinEcore.g:8419:1: ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:8420:1: (lv_ownedInitExpression_5_0= ruleExpCS )
                             {
-                            // InternalOCLinEcore.g:8388:1: (lv_ownedInitExpression_5_0= ruleExpCS )
-                            // InternalOCLinEcore.g:8389:3: lv_ownedInitExpression_5_0= ruleExpCS
+                            // InternalOCLinEcore.g:8420:1: (lv_ownedInitExpression_5_0= ruleExpCS )
+                            // InternalOCLinEcore.g:8421:3: lv_ownedInitExpression_5_0= ruleExpCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -24588,10 +24664,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:8406:6: (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) )
+                    // InternalOCLinEcore.g:8438:6: (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) )
                     {
-                    // InternalOCLinEcore.g:8406:6: (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) )
-                    // InternalOCLinEcore.g:8406:8: otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) )
+                    // InternalOCLinEcore.g:8438:6: (otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) ) )
+                    // InternalOCLinEcore.g:8438:8: otherlv_6= 'in' ( (lv_ownedInitExpression_7_0= ruleExpCS ) )
                     {
                     otherlv_6=(Token)match(input,125,FollowSets000.FOLLOW_99); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -24599,11 +24675,11 @@
                           	newLeafNode(otherlv_6, grammarAccess.getNavigatingCommaArgCSAccess().getInKeyword_2_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:8410:1: ( (lv_ownedInitExpression_7_0= ruleExpCS ) )
-                    // InternalOCLinEcore.g:8411:1: (lv_ownedInitExpression_7_0= ruleExpCS )
+                    // InternalOCLinEcore.g:8442:1: ( (lv_ownedInitExpression_7_0= ruleExpCS ) )
+                    // InternalOCLinEcore.g:8443:1: (lv_ownedInitExpression_7_0= ruleExpCS )
                     {
-                    // InternalOCLinEcore.g:8411:1: (lv_ownedInitExpression_7_0= ruleExpCS )
-                    // InternalOCLinEcore.g:8412:3: lv_ownedInitExpression_7_0= ruleExpCS
+                    // InternalOCLinEcore.g:8443:1: (lv_ownedInitExpression_7_0= ruleExpCS )
+                    // InternalOCLinEcore.g:8444:3: lv_ownedInitExpression_7_0= ruleExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -24666,7 +24742,7 @@
 
 
     // $ANTLR start "entryRuleNavigatingSemiArgCS"
-    // InternalOCLinEcore.g:8436:1: entryRuleNavigatingSemiArgCS returns [EObject current=null] : iv_ruleNavigatingSemiArgCS= ruleNavigatingSemiArgCS EOF ;
+    // InternalOCLinEcore.g:8468:1: entryRuleNavigatingSemiArgCS returns [EObject current=null] : iv_ruleNavigatingSemiArgCS= ruleNavigatingSemiArgCS EOF ;
     public final EObject entryRuleNavigatingSemiArgCS() throws RecognitionException {
         EObject current = null;
 
@@ -24674,8 +24750,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8437:2: (iv_ruleNavigatingSemiArgCS= ruleNavigatingSemiArgCS EOF )
-            // InternalOCLinEcore.g:8438:2: iv_ruleNavigatingSemiArgCS= ruleNavigatingSemiArgCS EOF
+            // InternalOCLinEcore.g:8469:2: (iv_ruleNavigatingSemiArgCS= ruleNavigatingSemiArgCS EOF )
+            // InternalOCLinEcore.g:8470:2: iv_ruleNavigatingSemiArgCS= ruleNavigatingSemiArgCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNavigatingSemiArgCSRule()); 
@@ -24706,7 +24782,7 @@
 
 
     // $ANTLR start "ruleNavigatingSemiArgCS"
-    // InternalOCLinEcore.g:8445:1: ruleNavigatingSemiArgCS returns [EObject current=null] : ( ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? ) ;
+    // InternalOCLinEcore.g:8477:1: ruleNavigatingSemiArgCS returns [EObject current=null] : ( ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? ) ;
     public final EObject ruleNavigatingSemiArgCS() throws RecognitionException {
         EObject current = null;
 
@@ -24723,17 +24799,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8448:28: ( ( ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? ) )
-            // InternalOCLinEcore.g:8449:1: ( ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? )
+            // InternalOCLinEcore.g:8480:28: ( ( ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? ) )
+            // InternalOCLinEcore.g:8481:1: ( ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? )
             {
-            // InternalOCLinEcore.g:8449:1: ( ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? )
-            // InternalOCLinEcore.g:8449:2: ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )?
+            // InternalOCLinEcore.g:8481:1: ( ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )? )
+            // InternalOCLinEcore.g:8481:2: ( (lv_prefix_0_0= ';' ) ) ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) ) (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )?
             {
-            // InternalOCLinEcore.g:8449:2: ( (lv_prefix_0_0= ';' ) )
-            // InternalOCLinEcore.g:8450:1: (lv_prefix_0_0= ';' )
+            // InternalOCLinEcore.g:8481:2: ( (lv_prefix_0_0= ';' ) )
+            // InternalOCLinEcore.g:8482:1: (lv_prefix_0_0= ';' )
             {
-            // InternalOCLinEcore.g:8450:1: (lv_prefix_0_0= ';' )
-            // InternalOCLinEcore.g:8451:3: lv_prefix_0_0= ';'
+            // InternalOCLinEcore.g:8482:1: (lv_prefix_0_0= ';' )
+            // InternalOCLinEcore.g:8483:3: lv_prefix_0_0= ';'
             {
             lv_prefix_0_0=(Token)match(input,57,FollowSets000.FOLLOW_99); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -24755,11 +24831,11 @@
 
             }
 
-            // InternalOCLinEcore.g:8464:2: ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) )
-            // InternalOCLinEcore.g:8465:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:8496:2: ( (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS ) )
+            // InternalOCLinEcore.g:8497:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
             {
-            // InternalOCLinEcore.g:8465:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
-            // InternalOCLinEcore.g:8466:3: lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS
+            // InternalOCLinEcore.g:8497:1: (lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS )
+            // InternalOCLinEcore.g:8498:3: lv_ownedNameExpression_1_0= ruleNavigatingArgExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -24790,7 +24866,7 @@
 
             }
 
-            // InternalOCLinEcore.g:8482:2: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )?
+            // InternalOCLinEcore.g:8514:2: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )? )?
             int alt194=2;
             int LA194_0 = input.LA(1);
 
@@ -24799,7 +24875,7 @@
             }
             switch (alt194) {
                 case 1 :
-                    // InternalOCLinEcore.g:8482:4: otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:8514:4: otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
                     {
                     otherlv_2=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -24807,11 +24883,11 @@
                           	newLeafNode(otherlv_2, grammarAccess.getNavigatingSemiArgCSAccess().getColonKeyword_2_0());
                           
                     }
-                    // InternalOCLinEcore.g:8486:1: ( (lv_ownedType_3_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:8487:1: (lv_ownedType_3_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8518:1: ( (lv_ownedType_3_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:8519:1: (lv_ownedType_3_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:8487:1: (lv_ownedType_3_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:8488:3: lv_ownedType_3_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:8519:1: (lv_ownedType_3_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8520:3: lv_ownedType_3_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -24842,7 +24918,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:8504:2: (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
+                    // InternalOCLinEcore.g:8536:2: (otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )?
                     int alt193=2;
                     int LA193_0 = input.LA(1);
 
@@ -24851,7 +24927,7 @@
                     }
                     switch (alt193) {
                         case 1 :
-                            // InternalOCLinEcore.g:8504:4: otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:8536:4: otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
                             {
                             otherlv_4=(Token)match(input,62,FollowSets000.FOLLOW_99); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
@@ -24859,11 +24935,11 @@
                                   	newLeafNode(otherlv_4, grammarAccess.getNavigatingSemiArgCSAccess().getEqualsSignKeyword_2_2_0());
                                   
                             }
-                            // InternalOCLinEcore.g:8508:1: ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
-                            // InternalOCLinEcore.g:8509:1: (lv_ownedInitExpression_5_0= ruleExpCS )
+                            // InternalOCLinEcore.g:8540:1: ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
+                            // InternalOCLinEcore.g:8541:1: (lv_ownedInitExpression_5_0= ruleExpCS )
                             {
-                            // InternalOCLinEcore.g:8509:1: (lv_ownedInitExpression_5_0= ruleExpCS )
-                            // InternalOCLinEcore.g:8510:3: lv_ownedInitExpression_5_0= ruleExpCS
+                            // InternalOCLinEcore.g:8541:1: (lv_ownedInitExpression_5_0= ruleExpCS )
+                            // InternalOCLinEcore.g:8542:3: lv_ownedInitExpression_5_0= ruleExpCS
                             {
                             if ( state.backtracking==0 ) {
                                
@@ -24929,7 +25005,7 @@
 
 
     // $ANTLR start "entryRuleNavigatingArgExpCS"
-    // InternalOCLinEcore.g:8534:1: entryRuleNavigatingArgExpCS returns [EObject current=null] : iv_ruleNavigatingArgExpCS= ruleNavigatingArgExpCS EOF ;
+    // InternalOCLinEcore.g:8566:1: entryRuleNavigatingArgExpCS returns [EObject current=null] : iv_ruleNavigatingArgExpCS= ruleNavigatingArgExpCS EOF ;
     public final EObject entryRuleNavigatingArgExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -24937,8 +25013,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8535:2: (iv_ruleNavigatingArgExpCS= ruleNavigatingArgExpCS EOF )
-            // InternalOCLinEcore.g:8536:2: iv_ruleNavigatingArgExpCS= ruleNavigatingArgExpCS EOF
+            // InternalOCLinEcore.g:8567:2: (iv_ruleNavigatingArgExpCS= ruleNavigatingArgExpCS EOF )
+            // InternalOCLinEcore.g:8568:2: iv_ruleNavigatingArgExpCS= ruleNavigatingArgExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNavigatingArgExpCSRule()); 
@@ -24969,7 +25045,7 @@
 
 
     // $ANTLR start "ruleNavigatingArgExpCS"
-    // InternalOCLinEcore.g:8543:1: ruleNavigatingArgExpCS returns [EObject current=null] : this_ExpCS_0= ruleExpCS ;
+    // InternalOCLinEcore.g:8575:1: ruleNavigatingArgExpCS returns [EObject current=null] : this_ExpCS_0= ruleExpCS ;
     public final EObject ruleNavigatingArgExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -24979,8 +25055,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8546:28: (this_ExpCS_0= ruleExpCS )
-            // InternalOCLinEcore.g:8548:2: this_ExpCS_0= ruleExpCS
+            // InternalOCLinEcore.g:8578:28: (this_ExpCS_0= ruleExpCS )
+            // InternalOCLinEcore.g:8580:2: this_ExpCS_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -25023,7 +25099,7 @@
 
 
     // $ANTLR start "entryRuleIfExpCS"
-    // InternalOCLinEcore.g:8567:1: entryRuleIfExpCS returns [EObject current=null] : iv_ruleIfExpCS= ruleIfExpCS EOF ;
+    // InternalOCLinEcore.g:8599:1: entryRuleIfExpCS returns [EObject current=null] : iv_ruleIfExpCS= ruleIfExpCS EOF ;
     public final EObject entryRuleIfExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -25031,8 +25107,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8568:2: (iv_ruleIfExpCS= ruleIfExpCS EOF )
-            // InternalOCLinEcore.g:8569:2: iv_ruleIfExpCS= ruleIfExpCS EOF
+            // InternalOCLinEcore.g:8600:2: (iv_ruleIfExpCS= ruleIfExpCS EOF )
+            // InternalOCLinEcore.g:8601:2: iv_ruleIfExpCS= ruleIfExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIfExpCSRule()); 
@@ -25063,7 +25139,7 @@
 
 
     // $ANTLR start "ruleIfExpCS"
-    // InternalOCLinEcore.g:8576:1: ruleIfExpCS returns [EObject current=null] : (otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif' ) ;
+    // InternalOCLinEcore.g:8608:1: ruleIfExpCS returns [EObject current=null] : (otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif' ) ;
     public final EObject ruleIfExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -25085,11 +25161,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8579:28: ( (otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif' ) )
-            // InternalOCLinEcore.g:8580:1: (otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif' )
+            // InternalOCLinEcore.g:8611:28: ( (otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif' ) )
+            // InternalOCLinEcore.g:8612:1: (otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif' )
             {
-            // InternalOCLinEcore.g:8580:1: (otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif' )
-            // InternalOCLinEcore.g:8580:3: otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif'
+            // InternalOCLinEcore.g:8612:1: (otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif' )
+            // InternalOCLinEcore.g:8612:3: otherlv_0= 'if' ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )* otherlv_5= 'else' ( (lv_ownedElseExpression_6_0= ruleExpCS ) ) otherlv_7= 'endif'
             {
             otherlv_0=(Token)match(input,127,FollowSets000.FOLLOW_97); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -25097,18 +25173,18 @@
                   	newLeafNode(otherlv_0, grammarAccess.getIfExpCSAccess().getIfKeyword_0());
                   
             }
-            // InternalOCLinEcore.g:8584:1: ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) )
-            // InternalOCLinEcore.g:8585:1: ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) )
+            // InternalOCLinEcore.g:8616:1: ( ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) ) )
+            // InternalOCLinEcore.g:8617:1: ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) )
             {
-            // InternalOCLinEcore.g:8585:1: ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) )
-            // InternalOCLinEcore.g:8586:1: (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS )
+            // InternalOCLinEcore.g:8617:1: ( (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS ) )
+            // InternalOCLinEcore.g:8618:1: (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS )
             {
-            // InternalOCLinEcore.g:8586:1: (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS )
+            // InternalOCLinEcore.g:8618:1: (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS )
             int alt195=2;
             alt195 = dfa195.predict(input);
             switch (alt195) {
                 case 1 :
-                    // InternalOCLinEcore.g:8587:3: lv_ownedCondition_1_1= ruleExpCS
+                    // InternalOCLinEcore.g:8619:3: lv_ownedCondition_1_1= ruleExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -25137,7 +25213,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:8602:8: lv_ownedCondition_1_2= rulePatternExpCS
+                    // InternalOCLinEcore.g:8634:8: lv_ownedCondition_1_2= rulePatternExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -25180,11 +25256,11 @@
                   	newLeafNode(otherlv_2, grammarAccess.getIfExpCSAccess().getThenKeyword_2());
                   
             }
-            // InternalOCLinEcore.g:8624:1: ( (lv_ownedThenExpression_3_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:8625:1: (lv_ownedThenExpression_3_0= ruleExpCS )
+            // InternalOCLinEcore.g:8656:1: ( (lv_ownedThenExpression_3_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8657:1: (lv_ownedThenExpression_3_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:8625:1: (lv_ownedThenExpression_3_0= ruleExpCS )
-            // InternalOCLinEcore.g:8626:3: lv_ownedThenExpression_3_0= ruleExpCS
+            // InternalOCLinEcore.g:8657:1: (lv_ownedThenExpression_3_0= ruleExpCS )
+            // InternalOCLinEcore.g:8658:3: lv_ownedThenExpression_3_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -25215,7 +25291,7 @@
 
             }
 
-            // InternalOCLinEcore.g:8642:2: ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )*
+            // InternalOCLinEcore.g:8674:2: ( (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS ) )*
             loop196:
             do {
                 int alt196=2;
@@ -25228,10 +25304,10 @@
 
                 switch (alt196) {
             	case 1 :
-            	    // InternalOCLinEcore.g:8643:1: (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS )
+            	    // InternalOCLinEcore.g:8675:1: (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS )
             	    {
-            	    // InternalOCLinEcore.g:8643:1: (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS )
-            	    // InternalOCLinEcore.g:8644:3: lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS
+            	    // InternalOCLinEcore.g:8675:1: (lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS )
+            	    // InternalOCLinEcore.g:8676:3: lv_ownedIfThenExpressions_4_0= ruleElseIfThenExpCS
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -25274,11 +25350,11 @@
                   	newLeafNode(otherlv_5, grammarAccess.getIfExpCSAccess().getElseKeyword_5());
                   
             }
-            // InternalOCLinEcore.g:8664:1: ( (lv_ownedElseExpression_6_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:8665:1: (lv_ownedElseExpression_6_0= ruleExpCS )
+            // InternalOCLinEcore.g:8696:1: ( (lv_ownedElseExpression_6_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8697:1: (lv_ownedElseExpression_6_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:8665:1: (lv_ownedElseExpression_6_0= ruleExpCS )
-            // InternalOCLinEcore.g:8666:3: lv_ownedElseExpression_6_0= ruleExpCS
+            // InternalOCLinEcore.g:8697:1: (lv_ownedElseExpression_6_0= ruleExpCS )
+            // InternalOCLinEcore.g:8698:3: lv_ownedElseExpression_6_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -25338,7 +25414,7 @@
 
 
     // $ANTLR start "entryRuleElseIfThenExpCS"
-    // InternalOCLinEcore.g:8694:1: entryRuleElseIfThenExpCS returns [EObject current=null] : iv_ruleElseIfThenExpCS= ruleElseIfThenExpCS EOF ;
+    // InternalOCLinEcore.g:8726:1: entryRuleElseIfThenExpCS returns [EObject current=null] : iv_ruleElseIfThenExpCS= ruleElseIfThenExpCS EOF ;
     public final EObject entryRuleElseIfThenExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -25346,8 +25422,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8695:2: (iv_ruleElseIfThenExpCS= ruleElseIfThenExpCS EOF )
-            // InternalOCLinEcore.g:8696:2: iv_ruleElseIfThenExpCS= ruleElseIfThenExpCS EOF
+            // InternalOCLinEcore.g:8727:2: (iv_ruleElseIfThenExpCS= ruleElseIfThenExpCS EOF )
+            // InternalOCLinEcore.g:8728:2: iv_ruleElseIfThenExpCS= ruleElseIfThenExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getElseIfThenExpCSRule()); 
@@ -25378,7 +25454,7 @@
 
 
     // $ANTLR start "ruleElseIfThenExpCS"
-    // InternalOCLinEcore.g:8703:1: ruleElseIfThenExpCS returns [EObject current=null] : (otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ) ;
+    // InternalOCLinEcore.g:8735:1: ruleElseIfThenExpCS returns [EObject current=null] : (otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ) ;
     public final EObject ruleElseIfThenExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -25392,11 +25468,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8706:28: ( (otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ) )
-            // InternalOCLinEcore.g:8707:1: (otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:8738:28: ( (otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) ) )
+            // InternalOCLinEcore.g:8739:1: (otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) )
             {
-            // InternalOCLinEcore.g:8707:1: (otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) )
-            // InternalOCLinEcore.g:8707:3: otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8739:1: (otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:8739:3: otherlv_0= 'elseif' ( (lv_ownedCondition_1_0= ruleExpCS ) ) otherlv_2= 'then' ( (lv_ownedThenExpression_3_0= ruleExpCS ) )
             {
             otherlv_0=(Token)match(input,131,FollowSets000.FOLLOW_99); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -25404,11 +25480,11 @@
                   	newLeafNode(otherlv_0, grammarAccess.getElseIfThenExpCSAccess().getElseifKeyword_0());
                   
             }
-            // InternalOCLinEcore.g:8711:1: ( (lv_ownedCondition_1_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:8712:1: (lv_ownedCondition_1_0= ruleExpCS )
+            // InternalOCLinEcore.g:8743:1: ( (lv_ownedCondition_1_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8744:1: (lv_ownedCondition_1_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:8712:1: (lv_ownedCondition_1_0= ruleExpCS )
-            // InternalOCLinEcore.g:8713:3: lv_ownedCondition_1_0= ruleExpCS
+            // InternalOCLinEcore.g:8744:1: (lv_ownedCondition_1_0= ruleExpCS )
+            // InternalOCLinEcore.g:8745:3: lv_ownedCondition_1_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -25445,11 +25521,11 @@
                   	newLeafNode(otherlv_2, grammarAccess.getElseIfThenExpCSAccess().getThenKeyword_2());
                   
             }
-            // InternalOCLinEcore.g:8733:1: ( (lv_ownedThenExpression_3_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:8734:1: (lv_ownedThenExpression_3_0= ruleExpCS )
+            // InternalOCLinEcore.g:8765:1: ( (lv_ownedThenExpression_3_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8766:1: (lv_ownedThenExpression_3_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:8734:1: (lv_ownedThenExpression_3_0= ruleExpCS )
-            // InternalOCLinEcore.g:8735:3: lv_ownedThenExpression_3_0= ruleExpCS
+            // InternalOCLinEcore.g:8766:1: (lv_ownedThenExpression_3_0= ruleExpCS )
+            // InternalOCLinEcore.g:8767:3: lv_ownedThenExpression_3_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -25503,7 +25579,7 @@
 
 
     // $ANTLR start "entryRuleLetExpCS"
-    // InternalOCLinEcore.g:8759:1: entryRuleLetExpCS returns [EObject current=null] : iv_ruleLetExpCS= ruleLetExpCS EOF ;
+    // InternalOCLinEcore.g:8791:1: entryRuleLetExpCS returns [EObject current=null] : iv_ruleLetExpCS= ruleLetExpCS EOF ;
     public final EObject entryRuleLetExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -25511,8 +25587,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8760:2: (iv_ruleLetExpCS= ruleLetExpCS EOF )
-            // InternalOCLinEcore.g:8761:2: iv_ruleLetExpCS= ruleLetExpCS EOF
+            // InternalOCLinEcore.g:8792:2: (iv_ruleLetExpCS= ruleLetExpCS EOF )
+            // InternalOCLinEcore.g:8793:2: iv_ruleLetExpCS= ruleLetExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLetExpCSRule()); 
@@ -25543,7 +25619,7 @@
 
 
     // $ANTLR start "ruleLetExpCS"
-    // InternalOCLinEcore.g:8768:1: ruleLetExpCS returns [EObject current=null] : (otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) ) ) ;
+    // InternalOCLinEcore.g:8800:1: ruleLetExpCS returns [EObject current=null] : (otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) ) ) ;
     public final EObject ruleLetExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -25560,11 +25636,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8771:28: ( (otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) ) ) )
-            // InternalOCLinEcore.g:8772:1: (otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:8803:28: ( (otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) ) ) )
+            // InternalOCLinEcore.g:8804:1: (otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) ) )
             {
-            // InternalOCLinEcore.g:8772:1: (otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) ) )
-            // InternalOCLinEcore.g:8772:3: otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8804:1: (otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:8804:3: otherlv_0= 'let' ( (lv_ownedVariables_1_0= ruleLetVariableCS ) ) (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )* otherlv_4= 'in' ( (lv_ownedInExpression_5_0= ruleExpCS ) )
             {
             otherlv_0=(Token)match(input,132,FollowSets000.FOLLOW_3); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -25572,11 +25648,11 @@
                   	newLeafNode(otherlv_0, grammarAccess.getLetExpCSAccess().getLetKeyword_0());
                   
             }
-            // InternalOCLinEcore.g:8776:1: ( (lv_ownedVariables_1_0= ruleLetVariableCS ) )
-            // InternalOCLinEcore.g:8777:1: (lv_ownedVariables_1_0= ruleLetVariableCS )
+            // InternalOCLinEcore.g:8808:1: ( (lv_ownedVariables_1_0= ruleLetVariableCS ) )
+            // InternalOCLinEcore.g:8809:1: (lv_ownedVariables_1_0= ruleLetVariableCS )
             {
-            // InternalOCLinEcore.g:8777:1: (lv_ownedVariables_1_0= ruleLetVariableCS )
-            // InternalOCLinEcore.g:8778:3: lv_ownedVariables_1_0= ruleLetVariableCS
+            // InternalOCLinEcore.g:8809:1: (lv_ownedVariables_1_0= ruleLetVariableCS )
+            // InternalOCLinEcore.g:8810:3: lv_ownedVariables_1_0= ruleLetVariableCS
             {
             if ( state.backtracking==0 ) {
                
@@ -25607,7 +25683,7 @@
 
             }
 
-            // InternalOCLinEcore.g:8794:2: (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )*
+            // InternalOCLinEcore.g:8826:2: (otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) ) )*
             loop197:
             do {
                 int alt197=2;
@@ -25620,7 +25696,7 @@
 
                 switch (alt197) {
             	case 1 :
-            	    // InternalOCLinEcore.g:8794:4: otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) )
+            	    // InternalOCLinEcore.g:8826:4: otherlv_2= ',' ( (lv_ownedVariables_3_0= ruleLetVariableCS ) )
             	    {
             	    otherlv_2=(Token)match(input,59,FollowSets000.FOLLOW_3); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -25628,11 +25704,11 @@
             	          	newLeafNode(otherlv_2, grammarAccess.getLetExpCSAccess().getCommaKeyword_2_0());
             	          
             	    }
-            	    // InternalOCLinEcore.g:8798:1: ( (lv_ownedVariables_3_0= ruleLetVariableCS ) )
-            	    // InternalOCLinEcore.g:8799:1: (lv_ownedVariables_3_0= ruleLetVariableCS )
+            	    // InternalOCLinEcore.g:8830:1: ( (lv_ownedVariables_3_0= ruleLetVariableCS ) )
+            	    // InternalOCLinEcore.g:8831:1: (lv_ownedVariables_3_0= ruleLetVariableCS )
             	    {
-            	    // InternalOCLinEcore.g:8799:1: (lv_ownedVariables_3_0= ruleLetVariableCS )
-            	    // InternalOCLinEcore.g:8800:3: lv_ownedVariables_3_0= ruleLetVariableCS
+            	    // InternalOCLinEcore.g:8831:1: (lv_ownedVariables_3_0= ruleLetVariableCS )
+            	    // InternalOCLinEcore.g:8832:3: lv_ownedVariables_3_0= ruleLetVariableCS
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -25678,11 +25754,11 @@
                   	newLeafNode(otherlv_4, grammarAccess.getLetExpCSAccess().getInKeyword_3());
                   
             }
-            // InternalOCLinEcore.g:8820:1: ( (lv_ownedInExpression_5_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:8821:1: (lv_ownedInExpression_5_0= ruleExpCS )
+            // InternalOCLinEcore.g:8852:1: ( (lv_ownedInExpression_5_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8853:1: (lv_ownedInExpression_5_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:8821:1: (lv_ownedInExpression_5_0= ruleExpCS )
-            // InternalOCLinEcore.g:8822:3: lv_ownedInExpression_5_0= ruleExpCS
+            // InternalOCLinEcore.g:8853:1: (lv_ownedInExpression_5_0= ruleExpCS )
+            // InternalOCLinEcore.g:8854:3: lv_ownedInExpression_5_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -25736,7 +25812,7 @@
 
 
     // $ANTLR start "entryRuleLetVariableCS"
-    // InternalOCLinEcore.g:8846:1: entryRuleLetVariableCS returns [EObject current=null] : iv_ruleLetVariableCS= ruleLetVariableCS EOF ;
+    // InternalOCLinEcore.g:8878:1: entryRuleLetVariableCS returns [EObject current=null] : iv_ruleLetVariableCS= ruleLetVariableCS EOF ;
     public final EObject entryRuleLetVariableCS() throws RecognitionException {
         EObject current = null;
 
@@ -25744,8 +25820,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8847:2: (iv_ruleLetVariableCS= ruleLetVariableCS EOF )
-            // InternalOCLinEcore.g:8848:2: iv_ruleLetVariableCS= ruleLetVariableCS EOF
+            // InternalOCLinEcore.g:8879:2: (iv_ruleLetVariableCS= ruleLetVariableCS EOF )
+            // InternalOCLinEcore.g:8880:2: iv_ruleLetVariableCS= ruleLetVariableCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLetVariableCSRule()); 
@@ -25776,7 +25852,7 @@
 
 
     // $ANTLR start "ruleLetVariableCS"
-    // InternalOCLinEcore.g:8855:1: ruleLetVariableCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) ) ;
+    // InternalOCLinEcore.g:8887:1: ruleLetVariableCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) ) ;
     public final EObject ruleLetVariableCS() throws RecognitionException {
         EObject current = null;
 
@@ -25794,17 +25870,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8858:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) ) )
-            // InternalOCLinEcore.g:8859:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:8890:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) ) )
+            // InternalOCLinEcore.g:8891:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )
             {
-            // InternalOCLinEcore.g:8859:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )
-            // InternalOCLinEcore.g:8859:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8891:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) ) )
+            // InternalOCLinEcore.g:8891:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )? (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )? otherlv_4= '=' ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
             {
-            // InternalOCLinEcore.g:8859:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:8860:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:8891:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:8892:1: (lv_name_0_0= ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:8860:1: (lv_name_0_0= ruleUnrestrictedName )
-            // InternalOCLinEcore.g:8861:3: lv_name_0_0= ruleUnrestrictedName
+            // InternalOCLinEcore.g:8892:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:8893:3: lv_name_0_0= ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -25835,7 +25911,7 @@
 
             }
 
-            // InternalOCLinEcore.g:8877:2: ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )?
+            // InternalOCLinEcore.g:8909:2: ( (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS ) )?
             int alt198=2;
             int LA198_0 = input.LA(1);
 
@@ -25844,10 +25920,10 @@
             }
             switch (alt198) {
                 case 1 :
-                    // InternalOCLinEcore.g:8878:1: (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS )
+                    // InternalOCLinEcore.g:8910:1: (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS )
                     {
-                    // InternalOCLinEcore.g:8878:1: (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS )
-                    // InternalOCLinEcore.g:8879:3: lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS
+                    // InternalOCLinEcore.g:8910:1: (lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS )
+                    // InternalOCLinEcore.g:8911:3: lv_ownedRoundBracketedClause_1_0= ruleRoundBracketedClauseCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -25881,7 +25957,7 @@
 
             }
 
-            // InternalOCLinEcore.g:8895:3: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )?
+            // InternalOCLinEcore.g:8927:3: (otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) ) )?
             int alt199=2;
             int LA199_0 = input.LA(1);
 
@@ -25890,7 +25966,7 @@
             }
             switch (alt199) {
                 case 1 :
-                    // InternalOCLinEcore.g:8895:5: otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:8927:5: otherlv_2= ':' ( (lv_ownedType_3_0= ruleTypeExpCS ) )
                     {
                     otherlv_2=(Token)match(input,56,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -25898,11 +25974,11 @@
                           	newLeafNode(otherlv_2, grammarAccess.getLetVariableCSAccess().getColonKeyword_2_0());
                           
                     }
-                    // InternalOCLinEcore.g:8899:1: ( (lv_ownedType_3_0= ruleTypeExpCS ) )
-                    // InternalOCLinEcore.g:8900:1: (lv_ownedType_3_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8931:1: ( (lv_ownedType_3_0= ruleTypeExpCS ) )
+                    // InternalOCLinEcore.g:8932:1: (lv_ownedType_3_0= ruleTypeExpCS )
                     {
-                    // InternalOCLinEcore.g:8900:1: (lv_ownedType_3_0= ruleTypeExpCS )
-                    // InternalOCLinEcore.g:8901:3: lv_ownedType_3_0= ruleTypeExpCS
+                    // InternalOCLinEcore.g:8932:1: (lv_ownedType_3_0= ruleTypeExpCS )
+                    // InternalOCLinEcore.g:8933:3: lv_ownedType_3_0= ruleTypeExpCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -25945,11 +26021,11 @@
                   	newLeafNode(otherlv_4, grammarAccess.getLetVariableCSAccess().getEqualsSignKeyword_3());
                   
             }
-            // InternalOCLinEcore.g:8921:1: ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:8922:1: (lv_ownedInitExpression_5_0= ruleExpCS )
+            // InternalOCLinEcore.g:8953:1: ( (lv_ownedInitExpression_5_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8954:1: (lv_ownedInitExpression_5_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:8922:1: (lv_ownedInitExpression_5_0= ruleExpCS )
-            // InternalOCLinEcore.g:8923:3: lv_ownedInitExpression_5_0= ruleExpCS
+            // InternalOCLinEcore.g:8954:1: (lv_ownedInitExpression_5_0= ruleExpCS )
+            // InternalOCLinEcore.g:8955:3: lv_ownedInitExpression_5_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -26003,7 +26079,7 @@
 
 
     // $ANTLR start "entryRuleNestedExpCS"
-    // InternalOCLinEcore.g:8947:1: entryRuleNestedExpCS returns [EObject current=null] : iv_ruleNestedExpCS= ruleNestedExpCS EOF ;
+    // InternalOCLinEcore.g:8979:1: entryRuleNestedExpCS returns [EObject current=null] : iv_ruleNestedExpCS= ruleNestedExpCS EOF ;
     public final EObject entryRuleNestedExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -26011,8 +26087,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8948:2: (iv_ruleNestedExpCS= ruleNestedExpCS EOF )
-            // InternalOCLinEcore.g:8949:2: iv_ruleNestedExpCS= ruleNestedExpCS EOF
+            // InternalOCLinEcore.g:8980:2: (iv_ruleNestedExpCS= ruleNestedExpCS EOF )
+            // InternalOCLinEcore.g:8981:2: iv_ruleNestedExpCS= ruleNestedExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNestedExpCSRule()); 
@@ -26043,7 +26119,7 @@
 
 
     // $ANTLR start "ruleNestedExpCS"
-    // InternalOCLinEcore.g:8956:1: ruleNestedExpCS returns [EObject current=null] : (otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')' ) ;
+    // InternalOCLinEcore.g:8988:1: ruleNestedExpCS returns [EObject current=null] : (otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')' ) ;
     public final EObject ruleNestedExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -26055,11 +26131,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:8959:28: ( (otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')' ) )
-            // InternalOCLinEcore.g:8960:1: (otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')' )
+            // InternalOCLinEcore.g:8991:28: ( (otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')' ) )
+            // InternalOCLinEcore.g:8992:1: (otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')' )
             {
-            // InternalOCLinEcore.g:8960:1: (otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')' )
-            // InternalOCLinEcore.g:8960:3: otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')'
+            // InternalOCLinEcore.g:8992:1: (otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')' )
+            // InternalOCLinEcore.g:8992:3: otherlv_0= '(' ( (lv_ownedExpression_1_0= ruleExpCS ) ) otherlv_2= ')'
             {
             otherlv_0=(Token)match(input,54,FollowSets000.FOLLOW_99); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -26067,11 +26143,11 @@
                   	newLeafNode(otherlv_0, grammarAccess.getNestedExpCSAccess().getLeftParenthesisKeyword_0());
                   
             }
-            // InternalOCLinEcore.g:8964:1: ( (lv_ownedExpression_1_0= ruleExpCS ) )
-            // InternalOCLinEcore.g:8965:1: (lv_ownedExpression_1_0= ruleExpCS )
+            // InternalOCLinEcore.g:8996:1: ( (lv_ownedExpression_1_0= ruleExpCS ) )
+            // InternalOCLinEcore.g:8997:1: (lv_ownedExpression_1_0= ruleExpCS )
             {
-            // InternalOCLinEcore.g:8965:1: (lv_ownedExpression_1_0= ruleExpCS )
-            // InternalOCLinEcore.g:8966:3: lv_ownedExpression_1_0= ruleExpCS
+            // InternalOCLinEcore.g:8997:1: (lv_ownedExpression_1_0= ruleExpCS )
+            // InternalOCLinEcore.g:8998:3: lv_ownedExpression_1_0= ruleExpCS
             {
             if ( state.backtracking==0 ) {
                
@@ -26131,7 +26207,7 @@
 
 
     // $ANTLR start "entryRuleSelfExpCS"
-    // InternalOCLinEcore.g:8994:1: entryRuleSelfExpCS returns [EObject current=null] : iv_ruleSelfExpCS= ruleSelfExpCS EOF ;
+    // InternalOCLinEcore.g:9026:1: entryRuleSelfExpCS returns [EObject current=null] : iv_ruleSelfExpCS= ruleSelfExpCS EOF ;
     public final EObject entryRuleSelfExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -26139,8 +26215,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:8995:2: (iv_ruleSelfExpCS= ruleSelfExpCS EOF )
-            // InternalOCLinEcore.g:8996:2: iv_ruleSelfExpCS= ruleSelfExpCS EOF
+            // InternalOCLinEcore.g:9027:2: (iv_ruleSelfExpCS= ruleSelfExpCS EOF )
+            // InternalOCLinEcore.g:9028:2: iv_ruleSelfExpCS= ruleSelfExpCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSelfExpCSRule()); 
@@ -26171,7 +26247,7 @@
 
 
     // $ANTLR start "ruleSelfExpCS"
-    // InternalOCLinEcore.g:9003:1: ruleSelfExpCS returns [EObject current=null] : ( () otherlv_1= 'self' ) ;
+    // InternalOCLinEcore.g:9035:1: ruleSelfExpCS returns [EObject current=null] : ( () otherlv_1= 'self' ) ;
     public final EObject ruleSelfExpCS() throws RecognitionException {
         EObject current = null;
 
@@ -26180,14 +26256,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9006:28: ( ( () otherlv_1= 'self' ) )
-            // InternalOCLinEcore.g:9007:1: ( () otherlv_1= 'self' )
+            // InternalOCLinEcore.g:9038:28: ( ( () otherlv_1= 'self' ) )
+            // InternalOCLinEcore.g:9039:1: ( () otherlv_1= 'self' )
             {
-            // InternalOCLinEcore.g:9007:1: ( () otherlv_1= 'self' )
-            // InternalOCLinEcore.g:9007:2: () otherlv_1= 'self'
+            // InternalOCLinEcore.g:9039:1: ( () otherlv_1= 'self' )
+            // InternalOCLinEcore.g:9039:2: () otherlv_1= 'self'
             {
-            // InternalOCLinEcore.g:9007:2: ()
-            // InternalOCLinEcore.g:9008:2: 
+            // InternalOCLinEcore.g:9039:2: ()
+            // InternalOCLinEcore.g:9040:2: 
             {
             if ( state.backtracking==0 ) {
                
@@ -26233,7 +26309,7 @@
 
 
     // $ANTLR start "entryRuleMultiplicityBoundsCS"
-    // InternalOCLinEcore.g:9028:1: entryRuleMultiplicityBoundsCS returns [EObject current=null] : iv_ruleMultiplicityBoundsCS= ruleMultiplicityBoundsCS EOF ;
+    // InternalOCLinEcore.g:9060:1: entryRuleMultiplicityBoundsCS returns [EObject current=null] : iv_ruleMultiplicityBoundsCS= ruleMultiplicityBoundsCS EOF ;
     public final EObject entryRuleMultiplicityBoundsCS() throws RecognitionException {
         EObject current = null;
 
@@ -26241,8 +26317,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9029:2: (iv_ruleMultiplicityBoundsCS= ruleMultiplicityBoundsCS EOF )
-            // InternalOCLinEcore.g:9030:2: iv_ruleMultiplicityBoundsCS= ruleMultiplicityBoundsCS EOF
+            // InternalOCLinEcore.g:9061:2: (iv_ruleMultiplicityBoundsCS= ruleMultiplicityBoundsCS EOF )
+            // InternalOCLinEcore.g:9062:2: iv_ruleMultiplicityBoundsCS= ruleMultiplicityBoundsCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMultiplicityBoundsCSRule()); 
@@ -26273,7 +26349,7 @@
 
 
     // $ANTLR start "ruleMultiplicityBoundsCS"
-    // InternalOCLinEcore.g:9037:1: ruleMultiplicityBoundsCS returns [EObject current=null] : ( ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )? ) ;
+    // InternalOCLinEcore.g:9069:1: ruleMultiplicityBoundsCS returns [EObject current=null] : ( ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )? ) ;
     public final EObject ruleMultiplicityBoundsCS() throws RecognitionException {
         EObject current = null;
 
@@ -26286,17 +26362,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9040:28: ( ( ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )? ) )
-            // InternalOCLinEcore.g:9041:1: ( ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )? )
+            // InternalOCLinEcore.g:9072:28: ( ( ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )? ) )
+            // InternalOCLinEcore.g:9073:1: ( ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )? )
             {
-            // InternalOCLinEcore.g:9041:1: ( ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )? )
-            // InternalOCLinEcore.g:9041:2: ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )?
+            // InternalOCLinEcore.g:9073:1: ( ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )? )
+            // InternalOCLinEcore.g:9073:2: ( (lv_lowerBound_0_0= ruleLOWER ) ) (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )?
             {
-            // InternalOCLinEcore.g:9041:2: ( (lv_lowerBound_0_0= ruleLOWER ) )
-            // InternalOCLinEcore.g:9042:1: (lv_lowerBound_0_0= ruleLOWER )
+            // InternalOCLinEcore.g:9073:2: ( (lv_lowerBound_0_0= ruleLOWER ) )
+            // InternalOCLinEcore.g:9074:1: (lv_lowerBound_0_0= ruleLOWER )
             {
-            // InternalOCLinEcore.g:9042:1: (lv_lowerBound_0_0= ruleLOWER )
-            // InternalOCLinEcore.g:9043:3: lv_lowerBound_0_0= ruleLOWER
+            // InternalOCLinEcore.g:9074:1: (lv_lowerBound_0_0= ruleLOWER )
+            // InternalOCLinEcore.g:9075:3: lv_lowerBound_0_0= ruleLOWER
             {
             if ( state.backtracking==0 ) {
                
@@ -26327,7 +26403,7 @@
 
             }
 
-            // InternalOCLinEcore.g:9059:2: (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )?
+            // InternalOCLinEcore.g:9091:2: (otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) ) )?
             int alt200=2;
             int LA200_0 = input.LA(1);
 
@@ -26336,7 +26412,7 @@
             }
             switch (alt200) {
                 case 1 :
-                    // InternalOCLinEcore.g:9059:4: otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) )
+                    // InternalOCLinEcore.g:9091:4: otherlv_1= '..' ( (lv_upperBound_2_0= ruleUPPER ) )
                     {
                     otherlv_1=(Token)match(input,113,FollowSets000.FOLLOW_123); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -26344,11 +26420,11 @@
                           	newLeafNode(otherlv_1, grammarAccess.getMultiplicityBoundsCSAccess().getFullStopFullStopKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:9063:1: ( (lv_upperBound_2_0= ruleUPPER ) )
-                    // InternalOCLinEcore.g:9064:1: (lv_upperBound_2_0= ruleUPPER )
+                    // InternalOCLinEcore.g:9095:1: ( (lv_upperBound_2_0= ruleUPPER ) )
+                    // InternalOCLinEcore.g:9096:1: (lv_upperBound_2_0= ruleUPPER )
                     {
-                    // InternalOCLinEcore.g:9064:1: (lv_upperBound_2_0= ruleUPPER )
-                    // InternalOCLinEcore.g:9065:3: lv_upperBound_2_0= ruleUPPER
+                    // InternalOCLinEcore.g:9096:1: (lv_upperBound_2_0= ruleUPPER )
+                    // InternalOCLinEcore.g:9097:3: lv_upperBound_2_0= ruleUPPER
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -26408,7 +26484,7 @@
 
 
     // $ANTLR start "entryRuleMultiplicityCS"
-    // InternalOCLinEcore.g:9089:1: entryRuleMultiplicityCS returns [EObject current=null] : iv_ruleMultiplicityCS= ruleMultiplicityCS EOF ;
+    // InternalOCLinEcore.g:9121:1: entryRuleMultiplicityCS returns [EObject current=null] : iv_ruleMultiplicityCS= ruleMultiplicityCS EOF ;
     public final EObject entryRuleMultiplicityCS() throws RecognitionException {
         EObject current = null;
 
@@ -26416,8 +26492,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9090:2: (iv_ruleMultiplicityCS= ruleMultiplicityCS EOF )
-            // InternalOCLinEcore.g:9091:2: iv_ruleMultiplicityCS= ruleMultiplicityCS EOF
+            // InternalOCLinEcore.g:9122:2: (iv_ruleMultiplicityCS= ruleMultiplicityCS EOF )
+            // InternalOCLinEcore.g:9123:2: iv_ruleMultiplicityCS= ruleMultiplicityCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMultiplicityCSRule()); 
@@ -26448,7 +26524,7 @@
 
 
     // $ANTLR start "ruleMultiplicityCS"
-    // InternalOCLinEcore.g:9098:1: ruleMultiplicityCS returns [EObject current=null] : (otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']' ) ;
+    // InternalOCLinEcore.g:9130:1: ruleMultiplicityCS returns [EObject current=null] : (otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']' ) ;
     public final EObject ruleMultiplicityCS() throws RecognitionException {
         EObject current = null;
 
@@ -26464,11 +26540,11 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9101:28: ( (otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']' ) )
-            // InternalOCLinEcore.g:9102:1: (otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']' )
+            // InternalOCLinEcore.g:9133:28: ( (otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']' ) )
+            // InternalOCLinEcore.g:9134:1: (otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']' )
             {
-            // InternalOCLinEcore.g:9102:1: (otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']' )
-            // InternalOCLinEcore.g:9102:3: otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']'
+            // InternalOCLinEcore.g:9134:1: (otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']' )
+            // InternalOCLinEcore.g:9134:3: otherlv_0= '[' (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS ) (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )? otherlv_5= ']'
             {
             otherlv_0=(Token)match(input,123,FollowSets000.FOLLOW_124); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -26476,7 +26552,7 @@
                   	newLeafNode(otherlv_0, grammarAccess.getMultiplicityCSAccess().getLeftSquareBracketKeyword_0());
                   
             }
-            // InternalOCLinEcore.g:9106:1: (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS )
+            // InternalOCLinEcore.g:9138:1: (this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS | this_MultiplicityStringCS_2= ruleMultiplicityStringCS )
             int alt201=2;
             int LA201_0 = input.LA(1);
 
@@ -26495,7 +26571,7 @@
             }
             switch (alt201) {
                 case 1 :
-                    // InternalOCLinEcore.g:9107:2: this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS
+                    // InternalOCLinEcore.g:9139:2: this_MultiplicityBoundsCS_1= ruleMultiplicityBoundsCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -26522,7 +26598,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:9120:2: this_MultiplicityStringCS_2= ruleMultiplicityStringCS
+                    // InternalOCLinEcore.g:9152:2: this_MultiplicityStringCS_2= ruleMultiplicityStringCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -26551,7 +26627,7 @@
 
             }
 
-            // InternalOCLinEcore.g:9131:2: (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )?
+            // InternalOCLinEcore.g:9163:2: (otherlv_3= '|?' | ( (lv_isNullFree_4_0= '|1' ) ) )?
             int alt202=3;
             int LA202_0 = input.LA(1);
 
@@ -26563,7 +26639,7 @@
             }
             switch (alt202) {
                 case 1 :
-                    // InternalOCLinEcore.g:9131:4: otherlv_3= '|?'
+                    // InternalOCLinEcore.g:9163:4: otherlv_3= '|?'
                     {
                     otherlv_3=(Token)match(input,134,FollowSets000.FOLLOW_126); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -26575,13 +26651,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:9136:6: ( (lv_isNullFree_4_0= '|1' ) )
+                    // InternalOCLinEcore.g:9168:6: ( (lv_isNullFree_4_0= '|1' ) )
                     {
-                    // InternalOCLinEcore.g:9136:6: ( (lv_isNullFree_4_0= '|1' ) )
-                    // InternalOCLinEcore.g:9137:1: (lv_isNullFree_4_0= '|1' )
+                    // InternalOCLinEcore.g:9168:6: ( (lv_isNullFree_4_0= '|1' ) )
+                    // InternalOCLinEcore.g:9169:1: (lv_isNullFree_4_0= '|1' )
                     {
-                    // InternalOCLinEcore.g:9137:1: (lv_isNullFree_4_0= '|1' )
-                    // InternalOCLinEcore.g:9138:3: lv_isNullFree_4_0= '|1'
+                    // InternalOCLinEcore.g:9169:1: (lv_isNullFree_4_0= '|1' )
+                    // InternalOCLinEcore.g:9170:3: lv_isNullFree_4_0= '|1'
                     {
                     lv_isNullFree_4_0=(Token)match(input,135,FollowSets000.FOLLOW_126); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -26638,7 +26714,7 @@
 
 
     // $ANTLR start "entryRuleMultiplicityStringCS"
-    // InternalOCLinEcore.g:9163:1: entryRuleMultiplicityStringCS returns [EObject current=null] : iv_ruleMultiplicityStringCS= ruleMultiplicityStringCS EOF ;
+    // InternalOCLinEcore.g:9195:1: entryRuleMultiplicityStringCS returns [EObject current=null] : iv_ruleMultiplicityStringCS= ruleMultiplicityStringCS EOF ;
     public final EObject entryRuleMultiplicityStringCS() throws RecognitionException {
         EObject current = null;
 
@@ -26646,8 +26722,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9164:2: (iv_ruleMultiplicityStringCS= ruleMultiplicityStringCS EOF )
-            // InternalOCLinEcore.g:9165:2: iv_ruleMultiplicityStringCS= ruleMultiplicityStringCS EOF
+            // InternalOCLinEcore.g:9196:2: (iv_ruleMultiplicityStringCS= ruleMultiplicityStringCS EOF )
+            // InternalOCLinEcore.g:9197:2: iv_ruleMultiplicityStringCS= ruleMultiplicityStringCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMultiplicityStringCSRule()); 
@@ -26678,7 +26754,7 @@
 
 
     // $ANTLR start "ruleMultiplicityStringCS"
-    // InternalOCLinEcore.g:9172:1: ruleMultiplicityStringCS returns [EObject current=null] : ( ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) ) ) ;
+    // InternalOCLinEcore.g:9204:1: ruleMultiplicityStringCS returns [EObject current=null] : ( ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) ) ) ;
     public final EObject ruleMultiplicityStringCS() throws RecognitionException {
         EObject current = null;
 
@@ -26689,16 +26765,16 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9175:28: ( ( ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) ) ) )
-            // InternalOCLinEcore.g:9176:1: ( ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) ) )
+            // InternalOCLinEcore.g:9207:28: ( ( ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) ) ) )
+            // InternalOCLinEcore.g:9208:1: ( ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) ) )
             {
-            // InternalOCLinEcore.g:9176:1: ( ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) ) )
-            // InternalOCLinEcore.g:9177:1: ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) )
+            // InternalOCLinEcore.g:9208:1: ( ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) ) )
+            // InternalOCLinEcore.g:9209:1: ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) )
             {
-            // InternalOCLinEcore.g:9177:1: ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) )
-            // InternalOCLinEcore.g:9178:1: (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' )
+            // InternalOCLinEcore.g:9209:1: ( (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' ) )
+            // InternalOCLinEcore.g:9210:1: (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' )
             {
-            // InternalOCLinEcore.g:9178:1: (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' )
+            // InternalOCLinEcore.g:9210:1: (lv_stringBounds_0_1= '*' | lv_stringBounds_0_2= '+' | lv_stringBounds_0_3= '?' )
             int alt203=3;
             switch ( input.LA(1) ) {
             case 83:
@@ -26726,7 +26802,7 @@
 
             switch (alt203) {
                 case 1 :
-                    // InternalOCLinEcore.g:9179:3: lv_stringBounds_0_1= '*'
+                    // InternalOCLinEcore.g:9211:3: lv_stringBounds_0_1= '*'
                     {
                     lv_stringBounds_0_1=(Token)match(input,83,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -26746,7 +26822,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:9191:8: lv_stringBounds_0_2= '+'
+                    // InternalOCLinEcore.g:9223:8: lv_stringBounds_0_2= '+'
                     {
                     lv_stringBounds_0_2=(Token)match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -26766,7 +26842,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalOCLinEcore.g:9203:8: lv_stringBounds_0_3= '?'
+                    // InternalOCLinEcore.g:9235:8: lv_stringBounds_0_3= '?'
                     {
                     lv_stringBounds_0_3=(Token)match(input,136,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -26814,7 +26890,7 @@
 
 
     // $ANTLR start "entryRulePathNameCS"
-    // InternalOCLinEcore.g:9226:1: entryRulePathNameCS returns [EObject current=null] : iv_rulePathNameCS= rulePathNameCS EOF ;
+    // InternalOCLinEcore.g:9258:1: entryRulePathNameCS returns [EObject current=null] : iv_rulePathNameCS= rulePathNameCS EOF ;
     public final EObject entryRulePathNameCS() throws RecognitionException {
         EObject current = null;
 
@@ -26822,8 +26898,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9227:2: (iv_rulePathNameCS= rulePathNameCS EOF )
-            // InternalOCLinEcore.g:9228:2: iv_rulePathNameCS= rulePathNameCS EOF
+            // InternalOCLinEcore.g:9259:2: (iv_rulePathNameCS= rulePathNameCS EOF )
+            // InternalOCLinEcore.g:9260:2: iv_rulePathNameCS= rulePathNameCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPathNameCSRule()); 
@@ -26854,7 +26930,7 @@
 
 
     // $ANTLR start "rulePathNameCS"
-    // InternalOCLinEcore.g:9235:1: rulePathNameCS returns [EObject current=null] : ( ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* ) ;
+    // InternalOCLinEcore.g:9267:1: rulePathNameCS returns [EObject current=null] : ( ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* ) ;
     public final EObject rulePathNameCS() throws RecognitionException {
         EObject current = null;
 
@@ -26867,17 +26943,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9238:28: ( ( ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* ) )
-            // InternalOCLinEcore.g:9239:1: ( ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* )
+            // InternalOCLinEcore.g:9270:28: ( ( ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* ) )
+            // InternalOCLinEcore.g:9271:1: ( ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* )
             {
-            // InternalOCLinEcore.g:9239:1: ( ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* )
-            // InternalOCLinEcore.g:9239:2: ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )*
+            // InternalOCLinEcore.g:9271:1: ( ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )* )
+            // InternalOCLinEcore.g:9271:2: ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) ) (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )*
             {
-            // InternalOCLinEcore.g:9239:2: ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) )
-            // InternalOCLinEcore.g:9240:1: (lv_ownedPathElements_0_0= ruleFirstPathElementCS )
+            // InternalOCLinEcore.g:9271:2: ( (lv_ownedPathElements_0_0= ruleFirstPathElementCS ) )
+            // InternalOCLinEcore.g:9272:1: (lv_ownedPathElements_0_0= ruleFirstPathElementCS )
             {
-            // InternalOCLinEcore.g:9240:1: (lv_ownedPathElements_0_0= ruleFirstPathElementCS )
-            // InternalOCLinEcore.g:9241:3: lv_ownedPathElements_0_0= ruleFirstPathElementCS
+            // InternalOCLinEcore.g:9272:1: (lv_ownedPathElements_0_0= ruleFirstPathElementCS )
+            // InternalOCLinEcore.g:9273:3: lv_ownedPathElements_0_0= ruleFirstPathElementCS
             {
             if ( state.backtracking==0 ) {
                
@@ -26908,7 +26984,7 @@
 
             }
 
-            // InternalOCLinEcore.g:9257:2: (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )*
+            // InternalOCLinEcore.g:9289:2: (otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) ) )*
             loop204:
             do {
                 int alt204=2;
@@ -26921,7 +26997,7 @@
 
                 switch (alt204) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9257:4: otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) )
+            	    // InternalOCLinEcore.g:9289:4: otherlv_1= '::' ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) )
             	    {
             	    otherlv_1=(Token)match(input,99,FollowSets000.FOLLOW_91); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -26929,11 +27005,11 @@
             	          	newLeafNode(otherlv_1, grammarAccess.getPathNameCSAccess().getColonColonKeyword_1_0());
             	          
             	    }
-            	    // InternalOCLinEcore.g:9261:1: ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) )
-            	    // InternalOCLinEcore.g:9262:1: (lv_ownedPathElements_2_0= ruleNextPathElementCS )
+            	    // InternalOCLinEcore.g:9293:1: ( (lv_ownedPathElements_2_0= ruleNextPathElementCS ) )
+            	    // InternalOCLinEcore.g:9294:1: (lv_ownedPathElements_2_0= ruleNextPathElementCS )
             	    {
-            	    // InternalOCLinEcore.g:9262:1: (lv_ownedPathElements_2_0= ruleNextPathElementCS )
-            	    // InternalOCLinEcore.g:9263:3: lv_ownedPathElements_2_0= ruleNextPathElementCS
+            	    // InternalOCLinEcore.g:9294:1: (lv_ownedPathElements_2_0= ruleNextPathElementCS )
+            	    // InternalOCLinEcore.g:9295:3: lv_ownedPathElements_2_0= ruleNextPathElementCS
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -26996,7 +27072,7 @@
 
 
     // $ANTLR start "entryRuleFirstPathElementCS"
-    // InternalOCLinEcore.g:9287:1: entryRuleFirstPathElementCS returns [EObject current=null] : iv_ruleFirstPathElementCS= ruleFirstPathElementCS EOF ;
+    // InternalOCLinEcore.g:9319:1: entryRuleFirstPathElementCS returns [EObject current=null] : iv_ruleFirstPathElementCS= ruleFirstPathElementCS EOF ;
     public final EObject entryRuleFirstPathElementCS() throws RecognitionException {
         EObject current = null;
 
@@ -27004,8 +27080,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9288:2: (iv_ruleFirstPathElementCS= ruleFirstPathElementCS EOF )
-            // InternalOCLinEcore.g:9289:2: iv_ruleFirstPathElementCS= ruleFirstPathElementCS EOF
+            // InternalOCLinEcore.g:9320:2: (iv_ruleFirstPathElementCS= ruleFirstPathElementCS EOF )
+            // InternalOCLinEcore.g:9321:2: iv_ruleFirstPathElementCS= ruleFirstPathElementCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFirstPathElementCSRule()); 
@@ -27036,21 +27112,21 @@
 
 
     // $ANTLR start "ruleFirstPathElementCS"
-    // InternalOCLinEcore.g:9296:1: ruleFirstPathElementCS returns [EObject current=null] : ( ( ruleUnrestrictedName ) ) ;
+    // InternalOCLinEcore.g:9328:1: ruleFirstPathElementCS returns [EObject current=null] : ( ( ruleUnrestrictedName ) ) ;
     public final EObject ruleFirstPathElementCS() throws RecognitionException {
         EObject current = null;
 
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9299:28: ( ( ( ruleUnrestrictedName ) ) )
-            // InternalOCLinEcore.g:9300:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:9331:28: ( ( ( ruleUnrestrictedName ) ) )
+            // InternalOCLinEcore.g:9332:1: ( ( ruleUnrestrictedName ) )
             {
-            // InternalOCLinEcore.g:9300:1: ( ( ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:9301:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:9332:1: ( ( ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:9333:1: ( ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:9301:1: ( ruleUnrestrictedName )
-            // InternalOCLinEcore.g:9302:3: ruleUnrestrictedName
+            // InternalOCLinEcore.g:9333:1: ( ruleUnrestrictedName )
+            // InternalOCLinEcore.g:9334:3: ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -27105,7 +27181,7 @@
 
 
     // $ANTLR start "entryRuleNextPathElementCS"
-    // InternalOCLinEcore.g:9326:1: entryRuleNextPathElementCS returns [EObject current=null] : iv_ruleNextPathElementCS= ruleNextPathElementCS EOF ;
+    // InternalOCLinEcore.g:9358:1: entryRuleNextPathElementCS returns [EObject current=null] : iv_ruleNextPathElementCS= ruleNextPathElementCS EOF ;
     public final EObject entryRuleNextPathElementCS() throws RecognitionException {
         EObject current = null;
 
@@ -27113,8 +27189,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9327:2: (iv_ruleNextPathElementCS= ruleNextPathElementCS EOF )
-            // InternalOCLinEcore.g:9328:2: iv_ruleNextPathElementCS= ruleNextPathElementCS EOF
+            // InternalOCLinEcore.g:9359:2: (iv_ruleNextPathElementCS= ruleNextPathElementCS EOF )
+            // InternalOCLinEcore.g:9360:2: iv_ruleNextPathElementCS= ruleNextPathElementCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNextPathElementCSRule()); 
@@ -27145,21 +27221,21 @@
 
 
     // $ANTLR start "ruleNextPathElementCS"
-    // InternalOCLinEcore.g:9335:1: ruleNextPathElementCS returns [EObject current=null] : ( ( ruleUnreservedName ) ) ;
+    // InternalOCLinEcore.g:9367:1: ruleNextPathElementCS returns [EObject current=null] : ( ( ruleUnreservedName ) ) ;
     public final EObject ruleNextPathElementCS() throws RecognitionException {
         EObject current = null;
 
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9338:28: ( ( ( ruleUnreservedName ) ) )
-            // InternalOCLinEcore.g:9339:1: ( ( ruleUnreservedName ) )
+            // InternalOCLinEcore.g:9370:28: ( ( ( ruleUnreservedName ) ) )
+            // InternalOCLinEcore.g:9371:1: ( ( ruleUnreservedName ) )
             {
-            // InternalOCLinEcore.g:9339:1: ( ( ruleUnreservedName ) )
-            // InternalOCLinEcore.g:9340:1: ( ruleUnreservedName )
+            // InternalOCLinEcore.g:9371:1: ( ( ruleUnreservedName ) )
+            // InternalOCLinEcore.g:9372:1: ( ruleUnreservedName )
             {
-            // InternalOCLinEcore.g:9340:1: ( ruleUnreservedName )
-            // InternalOCLinEcore.g:9341:3: ruleUnreservedName
+            // InternalOCLinEcore.g:9372:1: ( ruleUnreservedName )
+            // InternalOCLinEcore.g:9373:3: ruleUnreservedName
             {
             if ( state.backtracking==0 ) {
                
@@ -27214,7 +27290,7 @@
 
 
     // $ANTLR start "entryRuleTemplateBindingCS"
-    // InternalOCLinEcore.g:9365:1: entryRuleTemplateBindingCS returns [EObject current=null] : iv_ruleTemplateBindingCS= ruleTemplateBindingCS EOF ;
+    // InternalOCLinEcore.g:9397:1: entryRuleTemplateBindingCS returns [EObject current=null] : iv_ruleTemplateBindingCS= ruleTemplateBindingCS EOF ;
     public final EObject entryRuleTemplateBindingCS() throws RecognitionException {
         EObject current = null;
 
@@ -27222,8 +27298,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9366:2: (iv_ruleTemplateBindingCS= ruleTemplateBindingCS EOF )
-            // InternalOCLinEcore.g:9367:2: iv_ruleTemplateBindingCS= ruleTemplateBindingCS EOF
+            // InternalOCLinEcore.g:9398:2: (iv_ruleTemplateBindingCS= ruleTemplateBindingCS EOF )
+            // InternalOCLinEcore.g:9399:2: iv_ruleTemplateBindingCS= ruleTemplateBindingCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTemplateBindingCSRule()); 
@@ -27254,7 +27330,7 @@
 
 
     // $ANTLR start "ruleTemplateBindingCS"
-    // InternalOCLinEcore.g:9374:1: ruleTemplateBindingCS returns [EObject current=null] : ( ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? ) ;
+    // InternalOCLinEcore.g:9406:1: ruleTemplateBindingCS returns [EObject current=null] : ( ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? ) ;
     public final EObject ruleTemplateBindingCS() throws RecognitionException {
         EObject current = null;
 
@@ -27269,17 +27345,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9377:28: ( ( ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? ) )
-            // InternalOCLinEcore.g:9378:1: ( ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? )
+            // InternalOCLinEcore.g:9409:28: ( ( ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? ) )
+            // InternalOCLinEcore.g:9410:1: ( ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? )
             {
-            // InternalOCLinEcore.g:9378:1: ( ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? )
-            // InternalOCLinEcore.g:9378:2: ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )?
+            // InternalOCLinEcore.g:9410:1: ( ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )? )
+            // InternalOCLinEcore.g:9410:2: ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) ) (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )* ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )?
             {
-            // InternalOCLinEcore.g:9378:2: ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) )
-            // InternalOCLinEcore.g:9379:1: (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS )
+            // InternalOCLinEcore.g:9410:2: ( (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS ) )
+            // InternalOCLinEcore.g:9411:1: (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS )
             {
-            // InternalOCLinEcore.g:9379:1: (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS )
-            // InternalOCLinEcore.g:9380:3: lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS
+            // InternalOCLinEcore.g:9411:1: (lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS )
+            // InternalOCLinEcore.g:9412:3: lv_ownedSubstitutions_0_0= ruleTemplateParameterSubstitutionCS
             {
             if ( state.backtracking==0 ) {
                
@@ -27310,7 +27386,7 @@
 
             }
 
-            // InternalOCLinEcore.g:9396:2: (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )*
+            // InternalOCLinEcore.g:9428:2: (otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) ) )*
             loop205:
             do {
                 int alt205=2;
@@ -27323,7 +27399,7 @@
 
                 switch (alt205) {
             	case 1 :
-            	    // InternalOCLinEcore.g:9396:4: otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) )
+            	    // InternalOCLinEcore.g:9428:4: otherlv_1= ',' ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) )
             	    {
             	    otherlv_1=(Token)match(input,59,FollowSets000.FOLLOW_88); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -27331,11 +27407,11 @@
             	          	newLeafNode(otherlv_1, grammarAccess.getTemplateBindingCSAccess().getCommaKeyword_1_0());
             	          
             	    }
-            	    // InternalOCLinEcore.g:9400:1: ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) )
-            	    // InternalOCLinEcore.g:9401:1: (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS )
+            	    // InternalOCLinEcore.g:9432:1: ( (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS ) )
+            	    // InternalOCLinEcore.g:9433:1: (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS )
             	    {
-            	    // InternalOCLinEcore.g:9401:1: (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS )
-            	    // InternalOCLinEcore.g:9402:3: lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS
+            	    // InternalOCLinEcore.g:9433:1: (lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS )
+            	    // InternalOCLinEcore.g:9434:3: lv_ownedSubstitutions_2_0= ruleTemplateParameterSubstitutionCS
             	    {
             	    if ( state.backtracking==0 ) {
             	       
@@ -27375,7 +27451,7 @@
                 }
             } while (true);
 
-            // InternalOCLinEcore.g:9418:4: ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )?
+            // InternalOCLinEcore.g:9450:4: ( (lv_ownedMultiplicity_3_0= ruleMultiplicityCS ) )?
             int alt206=2;
             int LA206_0 = input.LA(1);
 
@@ -27384,10 +27460,10 @@
             }
             switch (alt206) {
                 case 1 :
-                    // InternalOCLinEcore.g:9419:1: (lv_ownedMultiplicity_3_0= ruleMultiplicityCS )
+                    // InternalOCLinEcore.g:9451:1: (lv_ownedMultiplicity_3_0= ruleMultiplicityCS )
                     {
-                    // InternalOCLinEcore.g:9419:1: (lv_ownedMultiplicity_3_0= ruleMultiplicityCS )
-                    // InternalOCLinEcore.g:9420:3: lv_ownedMultiplicity_3_0= ruleMultiplicityCS
+                    // InternalOCLinEcore.g:9451:1: (lv_ownedMultiplicity_3_0= ruleMultiplicityCS )
+                    // InternalOCLinEcore.g:9452:3: lv_ownedMultiplicity_3_0= ruleMultiplicityCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -27444,7 +27520,7 @@
 
 
     // $ANTLR start "entryRuleTemplateParameterSubstitutionCS"
-    // InternalOCLinEcore.g:9444:1: entryRuleTemplateParameterSubstitutionCS returns [EObject current=null] : iv_ruleTemplateParameterSubstitutionCS= ruleTemplateParameterSubstitutionCS EOF ;
+    // InternalOCLinEcore.g:9476:1: entryRuleTemplateParameterSubstitutionCS returns [EObject current=null] : iv_ruleTemplateParameterSubstitutionCS= ruleTemplateParameterSubstitutionCS EOF ;
     public final EObject entryRuleTemplateParameterSubstitutionCS() throws RecognitionException {
         EObject current = null;
 
@@ -27452,8 +27528,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9445:2: (iv_ruleTemplateParameterSubstitutionCS= ruleTemplateParameterSubstitutionCS EOF )
-            // InternalOCLinEcore.g:9446:2: iv_ruleTemplateParameterSubstitutionCS= ruleTemplateParameterSubstitutionCS EOF
+            // InternalOCLinEcore.g:9477:2: (iv_ruleTemplateParameterSubstitutionCS= ruleTemplateParameterSubstitutionCS EOF )
+            // InternalOCLinEcore.g:9478:2: iv_ruleTemplateParameterSubstitutionCS= ruleTemplateParameterSubstitutionCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTemplateParameterSubstitutionCSRule()); 
@@ -27484,7 +27560,7 @@
 
 
     // $ANTLR start "ruleTemplateParameterSubstitutionCS"
-    // InternalOCLinEcore.g:9453:1: ruleTemplateParameterSubstitutionCS returns [EObject current=null] : ( (lv_ownedActualParameter_0_0= ruleTypeRefCS ) ) ;
+    // InternalOCLinEcore.g:9485:1: ruleTemplateParameterSubstitutionCS returns [EObject current=null] : ( (lv_ownedActualParameter_0_0= ruleTypeRefCS ) ) ;
     public final EObject ruleTemplateParameterSubstitutionCS() throws RecognitionException {
         EObject current = null;
 
@@ -27494,14 +27570,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9456:28: ( ( (lv_ownedActualParameter_0_0= ruleTypeRefCS ) ) )
-            // InternalOCLinEcore.g:9457:1: ( (lv_ownedActualParameter_0_0= ruleTypeRefCS ) )
+            // InternalOCLinEcore.g:9488:28: ( ( (lv_ownedActualParameter_0_0= ruleTypeRefCS ) ) )
+            // InternalOCLinEcore.g:9489:1: ( (lv_ownedActualParameter_0_0= ruleTypeRefCS ) )
             {
-            // InternalOCLinEcore.g:9457:1: ( (lv_ownedActualParameter_0_0= ruleTypeRefCS ) )
-            // InternalOCLinEcore.g:9458:1: (lv_ownedActualParameter_0_0= ruleTypeRefCS )
+            // InternalOCLinEcore.g:9489:1: ( (lv_ownedActualParameter_0_0= ruleTypeRefCS ) )
+            // InternalOCLinEcore.g:9490:1: (lv_ownedActualParameter_0_0= ruleTypeRefCS )
             {
-            // InternalOCLinEcore.g:9458:1: (lv_ownedActualParameter_0_0= ruleTypeRefCS )
-            // InternalOCLinEcore.g:9459:3: lv_ownedActualParameter_0_0= ruleTypeRefCS
+            // InternalOCLinEcore.g:9490:1: (lv_ownedActualParameter_0_0= ruleTypeRefCS )
+            // InternalOCLinEcore.g:9491:3: lv_ownedActualParameter_0_0= ruleTypeRefCS
             {
             if ( state.backtracking==0 ) {
                
@@ -27552,7 +27628,7 @@
 
 
     // $ANTLR start "entryRuleTypeParameterCS"
-    // InternalOCLinEcore.g:9483:1: entryRuleTypeParameterCS returns [EObject current=null] : iv_ruleTypeParameterCS= ruleTypeParameterCS EOF ;
+    // InternalOCLinEcore.g:9515:1: entryRuleTypeParameterCS returns [EObject current=null] : iv_ruleTypeParameterCS= ruleTypeParameterCS EOF ;
     public final EObject entryRuleTypeParameterCS() throws RecognitionException {
         EObject current = null;
 
@@ -27560,8 +27636,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9484:2: (iv_ruleTypeParameterCS= ruleTypeParameterCS EOF )
-            // InternalOCLinEcore.g:9485:2: iv_ruleTypeParameterCS= ruleTypeParameterCS EOF
+            // InternalOCLinEcore.g:9516:2: (iv_ruleTypeParameterCS= ruleTypeParameterCS EOF )
+            // InternalOCLinEcore.g:9517:2: iv_ruleTypeParameterCS= ruleTypeParameterCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeParameterCSRule()); 
@@ -27592,7 +27668,7 @@
 
 
     // $ANTLR start "ruleTypeParameterCS"
-    // InternalOCLinEcore.g:9492:1: ruleTypeParameterCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )? ) ;
+    // InternalOCLinEcore.g:9524:1: ruleTypeParameterCS returns [EObject current=null] : ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )? ) ;
     public final EObject ruleTypeParameterCS() throws RecognitionException {
         EObject current = null;
 
@@ -27608,17 +27684,17 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9495:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )? ) )
-            // InternalOCLinEcore.g:9496:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )? )
+            // InternalOCLinEcore.g:9527:28: ( ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )? ) )
+            // InternalOCLinEcore.g:9528:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )? )
             {
-            // InternalOCLinEcore.g:9496:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )? )
-            // InternalOCLinEcore.g:9496:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )?
+            // InternalOCLinEcore.g:9528:1: ( ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )? )
+            // InternalOCLinEcore.g:9528:2: ( (lv_name_0_0= ruleUnrestrictedName ) ) (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )?
             {
-            // InternalOCLinEcore.g:9496:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
-            // InternalOCLinEcore.g:9497:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:9528:2: ( (lv_name_0_0= ruleUnrestrictedName ) )
+            // InternalOCLinEcore.g:9529:1: (lv_name_0_0= ruleUnrestrictedName )
             {
-            // InternalOCLinEcore.g:9497:1: (lv_name_0_0= ruleUnrestrictedName )
-            // InternalOCLinEcore.g:9498:3: lv_name_0_0= ruleUnrestrictedName
+            // InternalOCLinEcore.g:9529:1: (lv_name_0_0= ruleUnrestrictedName )
+            // InternalOCLinEcore.g:9530:3: lv_name_0_0= ruleUnrestrictedName
             {
             if ( state.backtracking==0 ) {
                
@@ -27649,7 +27725,7 @@
 
             }
 
-            // InternalOCLinEcore.g:9514:2: (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )?
+            // InternalOCLinEcore.g:9546:2: (otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )* )?
             int alt208=2;
             int LA208_0 = input.LA(1);
 
@@ -27658,7 +27734,7 @@
             }
             switch (alt208) {
                 case 1 :
-                    // InternalOCLinEcore.g:9514:4: otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )*
+                    // InternalOCLinEcore.g:9546:4: otherlv_1= 'extends' ( (lv_ownedExtends_2_0= ruleTypedRefCS ) ) (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )*
                     {
                     otherlv_1=(Token)match(input,30,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -27666,11 +27742,11 @@
                           	newLeafNode(otherlv_1, grammarAccess.getTypeParameterCSAccess().getExtendsKeyword_1_0());
                           
                     }
-                    // InternalOCLinEcore.g:9518:1: ( (lv_ownedExtends_2_0= ruleTypedRefCS ) )
-                    // InternalOCLinEcore.g:9519:1: (lv_ownedExtends_2_0= ruleTypedRefCS )
+                    // InternalOCLinEcore.g:9550:1: ( (lv_ownedExtends_2_0= ruleTypedRefCS ) )
+                    // InternalOCLinEcore.g:9551:1: (lv_ownedExtends_2_0= ruleTypedRefCS )
                     {
-                    // InternalOCLinEcore.g:9519:1: (lv_ownedExtends_2_0= ruleTypedRefCS )
-                    // InternalOCLinEcore.g:9520:3: lv_ownedExtends_2_0= ruleTypedRefCS
+                    // InternalOCLinEcore.g:9551:1: (lv_ownedExtends_2_0= ruleTypedRefCS )
+                    // InternalOCLinEcore.g:9552:3: lv_ownedExtends_2_0= ruleTypedRefCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -27701,7 +27777,7 @@
 
                     }
 
-                    // InternalOCLinEcore.g:9536:2: (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )*
+                    // InternalOCLinEcore.g:9568:2: (otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) ) )*
                     loop207:
                     do {
                         int alt207=2;
@@ -27714,7 +27790,7 @@
 
                         switch (alt207) {
                     	case 1 :
-                    	    // InternalOCLinEcore.g:9536:4: otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) )
+                    	    // InternalOCLinEcore.g:9568:4: otherlv_3= '&&' ( (lv_ownedExtends_4_0= ruleTypedRefCS ) )
                     	    {
                     	    otherlv_3=(Token)match(input,137,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -27722,11 +27798,11 @@
                     	          	newLeafNode(otherlv_3, grammarAccess.getTypeParameterCSAccess().getAmpersandAmpersandKeyword_1_2_0());
                     	          
                     	    }
-                    	    // InternalOCLinEcore.g:9540:1: ( (lv_ownedExtends_4_0= ruleTypedRefCS ) )
-                    	    // InternalOCLinEcore.g:9541:1: (lv_ownedExtends_4_0= ruleTypedRefCS )
+                    	    // InternalOCLinEcore.g:9572:1: ( (lv_ownedExtends_4_0= ruleTypedRefCS ) )
+                    	    // InternalOCLinEcore.g:9573:1: (lv_ownedExtends_4_0= ruleTypedRefCS )
                     	    {
-                    	    // InternalOCLinEcore.g:9541:1: (lv_ownedExtends_4_0= ruleTypedRefCS )
-                    	    // InternalOCLinEcore.g:9542:3: lv_ownedExtends_4_0= ruleTypedRefCS
+                    	    // InternalOCLinEcore.g:9573:1: (lv_ownedExtends_4_0= ruleTypedRefCS )
+                    	    // InternalOCLinEcore.g:9574:3: lv_ownedExtends_4_0= ruleTypedRefCS
                     	    {
                     	    if ( state.backtracking==0 ) {
                     	       
@@ -27795,7 +27871,7 @@
 
 
     // $ANTLR start "entryRuleTypeRefCS"
-    // InternalOCLinEcore.g:9566:1: entryRuleTypeRefCS returns [EObject current=null] : iv_ruleTypeRefCS= ruleTypeRefCS EOF ;
+    // InternalOCLinEcore.g:9598:1: entryRuleTypeRefCS returns [EObject current=null] : iv_ruleTypeRefCS= ruleTypeRefCS EOF ;
     public final EObject entryRuleTypeRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -27803,8 +27879,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9567:2: (iv_ruleTypeRefCS= ruleTypeRefCS EOF )
-            // InternalOCLinEcore.g:9568:2: iv_ruleTypeRefCS= ruleTypeRefCS EOF
+            // InternalOCLinEcore.g:9599:2: (iv_ruleTypeRefCS= ruleTypeRefCS EOF )
+            // InternalOCLinEcore.g:9600:2: iv_ruleTypeRefCS= ruleTypeRefCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeRefCSRule()); 
@@ -27835,7 +27911,7 @@
 
 
     // $ANTLR start "ruleTypeRefCS"
-    // InternalOCLinEcore.g:9575:1: ruleTypeRefCS returns [EObject current=null] : (this_TypedRefCS_0= ruleTypedRefCS | this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS ) ;
+    // InternalOCLinEcore.g:9607:1: ruleTypeRefCS returns [EObject current=null] : (this_TypedRefCS_0= ruleTypedRefCS | this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS ) ;
     public final EObject ruleTypeRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -27847,10 +27923,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9578:28: ( (this_TypedRefCS_0= ruleTypedRefCS | this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS ) )
-            // InternalOCLinEcore.g:9579:1: (this_TypedRefCS_0= ruleTypedRefCS | this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS )
+            // InternalOCLinEcore.g:9610:28: ( (this_TypedRefCS_0= ruleTypedRefCS | this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS ) )
+            // InternalOCLinEcore.g:9611:1: (this_TypedRefCS_0= ruleTypedRefCS | this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS )
             {
-            // InternalOCLinEcore.g:9579:1: (this_TypedRefCS_0= ruleTypedRefCS | this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS )
+            // InternalOCLinEcore.g:9611:1: (this_TypedRefCS_0= ruleTypedRefCS | this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS )
             int alt209=2;
             int LA209_0 = input.LA(1);
 
@@ -27869,7 +27945,7 @@
             }
             switch (alt209) {
                 case 1 :
-                    // InternalOCLinEcore.g:9580:2: this_TypedRefCS_0= ruleTypedRefCS
+                    // InternalOCLinEcore.g:9612:2: this_TypedRefCS_0= ruleTypedRefCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -27896,7 +27972,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:9593:2: this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS
+                    // InternalOCLinEcore.g:9625:2: this_WildcardTypeRefCS_1= ruleWildcardTypeRefCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -27945,7 +28021,7 @@
 
 
     // $ANTLR start "entryRuleWildcardTypeRefCS"
-    // InternalOCLinEcore.g:9612:1: entryRuleWildcardTypeRefCS returns [EObject current=null] : iv_ruleWildcardTypeRefCS= ruleWildcardTypeRefCS EOF ;
+    // InternalOCLinEcore.g:9644:1: entryRuleWildcardTypeRefCS returns [EObject current=null] : iv_ruleWildcardTypeRefCS= ruleWildcardTypeRefCS EOF ;
     public final EObject entryRuleWildcardTypeRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -27953,8 +28029,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9613:2: (iv_ruleWildcardTypeRefCS= ruleWildcardTypeRefCS EOF )
-            // InternalOCLinEcore.g:9614:2: iv_ruleWildcardTypeRefCS= ruleWildcardTypeRefCS EOF
+            // InternalOCLinEcore.g:9645:2: (iv_ruleWildcardTypeRefCS= ruleWildcardTypeRefCS EOF )
+            // InternalOCLinEcore.g:9646:2: iv_ruleWildcardTypeRefCS= ruleWildcardTypeRefCS EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getWildcardTypeRefCSRule()); 
@@ -27985,7 +28061,7 @@
 
 
     // $ANTLR start "ruleWildcardTypeRefCS"
-    // InternalOCLinEcore.g:9621:1: ruleWildcardTypeRefCS returns [EObject current=null] : ( () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )? ) ;
+    // InternalOCLinEcore.g:9653:1: ruleWildcardTypeRefCS returns [EObject current=null] : ( () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )? ) ;
     public final EObject ruleWildcardTypeRefCS() throws RecognitionException {
         EObject current = null;
 
@@ -27997,14 +28073,14 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9624:28: ( ( () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )? ) )
-            // InternalOCLinEcore.g:9625:1: ( () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )? )
+            // InternalOCLinEcore.g:9656:28: ( ( () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )? ) )
+            // InternalOCLinEcore.g:9657:1: ( () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )? )
             {
-            // InternalOCLinEcore.g:9625:1: ( () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )? )
-            // InternalOCLinEcore.g:9625:2: () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )?
+            // InternalOCLinEcore.g:9657:1: ( () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )? )
+            // InternalOCLinEcore.g:9657:2: () otherlv_1= '?' (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )?
             {
-            // InternalOCLinEcore.g:9625:2: ()
-            // InternalOCLinEcore.g:9626:2: 
+            // InternalOCLinEcore.g:9657:2: ()
+            // InternalOCLinEcore.g:9658:2: 
             {
             if ( state.backtracking==0 ) {
                
@@ -28027,7 +28103,7 @@
                   	newLeafNode(otherlv_1, grammarAccess.getWildcardTypeRefCSAccess().getQuestionMarkKeyword_1());
                   
             }
-            // InternalOCLinEcore.g:9638:1: (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )?
+            // InternalOCLinEcore.g:9670:1: (otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) ) )?
             int alt210=2;
             int LA210_0 = input.LA(1);
 
@@ -28036,7 +28112,7 @@
             }
             switch (alt210) {
                 case 1 :
-                    // InternalOCLinEcore.g:9638:3: otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) )
+                    // InternalOCLinEcore.g:9670:3: otherlv_2= 'extends' ( (lv_ownedExtends_3_0= ruleTypedRefCS ) )
                     {
                     otherlv_2=(Token)match(input,30,FollowSets000.FOLLOW_29); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -28044,11 +28120,11 @@
                           	newLeafNode(otherlv_2, grammarAccess.getWildcardTypeRefCSAccess().getExtendsKeyword_2_0());
                           
                     }
-                    // InternalOCLinEcore.g:9642:1: ( (lv_ownedExtends_3_0= ruleTypedRefCS ) )
-                    // InternalOCLinEcore.g:9643:1: (lv_ownedExtends_3_0= ruleTypedRefCS )
+                    // InternalOCLinEcore.g:9674:1: ( (lv_ownedExtends_3_0= ruleTypedRefCS ) )
+                    // InternalOCLinEcore.g:9675:1: (lv_ownedExtends_3_0= ruleTypedRefCS )
                     {
-                    // InternalOCLinEcore.g:9643:1: (lv_ownedExtends_3_0= ruleTypedRefCS )
-                    // InternalOCLinEcore.g:9644:3: lv_ownedExtends_3_0= ruleTypedRefCS
+                    // InternalOCLinEcore.g:9675:1: (lv_ownedExtends_3_0= ruleTypedRefCS )
+                    // InternalOCLinEcore.g:9676:3: lv_ownedExtends_3_0= ruleTypedRefCS
                     {
                     if ( state.backtracking==0 ) {
                        
@@ -28108,7 +28184,7 @@
 
 
     // $ANTLR start "entryRuleID"
-    // InternalOCLinEcore.g:9668:1: entryRuleID returns [String current=null] : iv_ruleID= ruleID EOF ;
+    // InternalOCLinEcore.g:9700:1: entryRuleID returns [String current=null] : iv_ruleID= ruleID EOF ;
     public final String entryRuleID() throws RecognitionException {
         String current = null;
 
@@ -28116,8 +28192,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9669:2: (iv_ruleID= ruleID EOF )
-            // InternalOCLinEcore.g:9670:2: iv_ruleID= ruleID EOF
+            // InternalOCLinEcore.g:9701:2: (iv_ruleID= ruleID EOF )
+            // InternalOCLinEcore.g:9702:2: iv_ruleID= ruleID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIDRule()); 
@@ -28148,7 +28224,7 @@
 
 
     // $ANTLR start "ruleID"
-    // InternalOCLinEcore.g:9677:1: ruleID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_SIMPLE_ID_0= RULE_SIMPLE_ID | this_ESCAPED_ID_1= RULE_ESCAPED_ID ) ;
+    // InternalOCLinEcore.g:9709:1: ruleID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_SIMPLE_ID_0= RULE_SIMPLE_ID | this_ESCAPED_ID_1= RULE_ESCAPED_ID ) ;
     public final AntlrDatatypeRuleToken ruleID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -28158,10 +28234,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9680:28: ( (this_SIMPLE_ID_0= RULE_SIMPLE_ID | this_ESCAPED_ID_1= RULE_ESCAPED_ID ) )
-            // InternalOCLinEcore.g:9681:1: (this_SIMPLE_ID_0= RULE_SIMPLE_ID | this_ESCAPED_ID_1= RULE_ESCAPED_ID )
+            // InternalOCLinEcore.g:9712:28: ( (this_SIMPLE_ID_0= RULE_SIMPLE_ID | this_ESCAPED_ID_1= RULE_ESCAPED_ID ) )
+            // InternalOCLinEcore.g:9713:1: (this_SIMPLE_ID_0= RULE_SIMPLE_ID | this_ESCAPED_ID_1= RULE_ESCAPED_ID )
             {
-            // InternalOCLinEcore.g:9681:1: (this_SIMPLE_ID_0= RULE_SIMPLE_ID | this_ESCAPED_ID_1= RULE_ESCAPED_ID )
+            // InternalOCLinEcore.g:9713:1: (this_SIMPLE_ID_0= RULE_SIMPLE_ID | this_ESCAPED_ID_1= RULE_ESCAPED_ID )
             int alt211=2;
             int LA211_0 = input.LA(1);
 
@@ -28180,7 +28256,7 @@
             }
             switch (alt211) {
                 case 1 :
-                    // InternalOCLinEcore.g:9681:6: this_SIMPLE_ID_0= RULE_SIMPLE_ID
+                    // InternalOCLinEcore.g:9713:6: this_SIMPLE_ID_0= RULE_SIMPLE_ID
                     {
                     this_SIMPLE_ID_0=(Token)match(input,RULE_SIMPLE_ID,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -28197,7 +28273,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:9689:10: this_ESCAPED_ID_1= RULE_ESCAPED_ID
+                    // InternalOCLinEcore.g:9721:10: this_ESCAPED_ID_1= RULE_ESCAPED_ID
                     {
                     this_ESCAPED_ID_1=(Token)match(input,RULE_ESCAPED_ID,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -28236,7 +28312,7 @@
 
 
     // $ANTLR start "entryRuleIdentifier"
-    // InternalOCLinEcore.g:9704:1: entryRuleIdentifier returns [String current=null] : iv_ruleIdentifier= ruleIdentifier EOF ;
+    // InternalOCLinEcore.g:9736:1: entryRuleIdentifier returns [String current=null] : iv_ruleIdentifier= ruleIdentifier EOF ;
     public final String entryRuleIdentifier() throws RecognitionException {
         String current = null;
 
@@ -28244,8 +28320,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9705:2: (iv_ruleIdentifier= ruleIdentifier EOF )
-            // InternalOCLinEcore.g:9706:2: iv_ruleIdentifier= ruleIdentifier EOF
+            // InternalOCLinEcore.g:9737:2: (iv_ruleIdentifier= ruleIdentifier EOF )
+            // InternalOCLinEcore.g:9738:2: iv_ruleIdentifier= ruleIdentifier EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIdentifierRule()); 
@@ -28276,7 +28352,7 @@
 
 
     // $ANTLR start "ruleIdentifier"
-    // InternalOCLinEcore.g:9713:1: ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= ruleID ;
+    // InternalOCLinEcore.g:9745:1: ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= ruleID ;
     public final AntlrDatatypeRuleToken ruleIdentifier() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -28286,8 +28362,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9716:28: (this_ID_0= ruleID )
-            // InternalOCLinEcore.g:9718:5: this_ID_0= ruleID
+            // InternalOCLinEcore.g:9748:28: (this_ID_0= ruleID )
+            // InternalOCLinEcore.g:9750:5: this_ID_0= ruleID
             {
             if ( state.backtracking==0 ) {
                
@@ -28329,7 +28405,7 @@
 
 
     // $ANTLR start "entryRuleLOWER"
-    // InternalOCLinEcore.g:9736:1: entryRuleLOWER returns [String current=null] : iv_ruleLOWER= ruleLOWER EOF ;
+    // InternalOCLinEcore.g:9768:1: entryRuleLOWER returns [String current=null] : iv_ruleLOWER= ruleLOWER EOF ;
     public final String entryRuleLOWER() throws RecognitionException {
         String current = null;
 
@@ -28337,8 +28413,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9737:2: (iv_ruleLOWER= ruleLOWER EOF )
-            // InternalOCLinEcore.g:9738:2: iv_ruleLOWER= ruleLOWER EOF
+            // InternalOCLinEcore.g:9769:2: (iv_ruleLOWER= ruleLOWER EOF )
+            // InternalOCLinEcore.g:9770:2: iv_ruleLOWER= ruleLOWER EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLOWERRule()); 
@@ -28369,7 +28445,7 @@
 
 
     // $ANTLR start "ruleLOWER"
-    // InternalOCLinEcore.g:9745:1: ruleLOWER returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_INT_0= RULE_INT ;
+    // InternalOCLinEcore.g:9777:1: ruleLOWER returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_INT_0= RULE_INT ;
     public final AntlrDatatypeRuleToken ruleLOWER() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -28378,8 +28454,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9748:28: (this_INT_0= RULE_INT )
-            // InternalOCLinEcore.g:9749:5: this_INT_0= RULE_INT
+            // InternalOCLinEcore.g:9780:28: (this_INT_0= RULE_INT )
+            // InternalOCLinEcore.g:9781:5: this_INT_0= RULE_INT
             {
             this_INT_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -28412,7 +28488,7 @@
 
 
     // $ANTLR start "entryRuleNUMBER_LITERAL"
-    // InternalOCLinEcore.g:9764:1: entryRuleNUMBER_LITERAL returns [String current=null] : iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF ;
+    // InternalOCLinEcore.g:9796:1: entryRuleNUMBER_LITERAL returns [String current=null] : iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF ;
     public final String entryRuleNUMBER_LITERAL() throws RecognitionException {
         String current = null;
 
@@ -28420,8 +28496,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9765:2: (iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF )
-            // InternalOCLinEcore.g:9766:2: iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF
+            // InternalOCLinEcore.g:9797:2: (iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF )
+            // InternalOCLinEcore.g:9798:2: iv_ruleNUMBER_LITERAL= ruleNUMBER_LITERAL EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNUMBER_LITERALRule()); 
@@ -28452,7 +28528,7 @@
 
 
     // $ANTLR start "ruleNUMBER_LITERAL"
-    // InternalOCLinEcore.g:9773:1: ruleNUMBER_LITERAL returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_INT_0= RULE_INT ;
+    // InternalOCLinEcore.g:9805:1: ruleNUMBER_LITERAL returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_INT_0= RULE_INT ;
     public final AntlrDatatypeRuleToken ruleNUMBER_LITERAL() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -28461,8 +28537,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9776:28: (this_INT_0= RULE_INT )
-            // InternalOCLinEcore.g:9777:5: this_INT_0= RULE_INT
+            // InternalOCLinEcore.g:9808:28: (this_INT_0= RULE_INT )
+            // InternalOCLinEcore.g:9809:5: this_INT_0= RULE_INT
             {
             this_INT_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -28495,7 +28571,7 @@
 
 
     // $ANTLR start "entryRuleStringLiteral"
-    // InternalOCLinEcore.g:9792:1: entryRuleStringLiteral returns [String current=null] : iv_ruleStringLiteral= ruleStringLiteral EOF ;
+    // InternalOCLinEcore.g:9824:1: entryRuleStringLiteral returns [String current=null] : iv_ruleStringLiteral= ruleStringLiteral EOF ;
     public final String entryRuleStringLiteral() throws RecognitionException {
         String current = null;
 
@@ -28503,8 +28579,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9793:2: (iv_ruleStringLiteral= ruleStringLiteral EOF )
-            // InternalOCLinEcore.g:9794:2: iv_ruleStringLiteral= ruleStringLiteral EOF
+            // InternalOCLinEcore.g:9825:2: (iv_ruleStringLiteral= ruleStringLiteral EOF )
+            // InternalOCLinEcore.g:9826:2: iv_ruleStringLiteral= ruleStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStringLiteralRule()); 
@@ -28535,7 +28611,7 @@
 
 
     // $ANTLR start "ruleStringLiteral"
-    // InternalOCLinEcore.g:9801:1: ruleStringLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING ;
+    // InternalOCLinEcore.g:9833:1: ruleStringLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING ;
     public final AntlrDatatypeRuleToken ruleStringLiteral() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -28544,8 +28620,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9804:28: (this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:9805:5: this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:9836:28: (this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:9837:5: this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING
             {
             this_SINGLE_QUOTED_STRING_0=(Token)match(input,RULE_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -28578,7 +28654,7 @@
 
 
     // $ANTLR start "entryRuleUPPER"
-    // InternalOCLinEcore.g:9820:1: entryRuleUPPER returns [String current=null] : iv_ruleUPPER= ruleUPPER EOF ;
+    // InternalOCLinEcore.g:9852:1: entryRuleUPPER returns [String current=null] : iv_ruleUPPER= ruleUPPER EOF ;
     public final String entryRuleUPPER() throws RecognitionException {
         String current = null;
 
@@ -28586,8 +28662,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9821:2: (iv_ruleUPPER= ruleUPPER EOF )
-            // InternalOCLinEcore.g:9822:2: iv_ruleUPPER= ruleUPPER EOF
+            // InternalOCLinEcore.g:9853:2: (iv_ruleUPPER= ruleUPPER EOF )
+            // InternalOCLinEcore.g:9854:2: iv_ruleUPPER= ruleUPPER EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getUPPERRule()); 
@@ -28618,7 +28694,7 @@
 
 
     // $ANTLR start "ruleUPPER"
-    // InternalOCLinEcore.g:9829:1: ruleUPPER returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
+    // InternalOCLinEcore.g:9861:1: ruleUPPER returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
     public final AntlrDatatypeRuleToken ruleUPPER() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -28628,10 +28704,10 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9832:28: ( (this_INT_0= RULE_INT | kw= '*' ) )
-            // InternalOCLinEcore.g:9833:1: (this_INT_0= RULE_INT | kw= '*' )
+            // InternalOCLinEcore.g:9864:28: ( (this_INT_0= RULE_INT | kw= '*' ) )
+            // InternalOCLinEcore.g:9865:1: (this_INT_0= RULE_INT | kw= '*' )
             {
-            // InternalOCLinEcore.g:9833:1: (this_INT_0= RULE_INT | kw= '*' )
+            // InternalOCLinEcore.g:9865:1: (this_INT_0= RULE_INT | kw= '*' )
             int alt212=2;
             int LA212_0 = input.LA(1);
 
@@ -28650,7 +28726,7 @@
             }
             switch (alt212) {
                 case 1 :
-                    // InternalOCLinEcore.g:9833:6: this_INT_0= RULE_INT
+                    // InternalOCLinEcore.g:9865:6: this_INT_0= RULE_INT
                     {
                     this_INT_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -28667,7 +28743,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalOCLinEcore.g:9842:2: kw= '*'
+                    // InternalOCLinEcore.g:9874:2: kw= '*'
                     {
                     kw=(Token)match(input,83,FollowSets000.FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -28702,7 +28778,7 @@
 
 
     // $ANTLR start "entryRuleURI"
-    // InternalOCLinEcore.g:9855:1: entryRuleURI returns [String current=null] : iv_ruleURI= ruleURI EOF ;
+    // InternalOCLinEcore.g:9887:1: entryRuleURI returns [String current=null] : iv_ruleURI= ruleURI EOF ;
     public final String entryRuleURI() throws RecognitionException {
         String current = null;
 
@@ -28710,8 +28786,8 @@
 
 
         try {
-            // InternalOCLinEcore.g:9856:2: (iv_ruleURI= ruleURI EOF )
-            // InternalOCLinEcore.g:9857:2: iv_ruleURI= ruleURI EOF
+            // InternalOCLinEcore.g:9888:2: (iv_ruleURI= ruleURI EOF )
+            // InternalOCLinEcore.g:9889:2: iv_ruleURI= ruleURI EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getURIRule()); 
@@ -28742,7 +28818,7 @@
 
 
     // $ANTLR start "ruleURI"
-    // InternalOCLinEcore.g:9864:1: ruleURI returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING ;
+    // InternalOCLinEcore.g:9896:1: ruleURI returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING ;
     public final AntlrDatatypeRuleToken ruleURI() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -28751,8 +28827,8 @@
          enterRule(); 
             
         try {
-            // InternalOCLinEcore.g:9867:28: (this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING )
-            // InternalOCLinEcore.g:9868:5: this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING
+            // InternalOCLinEcore.g:9899:28: (this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING )
+            // InternalOCLinEcore.g:9900:5: this_SINGLE_QUOTED_STRING_0= RULE_SINGLE_QUOTED_STRING
             {
             this_SINGLE_QUOTED_STRING_0=(Token)match(input,RULE_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -28783,13 +28859,13 @@
     }
     // $ANTLR end "ruleURI"
 
-    // $ANTLR start synpred302_InternalOCLinEcore
-    public final void synpred302_InternalOCLinEcore_fragment() throws RecognitionException {   
+    // $ANTLR start synpred304_InternalOCLinEcore
+    public final void synpred304_InternalOCLinEcore_fragment() throws RecognitionException {   
         EObject this_TypeLiteralCS_1 = null;
 
 
-        // InternalOCLinEcore.g:7215:2: (this_TypeLiteralCS_1= ruleTypeLiteralCS )
-        // InternalOCLinEcore.g:7215:2: this_TypeLiteralCS_1= ruleTypeLiteralCS
+        // InternalOCLinEcore.g:7247:2: (this_TypeLiteralCS_1= ruleTypeLiteralCS )
+        // InternalOCLinEcore.g:7247:2: this_TypeLiteralCS_1= ruleTypeLiteralCS
         {
         if ( state.backtracking==0 ) {
            
@@ -28804,10 +28880,10 @@
 
         }
     }
-    // $ANTLR end synpred302_InternalOCLinEcore
+    // $ANTLR end synpred304_InternalOCLinEcore
 
-    // $ANTLR start synpred305_InternalOCLinEcore
-    public final void synpred305_InternalOCLinEcore_fragment() throws RecognitionException {   
+    // $ANTLR start synpred307_InternalOCLinEcore
+    public final void synpred307_InternalOCLinEcore_fragment() throws RecognitionException {   
         EObject this_PrefixedPrimaryExpCS_0 = null;
 
         AntlrDatatypeRuleToken lv_name_2_0 = null;
@@ -28815,11 +28891,11 @@
         EObject lv_ownedRight_3_0 = null;
 
 
-        // InternalOCLinEcore.g:7278:2: ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) )
-        // InternalOCLinEcore.g:7278:2: (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? )
+        // InternalOCLinEcore.g:7310:2: ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) )
+        // InternalOCLinEcore.g:7310:2: (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? )
         {
-        // InternalOCLinEcore.g:7278:2: (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? )
-        // InternalOCLinEcore.g:7279:2: this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )?
+        // InternalOCLinEcore.g:7310:2: (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? )
+        // InternalOCLinEcore.g:7311:2: this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )?
         {
         if ( state.backtracking==0 ) {
            
@@ -28831,7 +28907,7 @@
 
         state._fsp--;
         if (state.failed) return ;
-        // InternalOCLinEcore.g:7290:1: ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )?
+        // InternalOCLinEcore.g:7322:1: ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )?
         int alt294=2;
         int LA294_0 = input.LA(1);
 
@@ -28840,10 +28916,10 @@
         }
         switch (alt294) {
             case 1 :
-                // InternalOCLinEcore.g:7290:2: () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) )
+                // InternalOCLinEcore.g:7322:2: () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) )
                 {
-                // InternalOCLinEcore.g:7290:2: ()
-                // InternalOCLinEcore.g:7291:2: 
+                // InternalOCLinEcore.g:7322:2: ()
+                // InternalOCLinEcore.g:7323:2: 
                 {
                 if ( state.backtracking==0 ) {
                    
@@ -28853,11 +28929,11 @@
 
                 }
 
-                // InternalOCLinEcore.g:7299:2: ( (lv_name_2_0= ruleBinaryOperatorName ) )
-                // InternalOCLinEcore.g:7300:1: (lv_name_2_0= ruleBinaryOperatorName )
+                // InternalOCLinEcore.g:7331:2: ( (lv_name_2_0= ruleBinaryOperatorName ) )
+                // InternalOCLinEcore.g:7332:1: (lv_name_2_0= ruleBinaryOperatorName )
                 {
-                // InternalOCLinEcore.g:7300:1: (lv_name_2_0= ruleBinaryOperatorName )
-                // InternalOCLinEcore.g:7301:3: lv_name_2_0= ruleBinaryOperatorName
+                // InternalOCLinEcore.g:7332:1: (lv_name_2_0= ruleBinaryOperatorName )
+                // InternalOCLinEcore.g:7333:3: lv_name_2_0= ruleBinaryOperatorName
                 {
                 if ( state.backtracking==0 ) {
                    
@@ -28875,11 +28951,11 @@
 
                 }
 
-                // InternalOCLinEcore.g:7317:2: ( (lv_ownedRight_3_0= ruleExpCS ) )
-                // InternalOCLinEcore.g:7318:1: (lv_ownedRight_3_0= ruleExpCS )
+                // InternalOCLinEcore.g:7349:2: ( (lv_ownedRight_3_0= ruleExpCS ) )
+                // InternalOCLinEcore.g:7350:1: (lv_ownedRight_3_0= ruleExpCS )
                 {
-                // InternalOCLinEcore.g:7318:1: (lv_ownedRight_3_0= ruleExpCS )
-                // InternalOCLinEcore.g:7319:3: lv_ownedRight_3_0= ruleExpCS
+                // InternalOCLinEcore.g:7350:1: (lv_ownedRight_3_0= ruleExpCS )
+                // InternalOCLinEcore.g:7351:3: lv_ownedRight_3_0= ruleExpCS
                 {
                 if ( state.backtracking==0 ) {
                    
@@ -28909,15 +28985,15 @@
 
         }
     }
-    // $ANTLR end synpred305_InternalOCLinEcore
+    // $ANTLR end synpred307_InternalOCLinEcore
 
-    // $ANTLR start synpred312_InternalOCLinEcore
-    public final void synpred312_InternalOCLinEcore_fragment() throws RecognitionException {   
+    // $ANTLR start synpred314_InternalOCLinEcore
+    public final void synpred314_InternalOCLinEcore_fragment() throws RecognitionException {   
         EObject this_TupleLiteralExpCS_4 = null;
 
 
-        // InternalOCLinEcore.g:7580:2: (this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS )
-        // InternalOCLinEcore.g:7580:2: this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS
+        // InternalOCLinEcore.g:7612:2: (this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS )
+        // InternalOCLinEcore.g:7612:2: this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS
         {
         if ( state.backtracking==0 ) {
            
@@ -28932,15 +29008,15 @@
 
         }
     }
-    // $ANTLR end synpred312_InternalOCLinEcore
+    // $ANTLR end synpred314_InternalOCLinEcore
 
-    // $ANTLR start synpred313_InternalOCLinEcore
-    public final void synpred313_InternalOCLinEcore_fragment() throws RecognitionException {   
+    // $ANTLR start synpred315_InternalOCLinEcore
+    public final void synpred315_InternalOCLinEcore_fragment() throws RecognitionException {   
         EObject this_MapLiteralExpCS_5 = null;
 
 
-        // InternalOCLinEcore.g:7593:2: (this_MapLiteralExpCS_5= ruleMapLiteralExpCS )
-        // InternalOCLinEcore.g:7593:2: this_MapLiteralExpCS_5= ruleMapLiteralExpCS
+        // InternalOCLinEcore.g:7625:2: (this_MapLiteralExpCS_5= ruleMapLiteralExpCS )
+        // InternalOCLinEcore.g:7625:2: this_MapLiteralExpCS_5= ruleMapLiteralExpCS
         {
         if ( state.backtracking==0 ) {
            
@@ -28955,15 +29031,15 @@
 
         }
     }
-    // $ANTLR end synpred313_InternalOCLinEcore
+    // $ANTLR end synpred315_InternalOCLinEcore
 
-    // $ANTLR start synpred314_InternalOCLinEcore
-    public final void synpred314_InternalOCLinEcore_fragment() throws RecognitionException {   
+    // $ANTLR start synpred316_InternalOCLinEcore
+    public final void synpred316_InternalOCLinEcore_fragment() throws RecognitionException {   
         EObject this_CollectionLiteralExpCS_6 = null;
 
 
-        // InternalOCLinEcore.g:7606:2: (this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS )
-        // InternalOCLinEcore.g:7606:2: this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS
+        // InternalOCLinEcore.g:7638:2: (this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS )
+        // InternalOCLinEcore.g:7638:2: this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS
         {
         if ( state.backtracking==0 ) {
            
@@ -28978,15 +29054,15 @@
 
         }
     }
-    // $ANTLR end synpred314_InternalOCLinEcore
+    // $ANTLR end synpred316_InternalOCLinEcore
 
-    // $ANTLR start synpred316_InternalOCLinEcore
-    public final void synpred316_InternalOCLinEcore_fragment() throws RecognitionException {   
+    // $ANTLR start synpred318_InternalOCLinEcore
+    public final void synpred318_InternalOCLinEcore_fragment() throws RecognitionException {   
         EObject this_TypeLiteralExpCS_8 = null;
 
 
-        // InternalOCLinEcore.g:7632:2: (this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS )
-        // InternalOCLinEcore.g:7632:2: this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS
+        // InternalOCLinEcore.g:7664:2: (this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS )
+        // InternalOCLinEcore.g:7664:2: this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS
         {
         if ( state.backtracking==0 ) {
            
@@ -29001,7 +29077,7 @@
 
         }
     }
-    // $ANTLR end synpred316_InternalOCLinEcore
+    // $ANTLR end synpred318_InternalOCLinEcore
 
     // Delegated rules
 
@@ -29019,11 +29095,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred313_InternalOCLinEcore() {
+    public final boolean synpred307_InternalOCLinEcore() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred313_InternalOCLinEcore_fragment(); // can never throw exception
+            synpred307_InternalOCLinEcore_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -29033,25 +29109,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred305_InternalOCLinEcore() {
+    public final boolean synpred315_InternalOCLinEcore() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred305_InternalOCLinEcore_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred312_InternalOCLinEcore() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred312_InternalOCLinEcore_fragment(); // can never throw exception
+            synpred315_InternalOCLinEcore_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -29075,11 +29137,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred302_InternalOCLinEcore() {
+    public final boolean synpred304_InternalOCLinEcore() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred302_InternalOCLinEcore_fragment(); // can never throw exception
+            synpred304_InternalOCLinEcore_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred318_InternalOCLinEcore() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred318_InternalOCLinEcore_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -29268,7 +29344,7 @@
             this.transition = dfa_18;
         }
         public String getDescription() {
-            return "()* loopback of 4164:1: ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )*";
+            return "()* loopback of 4196:1: ( ( (lv_ownedAnnotations_14_0= ruleAnnotationElementCS ) ) | ( (lv_ownedOperations_15_0= ruleOperationCS ) ) | ( (lv_ownedProperties_16_0= ruleStructuralFeatureCS ) ) | ( (lv_ownedConstraints_17_0= ruleInvariantConstraintCS ) ) )*";
         }
     }
     static final String dfa_19s = "\2\uffff\53\1\1\uffff";
@@ -29343,7 +29419,7 @@
             this.transition = dfa_23;
         }
         public String getDescription() {
-            return "5942:1: ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) )";
+            return "5974:1: ( ( ( (lv_ownedExpression_0_0= ruleExpCS ) ) (otherlv_1= '..' ( (lv_ownedLastExpression_2_0= ruleExpCS ) ) )? ) | ( (lv_ownedExpression_3_0= rulePatternExpCS ) ) )";
         }
     }
     static final String[] dfa_24s = {
@@ -29410,7 +29486,7 @@
             this.transition = dfa_24;
         }
         public String getDescription() {
-            return "6155:1: (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS )";
+            return "6187:1: (lv_ownedInitExpression_2_1= ruleExpCS | lv_ownedInitExpression_2_2= rulePatternExpCS )";
         }
     }
     static final String dfa_25s = "\74\uffff";
@@ -29502,7 +29578,7 @@
             this.transition = dfa_30;
         }
         public String getDescription() {
-            return "7201:2: (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS )";
+            return "7233:2: (this_TypeNameExpCS_0= ruleTypeNameExpCS | this_TypeLiteralCS_1= ruleTypeLiteralCS | this_CollectionPatternCS_2= ruleCollectionPatternCS )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -29515,7 +29591,7 @@
                         int index165_52 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred302_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred304_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -29530,7 +29606,7 @@
                         int index165_53 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred302_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred304_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -29545,7 +29621,7 @@
                         int index165_54 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred302_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred304_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -29560,7 +29636,7 @@
                         int index165_55 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred302_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred304_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -29575,7 +29651,7 @@
                         int index165_56 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred302_InternalOCLinEcore()) ) {s = 44;}
+                        if ( (synpred304_InternalOCLinEcore()) ) {s = 44;}
 
                         else if ( (true) ) {s = 59;}
 
@@ -29693,7 +29769,7 @@
             this.transition = dfa_36;
         }
         public String getDescription() {
-            return "7278:1: ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS )";
+            return "7310:1: ( (this_PrefixedPrimaryExpCS_0= rulePrefixedPrimaryExpCS ( () ( (lv_name_2_0= ruleBinaryOperatorName ) ) ( (lv_ownedRight_3_0= ruleExpCS ) ) )? ) | this_PrefixedLetExpCS_4= rulePrefixedLetExpCS )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -29706,7 +29782,7 @@
                         int index168_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred305_InternalOCLinEcore()) ) {s = 3;}
+                        if ( (synpred307_InternalOCLinEcore()) ) {s = 3;}
 
                         else if ( (true) ) {s = 72;}
 
@@ -29721,7 +29797,7 @@
                         int index168_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred305_InternalOCLinEcore()) ) {s = 3;}
+                        if ( (synpred307_InternalOCLinEcore()) ) {s = 3;}
 
                         else if ( (true) ) {s = 72;}
 
@@ -29836,7 +29912,7 @@
             this.transition = dfa_41;
         }
         public String getDescription() {
-            return "7527:1: (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS )";
+            return "7559:1: (this_NestedExpCS_0= ruleNestedExpCS | this_IfExpCS_1= ruleIfExpCS | this_SelfExpCS_2= ruleSelfExpCS | this_PrimitiveLiteralExpCS_3= rulePrimitiveLiteralExpCS | this_TupleLiteralExpCS_4= ruleTupleLiteralExpCS | this_MapLiteralExpCS_5= ruleMapLiteralExpCS | this_CollectionLiteralExpCS_6= ruleCollectionLiteralExpCS | this_LambdaLiteralExpCS_7= ruleLambdaLiteralExpCS | this_TypeLiteralExpCS_8= ruleTypeLiteralExpCS | this_NameExpCS_9= ruleNameExpCS )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -29849,9 +29925,9 @@
                         int index171_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred312_InternalOCLinEcore()) ) {s = 70;}
+                        if ( (synpred314_InternalOCLinEcore()) ) {s = 70;}
 
-                        else if ( (synpred316_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred318_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index171_11);
@@ -29864,9 +29940,9 @@
                         int index171_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred313_InternalOCLinEcore()) ) {s = 71;}
+                        if ( (synpred315_InternalOCLinEcore()) ) {s = 71;}
 
-                        else if ( (synpred316_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred318_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index171_12);
@@ -29879,9 +29955,9 @@
                         int index171_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred314_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred316_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred316_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred318_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index171_13);
@@ -29894,9 +29970,9 @@
                         int index171_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred314_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred316_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred316_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred318_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index171_14);
@@ -29909,9 +29985,9 @@
                         int index171_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred314_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred316_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred316_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred318_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index171_15);
@@ -29924,9 +30000,9 @@
                         int index171_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred314_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred316_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred316_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred318_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index171_16);
@@ -29939,9 +30015,9 @@
                         int index171_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred314_InternalOCLinEcore()) ) {s = 72;}
+                        if ( (synpred316_InternalOCLinEcore()) ) {s = 72;}
 
-                        else if ( (synpred316_InternalOCLinEcore()) ) {s = 19;}
+                        else if ( (synpred318_InternalOCLinEcore()) ) {s = 19;}
 
                          
                         input.seek(index171_17);
@@ -30021,7 +30097,7 @@
             this.transition = dfa_43;
         }
         public String getDescription() {
-            return "8586:1: (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS )";
+            return "8618:1: (lv_ownedCondition_1_1= ruleExpCS | lv_ownedCondition_1_2= rulePatternExpCS )";
         }
     }
  
@@ -30086,9 +30162,9 @@
         public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x1301000000000000L});
         public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x1201000000000000L});
         public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x1A00000000000000L});
-        public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x8004004010000000L,0x0000000000000012L});
-        public static final BitSet FOLLOW_60 = new BitSet(new long[]{0xA804004010000000L,0x0000000000000012L});
-        public static final BitSet FOLLOW_61 = new BitSet(new long[]{0xA004004010000000L,0x0000000000000012L});
+        public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x8006004010000000L,0x000000000000001AL});
+        public static final BitSet FOLLOW_60 = new BitSet(new long[]{0xA806004010000000L,0x000000000000001AL});
+        public static final BitSet FOLLOW_61 = new BitSet(new long[]{0xA006004010000000L,0x000000000000001AL});
         public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x2400030000200000L,0x0000000000008200L});
         public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x2400048022880000L,0x0000000000008200L});
         public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x1100000000000002L});
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSemanticSequencer.java b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSemanticSequencer.java
index 37b1cb8..8f96b3b 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSemanticSequencer.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSemanticSequencer.java
@@ -707,7 +707,15 @@
 	 *         (ownedExceptions+=TypedRefCS ownedExceptions+=TypedRefCS*)? 
 	 *         qualifiers+='derived'? 
 	 *         (
-	 *             (qualifiers+='!derived' | qualifiers+='ordered' | qualifiers+='!ordered' | qualifiers+='unique' | qualifiers+='!unique')? 
+	 *             (
+	 *                 qualifiers+='!derived' | 
+	 *                 qualifiers+='ordered' | 
+	 *                 qualifiers+='!ordered' | 
+	 *                 qualifiers+='transient' | 
+	 *                 qualifiers+='!transient' | 
+	 *                 qualifiers+='unique' | 
+	 *                 qualifiers+='!unique'
+	 *             )? 
 	 *             qualifiers+='derived'?
 	 *         )* 
 	 *         (
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSyntacticSequencer.java b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSyntacticSequencer.java
index 1877bf4..443bd98 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSyntacticSequencer.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSyntacticSequencer.java
@@ -1882,9 +1882,11 @@
 	 *     qualifiers+='!derived' (ambiguity) '}' (('{' ('body' UnrestrictedName? ':' ';')* '}') | ';') (rule end)
 	 *     qualifiers+='!derived' (ambiguity) qualifiers+='!derived'
 	 *     qualifiers+='!derived' (ambiguity) qualifiers+='!ordered'
+	 *     qualifiers+='!derived' (ambiguity) qualifiers+='!transient'
 	 *     qualifiers+='!derived' (ambiguity) qualifiers+='!unique'
 	 *     qualifiers+='!derived' (ambiguity) qualifiers+='derived'
 	 *     qualifiers+='!derived' (ambiguity) qualifiers+='ordered'
+	 *     qualifiers+='!derived' (ambiguity) qualifiers+='transient'
 	 *     qualifiers+='!derived' (ambiguity) qualifiers+='unique'
 	 *     qualifiers+='!ordered' (ambiguity) '}' '{' 'body' UnrestrictedName? ':' (';' 'body' UnrestrictedName? ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='!ordered' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedAnnotations+=AnnotationElementCS
@@ -1894,10 +1896,26 @@
 	 *     qualifiers+='!ordered' (ambiguity) '}' (('{' ('body' UnrestrictedName? ':' ';')* '}') | ';') (rule end)
 	 *     qualifiers+='!ordered' (ambiguity) qualifiers+='!derived'
 	 *     qualifiers+='!ordered' (ambiguity) qualifiers+='!ordered'
+	 *     qualifiers+='!ordered' (ambiguity) qualifiers+='!transient'
 	 *     qualifiers+='!ordered' (ambiguity) qualifiers+='!unique'
 	 *     qualifiers+='!ordered' (ambiguity) qualifiers+='derived'
 	 *     qualifiers+='!ordered' (ambiguity) qualifiers+='ordered'
+	 *     qualifiers+='!ordered' (ambiguity) qualifiers+='transient'
 	 *     qualifiers+='!ordered' (ambiguity) qualifiers+='unique'
+	 *     qualifiers+='!transient' (ambiguity) '}' '{' 'body' UnrestrictedName? ':' (';' 'body' UnrestrictedName? ':')* ownedBodyExpressions+=SpecificationCS
+	 *     qualifiers+='!transient' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedAnnotations+=AnnotationElementCS
+	 *     qualifiers+='!transient' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedPostconditions+=PostconditionConstraintCS
+	 *     qualifiers+='!transient' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedPreconditions+=PreconditionConstraintCS
+	 *     qualifiers+='!transient' (ambiguity) '}' (';' | ('{' ('body' UnrestrictedName? ':' ';')* '}')) (rule end)
+	 *     qualifiers+='!transient' (ambiguity) '}' (('{' ('body' UnrestrictedName? ':' ';')* '}') | ';') (rule end)
+	 *     qualifiers+='!transient' (ambiguity) qualifiers+='!derived'
+	 *     qualifiers+='!transient' (ambiguity) qualifiers+='!ordered'
+	 *     qualifiers+='!transient' (ambiguity) qualifiers+='!transient'
+	 *     qualifiers+='!transient' (ambiguity) qualifiers+='!unique'
+	 *     qualifiers+='!transient' (ambiguity) qualifiers+='derived'
+	 *     qualifiers+='!transient' (ambiguity) qualifiers+='ordered'
+	 *     qualifiers+='!transient' (ambiguity) qualifiers+='transient'
+	 *     qualifiers+='!transient' (ambiguity) qualifiers+='unique'
 	 *     qualifiers+='!unique' (ambiguity) '}' '{' 'body' UnrestrictedName? ':' (';' 'body' UnrestrictedName? ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='!unique' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedAnnotations+=AnnotationElementCS
 	 *     qualifiers+='!unique' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedPostconditions+=PostconditionConstraintCS
@@ -1906,9 +1924,11 @@
 	 *     qualifiers+='!unique' (ambiguity) '}' (('{' ('body' UnrestrictedName? ':' ';')* '}') | ';') (rule end)
 	 *     qualifiers+='!unique' (ambiguity) qualifiers+='!derived'
 	 *     qualifiers+='!unique' (ambiguity) qualifiers+='!ordered'
+	 *     qualifiers+='!unique' (ambiguity) qualifiers+='!transient'
 	 *     qualifiers+='!unique' (ambiguity) qualifiers+='!unique'
 	 *     qualifiers+='!unique' (ambiguity) qualifiers+='derived'
 	 *     qualifiers+='!unique' (ambiguity) qualifiers+='ordered'
+	 *     qualifiers+='!unique' (ambiguity) qualifiers+='transient'
 	 *     qualifiers+='!unique' (ambiguity) qualifiers+='unique'
 	 *     qualifiers+='derived' (ambiguity) '}' '{' 'body' UnrestrictedName? ':' (';' 'body' UnrestrictedName? ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='derived' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedAnnotations+=AnnotationElementCS
@@ -1918,9 +1938,11 @@
 	 *     qualifiers+='derived' (ambiguity) '}' (('{' ('body' UnrestrictedName? ':' ';')* '}') | ';') (rule end)
 	 *     qualifiers+='derived' (ambiguity) qualifiers+='!derived'
 	 *     qualifiers+='derived' (ambiguity) qualifiers+='!ordered'
+	 *     qualifiers+='derived' (ambiguity) qualifiers+='!transient'
 	 *     qualifiers+='derived' (ambiguity) qualifiers+='!unique'
 	 *     qualifiers+='derived' (ambiguity) qualifiers+='derived'
 	 *     qualifiers+='derived' (ambiguity) qualifiers+='ordered'
+	 *     qualifiers+='derived' (ambiguity) qualifiers+='transient'
 	 *     qualifiers+='derived' (ambiguity) qualifiers+='unique'
 	 *     qualifiers+='ordered' (ambiguity) '}' '{' 'body' UnrestrictedName? ':' (';' 'body' UnrestrictedName? ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='ordered' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedAnnotations+=AnnotationElementCS
@@ -1930,10 +1952,26 @@
 	 *     qualifiers+='ordered' (ambiguity) '}' (('{' ('body' UnrestrictedName? ':' ';')* '}') | ';') (rule end)
 	 *     qualifiers+='ordered' (ambiguity) qualifiers+='!derived'
 	 *     qualifiers+='ordered' (ambiguity) qualifiers+='!ordered'
+	 *     qualifiers+='ordered' (ambiguity) qualifiers+='!transient'
 	 *     qualifiers+='ordered' (ambiguity) qualifiers+='!unique'
 	 *     qualifiers+='ordered' (ambiguity) qualifiers+='derived'
 	 *     qualifiers+='ordered' (ambiguity) qualifiers+='ordered'
+	 *     qualifiers+='ordered' (ambiguity) qualifiers+='transient'
 	 *     qualifiers+='ordered' (ambiguity) qualifiers+='unique'
+	 *     qualifiers+='transient' (ambiguity) '}' '{' 'body' UnrestrictedName? ':' (';' 'body' UnrestrictedName? ':')* ownedBodyExpressions+=SpecificationCS
+	 *     qualifiers+='transient' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedAnnotations+=AnnotationElementCS
+	 *     qualifiers+='transient' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedPostconditions+=PostconditionConstraintCS
+	 *     qualifiers+='transient' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedPreconditions+=PreconditionConstraintCS
+	 *     qualifiers+='transient' (ambiguity) '}' (';' | ('{' ('body' UnrestrictedName? ':' ';')* '}')) (rule end)
+	 *     qualifiers+='transient' (ambiguity) '}' (('{' ('body' UnrestrictedName? ':' ';')* '}') | ';') (rule end)
+	 *     qualifiers+='transient' (ambiguity) qualifiers+='!derived'
+	 *     qualifiers+='transient' (ambiguity) qualifiers+='!ordered'
+	 *     qualifiers+='transient' (ambiguity) qualifiers+='!transient'
+	 *     qualifiers+='transient' (ambiguity) qualifiers+='!unique'
+	 *     qualifiers+='transient' (ambiguity) qualifiers+='derived'
+	 *     qualifiers+='transient' (ambiguity) qualifiers+='ordered'
+	 *     qualifiers+='transient' (ambiguity) qualifiers+='transient'
+	 *     qualifiers+='transient' (ambiguity) qualifiers+='unique'
 	 *     qualifiers+='unique' (ambiguity) '}' '{' 'body' UnrestrictedName? ':' (';' 'body' UnrestrictedName? ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='unique' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedAnnotations+=AnnotationElementCS
 	 *     qualifiers+='unique' (ambiguity) '}' '{' ('body' UnrestrictedName? ':' ';')* ownedPostconditions+=PostconditionConstraintCS
@@ -1942,9 +1980,11 @@
 	 *     qualifiers+='unique' (ambiguity) '}' (('{' ('body' UnrestrictedName? ':' ';')* '}') | ';') (rule end)
 	 *     qualifiers+='unique' (ambiguity) qualifiers+='!derived'
 	 *     qualifiers+='unique' (ambiguity) qualifiers+='!ordered'
+	 *     qualifiers+='unique' (ambiguity) qualifiers+='!transient'
 	 *     qualifiers+='unique' (ambiguity) qualifiers+='!unique'
 	 *     qualifiers+='unique' (ambiguity) qualifiers+='derived'
 	 *     qualifiers+='unique' (ambiguity) qualifiers+='ordered'
+	 *     qualifiers+='unique' (ambiguity) qualifiers+='transient'
 	 *     qualifiers+='unique' (ambiguity) qualifiers+='unique'
 	 */
 	protected void emit_OperationCS_CommaKeyword_9_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
@@ -1962,9 +2002,11 @@
 	 *     ownedType=TypedMultiplicityRefCS (ambiguity) (rule end)
 	 *     qualifiers+='!derived' ','? '}' (ambiguity) (rule end)
 	 *     qualifiers+='!ordered' ','? '}' (ambiguity) (rule end)
+	 *     qualifiers+='!transient' ','? '}' (ambiguity) (rule end)
 	 *     qualifiers+='!unique' ','? '}' (ambiguity) (rule end)
 	 *     qualifiers+='derived' ','? '}' (ambiguity) (rule end)
 	 *     qualifiers+='ordered' ','? '}' (ambiguity) (rule end)
+	 *     qualifiers+='transient' ','? '}' (ambiguity) (rule end)
 	 *     qualifiers+='unique' ','? '}' (ambiguity) (rule end)
 	 */
 	protected void emit_OperationCS_SemicolonKeyword_10_1_or___LeftCurlyBracketKeyword_10_0_0___BodyKeyword_10_0_1_2_0_UnrestrictedNameParserRuleCall_10_0_1_2_1_q_ColonKeyword_10_0_1_2_2_SemicolonKeyword_10_0_1_2_4__a_RightCurlyBracketKeyword_10_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
@@ -1985,9 +2027,11 @@
 	 *     ownedType=TypedMultiplicityRefCS '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='!derived' ','? '}' '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='!ordered' ','? '}' '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
+	 *     qualifiers+='!transient' ','? '}' '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='!unique' ','? '}' '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='derived' ','? '}' '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='ordered' ','? '}' '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
+	 *     qualifiers+='transient' ','? '}' '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='unique' ','? '}' '{' 'body' (ambiguity) ':' (';' 'body' (ambiguity) ':')* ownedBodyExpressions+=SpecificationCS
 	 */
 	protected void emit_OperationCS_UnrestrictedNameParserRuleCall_10_0_1_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
@@ -2033,6 +2077,9 @@
 	 *     qualifiers+='!ordered' ','? '}' '{' (ambiguity) ownedAnnotations+=AnnotationElementCS
 	 *     qualifiers+='!ordered' ','? '}' '{' (ambiguity) ownedPostconditions+=PostconditionConstraintCS
 	 *     qualifiers+='!ordered' ','? '}' '{' (ambiguity) ownedPreconditions+=PreconditionConstraintCS
+	 *     qualifiers+='!transient' ','? '}' '{' (ambiguity) ownedAnnotations+=AnnotationElementCS
+	 *     qualifiers+='!transient' ','? '}' '{' (ambiguity) ownedPostconditions+=PostconditionConstraintCS
+	 *     qualifiers+='!transient' ','? '}' '{' (ambiguity) ownedPreconditions+=PreconditionConstraintCS
 	 *     qualifiers+='!unique' ','? '}' '{' (ambiguity) ownedAnnotations+=AnnotationElementCS
 	 *     qualifiers+='!unique' ','? '}' '{' (ambiguity) ownedPostconditions+=PostconditionConstraintCS
 	 *     qualifiers+='!unique' ','? '}' '{' (ambiguity) ownedPreconditions+=PreconditionConstraintCS
@@ -2042,6 +2089,9 @@
 	 *     qualifiers+='ordered' ','? '}' '{' (ambiguity) ownedAnnotations+=AnnotationElementCS
 	 *     qualifiers+='ordered' ','? '}' '{' (ambiguity) ownedPostconditions+=PostconditionConstraintCS
 	 *     qualifiers+='ordered' ','? '}' '{' (ambiguity) ownedPreconditions+=PreconditionConstraintCS
+	 *     qualifiers+='transient' ','? '}' '{' (ambiguity) ownedAnnotations+=AnnotationElementCS
+	 *     qualifiers+='transient' ','? '}' '{' (ambiguity) ownedPostconditions+=PostconditionConstraintCS
+	 *     qualifiers+='transient' ','? '}' '{' (ambiguity) ownedPreconditions+=PreconditionConstraintCS
 	 *     qualifiers+='unique' ','? '}' '{' (ambiguity) ownedAnnotations+=AnnotationElementCS
 	 *     qualifiers+='unique' ','? '}' '{' (ambiguity) ownedPostconditions+=PostconditionConstraintCS
 	 *     qualifiers+='unique' ','? '}' '{' (ambiguity) ownedPreconditions+=PreconditionConstraintCS
@@ -2064,9 +2114,11 @@
 	 *     ownedType=TypedMultiplicityRefCS '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='!derived' ','? '}' '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='!ordered' ','? '}' '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
+	 *     qualifiers+='!transient' ','? '}' '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='!unique' ','? '}' '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='derived' ','? '}' '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='ordered' ','? '}' '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
+	 *     qualifiers+='transient' ','? '}' '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
 	 *     qualifiers+='unique' ','? '}' '{' 'body' UnrestrictedName? ':' (ambiguity) ownedBodyExpressions+=SpecificationCS
 	 */
 	protected void emit_OperationCS___SemicolonKeyword_10_0_1_2_4_BodyKeyword_10_0_1_2_0_UnrestrictedNameParserRuleCall_10_0_1_2_1_q_ColonKeyword_10_0_1_2_2__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/services/OCLinEcoreGrammarAccess.java b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/services/OCLinEcoreGrammarAccess.java
index 2b987c5..0f15a0f 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/services/OCLinEcoreGrammarAccess.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/services/OCLinEcoreGrammarAccess.java
@@ -1671,9 +1671,13 @@
 		private final Assignment cQualifiersAssignment_9_1_0_3 = (Assignment)cAlternatives_9_1_0.eContents().get(3);
 		private final Keyword cQualifiersOrderedKeyword_9_1_0_3_0 = (Keyword)cQualifiersAssignment_9_1_0_3.eContents().get(0);
 		private final Assignment cQualifiersAssignment_9_1_0_4 = (Assignment)cAlternatives_9_1_0.eContents().get(4);
-		private final Keyword cQualifiersUniqueKeyword_9_1_0_4_0 = (Keyword)cQualifiersAssignment_9_1_0_4.eContents().get(0);
+		private final Keyword cQualifiersTransientKeyword_9_1_0_4_0 = (Keyword)cQualifiersAssignment_9_1_0_4.eContents().get(0);
 		private final Assignment cQualifiersAssignment_9_1_0_5 = (Assignment)cAlternatives_9_1_0.eContents().get(5);
-		private final Keyword cQualifiersUniqueKeyword_9_1_0_5_0 = (Keyword)cQualifiersAssignment_9_1_0_5.eContents().get(0);
+		private final Keyword cQualifiersTransientKeyword_9_1_0_5_0 = (Keyword)cQualifiersAssignment_9_1_0_5.eContents().get(0);
+		private final Assignment cQualifiersAssignment_9_1_0_6 = (Assignment)cAlternatives_9_1_0.eContents().get(6);
+		private final Keyword cQualifiersUniqueKeyword_9_1_0_6_0 = (Keyword)cQualifiersAssignment_9_1_0_6.eContents().get(0);
+		private final Assignment cQualifiersAssignment_9_1_0_7 = (Assignment)cAlternatives_9_1_0.eContents().get(7);
+		private final Keyword cQualifiersUniqueKeyword_9_1_0_7_0 = (Keyword)cQualifiersAssignment_9_1_0_7.eContents().get(0);
 		private final Keyword cCommaKeyword_9_1_1 = (Keyword)cGroup_9_1.eContents().get(1);
 		private final Keyword cRightCurlyBracketKeyword_9_2 = (Keyword)cGroup_9.eContents().get(2);
 		private final Alternatives cAlternatives_10 = (Alternatives)cGroup.eContents().get(10);
@@ -1701,18 +1705,20 @@
 		//	ownedSignature=TemplateSignatureCS? name=UnrestrictedName '(' (ownedParameters+=ParameterCS (','
 		//	ownedParameters+=ParameterCS)*)? ')' (':' ownedType=TypedMultiplicityRefCS)? ('throws' ownedExceptions+=TypedRefCS
 		//	(',' ownedExceptions+=TypedRefCS)*)? ('{' ((qualifiers+='derived' | qualifiers+='!derived' | qualifiers+='ordered' |
-		//	qualifiers+='!ordered' | qualifiers+='unique' | qualifiers+='!unique') ','?)+ '}')? ('{'
-		//	(ownedAnnotations+=AnnotationElementCS | ownedPreconditions+=PreconditionConstraintCS | 'body' UnrestrictedName? ':'
-		//	ownedBodyExpressions+=SpecificationCS? ';' | ownedPostconditions+=PostconditionConstraintCS)* '}' | ';')
+		//	qualifiers+='!ordered' | qualifiers+='transient' | qualifiers+='!transient' | qualifiers+='unique' |
+		//	qualifiers+='!unique') ','?)+ '}')? ('{' (ownedAnnotations+=AnnotationElementCS |
+		//	ownedPreconditions+=PreconditionConstraintCS | 'body' UnrestrictedName? ':' ownedBodyExpressions+=SpecificationCS?
+		//	';' | ownedPostconditions+=PostconditionConstraintCS)* '}' | ';')
 		@Override public ParserRule getRule() { return rule; }
 
 		//(qualifiers+='static' qualifiers+='definition'? | qualifiers+='definition' qualifiers+='static'?)? 'operation'
 		//ownedSignature=TemplateSignatureCS? name=UnrestrictedName '(' (ownedParameters+=ParameterCS (','
 		//ownedParameters+=ParameterCS)*)? ')' (':' ownedType=TypedMultiplicityRefCS)? ('throws' ownedExceptions+=TypedRefCS
 		//(',' ownedExceptions+=TypedRefCS)*)? ('{' ((qualifiers+='derived' | qualifiers+='!derived' | qualifiers+='ordered' |
-		//qualifiers+='!ordered' | qualifiers+='unique' | qualifiers+='!unique') ','?)+ '}')? ('{'
-		//(ownedAnnotations+=AnnotationElementCS | ownedPreconditions+=PreconditionConstraintCS | 'body' UnrestrictedName? ':'
-		//ownedBodyExpressions+=SpecificationCS? ';' | ownedPostconditions+=PostconditionConstraintCS)* '}' | ';')
+		//qualifiers+='!ordered' | qualifiers+='transient' | qualifiers+='!transient' | qualifiers+='unique' |
+		//qualifiers+='!unique') ','?)+ '}')? ('{' (ownedAnnotations+=AnnotationElementCS |
+		//ownedPreconditions+=PreconditionConstraintCS | 'body' UnrestrictedName? ':' ownedBodyExpressions+=SpecificationCS? ';'
+		//| ownedPostconditions+=PostconditionConstraintCS)* '}' | ';')
 		public Group getGroup() { return cGroup; }
 
 		//(qualifiers+='static' qualifiers+='definition'? | qualifiers+='definition' qualifiers+='static'?)?
@@ -1827,18 +1833,18 @@
 		public RuleCall getOwnedExceptionsTypedRefCSParserRuleCall_8_2_1_0() { return cOwnedExceptionsTypedRefCSParserRuleCall_8_2_1_0; }
 
 		//('{' ((qualifiers+='derived' | qualifiers+='!derived' | qualifiers+='ordered' | qualifiers+='!ordered' |
-		//qualifiers+='unique' | qualifiers+='!unique') ','?)+ '}')?
+		//qualifiers+='transient' | qualifiers+='!transient' | qualifiers+='unique' | qualifiers+='!unique') ','?)+ '}')?
 		public Group getGroup_9() { return cGroup_9; }
 
 		//'{'
 		public Keyword getLeftCurlyBracketKeyword_9_0() { return cLeftCurlyBracketKeyword_9_0; }
 
-		//((qualifiers+='derived' | qualifiers+='!derived' | qualifiers+='ordered' | qualifiers+='!ordered' | qualifiers+='unique'
-		//| qualifiers+='!unique') ','?)+
+		//((qualifiers+='derived' | qualifiers+='!derived' | qualifiers+='ordered' | qualifiers+='!ordered' |
+		//qualifiers+='transient' | qualifiers+='!transient' | qualifiers+='unique' | qualifiers+='!unique') ','?)+
 		public Group getGroup_9_1() { return cGroup_9_1; }
 
-		//(qualifiers+='derived' | qualifiers+='!derived' | qualifiers+='ordered' | qualifiers+='!ordered' | qualifiers+='unique'
-		//| qualifiers+='!unique')
+		//(qualifiers+='derived' | qualifiers+='!derived' | qualifiers+='ordered' | qualifiers+='!ordered' |
+		//qualifiers+='transient' | qualifiers+='!transient' | qualifiers+='unique' | qualifiers+='!unique')
 		public Alternatives getAlternatives_9_1_0() { return cAlternatives_9_1_0; }
 
 		//qualifiers+='derived'
@@ -1865,17 +1871,29 @@
 		//'!ordered'
 		public Keyword getQualifiersOrderedKeyword_9_1_0_3_0() { return cQualifiersOrderedKeyword_9_1_0_3_0; }
 
-		//qualifiers+='unique'
+		//qualifiers+='transient'
 		public Assignment getQualifiersAssignment_9_1_0_4() { return cQualifiersAssignment_9_1_0_4; }
 
-		//'unique'
-		public Keyword getQualifiersUniqueKeyword_9_1_0_4_0() { return cQualifiersUniqueKeyword_9_1_0_4_0; }
+		//'transient'
+		public Keyword getQualifiersTransientKeyword_9_1_0_4_0() { return cQualifiersTransientKeyword_9_1_0_4_0; }
 
-		//qualifiers+='!unique'
+		//qualifiers+='!transient'
 		public Assignment getQualifiersAssignment_9_1_0_5() { return cQualifiersAssignment_9_1_0_5; }
 
+		//'!transient'
+		public Keyword getQualifiersTransientKeyword_9_1_0_5_0() { return cQualifiersTransientKeyword_9_1_0_5_0; }
+
+		//qualifiers+='unique'
+		public Assignment getQualifiersAssignment_9_1_0_6() { return cQualifiersAssignment_9_1_0_6; }
+
+		//'unique'
+		public Keyword getQualifiersUniqueKeyword_9_1_0_6_0() { return cQualifiersUniqueKeyword_9_1_0_6_0; }
+
+		//qualifiers+='!unique'
+		public Assignment getQualifiersAssignment_9_1_0_7() { return cQualifiersAssignment_9_1_0_7; }
+
 		//'!unique'
-		public Keyword getQualifiersUniqueKeyword_9_1_0_5_0() { return cQualifiersUniqueKeyword_9_1_0_5_0; }
+		public Keyword getQualifiersUniqueKeyword_9_1_0_7_0() { return cQualifiersUniqueKeyword_9_1_0_7_0; }
 
 		//','?
 		public Keyword getCommaKeyword_9_1_1() { return cCommaKeyword_9_1_1; }
@@ -3515,9 +3533,10 @@
 	//	ownedSignature=TemplateSignatureCS? name=UnrestrictedName '(' (ownedParameters+=ParameterCS (','
 	//	ownedParameters+=ParameterCS)*)? ')' (':' ownedType=TypedMultiplicityRefCS)? ('throws' ownedExceptions+=TypedRefCS
 	//	(',' ownedExceptions+=TypedRefCS)*)? ('{' ((qualifiers+='derived' | qualifiers+='!derived' | qualifiers+='ordered' |
-	//	qualifiers+='!ordered' | qualifiers+='unique' | qualifiers+='!unique') ','?)+ '}')? ('{'
-	//	(ownedAnnotations+=AnnotationElementCS | ownedPreconditions+=PreconditionConstraintCS | 'body' UnrestrictedName? ':'
-	//	ownedBodyExpressions+=SpecificationCS? ';' | ownedPostconditions+=PostconditionConstraintCS)* '}' | ';')
+	//	qualifiers+='!ordered' | qualifiers+='transient' | qualifiers+='!transient' | qualifiers+='unique' |
+	//	qualifiers+='!unique') ','?)+ '}')? ('{' (ownedAnnotations+=AnnotationElementCS |
+	//	ownedPreconditions+=PreconditionConstraintCS | 'body' UnrestrictedName? ':' ownedBodyExpressions+=SpecificationCS?
+	//	';' | ownedPostconditions+=PostconditionConstraintCS)* '}' | ';')
 	public OperationCSElements getOperationCSAccess() {
 		return pOperationCS;
 	}