[427020] Eliminate TypedElementCS.qualifiers (=> Xext ISE)
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/AttributeCS.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/AttributeCS.java
index 0e1ade5..5e4e042 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/AttributeCS.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/AttributeCS.java
@@ -17,10 +17,42 @@
  * A representation of the model object '<em><b>Attribute CS</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.AttributeCS#isIsId <em>Is Id</em>}</li>
+ * </ul>
  *
  * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getAttributeCS()
  * @model
  * @generated
  */
 public interface AttributeCS extends StructuralFeatureCS {
+
+	/**
+	 * Returns the value of the '<em><b>Is Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Id</em>' attribute.
+	 * @see #setIsId(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getAttributeCS_IsId()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.AttributeCS#isIsId <em>Is Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Id</em>' attribute.
+	 * @see #isIsId()
+	 * @generated
+	 */
+	void setIsId(boolean value);
 } // AttributeCS
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/BaseCSPackage.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/BaseCSPackage.java
index a47e334..bd3697e 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/BaseCSPackage.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/BaseCSPackage.java
@@ -831,13 +831,31 @@
 	int TYPED_ELEMENT_CS__NAME = NAMED_ELEMENT_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT_CS__IS_NOT_UNIQUE = NAMED_ELEMENT_CS_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TYPED_ELEMENT_CS__IS_OPTIONAL = NAMED_ELEMENT_CS_FEATURE_COUNT + 0;
+	int TYPED_ELEMENT_CS__IS_OPTIONAL = NAMED_ELEMENT_CS_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT_CS__IS_ORDERED = NAMED_ELEMENT_CS_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
@@ -846,16 +864,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TYPED_ELEMENT_CS__OWNED_TYPE = NAMED_ELEMENT_CS_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TYPED_ELEMENT_CS__QUALIFIERS = NAMED_ELEMENT_CS_FEATURE_COUNT + 2;
+	int TYPED_ELEMENT_CS__OWNED_TYPE = NAMED_ELEMENT_CS_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Typed Element CS</em>' class.
@@ -864,7 +873,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TYPED_ELEMENT_CS_FEATURE_COUNT = NAMED_ELEMENT_CS_FEATURE_COUNT + 3;
+	int TYPED_ELEMENT_CS_FEATURE_COUNT = NAMED_ELEMENT_CS_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Csi</b></em>' attribute.
@@ -921,6 +930,15 @@
 	int FEATURE_CS__NAME = TYPED_ELEMENT_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE_CS__IS_NOT_UNIQUE = TYPED_ELEMENT_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -930,6 +948,15 @@
 	int FEATURE_CS__IS_OPTIONAL = TYPED_ELEMENT_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE_CS__IS_ORDERED = TYPED_ELEMENT_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -939,13 +966,31 @@
 	int FEATURE_CS__OWNED_TYPE = TYPED_ELEMENT_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
+	 * The feature id for the '<em><b>Is Definition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int FEATURE_CS__QUALIFIERS = TYPED_ELEMENT_CS__QUALIFIERS;
+	int FEATURE_CS__IS_DEFINITION = TYPED_ELEMENT_CS_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Is Derived</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE_CS__IS_DERIVED = TYPED_ELEMENT_CS_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE_CS__IS_STATIC = TYPED_ELEMENT_CS_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Feature CS</em>' class.
@@ -954,7 +999,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int FEATURE_CS_FEATURE_COUNT = TYPED_ELEMENT_CS_FEATURE_COUNT + 0;
+	int FEATURE_CS_FEATURE_COUNT = TYPED_ELEMENT_CS_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Csi</b></em>' attribute.
@@ -1011,6 +1056,15 @@
 	int STRUCTURAL_FEATURE_CS__NAME = FEATURE_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_CS__IS_NOT_UNIQUE = FEATURE_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1020,6 +1074,15 @@
 	int STRUCTURAL_FEATURE_CS__IS_OPTIONAL = FEATURE_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_CS__IS_ORDERED = FEATURE_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1029,13 +1092,31 @@
 	int STRUCTURAL_FEATURE_CS__OWNED_TYPE = FEATURE_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
+	 * The feature id for the '<em><b>Is Definition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE_CS__QUALIFIERS = FEATURE_CS__QUALIFIERS;
+	int STRUCTURAL_FEATURE_CS__IS_DEFINITION = FEATURE_CS__IS_DEFINITION;
+
+	/**
+	 * The feature id for the '<em><b>Is Derived</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_CS__IS_DERIVED = FEATURE_CS__IS_DERIVED;
+
+	/**
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_CS__IS_STATIC = FEATURE_CS__IS_STATIC;
 
 	/**
 	 * The feature id for the '<em><b>Default</b></em>' attribute.
@@ -1047,13 +1128,49 @@
 	int STRUCTURAL_FEATURE_CS__DEFAULT = FEATURE_CS_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Is Readonly</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_CS__IS_READONLY = FEATURE_CS_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Is Transient</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_CS__IS_TRANSIENT = FEATURE_CS_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Is Unsettable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_CS__IS_UNSETTABLE = FEATURE_CS_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Is Volatile</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURAL_FEATURE_CS__IS_VOLATILE = FEATURE_CS_FEATURE_COUNT + 4;
+
+	/**
 	 * The feature id for the '<em><b>Owned Default Expressions</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE_CS__OWNED_DEFAULT_EXPRESSIONS = FEATURE_CS_FEATURE_COUNT + 1;
+	int STRUCTURAL_FEATURE_CS__OWNED_DEFAULT_EXPRESSIONS = FEATURE_CS_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Owning Class</b></em>' container reference.
@@ -1062,7 +1179,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE_CS__OWNING_CLASS = FEATURE_CS_FEATURE_COUNT + 2;
+	int STRUCTURAL_FEATURE_CS__OWNING_CLASS = FEATURE_CS_FEATURE_COUNT + 6;
 
 	/**
 	 * The number of structural features of the '<em>Structural Feature CS</em>' class.
@@ -1071,7 +1188,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCTURAL_FEATURE_CS_FEATURE_COUNT = FEATURE_CS_FEATURE_COUNT + 3;
+	int STRUCTURAL_FEATURE_CS_FEATURE_COUNT = FEATURE_CS_FEATURE_COUNT + 7;
 
 	/**
 	 * The feature id for the '<em><b>Csi</b></em>' attribute.
@@ -1128,6 +1245,15 @@
 	int ATTRIBUTE_CS__NAME = STRUCTURAL_FEATURE_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_NOT_UNIQUE = STRUCTURAL_FEATURE_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1137,6 +1263,15 @@
 	int ATTRIBUTE_CS__IS_OPTIONAL = STRUCTURAL_FEATURE_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_ORDERED = STRUCTURAL_FEATURE_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1146,13 +1281,31 @@
 	int ATTRIBUTE_CS__OWNED_TYPE = STRUCTURAL_FEATURE_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
+	 * The feature id for the '<em><b>Is Definition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ATTRIBUTE_CS__QUALIFIERS = STRUCTURAL_FEATURE_CS__QUALIFIERS;
+	int ATTRIBUTE_CS__IS_DEFINITION = STRUCTURAL_FEATURE_CS__IS_DEFINITION;
+
+	/**
+	 * The feature id for the '<em><b>Is Derived</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_DERIVED = STRUCTURAL_FEATURE_CS__IS_DERIVED;
+
+	/**
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_STATIC = STRUCTURAL_FEATURE_CS__IS_STATIC;
 
 	/**
 	 * The feature id for the '<em><b>Default</b></em>' attribute.
@@ -1164,6 +1317,42 @@
 	int ATTRIBUTE_CS__DEFAULT = STRUCTURAL_FEATURE_CS__DEFAULT;
 
 	/**
+	 * The feature id for the '<em><b>Is Readonly</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_READONLY = STRUCTURAL_FEATURE_CS__IS_READONLY;
+
+	/**
+	 * The feature id for the '<em><b>Is Transient</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_TRANSIENT = STRUCTURAL_FEATURE_CS__IS_TRANSIENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Unsettable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_UNSETTABLE = STRUCTURAL_FEATURE_CS__IS_UNSETTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Is Volatile</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_VOLATILE = STRUCTURAL_FEATURE_CS__IS_VOLATILE;
+
+	/**
 	 * The feature id for the '<em><b>Owned Default Expressions</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1182,13 +1371,22 @@
 	int ATTRIBUTE_CS__OWNING_CLASS = STRUCTURAL_FEATURE_CS__OWNING_CLASS;
 
 	/**
+	 * The feature id for the '<em><b>Is Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_CS__IS_ID = STRUCTURAL_FEATURE_CS_FEATURE_COUNT + 0;
+
+	/**
 	 * The number of structural features of the '<em>Attribute CS</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ATTRIBUTE_CS_FEATURE_COUNT = STRUCTURAL_FEATURE_CS_FEATURE_COUNT + 0;
+	int ATTRIBUTE_CS_FEATURE_COUNT = STRUCTURAL_FEATURE_CS_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.ocl.xtext.basecs.impl.ClassCSImpl <em>Class CS</em>}' class.
@@ -2594,6 +2792,15 @@
 	int OPERATION_CS__NAME = FEATURE_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION_CS__IS_NOT_UNIQUE = FEATURE_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2603,6 +2810,15 @@
 	int OPERATION_CS__IS_OPTIONAL = FEATURE_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION_CS__IS_ORDERED = FEATURE_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2612,13 +2828,31 @@
 	int OPERATION_CS__OWNED_TYPE = FEATURE_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
+	 * The feature id for the '<em><b>Is Definition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION_CS__QUALIFIERS = FEATURE_CS__QUALIFIERS;
+	int OPERATION_CS__IS_DEFINITION = FEATURE_CS__IS_DEFINITION;
+
+	/**
+	 * The feature id for the '<em><b>Is Derived</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION_CS__IS_DERIVED = FEATURE_CS__IS_DERIVED;
+
+	/**
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION_CS__IS_STATIC = FEATURE_CS__IS_STATIC;
 
 	/**
 	 * The feature id for the '<em><b>Owned Signature</b></em>' containment reference.
@@ -2919,6 +3153,15 @@
 	int PARAMETER_CS__NAME = TYPED_ELEMENT_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_CS__IS_NOT_UNIQUE = TYPED_ELEMENT_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2928,6 +3171,15 @@
 	int PARAMETER_CS__IS_OPTIONAL = TYPED_ELEMENT_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_CS__IS_ORDERED = TYPED_ELEMENT_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2937,15 +3189,6 @@
 	int PARAMETER_CS__OWNED_TYPE = TYPED_ELEMENT_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER_CS__QUALIFIERS = TYPED_ELEMENT_CS__QUALIFIERS;
-
-	/**
 	 * The feature id for the '<em><b>Owning Operation</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3282,6 +3525,15 @@
 	int REFERENCE_CS__NAME = STRUCTURAL_FEATURE_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_NOT_UNIQUE = STRUCTURAL_FEATURE_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3291,6 +3543,15 @@
 	int REFERENCE_CS__IS_OPTIONAL = STRUCTURAL_FEATURE_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_ORDERED = STRUCTURAL_FEATURE_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3300,13 +3561,31 @@
 	int REFERENCE_CS__OWNED_TYPE = STRUCTURAL_FEATURE_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
+	 * The feature id for the '<em><b>Is Definition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERENCE_CS__QUALIFIERS = STRUCTURAL_FEATURE_CS__QUALIFIERS;
+	int REFERENCE_CS__IS_DEFINITION = STRUCTURAL_FEATURE_CS__IS_DEFINITION;
+
+	/**
+	 * The feature id for the '<em><b>Is Derived</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_DERIVED = STRUCTURAL_FEATURE_CS__IS_DERIVED;
+
+	/**
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_STATIC = STRUCTURAL_FEATURE_CS__IS_STATIC;
 
 	/**
 	 * The feature id for the '<em><b>Default</b></em>' attribute.
@@ -3318,6 +3597,42 @@
 	int REFERENCE_CS__DEFAULT = STRUCTURAL_FEATURE_CS__DEFAULT;
 
 	/**
+	 * The feature id for the '<em><b>Is Readonly</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_READONLY = STRUCTURAL_FEATURE_CS__IS_READONLY;
+
+	/**
+	 * The feature id for the '<em><b>Is Transient</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_TRANSIENT = STRUCTURAL_FEATURE_CS__IS_TRANSIENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Unsettable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_UNSETTABLE = STRUCTURAL_FEATURE_CS__IS_UNSETTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Is Volatile</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_VOLATILE = STRUCTURAL_FEATURE_CS__IS_VOLATILE;
+
+	/**
 	 * The feature id for the '<em><b>Owned Default Expressions</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3354,13 +3669,31 @@
 	int REFERENCE_CS__REFERRED_OPPOSITE = STRUCTURAL_FEATURE_CS_FEATURE_COUNT + 1;
 
 	/**
+	 * The feature id for the '<em><b>Is Composes</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_COMPOSES = STRUCTURAL_FEATURE_CS_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Is Resolve</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CS__IS_RESOLVE = STRUCTURAL_FEATURE_CS_FEATURE_COUNT + 3;
+
+	/**
 	 * The number of structural features of the '<em>Reference CS</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERENCE_CS_FEATURE_COUNT = STRUCTURAL_FEATURE_CS_FEATURE_COUNT + 2;
+	int REFERENCE_CS_FEATURE_COUNT = STRUCTURAL_FEATURE_CS_FEATURE_COUNT + 4;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.ocl.xtext.basecs.impl.RootCSImpl <em>Root CS</em>}' class.
@@ -4142,6 +4475,15 @@
 	int TUPLE_PART_CS__NAME = TYPED_ELEMENT_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TUPLE_PART_CS__IS_NOT_UNIQUE = TYPED_ELEMENT_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -4151,6 +4493,15 @@
 	int TUPLE_PART_CS__IS_OPTIONAL = TYPED_ELEMENT_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TUPLE_PART_CS__IS_ORDERED = TYPED_ELEMENT_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -4160,15 +4511,6 @@
 	int TUPLE_PART_CS__OWNED_TYPE = TYPED_ELEMENT_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TUPLE_PART_CS__QUALIFIERS = TYPED_ELEMENT_CS__QUALIFIERS;
-
-	/**
 	 * The number of structural features of the '<em>Tuple Part CS</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -4625,6 +4967,17 @@
 	EClass getAttributeCS();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.AttributeCS#isIsId <em>Is Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Id</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.AttributeCS#isIsId()
+	 * @see #getAttributeCS()
+	 * @generated
+	 */
+	EAttribute getAttributeCS_IsId();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.ocl.xtext.basecs.ClassCS <em>Class CS</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -4900,6 +5253,39 @@
 	EClass getFeatureCS();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsDefinition <em>Is Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Definition</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.FeatureCS#isIsDefinition()
+	 * @see #getFeatureCS()
+	 * @generated
+	 */
+	EAttribute getFeatureCS_IsDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsDerived <em>Is Derived</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Derived</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.FeatureCS#isIsDerived()
+	 * @see #getFeatureCS()
+	 * @generated
+	 */
+	EAttribute getFeatureCS_IsDerived();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsStatic <em>Is Static</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Static</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.FeatureCS#isIsStatic()
+	 * @see #getFeatureCS()
+	 * @generated
+	 */
+	EAttribute getFeatureCS_IsStatic();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.ocl.xtext.basecs.ImportCS <em>Import CS</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5518,6 +5904,28 @@
 	EReference getReferenceCS_ReferredOpposite();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#isIsComposes <em>Is Composes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Composes</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.ReferenceCS#isIsComposes()
+	 * @see #getReferenceCS()
+	 * @generated
+	 */
+	EAttribute getReferenceCS_IsComposes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#isIsResolve <em>Is Resolve</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Resolve</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.ReferenceCS#isIsResolve()
+	 * @see #getReferenceCS()
+	 * @generated
+	 */
+	EAttribute getReferenceCS_IsResolve();
+
+	/**
 	 * Returns the meta object for the reference list '{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#getReferredKeys <em>Referred Keys</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5700,6 +6108,50 @@
 	EAttribute getStructuralFeatureCS_Default();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsReadonly <em>Is Readonly</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Readonly</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsReadonly()
+	 * @see #getStructuralFeatureCS()
+	 * @generated
+	 */
+	EAttribute getStructuralFeatureCS_IsReadonly();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsTransient <em>Is Transient</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Transient</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsTransient()
+	 * @see #getStructuralFeatureCS()
+	 * @generated
+	 */
+	EAttribute getStructuralFeatureCS_IsTransient();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsUnsettable <em>Is Unsettable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Unsettable</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsUnsettable()
+	 * @see #getStructuralFeatureCS()
+	 * @generated
+	 */
+	EAttribute getStructuralFeatureCS_IsUnsettable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsVolatile <em>Is Volatile</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Volatile</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsVolatile()
+	 * @see #getStructuralFeatureCS()
+	 * @generated
+	 */
+	EAttribute getStructuralFeatureCS_IsVolatile();
+
+	/**
 	 * Returns the meta object for the containment reference list '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#getOwnedDefaultExpressions <em>Owned Default Expressions</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5953,6 +6405,17 @@
 	EClass getTypedElementCS();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsNotUnique <em>Is Not Unique</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Not Unique</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsNotUnique()
+	 * @see #getTypedElementCS()
+	 * @generated
+	 */
+	EAttribute getTypedElementCS_IsNotUnique();
+
+	/**
 	 * Returns the meta object for the containment reference '{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#getOwnedType <em>Owned Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5964,17 +6427,6 @@
 	EReference getTypedElementCS_OwnedType();
 
 	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#getQualifiers <em>Qualifiers</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Qualifiers</em>'.
-	 * @see org.eclipse.ocl.xtext.basecs.TypedElementCS#getQualifiers()
-	 * @see #getTypedElementCS()
-	 * @generated
-	 */
-	EAttribute getTypedElementCS_Qualifiers();
-
-	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsOptional <em>Is Optional</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5986,6 +6438,17 @@
 	EAttribute getTypedElementCS_IsOptional();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsOrdered <em>Is Ordered</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Is Ordered</em>'.
+	 * @see org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsOrdered()
+	 * @see #getTypedElementCS()
+	 * @generated
+	 */
+	EAttribute getTypedElementCS_IsOrdered();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.ocl.xtext.basecs.TypedRefCS <em>Typed Ref CS</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6213,6 +6676,14 @@
 		EClass ATTRIBUTE_CS = eINSTANCE.getAttributeCS();
 
 		/**
+		 * The meta object literal for the '<em><b>Is Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ATTRIBUTE_CS__IS_ID = eINSTANCE.getAttributeCS_IsId();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.ocl.xtext.basecs.impl.ClassCSImpl <em>Class CS</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -6443,6 +6914,30 @@
 		EClass FEATURE_CS = eINSTANCE.getFeatureCS();
 
 		/**
+		 * The meta object literal for the '<em><b>Is Definition</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FEATURE_CS__IS_DEFINITION = eINSTANCE.getFeatureCS_IsDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Derived</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FEATURE_CS__IS_DERIVED = eINSTANCE.getFeatureCS_IsDerived();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Static</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FEATURE_CS__IS_STATIC = eINSTANCE.getFeatureCS_IsStatic();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.ocl.xtext.basecs.impl.ImportCSImpl <em>Import CS</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -6947,6 +7442,22 @@
 		EReference REFERENCE_CS__REFERRED_OPPOSITE = eINSTANCE.getReferenceCS_ReferredOpposite();
 
 		/**
+		 * The meta object literal for the '<em><b>Is Composes</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REFERENCE_CS__IS_COMPOSES = eINSTANCE.getReferenceCS_IsComposes();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Resolve</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REFERENCE_CS__IS_RESOLVE = eINSTANCE.getReferenceCS_IsResolve();
+
+		/**
 		 * The meta object literal for the '<em><b>Referred Keys</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -7093,6 +7604,38 @@
 		EAttribute STRUCTURAL_FEATURE_CS__DEFAULT = eINSTANCE.getStructuralFeatureCS_Default();
 
 		/**
+		 * The meta object literal for the '<em><b>Is Readonly</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STRUCTURAL_FEATURE_CS__IS_READONLY = eINSTANCE.getStructuralFeatureCS_IsReadonly();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Transient</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STRUCTURAL_FEATURE_CS__IS_TRANSIENT = eINSTANCE.getStructuralFeatureCS_IsTransient();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Unsettable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STRUCTURAL_FEATURE_CS__IS_UNSETTABLE = eINSTANCE.getStructuralFeatureCS_IsUnsettable();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Volatile</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STRUCTURAL_FEATURE_CS__IS_VOLATILE = eINSTANCE.getStructuralFeatureCS_IsVolatile();
+
+		/**
 		 * The meta object literal for the '<em><b>Owned Default Expressions</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -7307,6 +7850,14 @@
 		EClass TYPED_ELEMENT_CS = eINSTANCE.getTypedElementCS();
 
 		/**
+		 * The meta object literal for the '<em><b>Is Not Unique</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TYPED_ELEMENT_CS__IS_NOT_UNIQUE = eINSTANCE.getTypedElementCS_IsNotUnique();
+
+		/**
 		 * The meta object literal for the '<em><b>Owned Type</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -7315,14 +7866,6 @@
 		EReference TYPED_ELEMENT_CS__OWNED_TYPE = eINSTANCE.getTypedElementCS_OwnedType();
 
 		/**
-		 * The meta object literal for the '<em><b>Qualifiers</b></em>' attribute list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute TYPED_ELEMENT_CS__QUALIFIERS = eINSTANCE.getTypedElementCS_Qualifiers();
-
-		/**
 		 * The meta object literal for the '<em><b>Is Optional</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -7331,6 +7874,14 @@
 		EAttribute TYPED_ELEMENT_CS__IS_OPTIONAL = eINSTANCE.getTypedElementCS_IsOptional();
 
 		/**
+		 * The meta object literal for the '<em><b>Is Ordered</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TYPED_ELEMENT_CS__IS_ORDERED = eINSTANCE.getTypedElementCS_IsOrdered();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.ocl.xtext.basecs.impl.TypedRefCSImpl <em>Typed Ref CS</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/FeatureCS.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/FeatureCS.java
index 3090db0..e0a2d8e 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/FeatureCS.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/FeatureCS.java
@@ -18,6 +18,14 @@
  * A representation of the model object '<em><b>Feature CS</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsDefinition <em>Is Definition</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsDerived <em>Is Derived</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsStatic <em>Is Static</em>}</li>
+ * </ul>
  *
  * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getFeatureCS()
  * @model abstract="true"
@@ -25,4 +33,82 @@
  */
 public interface FeatureCS extends TypedElementCS {
 
+	/**
+	 * Returns the value of the '<em><b>Is Definition</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Definition</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Definition</em>' attribute.
+	 * @see #setIsDefinition(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getFeatureCS_IsDefinition()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsDefinition <em>Is Definition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Definition</em>' attribute.
+	 * @see #isIsDefinition()
+	 * @generated
+	 */
+	void setIsDefinition(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Derived</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Derived</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Derived</em>' attribute.
+	 * @see #setIsDerived(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getFeatureCS_IsDerived()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsDerived();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsDerived <em>Is Derived</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Derived</em>' attribute.
+	 * @see #isIsDerived()
+	 * @generated
+	 */
+	void setIsDerived(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Static</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Static</em>' attribute.
+	 * @see #setIsStatic(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getFeatureCS_IsStatic()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsStatic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.FeatureCS#isIsStatic <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Static</em>' attribute.
+	 * @see #isIsStatic()
+	 * @generated
+	 */
+	void setIsStatic(boolean value);
+
 } // FeatureCS
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/ReferenceCS.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/ReferenceCS.java
index d3f551f..0ed6226 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/ReferenceCS.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/ReferenceCS.java
@@ -26,6 +26,8 @@
  * <ul>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#getReferredKeys <em>Referred Keys</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#getReferredOpposite <em>Referred Opposite</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#isIsComposes <em>Is Composes</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#isIsResolve <em>Is Resolve</em>}</li>
  * </ul>
  *
  * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getReferenceCS()
@@ -60,6 +62,58 @@
 	void setReferredOpposite(Property value);
 
 	/**
+	 * Returns the value of the '<em><b>Is Composes</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Composes</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Composes</em>' attribute.
+	 * @see #setIsComposes(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getReferenceCS_IsComposes()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsComposes();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#isIsComposes <em>Is Composes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Composes</em>' attribute.
+	 * @see #isIsComposes()
+	 * @generated
+	 */
+	void setIsComposes(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Resolve</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Resolve</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Resolve</em>' attribute.
+	 * @see #setIsResolve(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getReferenceCS_IsResolve()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsResolve();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.ReferenceCS#isIsResolve <em>Is Resolve</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Resolve</em>' attribute.
+	 * @see #isIsResolve()
+	 * @generated
+	 */
+	void setIsResolve(boolean value);
+
+	/**
 	 * Returns the value of the '<em><b>Referred Keys</b></em>' reference list.
 	 * The list contents are of type {@link org.eclipse.ocl.pivot.Property}.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/StructuralFeatureCS.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/StructuralFeatureCS.java
index 4ea3e27..eeb9ba5 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/StructuralFeatureCS.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/StructuralFeatureCS.java
@@ -24,6 +24,10 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#getDefault <em>Default</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsReadonly <em>Is Readonly</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsTransient <em>Is Transient</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsUnsettable <em>Is Unsettable</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsVolatile <em>Is Volatile</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#getOwnedDefaultExpressions <em>Owned Default Expressions</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#getOwningClass <em>Owning Class</em>}</li>
  * </ul>
@@ -89,6 +93,110 @@
 	void setDefault(String value);
 
 	/**
+	 * Returns the value of the '<em><b>Is Readonly</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Readonly</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Readonly</em>' attribute.
+	 * @see #setIsReadonly(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getStructuralFeatureCS_IsReadonly()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsReadonly();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsReadonly <em>Is Readonly</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Readonly</em>' attribute.
+	 * @see #isIsReadonly()
+	 * @generated
+	 */
+	void setIsReadonly(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Transient</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Transient</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Transient</em>' attribute.
+	 * @see #setIsTransient(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getStructuralFeatureCS_IsTransient()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsTransient();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsTransient <em>Is Transient</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Transient</em>' attribute.
+	 * @see #isIsTransient()
+	 * @generated
+	 */
+	void setIsTransient(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Unsettable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Unsettable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Unsettable</em>' attribute.
+	 * @see #setIsUnsettable(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getStructuralFeatureCS_IsUnsettable()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsUnsettable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsUnsettable <em>Is Unsettable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Unsettable</em>' attribute.
+	 * @see #isIsUnsettable()
+	 * @generated
+	 */
+	void setIsUnsettable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Volatile</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Volatile</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Volatile</em>' attribute.
+	 * @see #setIsVolatile(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getStructuralFeatureCS_IsVolatile()
+	 * @model dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsVolatile();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.StructuralFeatureCS#isIsVolatile <em>Is Volatile</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Volatile</em>' attribute.
+	 * @see #isIsVolatile()
+	 * @generated
+	 */
+	void setIsVolatile(boolean value);
+
+	/**
 	 * Returns the value of the '<em><b>Owned Default Expressions</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.ocl.xtext.basecs.SpecificationCS}.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/TypedElementCS.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/TypedElementCS.java
index a09513c..0e30a13 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/TypedElementCS.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/TypedElementCS.java
@@ -10,8 +10,6 @@
  *******************************************************************************/
 package org.eclipse.ocl.xtext.basecs;
 
-import org.eclipse.emf.common.util.EList;
-
 
 /**
  * <!-- begin-user-doc -->
@@ -22,9 +20,10 @@
  * The following features are supported:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsNotUnique <em>Is Not Unique</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsOptional <em>Is Optional</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsOrdered <em>Is Ordered</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#getOwnedType <em>Owned Type</em>}</li>
- *   <li>{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#getQualifiers <em>Qualifiers</em>}</li>
  * </ul>
  *
  * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getTypedElementCS()
@@ -33,6 +32,33 @@
  */
 public interface TypedElementCS extends NamedElementCS {
 	/**
+	 * Returns the value of the '<em><b>Is Not Unique</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Not Unique</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Not Unique</em>' attribute.
+	 * @see #setIsNotUnique(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getTypedElementCS_IsNotUnique()
+	 * @model default="false" dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsNotUnique();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsNotUnique <em>Is Not Unique</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Not Unique</em>' attribute.
+	 * @see #isIsNotUnique()
+	 * @generated
+	 */
+	void setIsNotUnique(boolean value);
+
+	/**
 	 * Returns the value of the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -59,22 +85,6 @@
 	void setOwnedType(TypedRefCS value);
 
 	/**
-	 * Returns the value of the '<em><b>Qualifiers</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Qualifier</em>' attribute list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Qualifiers</em>' attribute list.
-	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getTypedElementCS_Qualifiers()
-	 * @model dataType="org.eclipse.ocl.pivot.String"
-	 * @generated
-	 */
-	EList<String> getQualifiers();
-
-	/**
 	 * Returns the value of the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -100,4 +110,31 @@
 	 */
 	void setIsOptional(boolean value);
 
+	/**
+	 * Returns the value of the '<em><b>Is Ordered</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Ordered</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Is Ordered</em>' attribute.
+	 * @see #setIsOrdered(boolean)
+	 * @see org.eclipse.ocl.xtext.basecs.BaseCSPackage#getTypedElementCS_IsOrdered()
+	 * @model default="false" dataType="org.eclipse.ocl.pivot.Boolean"
+	 * @generated
+	 */
+	boolean isIsOrdered();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.ocl.xtext.basecs.TypedElementCS#isIsOrdered <em>Is Ordered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Is Ordered</em>' attribute.
+	 * @see #isIsOrdered()
+	 * @generated
+	 */
+	void setIsOrdered(boolean value);
+
 } // TypedElementCS
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/AttributeCSImpl.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/AttributeCSImpl.java
index 10770b4..41a8720 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/AttributeCSImpl.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/AttributeCSImpl.java
@@ -10,7 +10,9 @@
  *******************************************************************************/
 package org.eclipse.ocl.xtext.basecs.impl;
 
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.ocl.xtext.basecs.AttributeCS;
@@ -22,12 +24,37 @@
  * An implementation of the model object '<em><b>Attribute CS</b></em>'.
  * <!-- end-user-doc -->
  * <p>
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.AttributeCSImpl#isIsId <em>Is Id</em>}</li>
+ * </ul>
  *
  * @generated
  */
 public class AttributeCSImpl extends StructuralFeatureCSImpl implements AttributeCS
 {
 	/**
+	 * The default value of the '{@link #isIsId() <em>Is Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_ID_EDEFAULT = false;
+	/**
+	 * The cached value of the '{@link #isIsId() <em>Is Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsId()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isId = IS_ID_EDEFAULT;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -49,6 +76,108 @@
 	}
 
 	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isIsId()
+	{
+		return isId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsId(boolean newIsId)
+	{
+		boolean oldIsId = isId;
+		isId = newIsId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.ATTRIBUTE_CS__IS_ID, oldIsId, isId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString()
+	{
+		return super.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType)
+	{
+		switch (featureID)
+		{
+			case BaseCSPackage.ATTRIBUTE_CS__IS_ID:
+				return isIsId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue)
+	{
+		switch (featureID)
+		{
+			case BaseCSPackage.ATTRIBUTE_CS__IS_ID:
+				setIsId((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID)
+	{
+		switch (featureID)
+		{
+			case BaseCSPackage.ATTRIBUTE_CS__IS_ID:
+				setIsId(IS_ID_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID)
+	{
+		switch (featureID)
+		{
+			case BaseCSPackage.ATTRIBUTE_CS__IS_ID:
+				return isId != IS_ID_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
 	 * {@inheritDoc}
 	 * @generated
 	 */
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/BaseCSPackageImpl.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/BaseCSPackageImpl.java
index 3a3532b..dd5a807 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/BaseCSPackageImpl.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/BaseCSPackageImpl.java
@@ -618,6 +618,17 @@
 	 * @generated
 	 */
 	@Override
+	public EAttribute getAttributeCS_IsId()
+	{
+		return (EAttribute)attributeCSEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getClassCS()
 	{
 		return classCSEClass;
@@ -901,6 +912,39 @@
 	 * @generated
 	 */
 	@Override
+	public EAttribute getFeatureCS_IsDefinition()
+	{
+		return (EAttribute)featureCSEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getFeatureCS_IsDerived()
+	{
+		return (EAttribute)featureCSEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getFeatureCS_IsStatic()
+	{
+		return (EAttribute)featureCSEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getImportCS() {
 		return importCSEClass;
 	}
@@ -1527,6 +1571,28 @@
 	 * @generated
 	 */
 	@Override
+	public EAttribute getReferenceCS_IsComposes()
+	{
+		return (EAttribute)referenceCSEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getReferenceCS_IsResolve()
+	{
+		return (EAttribute)referenceCSEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EReference getReferenceCS_ReferredKeys()
 	{
 		return (EReference)referenceCSEClass.getEStructuralFeatures().get(0);
@@ -1693,7 +1759,7 @@
 	@Override
 	public EReference getStructuralFeatureCS_OwningClass()
 	{
-		return (EReference)structuralFeatureCSEClass.getEStructuralFeatures().get(2);
+		return (EReference)structuralFeatureCSEClass.getEStructuralFeatures().get(6);
 	}
 
 	/**
@@ -1713,9 +1779,53 @@
 	 * @generated
 	 */
 	@Override
+	public EAttribute getStructuralFeatureCS_IsReadonly()
+	{
+		return (EAttribute)structuralFeatureCSEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getStructuralFeatureCS_IsTransient()
+	{
+		return (EAttribute)structuralFeatureCSEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getStructuralFeatureCS_IsUnsettable()
+	{
+		return (EAttribute)structuralFeatureCSEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getStructuralFeatureCS_IsVolatile()
+	{
+		return (EAttribute)structuralFeatureCSEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EReference getStructuralFeatureCS_OwnedDefaultExpressions()
 	{
-		return (EReference)structuralFeatureCSEClass.getEStructuralFeatures().get(1);
+		return (EReference)structuralFeatureCSEClass.getEStructuralFeatures().get(5);
 	}
 
 	/**
@@ -1965,8 +2075,9 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getTypedElementCS_OwnedType() {
-		return (EReference)typedElementCSEClass.getEStructuralFeatures().get(1);
+	public EAttribute getTypedElementCS_IsNotUnique()
+	{
+		return (EAttribute)typedElementCSEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1975,9 +2086,8 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getTypedElementCS_Qualifiers()
-	{
-		return (EAttribute)typedElementCSEClass.getEStructuralFeatures().get(2);
+	public EReference getTypedElementCS_OwnedType() {
+		return (EReference)typedElementCSEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -1988,7 +2098,18 @@
 	@Override
 	public EAttribute getTypedElementCS_IsOptional()
 	{
-		return (EAttribute)typedElementCSEClass.getEStructuralFeatures().get(0);
+		return (EAttribute)typedElementCSEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getTypedElementCS_IsOrdered()
+	{
+		return (EAttribute)typedElementCSEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -2180,6 +2301,7 @@
 		createEReference(annotationElementCSEClass, ANNOTATION_ELEMENT_CS__OWNED_DETAILS);
 
 		attributeCSEClass = createEClass(ATTRIBUTE_CS);
+		createEAttribute(attributeCSEClass, ATTRIBUTE_CS__IS_ID);
 
 		classCSEClass = createEClass(CLASS_CS);
 		createEAttribute(classCSEClass, CLASS_CS__INSTANCE_CLASS_NAME);
@@ -2217,6 +2339,9 @@
 		createEAttribute(enumerationLiteralCSEClass, ENUMERATION_LITERAL_CS__VALUE);
 
 		featureCSEClass = createEClass(FEATURE_CS);
+		createEAttribute(featureCSEClass, FEATURE_CS__IS_DEFINITION);
+		createEAttribute(featureCSEClass, FEATURE_CS__IS_DERIVED);
+		createEAttribute(featureCSEClass, FEATURE_CS__IS_STATIC);
 
 		importCSEClass = createEClass(IMPORT_CS);
 		createEAttribute(importCSEClass, IMPORT_CS__IS_ALL);
@@ -2296,6 +2421,8 @@
 		referenceCSEClass = createEClass(REFERENCE_CS);
 		createEReference(referenceCSEClass, REFERENCE_CS__REFERRED_KEYS);
 		createEReference(referenceCSEClass, REFERENCE_CS__REFERRED_OPPOSITE);
+		createEAttribute(referenceCSEClass, REFERENCE_CS__IS_COMPOSES);
+		createEAttribute(referenceCSEClass, REFERENCE_CS__IS_RESOLVE);
 
 		rootCSEClass = createEClass(ROOT_CS);
 		createEReference(rootCSEClass, ROOT_CS__OWNED_IMPORTS);
@@ -2308,6 +2435,10 @@
 
 		structuralFeatureCSEClass = createEClass(STRUCTURAL_FEATURE_CS);
 		createEAttribute(structuralFeatureCSEClass, STRUCTURAL_FEATURE_CS__DEFAULT);
+		createEAttribute(structuralFeatureCSEClass, STRUCTURAL_FEATURE_CS__IS_READONLY);
+		createEAttribute(structuralFeatureCSEClass, STRUCTURAL_FEATURE_CS__IS_TRANSIENT);
+		createEAttribute(structuralFeatureCSEClass, STRUCTURAL_FEATURE_CS__IS_UNSETTABLE);
+		createEAttribute(structuralFeatureCSEClass, STRUCTURAL_FEATURE_CS__IS_VOLATILE);
 		createEReference(structuralFeatureCSEClass, STRUCTURAL_FEATURE_CS__OWNED_DEFAULT_EXPRESSIONS);
 		createEReference(structuralFeatureCSEClass, STRUCTURAL_FEATURE_CS__OWNING_CLASS);
 
@@ -2352,9 +2483,10 @@
 		typeRefCSEClass = createEClass(TYPE_REF_CS);
 
 		typedElementCSEClass = createEClass(TYPED_ELEMENT_CS);
+		createEAttribute(typedElementCSEClass, TYPED_ELEMENT_CS__IS_NOT_UNIQUE);
 		createEAttribute(typedElementCSEClass, TYPED_ELEMENT_CS__IS_OPTIONAL);
+		createEAttribute(typedElementCSEClass, TYPED_ELEMENT_CS__IS_ORDERED);
 		createEReference(typedElementCSEClass, TYPED_ELEMENT_CS__OWNED_TYPE);
-		createEAttribute(typedElementCSEClass, TYPED_ELEMENT_CS__QUALIFIERS);
 
 		typedRefCSEClass = createEClass(TYPED_REF_CS);
 		createEReference(typedRefCSEClass, TYPED_REF_CS__OWNED_MULTIPLICITY);
@@ -2489,6 +2621,7 @@
 		initEReference(getAnnotationElementCS_OwnedDetails(), this.getDetailCS(), null, "ownedDetails", null, 0, -1, AnnotationElementCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(attributeCSEClass, AttributeCS.class, "AttributeCS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getAttributeCS_IsId(), thePivotPackage.getBoolean(), "isId", null, 0, 1, AttributeCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(classCSEClass, ClassCS.class, "ClassCS", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getClassCS_InstanceClassName(), thePivotPackage.getString(), "instanceClassName", null, 0, 1, ClassCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
@@ -2528,6 +2661,9 @@
 		initEAttribute(getEnumerationLiteralCS_Value(), ecorePackage.getEInt(), "value", null, 0, 1, EnumerationLiteralCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(featureCSEClass, FeatureCS.class, "FeatureCS", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getFeatureCS_IsDefinition(), thePivotPackage.getBoolean(), "isDefinition", null, 0, 1, FeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFeatureCS_IsDerived(), thePivotPackage.getBoolean(), "isDerived", null, 0, 1, FeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFeatureCS_IsStatic(), thePivotPackage.getBoolean(), "isStatic", null, 0, 1, FeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(importCSEClass, ImportCS.class, "ImportCS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getImportCS_IsAll(), thePivotPackage.getBoolean(), "isAll", "false", 0, 1, ImportCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
@@ -2611,6 +2747,8 @@
 		initEClass(referenceCSEClass, ReferenceCS.class, "ReferenceCS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEReference(getReferenceCS_ReferredKeys(), thePivotPackage.getProperty(), null, "referredKeys", null, 0, -1, ReferenceCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getReferenceCS_ReferredOpposite(), thePivotPackage.getProperty(), null, "referredOpposite", null, 0, 1, ReferenceCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getReferenceCS_IsComposes(), thePivotPackage.getBoolean(), "isComposes", null, 0, 1, ReferenceCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getReferenceCS_IsResolve(), thePivotPackage.getBoolean(), "isResolve", null, 0, 1, ReferenceCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(rootCSEClass, RootCS.class, "RootCS", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEReference(getRootCS_OwnedImports(), this.getImportCS(), null, "ownedImports", null, 0, -1, RootCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
@@ -2623,6 +2761,10 @@
 
 		initEClass(structuralFeatureCSEClass, StructuralFeatureCS.class, "StructuralFeatureCS", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getStructuralFeatureCS_Default(), thePivotPackage.getString(), "default", null, 0, 1, StructuralFeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStructuralFeatureCS_IsReadonly(), thePivotPackage.getBoolean(), "isReadonly", null, 0, 1, StructuralFeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStructuralFeatureCS_IsTransient(), thePivotPackage.getBoolean(), "isTransient", null, 0, 1, StructuralFeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStructuralFeatureCS_IsUnsettable(), thePivotPackage.getBoolean(), "isUnsettable", null, 0, 1, StructuralFeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStructuralFeatureCS_IsVolatile(), thePivotPackage.getBoolean(), "isVolatile", null, 0, 1, StructuralFeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getStructuralFeatureCS_OwnedDefaultExpressions(), this.getSpecificationCS(), null, "ownedDefaultExpressions", null, 0, -1, StructuralFeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getStructuralFeatureCS_OwningClass(), this.getStructuredClassCS(), this.getStructuredClassCS_OwnedProperties(), "owningClass", null, 0, 1, StructuralFeatureCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
@@ -2667,9 +2809,10 @@
 		initEClass(typeRefCSEClass, TypeRefCS.class, "TypeRefCS", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
 		initEClass(typedElementCSEClass, TypedElementCS.class, "TypedElementCS", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getTypedElementCS_IsNotUnique(), thePivotPackage.getBoolean(), "isNotUnique", "false", 0, 1, TypedElementCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
 		initEAttribute(getTypedElementCS_IsOptional(), thePivotPackage.getBoolean(), "isOptional", null, 0, 1, TypedElementCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTypedElementCS_IsOrdered(), thePivotPackage.getBoolean(), "isOrdered", "false", 0, 1, TypedElementCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
 		initEReference(getTypedElementCS_OwnedType(), this.getTypedRefCS(), null, "ownedType", null, 0, 1, TypedElementCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getTypedElementCS_Qualifiers(), thePivotPackage.getString(), "qualifiers", null, 0, -1, TypedElementCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(typedRefCSEClass, TypedRefCS.class, "TypedRefCS", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEReference(getTypedRefCS_OwnedMultiplicity(), this.getMultiplicityCS(), null, "ownedMultiplicity", null, 0, 1, TypedRefCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/FeatureCSImpl.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/FeatureCSImpl.java
index 253c611..182840d 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/FeatureCSImpl.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/FeatureCSImpl.java
@@ -10,8 +10,10 @@
  */
 package org.eclipse.ocl.xtext.basecs.impl;
 
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EClass;
 
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.ocl.xtext.basecs.BaseCSPackage;
 import org.eclipse.ocl.xtext.basecs.FeatureCS;
 
@@ -20,12 +22,75 @@
  * An implementation of the model object '<em><b>Feature CS</b></em>'.
  * <!-- end-user-doc -->
  * <p>
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.FeatureCSImpl#isIsDefinition <em>Is Definition</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.FeatureCSImpl#isIsDerived <em>Is Derived</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.FeatureCSImpl#isIsStatic <em>Is Static</em>}</li>
+ * </ul>
  *
  * @generated
  */
 public abstract class FeatureCSImpl extends TypedElementCSImpl implements FeatureCS
 {
 	/**
+	 * The default value of the '{@link #isIsDefinition() <em>Is Definition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_DEFINITION_EDEFAULT = false;
+	/**
+	 * The cached value of the '{@link #isIsDefinition() <em>Is Definition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isDefinition = IS_DEFINITION_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isIsDerived() <em>Is Derived</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsDerived()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_DERIVED_EDEFAULT = false;
+	/**
+	 * The cached value of the '{@link #isIsDerived() <em>Is Derived</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsDerived()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isDerived = IS_DERIVED_EDEFAULT;
+	/**
+	 * The default value of the '{@link #isIsStatic() <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_STATIC_EDEFAULT = false;
+	/**
+	 * The cached value of the '{@link #isIsStatic() <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isStatic = IS_STATIC_EDEFAULT;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -46,5 +111,177 @@
 		return BaseCSPackage.Literals.FEATURE_CS;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isIsDefinition()
+	{
+		return isDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsDefinition(boolean newIsDefinition)
+	{
+		boolean oldIsDefinition = isDefinition;
+		isDefinition = newIsDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.FEATURE_CS__IS_DEFINITION, oldIsDefinition, isDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isIsDerived()
+	{
+		return isDerived;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsDerived(boolean newIsDerived)
+	{
+		boolean oldIsDerived = isDerived;
+		isDerived = newIsDerived;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.FEATURE_CS__IS_DERIVED, oldIsDerived, isDerived));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isIsStatic()
+	{
+		return isStatic;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsStatic(boolean newIsStatic)
+	{
+		boolean oldIsStatic = isStatic;
+		isStatic = newIsStatic;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.FEATURE_CS__IS_STATIC, oldIsStatic, isStatic));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString()
+	{
+		return super.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType)
+	{
+		switch (featureID)
+		{
+			case BaseCSPackage.FEATURE_CS__IS_DEFINITION:
+				return isIsDefinition();
+			case BaseCSPackage.FEATURE_CS__IS_DERIVED:
+				return isIsDerived();
+			case BaseCSPackage.FEATURE_CS__IS_STATIC:
+				return isIsStatic();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue)
+	{
+		switch (featureID)
+		{
+			case BaseCSPackage.FEATURE_CS__IS_DEFINITION:
+				setIsDefinition((Boolean)newValue);
+				return;
+			case BaseCSPackage.FEATURE_CS__IS_DERIVED:
+				setIsDerived((Boolean)newValue);
+				return;
+			case BaseCSPackage.FEATURE_CS__IS_STATIC:
+				setIsStatic((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID)
+	{
+		switch (featureID)
+		{
+			case BaseCSPackage.FEATURE_CS__IS_DEFINITION:
+				setIsDefinition(IS_DEFINITION_EDEFAULT);
+				return;
+			case BaseCSPackage.FEATURE_CS__IS_DERIVED:
+				setIsDerived(IS_DERIVED_EDEFAULT);
+				return;
+			case BaseCSPackage.FEATURE_CS__IS_STATIC:
+				setIsStatic(IS_STATIC_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID)
+	{
+		switch (featureID)
+		{
+			case BaseCSPackage.FEATURE_CS__IS_DEFINITION:
+				return isDefinition != IS_DEFINITION_EDEFAULT;
+			case BaseCSPackage.FEATURE_CS__IS_DERIVED:
+				return isDerived != IS_DERIVED_EDEFAULT;
+			case BaseCSPackage.FEATURE_CS__IS_STATIC:
+				return isStatic != IS_STATIC_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
 
 } //FeatureCSImpl
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/ReferenceCSImpl.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/ReferenceCSImpl.java
index 018ca72..ead5942 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/ReferenceCSImpl.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/ReferenceCSImpl.java
@@ -36,6 +36,8 @@
  * <ul>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.ReferenceCSImpl#getReferredKeys <em>Referred Keys</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.ReferenceCSImpl#getReferredOpposite <em>Referred Opposite</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.ReferenceCSImpl#isIsComposes <em>Is Composes</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.ReferenceCSImpl#isIsResolve <em>Is Resolve</em>}</li>
  * </ul>
  *
  * @generated
@@ -63,6 +65,46 @@
 	protected Property referredOpposite;
 
 	/**
+	 * The default value of the '{@link #isIsComposes() <em>Is Composes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsComposes()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_COMPOSES_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIsComposes() <em>Is Composes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsComposes()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isComposes = IS_COMPOSES_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIsResolve() <em>Is Resolve</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsResolve()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_RESOLVE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIsResolve() <em>Is Resolve</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsResolve()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isResolve = IS_RESOLVE_EDEFAULT;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -134,6 +176,67 @@
 	 * @generated
 	 */
 	@Override
+	public boolean isIsComposes()
+	{
+		return isComposes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsComposes(boolean newIsComposes)
+	{
+		boolean oldIsComposes = isComposes;
+		isComposes = newIsComposes;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.REFERENCE_CS__IS_COMPOSES, oldIsComposes, isComposes));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isIsResolve()
+	{
+		return isResolve;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsResolve(boolean newIsResolve)
+	{
+		boolean oldIsResolve = isResolve;
+		isResolve = newIsResolve;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.REFERENCE_CS__IS_RESOLVE, oldIsResolve, isResolve));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString()
+	{
+		return super.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EList<Property> getReferredKeys()
 	{
 		if (referredKeys == null)
@@ -158,6 +261,10 @@
 			case BaseCSPackage.REFERENCE_CS__REFERRED_OPPOSITE:
 				if (resolve) return getReferredOpposite();
 				return basicGetReferredOpposite();
+			case BaseCSPackage.REFERENCE_CS__IS_COMPOSES:
+				return isIsComposes();
+			case BaseCSPackage.REFERENCE_CS__IS_RESOLVE:
+				return isIsResolve();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -180,6 +287,12 @@
 			case BaseCSPackage.REFERENCE_CS__REFERRED_OPPOSITE:
 				setReferredOpposite((Property)newValue);
 				return;
+			case BaseCSPackage.REFERENCE_CS__IS_COMPOSES:
+				setIsComposes((Boolean)newValue);
+				return;
+			case BaseCSPackage.REFERENCE_CS__IS_RESOLVE:
+				setIsResolve((Boolean)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -200,6 +313,12 @@
 			case BaseCSPackage.REFERENCE_CS__REFERRED_OPPOSITE:
 				setReferredOpposite((Property)null);
 				return;
+			case BaseCSPackage.REFERENCE_CS__IS_COMPOSES:
+				setIsComposes(IS_COMPOSES_EDEFAULT);
+				return;
+			case BaseCSPackage.REFERENCE_CS__IS_RESOLVE:
+				setIsResolve(IS_RESOLVE_EDEFAULT);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -218,6 +337,10 @@
 				return referredKeys != null && !referredKeys.isEmpty();
 			case BaseCSPackage.REFERENCE_CS__REFERRED_OPPOSITE:
 				return referredOpposite != null;
+			case BaseCSPackage.REFERENCE_CS__IS_COMPOSES:
+				return isComposes != IS_COMPOSES_EDEFAULT;
+			case BaseCSPackage.REFERENCE_CS__IS_RESOLVE:
+				return isResolve != IS_RESOLVE_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/StructuralFeatureCSImpl.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/StructuralFeatureCSImpl.java
index fcc0837..8ca765e 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/StructuralFeatureCSImpl.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/StructuralFeatureCSImpl.java
@@ -37,6 +37,10 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.StructuralFeatureCSImpl#getDefault <em>Default</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.StructuralFeatureCSImpl#isIsReadonly <em>Is Readonly</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.StructuralFeatureCSImpl#isIsTransient <em>Is Transient</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.StructuralFeatureCSImpl#isIsUnsettable <em>Is Unsettable</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.StructuralFeatureCSImpl#isIsVolatile <em>Is Volatile</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.StructuralFeatureCSImpl#getOwnedDefaultExpressions <em>Owned Default Expressions</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.StructuralFeatureCSImpl#getOwningClass <em>Owning Class</em>}</li>
  * </ul>
@@ -65,6 +69,86 @@
 	protected String default_ = DEFAULT_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #isIsReadonly() <em>Is Readonly</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsReadonly()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_READONLY_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIsReadonly() <em>Is Readonly</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsReadonly()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isReadonly = IS_READONLY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIsTransient() <em>Is Transient</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsTransient()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_TRANSIENT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIsTransient() <em>Is Transient</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsTransient()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isTransient = IS_TRANSIENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIsUnsettable() <em>Is Unsettable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsUnsettable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_UNSETTABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIsUnsettable() <em>Is Unsettable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsUnsettable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isUnsettable = IS_UNSETTABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIsVolatile() <em>Is Volatile</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsVolatile()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_VOLATILE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIsVolatile() <em>Is Volatile</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsVolatile()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isVolatile = IS_VOLATILE_EDEFAULT;
+
+	/**
 	 * The cached value of the '{@link #getOwnedDefaultExpressions() <em>Owned Default Expressions</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -169,6 +253,106 @@
 	 * @generated
 	 */
 	@Override
+	public boolean isIsReadonly()
+	{
+		return isReadonly;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsReadonly(boolean newIsReadonly)
+	{
+		boolean oldIsReadonly = isReadonly;
+		isReadonly = newIsReadonly;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_READONLY, oldIsReadonly, isReadonly));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isIsTransient()
+	{
+		return isTransient;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsTransient(boolean newIsTransient)
+	{
+		boolean oldIsTransient = isTransient;
+		isTransient = newIsTransient;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_TRANSIENT, oldIsTransient, isTransient));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isIsUnsettable()
+	{
+		return isUnsettable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsUnsettable(boolean newIsUnsettable)
+	{
+		boolean oldIsUnsettable = isUnsettable;
+		isUnsettable = newIsUnsettable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_UNSETTABLE, oldIsUnsettable, isUnsettable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isIsVolatile()
+	{
+		return isVolatile;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsVolatile(boolean newIsVolatile)
+	{
+		boolean oldIsVolatile = isVolatile;
+		isVolatile = newIsVolatile;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_VOLATILE, oldIsVolatile, isVolatile));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EList<SpecificationCS> getOwnedDefaultExpressions()
 	{
 		if (ownedDefaultExpressions == null)
@@ -249,6 +433,14 @@
 		{
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__DEFAULT:
 				return getDefault();
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_READONLY:
+				return isIsReadonly();
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_TRANSIENT:
+				return isIsTransient();
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_UNSETTABLE:
+				return isIsUnsettable();
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_VOLATILE:
+				return isIsVolatile();
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__OWNED_DEFAULT_EXPRESSIONS:
 				return getOwnedDefaultExpressions();
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__OWNING_CLASS:
@@ -270,6 +462,18 @@
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__DEFAULT:
 				setDefault((String)newValue);
 				return;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_READONLY:
+				setIsReadonly((Boolean)newValue);
+				return;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_TRANSIENT:
+				setIsTransient((Boolean)newValue);
+				return;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_UNSETTABLE:
+				setIsUnsettable((Boolean)newValue);
+				return;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_VOLATILE:
+				setIsVolatile((Boolean)newValue);
+				return;
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__OWNED_DEFAULT_EXPRESSIONS:
 				getOwnedDefaultExpressions().clear();
 				getOwnedDefaultExpressions().addAll((Collection<? extends SpecificationCS>)newValue);
@@ -293,6 +497,18 @@
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__DEFAULT:
 				setDefault(DEFAULT_EDEFAULT);
 				return;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_READONLY:
+				setIsReadonly(IS_READONLY_EDEFAULT);
+				return;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_TRANSIENT:
+				setIsTransient(IS_TRANSIENT_EDEFAULT);
+				return;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_UNSETTABLE:
+				setIsUnsettable(IS_UNSETTABLE_EDEFAULT);
+				return;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_VOLATILE:
+				setIsVolatile(IS_VOLATILE_EDEFAULT);
+				return;
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__OWNED_DEFAULT_EXPRESSIONS:
 				getOwnedDefaultExpressions().clear();
 				return;
@@ -314,6 +530,14 @@
 		{
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__DEFAULT:
 				return DEFAULT_EDEFAULT == null ? default_ != null : !DEFAULT_EDEFAULT.equals(default_);
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_READONLY:
+				return isReadonly != IS_READONLY_EDEFAULT;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_TRANSIENT:
+				return isTransient != IS_TRANSIENT_EDEFAULT;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_UNSETTABLE:
+				return isUnsettable != IS_UNSETTABLE_EDEFAULT;
+			case BaseCSPackage.STRUCTURAL_FEATURE_CS__IS_VOLATILE:
+				return isVolatile != IS_VOLATILE_EDEFAULT;
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__OWNED_DEFAULT_EXPRESSIONS:
 				return ownedDefaultExpressions != null && !ownedDefaultExpressions.isEmpty();
 			case BaseCSPackage.STRUCTURAL_FEATURE_CS__OWNING_CLASS:
diff --git a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/TypedElementCSImpl.java b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/TypedElementCSImpl.java
index a515295..6268113 100644
--- a/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/TypedElementCSImpl.java
+++ b/plugins/org.eclipse.ocl.xtext.base/emf-gen/org/eclipse/ocl/xtext/basecs/impl/TypedElementCSImpl.java
@@ -10,15 +10,11 @@
  *******************************************************************************/
 package org.eclipse.ocl.xtext.basecs.impl;
 
-import java.util.Collection;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
 import org.eclipse.ocl.xtext.basecs.BaseCSPackage;
 import org.eclipse.ocl.xtext.basecs.TypedElementCS;
 import org.eclipse.ocl.xtext.basecs.TypedRefCS;
@@ -32,9 +28,10 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl#isIsNotUnique <em>Is Not Unique</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl#isIsOptional <em>Is Optional</em>}</li>
+ *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl#isIsOrdered <em>Is Ordered</em>}</li>
  *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl#getOwnedType <em>Owned Type</em>}</li>
- *   <li>{@link org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl#getQualifiers <em>Qualifiers</em>}</li>
  * </ul>
  *
  * @generated
@@ -42,6 +39,26 @@
 public abstract class TypedElementCSImpl extends NamedElementCSImpl implements TypedElementCS
 {
 	/**
+	 * The default value of the '{@link #isIsNotUnique() <em>Is Not Unique</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsNotUnique()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_NOT_UNIQUE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIsNotUnique() <em>Is Not Unique</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsNotUnique()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isNotUnique = IS_NOT_UNIQUE_EDEFAULT;
+
+	/**
 	 * The default value of the '{@link #isIsOptional() <em>Is Optional</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -62,6 +79,26 @@
 	protected boolean isOptional = IS_OPTIONAL_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsOrdered()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIsOrdered()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isOrdered = IS_ORDERED_EDEFAULT;
+
+	/**
 	 * The cached value of the '{@link #getOwnedType() <em>Owned Type</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -72,16 +109,6 @@
 	protected TypedRefCS ownedType;
 
 	/**
-	 * The cached value of the '{@link #getQualifiers() <em>Qualifiers</em>}' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getQualifiers()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<String> qualifiers;
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -108,6 +135,31 @@
 	 * @generated
 	 */
 	@Override
+	public boolean isIsNotUnique()
+	{
+		return isNotUnique;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsNotUnique(boolean newIsNotUnique)
+	{
+		boolean oldIsNotUnique = isNotUnique;
+		isNotUnique = newIsNotUnique;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.TYPED_ELEMENT_CS__IS_NOT_UNIQUE, oldIsNotUnique, isNotUnique));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public TypedRefCS getOwnedType()
 	{
 		return ownedType;
@@ -158,21 +210,6 @@
 	 * @generated
 	 */
 	@Override
-	public EList<String> getQualifiers()
-	{
-		if (qualifiers == null)
-		{
-			qualifiers = new EDataTypeUniqueEList<String>(String.class, this, BaseCSPackage.TYPED_ELEMENT_CS__QUALIFIERS);
-		}
-		return qualifiers;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public boolean isIsOptional()
 	{
 		return isOptional;
@@ -198,6 +235,31 @@
 	 * @generated
 	 */
 	@Override
+	public boolean isIsOrdered()
+	{
+		return isOrdered;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setIsOrdered(boolean newIsOrdered)
+	{
+		boolean oldIsOrdered = isOrdered;
+		isOrdered = newIsOrdered;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BaseCSPackage.TYPED_ELEMENT_CS__IS_ORDERED, oldIsOrdered, isOrdered));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString()
 	{
 		return super.toString();
@@ -229,12 +291,14 @@
 	{
 		switch (featureID)
 		{
+			case BaseCSPackage.TYPED_ELEMENT_CS__IS_NOT_UNIQUE:
+				return isIsNotUnique();
 			case BaseCSPackage.TYPED_ELEMENT_CS__IS_OPTIONAL:
 				return isIsOptional();
+			case BaseCSPackage.TYPED_ELEMENT_CS__IS_ORDERED:
+				return isIsOrdered();
 			case BaseCSPackage.TYPED_ELEMENT_CS__OWNED_TYPE:
 				return getOwnedType();
-			case BaseCSPackage.TYPED_ELEMENT_CS__QUALIFIERS:
-				return getQualifiers();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -250,16 +314,18 @@
 	{
 		switch (featureID)
 		{
+			case BaseCSPackage.TYPED_ELEMENT_CS__IS_NOT_UNIQUE:
+				setIsNotUnique((Boolean)newValue);
+				return;
 			case BaseCSPackage.TYPED_ELEMENT_CS__IS_OPTIONAL:
 				setIsOptional((Boolean)newValue);
 				return;
+			case BaseCSPackage.TYPED_ELEMENT_CS__IS_ORDERED:
+				setIsOrdered((Boolean)newValue);
+				return;
 			case BaseCSPackage.TYPED_ELEMENT_CS__OWNED_TYPE:
 				setOwnedType((TypedRefCS)newValue);
 				return;
-			case BaseCSPackage.TYPED_ELEMENT_CS__QUALIFIERS:
-				getQualifiers().clear();
-				getQualifiers().addAll((Collection<? extends String>)newValue);
-				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -274,15 +340,18 @@
 	{
 		switch (featureID)
 		{
+			case BaseCSPackage.TYPED_ELEMENT_CS__IS_NOT_UNIQUE:
+				setIsNotUnique(IS_NOT_UNIQUE_EDEFAULT);
+				return;
 			case BaseCSPackage.TYPED_ELEMENT_CS__IS_OPTIONAL:
 				setIsOptional(IS_OPTIONAL_EDEFAULT);
 				return;
+			case BaseCSPackage.TYPED_ELEMENT_CS__IS_ORDERED:
+				setIsOrdered(IS_ORDERED_EDEFAULT);
+				return;
 			case BaseCSPackage.TYPED_ELEMENT_CS__OWNED_TYPE:
 				setOwnedType((TypedRefCS)null);
 				return;
-			case BaseCSPackage.TYPED_ELEMENT_CS__QUALIFIERS:
-				getQualifiers().clear();
-				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -297,12 +366,14 @@
 	{
 		switch (featureID)
 		{
+			case BaseCSPackage.TYPED_ELEMENT_CS__IS_NOT_UNIQUE:
+				return isNotUnique != IS_NOT_UNIQUE_EDEFAULT;
 			case BaseCSPackage.TYPED_ELEMENT_CS__IS_OPTIONAL:
 				return isOptional != IS_OPTIONAL_EDEFAULT;
+			case BaseCSPackage.TYPED_ELEMENT_CS__IS_ORDERED:
+				return isOrdered != IS_ORDERED_EDEFAULT;
 			case BaseCSPackage.TYPED_ELEMENT_CS__OWNED_TYPE:
 				return ownedType != null;
-			case BaseCSPackage.TYPED_ELEMENT_CS__QUALIFIERS:
-				return qualifiers != null && !qualifiers.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/org.eclipse.ocl.xtext.base/model/BaseCS.ecore b/plugins/org.eclipse.ocl.xtext.base/model/BaseCS.ecore
index e70aca8..ac673a1 100644
--- a/plugins/org.eclipse.ocl.xtext.base/model/BaseCS.ecore
+++ b/plugins/org.eclipse.ocl.xtext.base/model/BaseCS.ecore
@@ -16,7 +16,9 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDetails" upperBound="-1"
         eType="#//DetailCS" containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AttributeCS" eSuperTypes="#//StructuralFeatureCS"/>
+  <eClassifiers xsi:type="ecore:EClass" name="AttributeCS" eSuperTypes="#//StructuralFeatureCS">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isId" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ClassCS" abstract="true" eSuperTypes="#//NamedElementCS #//TypeCS #//TemplateableElementCS">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//String"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConstraints" upperBound="-1"
@@ -62,7 +64,11 @@
   <eClassifiers xsi:type="ecore:EClass" name="EnumerationLiteralCS" eSuperTypes="#//NamedElementCS">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FeatureCS" abstract="true" eSuperTypes="#//TypedElementCS"/>
+  <eClassifiers xsi:type="ecore:EClass" name="FeatureCS" abstract="true" eSuperTypes="#//TypedElementCS">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDefinition" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ImportCS" eSuperTypes="#//NamespaceCS">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAll" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"
         defaultValueLiteral="false"/>
@@ -175,6 +181,8 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredKeys" upperBound="-1"
         eType="ecore:EClass ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Property"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredOpposite" eType="ecore:EClass ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Property"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposes" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isResolve" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="RootCS" abstract="true" eSuperTypes="#//ModelElementCS">
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedImports" upperBound="-1"
@@ -189,6 +197,10 @@
   <eClassifiers xsi:type="ecore:EClass" name="StructuralFeatureCS" abstract="true"
       eSuperTypes="#//FeatureCS">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//String"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadonly" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTransient" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnsettable" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isVolatile" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefaultExpressions"
         upperBound="-1" eType="#//SpecificationCS" containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="owningClass" eType="#//StructuredClassCS"
@@ -251,11 +263,13 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TypeRefCS" abstract="true" eSuperTypes="#//ElementRefCS"/>
   <eClassifiers xsi:type="ecore:EClass" name="TypedElementCS" abstract="true" eSuperTypes="#//NamedElementCS">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isNotUnique" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"
+        defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOptional" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//Boolean"
+        defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedType" eType="#//TypedRefCS"
         containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiers" upperBound="-1"
-        eType="ecore:EDataType ../../org.eclipse.ocl.pivot.internal/model/Pivot.ecore#//String"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TypedRefCS" abstract="true" eSuperTypes="#//TypeRefCS">
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedMultiplicity" eType="#//MultiplicityCS"
diff --git a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/as2cs/AS2CSConversion.java b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/as2cs/AS2CSConversion.java
index 5544b87..a2b118d 100644
--- a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/as2cs/AS2CSConversion.java
+++ b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/as2cs/AS2CSConversion.java
@@ -418,43 +418,14 @@
 		}
 	}
 
-	public void refreshQualifiers(List<String> qualifiers, String trueString, String falseString, Boolean polarity) {
-		boolean isFalse = false;
-		boolean isTrue = false;
-		for (String qualifier : qualifiers) {
-			if (qualifier.equals(trueString)) {
-				if (isTrue || (polarity != Boolean.TRUE)) {
-					qualifiers.remove(qualifier);
-				}
-				isTrue = true;
-			}
-			if (qualifier.equals(falseString)) {
-				if (isTrue || (polarity != Boolean.FALSE)) {
-					qualifiers.remove(qualifier);
-				}
-				isFalse = true;
-			}
-		}
-		if (polarity == Boolean.TRUE) {
-			if (!isTrue) {
-				qualifiers.add(trueString);
-			}
-		}
-		else if (polarity == Boolean.FALSE) {
-			if (!isFalse) {
-				qualifiers.add(falseString);
-			}
-		}
-	}
-
 	public <T extends StructuralFeatureCS> T refreshStructuralFeature(@NonNull Class<T> csClass, /*@NonNull */EClass csEClass, @NonNull Property object) {
 		T csElement = refreshTypedElement(csClass, csEClass, object);
-		refreshQualifiers(csElement.getQualifiers(), "derived", object.isDerived());
-		refreshQualifiers(csElement.getQualifiers(), "readonly", object.isReadOnly());
-		refreshQualifiers(csElement.getQualifiers(), "static", object.isStatic());
-		refreshQualifiers(csElement.getQualifiers(), "transient", object.isTransient());
-		refreshQualifiers(csElement.getQualifiers(), "unsettable", object.isUnsettable());
-		refreshQualifiers(csElement.getQualifiers(), "volatile", object.isVolatile());
+		csElement.setIsDerived(object.isDerived());
+		csElement.setIsReadonly(object.isReadOnly());
+		csElement.setIsStatic(object.isStatic());
+		csElement.setIsTransient(object.isTransient());
+		csElement.setIsUnsettable(object.isUnsettable());
+		csElement.setIsVolatile(object.isVolatile());
 		csElement.setDefault(object.getDefaultValueString());
 		return csElement;
 	}
@@ -490,9 +461,8 @@
 				lower = collectionType.getLower().intValue();
 				Number upper2 = collectionType.getUpper();
 				upper = upper2 instanceof Unlimited ? -1 : upper2.intValue();
-				List<String> qualifiers = csElement.getQualifiers();
-				refreshQualifiers(qualifiers, "ordered", "!ordered", collectionType.isOrdered() ? Boolean.TRUE : null);
-				refreshQualifiers(qualifiers, "unique", "!unique", collectionType.isUnique() ? null : Boolean.FALSE);
+				csElement.setIsOrdered(collectionType.isOrdered());
+				csElement.setIsNotUnique(!collectionType.isUnique());
 			}
 			else {
 				lower = object.isRequired() ? 1 : 0;
diff --git a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/as2cs/BaseDeclarationVisitor.java b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/as2cs/BaseDeclarationVisitor.java
index 662442a..320cfb9 100644
--- a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/as2cs/BaseDeclarationVisitor.java
+++ b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/as2cs/BaseDeclarationVisitor.java
@@ -255,13 +255,13 @@
 		}
 		if (type instanceof DataType) {
 			AttributeCS csAttribute = context.refreshStructuralFeature(AttributeCS.class, BaseCSPackage.Literals.ATTRIBUTE_CS, object);
-			context.refreshQualifiers(csAttribute.getQualifiers(), "id", object.isID());
+			csAttribute.setIsId(object.isID());
 			csElement = csAttribute;
 		}
 		else {
 			ReferenceCS csReference = context.refreshStructuralFeature(ReferenceCS.class, BaseCSPackage.Literals.REFERENCE_CS, object);
-			context.refreshQualifiers(csReference.getQualifiers(), "composes", object.isComposite());
-			context.refreshQualifiers(csReference.getQualifiers(), "resolve", "!resolve", object.isResolveProxies() ? null : Boolean.FALSE);
+			csReference.setIsComposes(object.isComposite());
+			csReference.setIsResolve(object.isResolveProxies());
 			Property opposite = object.getOpposite();
 			if (opposite != null) {
 				if (!opposite.isImplicit()) {
diff --git a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/BaseCSContainmentVisitor.java b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/BaseCSContainmentVisitor.java
index 73bf47e..764a7d3 100644
--- a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/BaseCSContainmentVisitor.java
+++ b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/BaseCSContainmentVisitor.java
@@ -43,9 +43,9 @@
 import org.eclipse.ocl.pivot.manager.MetaModelManager;
 import org.eclipse.ocl.pivot.utilities.PivotUtil;
 import org.eclipse.ocl.xtext.base.utilities.BaseCSResource;
-import org.eclipse.ocl.xtext.base.utilities.ElementUtil;
 import org.eclipse.ocl.xtext.basecs.AnnotationCS;
 import org.eclipse.ocl.xtext.basecs.AnnotationElementCS;
+import org.eclipse.ocl.xtext.basecs.AttributeCS;
 import org.eclipse.ocl.xtext.basecs.BaseCSPackage;
 import org.eclipse.ocl.xtext.basecs.ClassCS;
 import org.eclipse.ocl.xtext.basecs.ConstraintCS;
@@ -69,6 +69,7 @@
 import org.eclipse.ocl.xtext.basecs.PathElementCS;
 import org.eclipse.ocl.xtext.basecs.PathNameCS;
 import org.eclipse.ocl.xtext.basecs.PrimitiveTypeRefCS;
+import org.eclipse.ocl.xtext.basecs.ReferenceCS;
 import org.eclipse.ocl.xtext.basecs.RootCS;
 import org.eclipse.ocl.xtext.basecs.RootPackageCS;
 import org.eclipse.ocl.xtext.basecs.SpecificationCS;
@@ -270,6 +271,16 @@
 	}
 
 	@Override
+	public Continuation<?> visitAttributeCS(@NonNull AttributeCS csElement) {
+		Continuation<?> continuation = visitStructuralFeatureCS(csElement);
+		Property pivotElement = PivotUtil.getPivot(Property.class, csElement);
+		if (pivotElement != null) {
+			pivotElement.setIsID(csElement.isIsId());
+		}
+		return continuation;
+	}
+
+	@Override
 	public Continuation<?> visitConstraintCS(@NonNull ConstraintCS csElement) {
 		@SuppressWarnings("null") @NonNull EClass eClass = PivotPackage.Literals.CONSTRAINT;
 		Constraint pivotElement = refreshNamedElement(Constraint.class, eClass, csElement);
@@ -423,6 +434,17 @@
 	}
 
 	@Override
+	public Continuation<?> visitReferenceCS(@NonNull ReferenceCS csElement) {
+		Continuation<?> continuation = visitStructuralFeatureCS(csElement);
+		Property pivotElement = PivotUtil.getPivot(Property.class, csElement);
+		if (pivotElement != null) {
+			pivotElement.setIsComposite(csElement.isIsComposes());
+			pivotElement.setIsResolveProxies(csElement.isIsResolve());
+		}
+		return continuation;
+	}
+
+	@Override
 	public Continuation<?> visitRootPackageCS(@NonNull RootPackageCS csElement) {
 		importPackages(csElement);
 		@SuppressWarnings("null") @NonNull EClass eClass = PivotPackage.Literals.MODEL;
@@ -465,16 +487,12 @@
 	public Continuation<?> visitStructuralFeatureCS(@NonNull StructuralFeatureCS csElement) {
 		@SuppressWarnings("null") @NonNull EClass eClass = PivotPackage.Literals.PROPERTY;
 		Property pivotElement = refreshNamedElement(Property.class, eClass, csElement);
-		List<String> qualifiers = csElement.getQualifiers();
-		pivotElement.setIsComposite(qualifiers.contains("composes"));
-		pivotElement.setIsDerived(qualifiers.contains("derived"));
-		pivotElement.setIsID(qualifiers.contains("id"));
-		pivotElement.setIsReadOnly(qualifiers.contains("readonly"));
-		pivotElement.setIsResolveProxies(ElementUtil.getQualifier(qualifiers, "resolve", "!resolve", true));
-		pivotElement.setIsStatic(qualifiers.contains("static"));
-		pivotElement.setIsTransient(qualifiers.contains("transient"));
-		pivotElement.setIsUnsettable(qualifiers.contains("unsettable"));
-		pivotElement.setIsVolatile(qualifiers.contains("volatile"));
+		pivotElement.setIsDerived(csElement.isIsDerived());
+		pivotElement.setIsReadOnly(csElement.isIsReadonly());
+		pivotElement.setIsStatic(csElement.isIsStatic());
+		pivotElement.setIsTransient(csElement.isIsTransient());
+		pivotElement.setIsUnsettable(csElement.isIsUnsettable());
+		pivotElement.setIsVolatile(csElement.isIsVolatile());
 		pivotElement.setDefaultValueString(csElement.getDefault());
 		List<SpecificationCS> csDefaultExpressions = csElement.getOwnedDefaultExpressions();
 		SpecificationCS csDefaultExpression = csDefaultExpressions.size() > 0 ? csDefaultExpressions.get(0) : null;
diff --git a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
index f8fa739..2fbcef8 100644
--- a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
+++ b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
@@ -750,8 +750,9 @@
 			boolean isUnique = false;
 			EObject eContainer = csElement.eContainer();
 			if (eContainer instanceof TypedElementCS) {
-				isOrdered = ElementUtil.isOrdered((TypedElementCS) eContainer);
-				isUnique = ElementUtil.isUnique((TypedElementCS) eContainer);
+				TypedElementCS csTypedElement = (TypedElementCS) eContainer;
+				isOrdered = csTypedElement.isIsOrdered();
+				isUnique = !csTypedElement.isIsNotUnique();
 			}
 			IntegerValue lowerValue = ValueUtil.integerValueOf(lower);
 			UnlimitedNaturalValue upperValue = upper != -1 ? ValueUtil.unlimitedNaturalValueOf(upper) : ValueUtil.UNLIMITED_VALUE;
diff --git a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java
index 649856f..0031f71 100644
--- a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java
+++ b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/utilities/ElementUtil.java
@@ -120,21 +120,8 @@
 		if (upper == 1) {
 			return null;
 		}
-		List<String> qualifiers = csTypedElement.getQualifiers();
-		boolean isOrdered = true;
-		boolean isUnique = true;
-		if (qualifiers.contains("!ordered")) { //$NON-NLS-1$
-			isOrdered = false;
-		}
-		else if (qualifiers.contains("ordered")) { //$NON-NLS-1$
-			isOrdered = true;
-		}
-		if (qualifiers.contains("!unique")) { //$NON-NLS-1$
-			isUnique = false;
-		}
-		else if (qualifiers.contains("unique")) { //$NON-NLS-1$
-			isUnique = true;
-		}
+	boolean isOrdered = csTypedElement.isIsOrdered();
+		boolean isUnique = !csTypedElement.isIsNotUnique();
 		return getCollectionName(isOrdered, isUnique);
 	}
 
@@ -434,18 +421,6 @@
 		return false;
 	}
 
-	public static boolean isOrdered(@NonNull TypedElementCS csTypedElement) {
-		List<String> qualifiers = csTypedElement.getQualifiers();
-		assert qualifiers != null;
-		return getQualifier(qualifiers, "ordered", "!ordered", false);
-	}
-
-	public static boolean isUnique(@NonNull TypedElementCS csTypedElement) {
-		List<String> qualifiers = csTypedElement.getQualifiers();
-		assert qualifiers != null;
-		return getQualifier(qualifiers, "unique", "!unique", true);
-	}
-
 	public static boolean isSpecialization(@NonNull TemplateBindingCS csTemplateBinding) {
 		TypedTypeRefCS csTypedTypeRef = csTemplateBinding.getOwningElement();
 		Element type = csTypedTypeRef.getPivot();
diff --git a/plugins/org.eclipse.ocl.xtext.completeocl/emf-gen/org/eclipse/ocl/xtext/completeoclcs/CompleteOCLCSPackage.java b/plugins/org.eclipse.ocl.xtext.completeocl/emf-gen/org/eclipse/ocl/xtext/completeoclcs/CompleteOCLCSPackage.java
index 9c210d4..173729e 100644
--- a/plugins/org.eclipse.ocl.xtext.completeocl/emf-gen/org/eclipse/ocl/xtext/completeoclcs/CompleteOCLCSPackage.java
+++ b/plugins/org.eclipse.ocl.xtext.completeocl/emf-gen/org/eclipse/ocl/xtext/completeoclcs/CompleteOCLCSPackage.java
@@ -544,6 +544,15 @@
 	int DEF_CS__NAME = BaseCSPackage.TYPED_ELEMENT_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEF_CS__IS_NOT_UNIQUE = BaseCSPackage.TYPED_ELEMENT_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -553,6 +562,15 @@
 	int DEF_CS__IS_OPTIONAL = BaseCSPackage.TYPED_ELEMENT_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEF_CS__IS_ORDERED = BaseCSPackage.TYPED_ELEMENT_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -562,15 +580,6 @@
 	int DEF_CS__OWNED_TYPE = BaseCSPackage.TYPED_ELEMENT_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEF_CS__QUALIFIERS = BaseCSPackage.TYPED_ELEMENT_CS__QUALIFIERS;
-
-	/**
 	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -671,6 +680,15 @@
 	int DEF_OPERATION_CS__NAME = DEF_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEF_OPERATION_CS__IS_NOT_UNIQUE = DEF_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -680,6 +698,15 @@
 	int DEF_OPERATION_CS__IS_OPTIONAL = DEF_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEF_OPERATION_CS__IS_ORDERED = DEF_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -689,15 +716,6 @@
 	int DEF_OPERATION_CS__OWNED_TYPE = DEF_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEF_OPERATION_CS__QUALIFIERS = DEF_CS__QUALIFIERS;
-
-	/**
 	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -816,6 +834,15 @@
 	int DEF_PROPERTY_CS__NAME = DEF_CS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Is Not Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEF_PROPERTY_CS__IS_NOT_UNIQUE = DEF_CS__IS_NOT_UNIQUE;
+
+	/**
 	 * The feature id for the '<em><b>Is Optional</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -825,6 +852,15 @@
 	int DEF_PROPERTY_CS__IS_OPTIONAL = DEF_CS__IS_OPTIONAL;
 
 	/**
+	 * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEF_PROPERTY_CS__IS_ORDERED = DEF_CS__IS_ORDERED;
+
+	/**
 	 * The feature id for the '<em><b>Owned Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -834,15 +870,6 @@
 	int DEF_PROPERTY_CS__OWNED_TYPE = DEF_CS__OWNED_TYPE;
 
 	/**
-	 * The feature id for the '<em><b>Qualifiers</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEF_PROPERTY_CS__QUALIFIERS = DEF_CS__QUALIFIERS;
-
-	/**
 	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/AbstractOCLinEcoreProposalProvider.java b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/AbstractOCLinEcoreProposalProvider.java
index f1aec11..0d620b3 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/AbstractOCLinEcoreProposalProvider.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/AbstractOCLinEcoreProposalProvider.java
@@ -80,7 +80,10 @@
 	public void completeAnnotationCS_OwnedReferences(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeAttributeCS_Qualifiers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeAttributeCS_IsStatic(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeAttributeCS_IsDefinition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void completeAttributeCS_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -92,6 +95,30 @@
 	public void completeAttributeCS_Default(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeAttributeCS_IsDerived(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeAttributeCS_IsId(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeAttributeCS_IsOrdered(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeAttributeCS_IsReadonly(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeAttributeCS_IsTransient(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeAttributeCS_IsNotUnique(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeAttributeCS_IsUnsettable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeAttributeCS_IsVolatile(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void completeAttributeCS_OwnedAnnotations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -181,7 +208,10 @@
 	public void completeModelElementRefCS_OwnedPathName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeOperationCS_Qualifiers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeOperationCS_IsStatic(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeOperationCS_IsDefinition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void completeOperationCS_OwnedSignature(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -199,6 +229,15 @@
 	public void completeOperationCS_OwnedExceptions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeOperationCS_IsDerived(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeOperationCS_IsOrdered(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeOperationCS_IsNotUnique(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void completeOperationCS_OwnedAnnotations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -235,13 +274,19 @@
 	public void completeParameterCS_OwnedType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeParameterCS_Qualifiers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeParameterCS_IsOrdered(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeParameterCS_IsNotUnique(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void completeParameterCS_OwnedAnnotations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeReferenceCS_Qualifiers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeReferenceCS_IsStatic(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsDefinition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void completeReferenceCS_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -256,6 +301,33 @@
 	public void completeReferenceCS_Default(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeReferenceCS_IsComposes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsDerived(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsOrdered(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsReadonly(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsResolve(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsTransient(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsNotUnique(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsUnsettable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReferenceCS_IsVolatile(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void completeReferenceCS_OwnedAnnotations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
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 4a999ff..e2313bb 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
@@ -43,8 +43,14 @@
 					put(grammarAccess.getAnnotationCSAccess().getAlternatives_4(), "rule__AnnotationCS__Alternatives_4");
 					put(grammarAccess.getAnnotationCSAccess().getAlternatives_4_0_1(), "rule__AnnotationCS__Alternatives_4_0_1");
 					put(grammarAccess.getAnnotationElementCSAccess().getAlternatives(), "rule__AnnotationElementCS__Alternatives");
-					put(grammarAccess.getAttributeCSAccess().getAlternatives_0(), "rule__AttributeCS__Alternatives_0");
+					put(grammarAccess.getAttributeCSAccess().getAlternatives_5_0_1_0(), "rule__AttributeCS__Alternatives_5_0_1_0");
 					put(grammarAccess.getAttributeCSAccess().getAlternatives_5_1_0(), "rule__AttributeCS__Alternatives_5_1_0");
+					put(grammarAccess.getAttributeCSAccess().getAlternatives_5_2_0(), "rule__AttributeCS__Alternatives_5_2_0");
+					put(grammarAccess.getAttributeCSAccess().getAlternatives_5_3_0(), "rule__AttributeCS__Alternatives_5_3_0");
+					put(grammarAccess.getAttributeCSAccess().getAlternatives_5_4_0(), "rule__AttributeCS__Alternatives_5_4_0");
+					put(grammarAccess.getAttributeCSAccess().getAlternatives_5_5_0(), "rule__AttributeCS__Alternatives_5_5_0");
+					put(grammarAccess.getAttributeCSAccess().getAlternatives_5_6_0(), "rule__AttributeCS__Alternatives_5_6_0");
+					put(grammarAccess.getAttributeCSAccess().getAlternatives_5_7_0_0(), "rule__AttributeCS__Alternatives_5_7_0_0");
 					put(grammarAccess.getAttributeCSAccess().getAlternatives_6(), "rule__AttributeCS__Alternatives_6");
 					put(grammarAccess.getAttributeCSAccess().getAlternatives_6_0_1(), "rule__AttributeCS__Alternatives_6_0_1");
 					put(grammarAccess.getClassCSAccess().getAlternatives(), "rule__ClassCS__Alternatives");
@@ -59,15 +65,24 @@
 					put(grammarAccess.getEnumerationLiteralCSAccess().getAlternatives_0(), "rule__EnumerationLiteralCS__Alternatives_0");
 					put(grammarAccess.getEnumerationLiteralCSAccess().getAlternatives_2(), "rule__EnumerationLiteralCS__Alternatives_2");
 					put(grammarAccess.getModelElementCSAccess().getAlternatives(), "rule__ModelElementCS__Alternatives");
-					put(grammarAccess.getOperationCSAccess().getAlternatives_0(), "rule__OperationCS__Alternatives_0");
+					put(grammarAccess.getOperationCSAccess().getAlternatives_9_0_1_0(), "rule__OperationCS__Alternatives_9_0_1_0");
 					put(grammarAccess.getOperationCSAccess().getAlternatives_9_1_0(), "rule__OperationCS__Alternatives_9_1_0");
+					put(grammarAccess.getOperationCSAccess().getAlternatives_9_2_0_0(), "rule__OperationCS__Alternatives_9_2_0_0");
 					put(grammarAccess.getOperationCSAccess().getAlternatives_10(), "rule__OperationCS__Alternatives_10");
 					put(grammarAccess.getOperationCSAccess().getAlternatives_10_0_1(), "rule__OperationCS__Alternatives_10_0_1");
 					put(grammarAccess.getPackageCSAccess().getAlternatives_4(), "rule__PackageCS__Alternatives_4");
 					put(grammarAccess.getPackageCSAccess().getAlternatives_4_0_1(), "rule__PackageCS__Alternatives_4_0_1");
-					put(grammarAccess.getParameterCSAccess().getAlternatives_2_1_0(), "rule__ParameterCS__Alternatives_2_1_0");
-					put(grammarAccess.getReferenceCSAccess().getAlternatives_0(), "rule__ReferenceCS__Alternatives_0");
+					put(grammarAccess.getParameterCSAccess().getAlternatives_2_0_1_0(), "rule__ParameterCS__Alternatives_2_0_1_0");
+					put(grammarAccess.getParameterCSAccess().getAlternatives_2_1_0_0(), "rule__ParameterCS__Alternatives_2_1_0_0");
+					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_0_1_0(), "rule__ReferenceCS__Alternatives_6_0_1_0");
 					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_1_0(), "rule__ReferenceCS__Alternatives_6_1_0");
+					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_2_0(), "rule__ReferenceCS__Alternatives_6_2_0");
+					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_3_0(), "rule__ReferenceCS__Alternatives_6_3_0");
+					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_4_0(), "rule__ReferenceCS__Alternatives_6_4_0");
+					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_5_0(), "rule__ReferenceCS__Alternatives_6_5_0");
+					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_6_0(), "rule__ReferenceCS__Alternatives_6_6_0");
+					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_7_0(), "rule__ReferenceCS__Alternatives_6_7_0");
+					put(grammarAccess.getReferenceCSAccess().getAlternatives_6_8_0_0(), "rule__ReferenceCS__Alternatives_6_8_0_0");
 					put(grammarAccess.getReferenceCSAccess().getAlternatives_7(), "rule__ReferenceCS__Alternatives_7");
 					put(grammarAccess.getReferenceCSAccess().getAlternatives_7_0_1(), "rule__ReferenceCS__Alternatives_7_0_1");
 					put(grammarAccess.getSpecificationCSAccess().getAlternatives(), "rule__SpecificationCS__Alternatives");
@@ -129,12 +144,18 @@
 					put(grammarAccess.getAnnotationCSAccess().getGroup_3_2(), "rule__AnnotationCS__Group_3_2__0");
 					put(grammarAccess.getAnnotationCSAccess().getGroup_4_0(), "rule__AnnotationCS__Group_4_0__0");
 					put(grammarAccess.getAttributeCSAccess().getGroup(), "rule__AttributeCS__Group__0");
-					put(grammarAccess.getAttributeCSAccess().getGroup_0_0(), "rule__AttributeCS__Group_0_0__0");
-					put(grammarAccess.getAttributeCSAccess().getGroup_0_1(), "rule__AttributeCS__Group_0_1__0");
 					put(grammarAccess.getAttributeCSAccess().getGroup_3(), "rule__AttributeCS__Group_3__0");
 					put(grammarAccess.getAttributeCSAccess().getGroup_4(), "rule__AttributeCS__Group_4__0");
-					put(grammarAccess.getAttributeCSAccess().getGroup_5(), "rule__AttributeCS__Group_5__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_0(), "rule__AttributeCS__Group_5_0__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_0_1(), "rule__AttributeCS__Group_5_0_1__0");
 					put(grammarAccess.getAttributeCSAccess().getGroup_5_1(), "rule__AttributeCS__Group_5_1__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_2(), "rule__AttributeCS__Group_5_2__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_3(), "rule__AttributeCS__Group_5_3__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_4(), "rule__AttributeCS__Group_5_4__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_5(), "rule__AttributeCS__Group_5_5__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_6(), "rule__AttributeCS__Group_5_6__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_7(), "rule__AttributeCS__Group_5_7__0");
+					put(grammarAccess.getAttributeCSAccess().getGroup_5_7_0(), "rule__AttributeCS__Group_5_7_0__0");
 					put(grammarAccess.getAttributeCSAccess().getGroup_6_0(), "rule__AttributeCS__Group_6_0__0");
 					put(grammarAccess.getAttributeCSAccess().getGroup_6_0_1_1(), "rule__AttributeCS__Group_6_0_1_1__0");
 					put(grammarAccess.getAttributeCSAccess().getGroup_6_0_1_2(), "rule__AttributeCS__Group_6_0_1_2__0");
@@ -160,15 +181,16 @@
 					put(grammarAccess.getLibraryCSAccess().getGroup_1(), "rule__LibraryCS__Group_1__0");
 					put(grammarAccess.getModelElementRefCSAccess().getGroup(), "rule__ModelElementRefCS__Group__0");
 					put(grammarAccess.getOperationCSAccess().getGroup(), "rule__OperationCS__Group__0");
-					put(grammarAccess.getOperationCSAccess().getGroup_0_0(), "rule__OperationCS__Group_0_0__0");
-					put(grammarAccess.getOperationCSAccess().getGroup_0_1(), "rule__OperationCS__Group_0_1__0");
 					put(grammarAccess.getOperationCSAccess().getGroup_5(), "rule__OperationCS__Group_5__0");
 					put(grammarAccess.getOperationCSAccess().getGroup_5_1(), "rule__OperationCS__Group_5_1__0");
 					put(grammarAccess.getOperationCSAccess().getGroup_7(), "rule__OperationCS__Group_7__0");
 					put(grammarAccess.getOperationCSAccess().getGroup_8(), "rule__OperationCS__Group_8__0");
 					put(grammarAccess.getOperationCSAccess().getGroup_8_2(), "rule__OperationCS__Group_8_2__0");
-					put(grammarAccess.getOperationCSAccess().getGroup_9(), "rule__OperationCS__Group_9__0");
+					put(grammarAccess.getOperationCSAccess().getGroup_9_0(), "rule__OperationCS__Group_9_0__0");
+					put(grammarAccess.getOperationCSAccess().getGroup_9_0_1(), "rule__OperationCS__Group_9_0_1__0");
 					put(grammarAccess.getOperationCSAccess().getGroup_9_1(), "rule__OperationCS__Group_9_1__0");
+					put(grammarAccess.getOperationCSAccess().getGroup_9_2(), "rule__OperationCS__Group_9_2__0");
+					put(grammarAccess.getOperationCSAccess().getGroup_9_2_0(), "rule__OperationCS__Group_9_2_0__0");
 					put(grammarAccess.getOperationCSAccess().getGroup_10_0(), "rule__OperationCS__Group_10_0__0");
 					put(grammarAccess.getOperationCSAccess().getGroup_10_0_1_2(), "rule__OperationCS__Group_10_0_1_2__0");
 					put(grammarAccess.getPackageCSAccess().getGroup(), "rule__PackageCS__Group__0");
@@ -177,17 +199,26 @@
 					put(grammarAccess.getPackageCSAccess().getGroup_4_0(), "rule__PackageCS__Group_4_0__0");
 					put(grammarAccess.getParameterCSAccess().getGroup(), "rule__ParameterCS__Group__0");
 					put(grammarAccess.getParameterCSAccess().getGroup_1(), "rule__ParameterCS__Group_1__0");
-					put(grammarAccess.getParameterCSAccess().getGroup_2(), "rule__ParameterCS__Group_2__0");
+					put(grammarAccess.getParameterCSAccess().getGroup_2_0(), "rule__ParameterCS__Group_2_0__0");
+					put(grammarAccess.getParameterCSAccess().getGroup_2_0_1(), "rule__ParameterCS__Group_2_0_1__0");
 					put(grammarAccess.getParameterCSAccess().getGroup_2_1(), "rule__ParameterCS__Group_2_1__0");
+					put(grammarAccess.getParameterCSAccess().getGroup_2_1_0(), "rule__ParameterCS__Group_2_1_0__0");
 					put(grammarAccess.getParameterCSAccess().getGroup_3(), "rule__ParameterCS__Group_3__0");
 					put(grammarAccess.getReferenceCSAccess().getGroup(), "rule__ReferenceCS__Group__0");
-					put(grammarAccess.getReferenceCSAccess().getGroup_0_0(), "rule__ReferenceCS__Group_0_0__0");
-					put(grammarAccess.getReferenceCSAccess().getGroup_0_1(), "rule__ReferenceCS__Group_0_1__0");
 					put(grammarAccess.getReferenceCSAccess().getGroup_3(), "rule__ReferenceCS__Group_3__0");
 					put(grammarAccess.getReferenceCSAccess().getGroup_4(), "rule__ReferenceCS__Group_4__0");
 					put(grammarAccess.getReferenceCSAccess().getGroup_5(), "rule__ReferenceCS__Group_5__0");
-					put(grammarAccess.getReferenceCSAccess().getGroup_6(), "rule__ReferenceCS__Group_6__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_0(), "rule__ReferenceCS__Group_6_0__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_0_1(), "rule__ReferenceCS__Group_6_0_1__0");
 					put(grammarAccess.getReferenceCSAccess().getGroup_6_1(), "rule__ReferenceCS__Group_6_1__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_2(), "rule__ReferenceCS__Group_6_2__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_3(), "rule__ReferenceCS__Group_6_3__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_4(), "rule__ReferenceCS__Group_6_4__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_5(), "rule__ReferenceCS__Group_6_5__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_6(), "rule__ReferenceCS__Group_6_6__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_7(), "rule__ReferenceCS__Group_6_7__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_8(), "rule__ReferenceCS__Group_6_8__0");
+					put(grammarAccess.getReferenceCSAccess().getGroup_6_8_0(), "rule__ReferenceCS__Group_6_8_0__0");
 					put(grammarAccess.getReferenceCSAccess().getGroup_7_0(), "rule__ReferenceCS__Group_7_0__0");
 					put(grammarAccess.getReferenceCSAccess().getGroup_7_0_1_1(), "rule__ReferenceCS__Group_7_0_1_1__0");
 					put(grammarAccess.getReferenceCSAccess().getGroup_7_0_1_1_2(), "rule__ReferenceCS__Group_7_0_1_1_2__0");
@@ -319,29 +350,19 @@
 					put(grammarAccess.getAnnotationCSAccess().getOwnedAnnotationsAssignment_4_0_1_0(), "rule__AnnotationCS__OwnedAnnotationsAssignment_4_0_1_0");
 					put(grammarAccess.getAnnotationCSAccess().getOwnedContentsAssignment_4_0_1_1(), "rule__AnnotationCS__OwnedContentsAssignment_4_0_1_1");
 					put(grammarAccess.getAnnotationCSAccess().getOwnedReferencesAssignment_4_0_1_2(), "rule__AnnotationCS__OwnedReferencesAssignment_4_0_1_2");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_0_0(), "rule__AttributeCS__QualifiersAssignment_0_0_0");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_0_1(), "rule__AttributeCS__QualifiersAssignment_0_0_1");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_1_0(), "rule__AttributeCS__QualifiersAssignment_0_1_0");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_1_1(), "rule__AttributeCS__QualifiersAssignment_0_1_1");
+					put(grammarAccess.getAttributeCSAccess().getIsStaticAssignment_0_0(), "rule__AttributeCS__IsStaticAssignment_0_0");
+					put(grammarAccess.getAttributeCSAccess().getIsDefinitionAssignment_0_1(), "rule__AttributeCS__IsDefinitionAssignment_0_1");
 					put(grammarAccess.getAttributeCSAccess().getNameAssignment_2(), "rule__AttributeCS__NameAssignment_2");
 					put(grammarAccess.getAttributeCSAccess().getOwnedTypeAssignment_3_1(), "rule__AttributeCS__OwnedTypeAssignment_3_1");
 					put(grammarAccess.getAttributeCSAccess().getDefaultAssignment_4_1(), "rule__AttributeCS__DefaultAssignment_4_1");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_0(), "rule__AttributeCS__QualifiersAssignment_5_1_0_0");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_1(), "rule__AttributeCS__QualifiersAssignment_5_1_0_1");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_2(), "rule__AttributeCS__QualifiersAssignment_5_1_0_2");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_3(), "rule__AttributeCS__QualifiersAssignment_5_1_0_3");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_4(), "rule__AttributeCS__QualifiersAssignment_5_1_0_4");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_5(), "rule__AttributeCS__QualifiersAssignment_5_1_0_5");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_6(), "rule__AttributeCS__QualifiersAssignment_5_1_0_6");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_7(), "rule__AttributeCS__QualifiersAssignment_5_1_0_7");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_8(), "rule__AttributeCS__QualifiersAssignment_5_1_0_8");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_9(), "rule__AttributeCS__QualifiersAssignment_5_1_0_9");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_10(), "rule__AttributeCS__QualifiersAssignment_5_1_0_10");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_11(), "rule__AttributeCS__QualifiersAssignment_5_1_0_11");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_12(), "rule__AttributeCS__QualifiersAssignment_5_1_0_12");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_13(), "rule__AttributeCS__QualifiersAssignment_5_1_0_13");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_14(), "rule__AttributeCS__QualifiersAssignment_5_1_0_14");
-					put(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_15(), "rule__AttributeCS__QualifiersAssignment_5_1_0_15");
+					put(grammarAccess.getAttributeCSAccess().getIsDerivedAssignment_5_0_1_0_0(), "rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0");
+					put(grammarAccess.getAttributeCSAccess().getIsIdAssignment_5_1_0_0(), "rule__AttributeCS__IsIdAssignment_5_1_0_0");
+					put(grammarAccess.getAttributeCSAccess().getIsOrderedAssignment_5_2_0_0(), "rule__AttributeCS__IsOrderedAssignment_5_2_0_0");
+					put(grammarAccess.getAttributeCSAccess().getIsReadonlyAssignment_5_3_0_0(), "rule__AttributeCS__IsReadonlyAssignment_5_3_0_0");
+					put(grammarAccess.getAttributeCSAccess().getIsTransientAssignment_5_4_0_0(), "rule__AttributeCS__IsTransientAssignment_5_4_0_0");
+					put(grammarAccess.getAttributeCSAccess().getIsNotUniqueAssignment_5_5_0_0(), "rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0");
+					put(grammarAccess.getAttributeCSAccess().getIsUnsettableAssignment_5_6_0_0(), "rule__AttributeCS__IsUnsettableAssignment_5_6_0_0");
+					put(grammarAccess.getAttributeCSAccess().getIsVolatileAssignment_5_7_0_0_0(), "rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0");
 					put(grammarAccess.getAttributeCSAccess().getOwnedAnnotationsAssignment_6_0_1_0(), "rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0");
 					put(grammarAccess.getAttributeCSAccess().getOwnedDefaultExpressionsAssignment_6_0_1_1_3(), "rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_1_3");
 					put(grammarAccess.getAttributeCSAccess().getOwnedDefaultExpressionsAssignment_6_0_1_2_3(), "rule__AttributeCS__OwnedDefaultExpressionsAssignment_6_0_1_2_3");
@@ -374,10 +395,8 @@
 					put(grammarAccess.getLibraryCSAccess().getNameAssignment_1_0(), "rule__LibraryCS__NameAssignment_1_0");
 					put(grammarAccess.getLibraryCSAccess().getReferredPackageAssignment_2(), "rule__LibraryCS__ReferredPackageAssignment_2");
 					put(grammarAccess.getModelElementRefCSAccess().getOwnedPathNameAssignment_1(), "rule__ModelElementRefCS__OwnedPathNameAssignment_1");
-					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_0_0(), "rule__OperationCS__QualifiersAssignment_0_0_0");
-					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_0_1(), "rule__OperationCS__QualifiersAssignment_0_0_1");
-					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_1_0(), "rule__OperationCS__QualifiersAssignment_0_1_0");
-					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_1_1(), "rule__OperationCS__QualifiersAssignment_0_1_1");
+					put(grammarAccess.getOperationCSAccess().getIsStaticAssignment_0_0(), "rule__OperationCS__IsStaticAssignment_0_0");
+					put(grammarAccess.getOperationCSAccess().getIsDefinitionAssignment_0_1(), "rule__OperationCS__IsDefinitionAssignment_0_1");
 					put(grammarAccess.getOperationCSAccess().getOwnedSignatureAssignment_2(), "rule__OperationCS__OwnedSignatureAssignment_2");
 					put(grammarAccess.getOperationCSAccess().getNameAssignment_3(), "rule__OperationCS__NameAssignment_3");
 					put(grammarAccess.getOperationCSAccess().getOwnedParametersAssignment_5_0(), "rule__OperationCS__OwnedParametersAssignment_5_0");
@@ -385,12 +404,9 @@
 					put(grammarAccess.getOperationCSAccess().getOwnedTypeAssignment_7_1(), "rule__OperationCS__OwnedTypeAssignment_7_1");
 					put(grammarAccess.getOperationCSAccess().getOwnedExceptionsAssignment_8_1(), "rule__OperationCS__OwnedExceptionsAssignment_8_1");
 					put(grammarAccess.getOperationCSAccess().getOwnedExceptionsAssignment_8_2_1(), "rule__OperationCS__OwnedExceptionsAssignment_8_2_1");
-					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_0(), "rule__OperationCS__QualifiersAssignment_9_1_0_0");
-					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_1(), "rule__OperationCS__QualifiersAssignment_9_1_0_1");
-					put(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_2(), "rule__OperationCS__QualifiersAssignment_9_1_0_2");
-					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().getIsDerivedAssignment_9_0_1_0_0(), "rule__OperationCS__IsDerivedAssignment_9_0_1_0_0");
+					put(grammarAccess.getOperationCSAccess().getIsOrderedAssignment_9_1_0_0(), "rule__OperationCS__IsOrderedAssignment_9_1_0_0");
+					put(grammarAccess.getOperationCSAccess().getIsNotUniqueAssignment_9_2_0_0_0(), "rule__OperationCS__IsNotUniqueAssignment_9_2_0_0_0");
 					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");
@@ -403,37 +419,24 @@
 					put(grammarAccess.getPackageCSAccess().getOwnedClassesAssignment_4_0_1_2(), "rule__PackageCS__OwnedClassesAssignment_4_0_1_2");
 					put(grammarAccess.getParameterCSAccess().getNameAssignment_0(), "rule__ParameterCS__NameAssignment_0");
 					put(grammarAccess.getParameterCSAccess().getOwnedTypeAssignment_1_1(), "rule__ParameterCS__OwnedTypeAssignment_1_1");
-					put(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_0(), "rule__ParameterCS__QualifiersAssignment_2_1_0_0");
-					put(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_1(), "rule__ParameterCS__QualifiersAssignment_2_1_0_1");
-					put(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_2(), "rule__ParameterCS__QualifiersAssignment_2_1_0_2");
-					put(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_3(), "rule__ParameterCS__QualifiersAssignment_2_1_0_3");
+					put(grammarAccess.getParameterCSAccess().getIsOrderedAssignment_2_0_1_0_0(), "rule__ParameterCS__IsOrderedAssignment_2_0_1_0_0");
+					put(grammarAccess.getParameterCSAccess().getIsNotUniqueAssignment_2_1_0_0_0(), "rule__ParameterCS__IsNotUniqueAssignment_2_1_0_0_0");
 					put(grammarAccess.getParameterCSAccess().getOwnedAnnotationsAssignment_3_1(), "rule__ParameterCS__OwnedAnnotationsAssignment_3_1");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_0_0(), "rule__ReferenceCS__QualifiersAssignment_0_0_0");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_0_1(), "rule__ReferenceCS__QualifiersAssignment_0_0_1");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_1_0(), "rule__ReferenceCS__QualifiersAssignment_0_1_0");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_1_1(), "rule__ReferenceCS__QualifiersAssignment_0_1_1");
+					put(grammarAccess.getReferenceCSAccess().getIsStaticAssignment_0_0(), "rule__ReferenceCS__IsStaticAssignment_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsDefinitionAssignment_0_1(), "rule__ReferenceCS__IsDefinitionAssignment_0_1");
 					put(grammarAccess.getReferenceCSAccess().getNameAssignment_2(), "rule__ReferenceCS__NameAssignment_2");
 					put(grammarAccess.getReferenceCSAccess().getReferredOppositeAssignment_3_1(), "rule__ReferenceCS__ReferredOppositeAssignment_3_1");
 					put(grammarAccess.getReferenceCSAccess().getOwnedTypeAssignment_4_1(), "rule__ReferenceCS__OwnedTypeAssignment_4_1");
 					put(grammarAccess.getReferenceCSAccess().getDefaultAssignment_5_1(), "rule__ReferenceCS__DefaultAssignment_5_1");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_0(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_0");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_1(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_1");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_2(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_2");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_3(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_3");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_4(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_4");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_5(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_5");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_6(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_6");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_7(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_7");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_8(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_8");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_9(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_9");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_10(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_10");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_11(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_11");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_12(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_12");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_13(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_13");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_14(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_14");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_15(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_15");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_16(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_16");
-					put(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_17(), "rule__ReferenceCS__QualifiersAssignment_6_1_0_17");
+					put(grammarAccess.getReferenceCSAccess().getIsComposesAssignment_6_0_1_0_0(), "rule__ReferenceCS__IsComposesAssignment_6_0_1_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsDerivedAssignment_6_1_0_0(), "rule__ReferenceCS__IsDerivedAssignment_6_1_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsOrderedAssignment_6_2_0_0(), "rule__ReferenceCS__IsOrderedAssignment_6_2_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsReadonlyAssignment_6_3_0_0(), "rule__ReferenceCS__IsReadonlyAssignment_6_3_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsResolveAssignment_6_4_0_0(), "rule__ReferenceCS__IsResolveAssignment_6_4_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsTransientAssignment_6_5_0_0(), "rule__ReferenceCS__IsTransientAssignment_6_5_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsNotUniqueAssignment_6_6_0_0(), "rule__ReferenceCS__IsNotUniqueAssignment_6_6_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsUnsettableAssignment_6_7_0_0(), "rule__ReferenceCS__IsUnsettableAssignment_6_7_0_0");
+					put(grammarAccess.getReferenceCSAccess().getIsVolatileAssignment_6_8_0_0_0(), "rule__ReferenceCS__IsVolatileAssignment_6_8_0_0_0");
 					put(grammarAccess.getReferenceCSAccess().getOwnedAnnotationsAssignment_7_0_1_0(), "rule__ReferenceCS__OwnedAnnotationsAssignment_7_0_1_0");
 					put(grammarAccess.getReferenceCSAccess().getReferredKeysAssignment_7_0_1_1_1(), "rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_1");
 					put(grammarAccess.getReferenceCSAccess().getReferredKeysAssignment_7_0_1_1_2_1(), "rule__ReferenceCS__ReferredKeysAssignment_7_0_1_1_2_1");
@@ -576,6 +579,13 @@
 					put(grammarAccess.getTypedTypeRefCSAccess().getOwnedBindingAssignment_1(), "rule__TypedTypeRefCS__OwnedBindingAssignment_1");
 					put(grammarAccess.getWildcardTypeRefCSAccess().getOwnedExtendsAssignment_2_0_1(), "rule__WildcardTypeRefCS__OwnedExtendsAssignment_2_0_1");
 					put(grammarAccess.getWildcardTypeRefCSAccess().getOwnedSuperAssignment_2_1_1(), "rule__WildcardTypeRefCS__OwnedSuperAssignment_2_1_1");
+					put(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0(), "rule__AttributeCS__UnorderedGroup_0");
+					put(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), "rule__AttributeCS__UnorderedGroup_5");
+					put(grammarAccess.getOperationCSAccess().getUnorderedGroup_0(), "rule__OperationCS__UnorderedGroup_0");
+					put(grammarAccess.getOperationCSAccess().getUnorderedGroup_9(), "rule__OperationCS__UnorderedGroup_9");
+					put(grammarAccess.getParameterCSAccess().getUnorderedGroup_2(), "rule__ParameterCS__UnorderedGroup_2");
+					put(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0(), "rule__ReferenceCS__UnorderedGroup_0");
+					put(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), "rule__ReferenceCS__UnorderedGroup_6");
 				}
 			};
 		}
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 b7ad363..cca0226 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
@@ -3499,21 +3499,23 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__Alternatives_0

+rule__AttributeCS__Alternatives_5_0_1_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getGroup_0_0()); }

-(rule__AttributeCS__Group_0_0__0)

-{ after(grammarAccess.getAttributeCSAccess().getGroup_0_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsDerivedAssignment_5_0_1_0_0()); }

+(rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getIsDerivedAssignment_5_0_1_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getAttributeCSAccess().getGroup_0_1()); }

-(rule__AttributeCS__Group_0_1__0)

-{ after(grammarAccess.getAttributeCSAccess().getGroup_0_1()); }

+{ before(grammarAccess.getAttributeCSAccess().getDerivedKeyword_5_0_1_0_1()); }

+

+	'!derived' 

+

+{ after(grammarAccess.getAttributeCSAccess().getDerivedKeyword_5_0_1_0_1()); }

 )

 

 ;

@@ -3527,99 +3529,161 @@
     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_0()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_0)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsIdAssignment_5_1_0_0()); }

+(rule__AttributeCS__IsIdAssignment_5_1_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getIsIdAssignment_5_1_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_1()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_1)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_1()); }

+{ before(grammarAccess.getAttributeCSAccess().getIdKeyword_5_1_0_1()); }

+

+	'!id' 

+

+{ after(grammarAccess.getAttributeCSAccess().getIdKeyword_5_1_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Alternatives_5_2_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getIsOrderedAssignment_5_2_0_0()); }

+(rule__AttributeCS__IsOrderedAssignment_5_2_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getIsOrderedAssignment_5_2_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_2()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_2)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_2()); }

+{ before(grammarAccess.getAttributeCSAccess().getOrderedKeyword_5_2_0_1()); }

+

+	'!ordered' 

+

+{ after(grammarAccess.getAttributeCSAccess().getOrderedKeyword_5_2_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Alternatives_5_3_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getIsReadonlyAssignment_5_3_0_0()); }

+(rule__AttributeCS__IsReadonlyAssignment_5_3_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getIsReadonlyAssignment_5_3_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_3()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_3)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_3()); }

+{ before(grammarAccess.getAttributeCSAccess().getReadonlyKeyword_5_3_0_1()); }

+

+	'!readonly' 

+

+{ after(grammarAccess.getAttributeCSAccess().getReadonlyKeyword_5_3_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Alternatives_5_4_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getIsTransientAssignment_5_4_0_0()); }

+(rule__AttributeCS__IsTransientAssignment_5_4_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getIsTransientAssignment_5_4_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_4()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_4)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_4()); }

+{ before(grammarAccess.getAttributeCSAccess().getTransientKeyword_5_4_0_1()); }

+

+	'!transient' 

+

+{ after(grammarAccess.getAttributeCSAccess().getTransientKeyword_5_4_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Alternatives_5_5_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getIsNotUniqueAssignment_5_5_0_0()); }

+(rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getIsNotUniqueAssignment_5_5_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_5()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_5)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_5()); }

+{ before(grammarAccess.getAttributeCSAccess().getUniqueKeyword_5_5_0_1()); }

+

+	'unique' 

+

+{ after(grammarAccess.getAttributeCSAccess().getUniqueKeyword_5_5_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Alternatives_5_6_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getIsUnsettableAssignment_5_6_0_0()); }

+(rule__AttributeCS__IsUnsettableAssignment_5_6_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getIsUnsettableAssignment_5_6_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_6()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_6)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_6()); }

+{ before(grammarAccess.getAttributeCSAccess().getUnsettableKeyword_5_6_0_1()); }

+

+	'!unsettable' 

+

+{ after(grammarAccess.getAttributeCSAccess().getUnsettableKeyword_5_6_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Alternatives_5_7_0_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getIsVolatileAssignment_5_7_0_0_0()); }

+(rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getIsVolatileAssignment_5_7_0_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_7()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_7)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_7()); }

-)

+{ before(grammarAccess.getAttributeCSAccess().getVolatileKeyword_5_7_0_0_1()); }

 

-    |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_8()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_8)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_8()); }

-)

+	'!volatile' 

 

-    |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_9()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_9)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_9()); }

-)

-

-    |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_10()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_10)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_10()); }

-)

-

-    |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_11()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_11)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_11()); }

-)

-

-    |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_12()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_12)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_12()); }

-)

-

-    |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_13()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_13)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_13()); }

-)

-

-    |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_14()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_14)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_14()); }

-)

-

-    |(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_15()); }

-(rule__AttributeCS__QualifiersAssignment_5_1_0_15)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_15()); }

+{ after(grammarAccess.getAttributeCSAccess().getVolatileKeyword_5_7_0_0_1()); }

 )

 

 ;

@@ -3983,21 +4047,23 @@
 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__Alternatives_0

+rule__OperationCS__Alternatives_9_0_1_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getGroup_0_0()); }

-(rule__OperationCS__Group_0_0__0)

-{ after(grammarAccess.getOperationCSAccess().getGroup_0_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsDerivedAssignment_9_0_1_0_0()); }

+(rule__OperationCS__IsDerivedAssignment_9_0_1_0_0)

+{ after(grammarAccess.getOperationCSAccess().getIsDerivedAssignment_9_0_1_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getOperationCSAccess().getGroup_0_1()); }

-(rule__OperationCS__Group_0_1__0)

-{ after(grammarAccess.getOperationCSAccess().getGroup_0_1()); }

+{ before(grammarAccess.getOperationCSAccess().getDerivedKeyword_9_0_1_0_1()); }

+

+	'!derived' 

+

+{ after(grammarAccess.getOperationCSAccess().getDerivedKeyword_9_0_1_0_1()); }

 )

 

 ;

@@ -4011,39 +4077,41 @@
     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_0()); }

-(rule__OperationCS__QualifiersAssignment_9_1_0_0)

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsOrderedAssignment_9_1_0_0()); }

+(rule__OperationCS__IsOrderedAssignment_9_1_0_0)

+{ after(grammarAccess.getOperationCSAccess().getIsOrderedAssignment_9_1_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_1()); }

-(rule__OperationCS__QualifiersAssignment_9_1_0_1)

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_1()); }

+{ before(grammarAccess.getOperationCSAccess().getOrderedKeyword_9_1_0_1()); }

+

+	'!ordered' 

+

+{ after(grammarAccess.getOperationCSAccess().getOrderedKeyword_9_1_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__OperationCS__Alternatives_9_2_0_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getOperationCSAccess().getIsNotUniqueAssignment_9_2_0_0_0()); }

+(rule__OperationCS__IsNotUniqueAssignment_9_2_0_0_0)

+{ after(grammarAccess.getOperationCSAccess().getIsNotUniqueAssignment_9_2_0_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_2()); }

-(rule__OperationCS__QualifiersAssignment_9_1_0_2)

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_2()); }

-)

+{ before(grammarAccess.getOperationCSAccess().getUniqueKeyword_9_2_0_0_1()); }

 

-    |(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_3()); }

-(rule__OperationCS__QualifiersAssignment_9_1_0_3)

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_3()); }

-)

+	'unique' 

 

-    |(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_4()); }

-(rule__OperationCS__QualifiersAssignment_9_1_0_4)

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_4()); }

-)

-

-    |(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_5()); }

-(rule__OperationCS__QualifiersAssignment_9_1_0_5)

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_9_1_0_5()); }

+{ after(grammarAccess.getOperationCSAccess().getUniqueKeyword_9_2_0_0_1()); }

 )

 

 ;

@@ -4161,33 +4229,23 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ParameterCS__Alternatives_2_1_0

+rule__ParameterCS__Alternatives_2_0_1_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_0()); }

-(rule__ParameterCS__QualifiersAssignment_2_1_0_0)

-{ after(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_0()); }

+{ before(grammarAccess.getParameterCSAccess().getIsOrderedAssignment_2_0_1_0_0()); }

+(rule__ParameterCS__IsOrderedAssignment_2_0_1_0_0)

+{ after(grammarAccess.getParameterCSAccess().getIsOrderedAssignment_2_0_1_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_1()); }

-(rule__ParameterCS__QualifiersAssignment_2_1_0_1)

-{ after(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_1()); }

-)

+{ before(grammarAccess.getParameterCSAccess().getOrderedKeyword_2_0_1_0_1()); }

 

-    |(

-{ before(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_2()); }

-(rule__ParameterCS__QualifiersAssignment_2_1_0_2)

-{ after(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_2()); }

-)

+	'!ordered' 

 

-    |(

-{ before(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_3()); }

-(rule__ParameterCS__QualifiersAssignment_2_1_0_3)

-{ after(grammarAccess.getParameterCSAccess().getQualifiersAssignment_2_1_0_3()); }

+{ after(grammarAccess.getParameterCSAccess().getOrderedKeyword_2_0_1_0_1()); }

 )

 

 ;

@@ -4195,21 +4253,47 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__Alternatives_0

+rule__ParameterCS__Alternatives_2_1_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getGroup_0_0()); }

-(rule__ReferenceCS__Group_0_0__0)

-{ after(grammarAccess.getReferenceCSAccess().getGroup_0_0()); }

+{ before(grammarAccess.getParameterCSAccess().getIsNotUniqueAssignment_2_1_0_0_0()); }

+(rule__ParameterCS__IsNotUniqueAssignment_2_1_0_0_0)

+{ after(grammarAccess.getParameterCSAccess().getIsNotUniqueAssignment_2_1_0_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getGroup_0_1()); }

-(rule__ReferenceCS__Group_0_1__0)

-{ after(grammarAccess.getReferenceCSAccess().getGroup_0_1()); }

+{ before(grammarAccess.getParameterCSAccess().getUniqueKeyword_2_1_0_0_1()); }

+

+	'unique' 

+

+{ after(grammarAccess.getParameterCSAccess().getUniqueKeyword_2_1_0_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Alternatives_6_0_1_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getIsComposesAssignment_6_0_1_0_0()); }

+(rule__ReferenceCS__IsComposesAssignment_6_0_1_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsComposesAssignment_6_0_1_0_0()); }

+)

+

+    |(

+{ before(grammarAccess.getReferenceCSAccess().getComposesKeyword_6_0_1_0_1()); }

+

+	'!composes' 

+

+{ after(grammarAccess.getReferenceCSAccess().getComposesKeyword_6_0_1_0_1()); }

 )

 

 ;

@@ -4223,111 +4307,185 @@
     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_0()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_0)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsDerivedAssignment_6_1_0_0()); }

+(rule__ReferenceCS__IsDerivedAssignment_6_1_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsDerivedAssignment_6_1_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_1()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_1)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_1()); }

+{ before(grammarAccess.getReferenceCSAccess().getDerivedKeyword_6_1_0_1()); }

+

+	'!derived' 

+

+{ after(grammarAccess.getReferenceCSAccess().getDerivedKeyword_6_1_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Alternatives_6_2_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getIsOrderedAssignment_6_2_0_0()); }

+(rule__ReferenceCS__IsOrderedAssignment_6_2_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsOrderedAssignment_6_2_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_2()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_2)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_2()); }

+{ before(grammarAccess.getReferenceCSAccess().getOrderedKeyword_6_2_0_1()); }

+

+	'!ordered' 

+

+{ after(grammarAccess.getReferenceCSAccess().getOrderedKeyword_6_2_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Alternatives_6_3_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getIsReadonlyAssignment_6_3_0_0()); }

+(rule__ReferenceCS__IsReadonlyAssignment_6_3_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsReadonlyAssignment_6_3_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_3()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_3)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_3()); }

+{ before(grammarAccess.getReferenceCSAccess().getReadonlyKeyword_6_3_0_1()); }

+

+	'!readonly' 

+

+{ after(grammarAccess.getReferenceCSAccess().getReadonlyKeyword_6_3_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Alternatives_6_4_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getIsResolveAssignment_6_4_0_0()); }

+(rule__ReferenceCS__IsResolveAssignment_6_4_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsResolveAssignment_6_4_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_4()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_4)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_4()); }

+{ before(grammarAccess.getReferenceCSAccess().getResolveKeyword_6_4_0_1()); }

+

+	'!resolve' 

+

+{ after(grammarAccess.getReferenceCSAccess().getResolveKeyword_6_4_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Alternatives_6_5_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getIsTransientAssignment_6_5_0_0()); }

+(rule__ReferenceCS__IsTransientAssignment_6_5_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsTransientAssignment_6_5_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_5()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_5)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_5()); }

+{ before(grammarAccess.getReferenceCSAccess().getTransientKeyword_6_5_0_1()); }

+

+	'!transient' 

+

+{ after(grammarAccess.getReferenceCSAccess().getTransientKeyword_6_5_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Alternatives_6_6_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getIsNotUniqueAssignment_6_6_0_0()); }

+(rule__ReferenceCS__IsNotUniqueAssignment_6_6_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsNotUniqueAssignment_6_6_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_6()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_6)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_6()); }

+{ before(grammarAccess.getReferenceCSAccess().getUniqueKeyword_6_6_0_1()); }

+

+	'unique' 

+

+{ after(grammarAccess.getReferenceCSAccess().getUniqueKeyword_6_6_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Alternatives_6_7_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getIsUnsettableAssignment_6_7_0_0()); }

+(rule__ReferenceCS__IsUnsettableAssignment_6_7_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsUnsettableAssignment_6_7_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_7()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_7)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_7()); }

+{ before(grammarAccess.getReferenceCSAccess().getUnsettableKeyword_6_7_0_1()); }

+

+	'!unsettable' 

+

+{ after(grammarAccess.getReferenceCSAccess().getUnsettableKeyword_6_7_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Alternatives_6_8_0_0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getIsVolatileAssignment_6_8_0_0_0()); }

+(rule__ReferenceCS__IsVolatileAssignment_6_8_0_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getIsVolatileAssignment_6_8_0_0_0()); }

 )

 

     |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_8()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_8)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_8()); }

-)

+{ before(grammarAccess.getReferenceCSAccess().getVolatileKeyword_6_8_0_0_1()); }

 

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_9()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_9)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_9()); }

-)

+	'!volatile' 

 

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_10()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_10)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_10()); }

-)

-

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_11()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_11)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_11()); }

-)

-

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_12()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_12)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_12()); }

-)

-

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_13()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_13)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_13()); }

-)

-

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_14()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_14)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_14()); }

-)

-

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_15()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_15)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_15()); }

-)

-

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_16()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_16)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_16()); }

-)

-

-    |(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_17()); }

-(rule__ReferenceCS__QualifiersAssignment_6_1_0_17)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_6_1_0_17()); }

+{ after(grammarAccess.getReferenceCSAccess().getVolatileKeyword_6_8_0_0_1()); }

 )

 

 ;

@@ -7378,9 +7536,9 @@
     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getAlternatives_0()); }

-(rule__AttributeCS__Alternatives_0)?

-{ after(grammarAccess.getAttributeCSAccess().getAlternatives_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0()); }

+(rule__AttributeCS__UnorderedGroup_0)

+{ after(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0()); }

 )

 

 ;

@@ -7525,9 +7683,9 @@
     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getGroup_5()); }

-(rule__AttributeCS__Group_5__0)?

-{ after(grammarAccess.getAttributeCSAccess().getGroup_5()); }

+{ before(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5()); }

+(rule__AttributeCS__UnorderedGroup_5)?

+{ after(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5()); }

 )

 

 ;

@@ -7578,128 +7736,6 @@
 

 

 

-rule__AttributeCS__Group_0_0__0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__AttributeCS__Group_0_0__0__Impl

-	rule__AttributeCS__Group_0_0__1

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__Group_0_0__0__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_0_0()); }

-(rule__AttributeCS__QualifiersAssignment_0_0_0)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_0_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-rule__AttributeCS__Group_0_0__1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__AttributeCS__Group_0_0__1__Impl

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__Group_0_0__1__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_0_1()); }

-(rule__AttributeCS__QualifiersAssignment_0_0_1)?

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_0_1()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-

-

-

-

-rule__AttributeCS__Group_0_1__0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__AttributeCS__Group_0_1__0__Impl

-	rule__AttributeCS__Group_0_1__1

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__Group_0_1__0__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_1_0()); }

-(rule__AttributeCS__QualifiersAssignment_0_1_0)

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-rule__AttributeCS__Group_0_1__1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__AttributeCS__Group_0_1__1__Impl

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__Group_0_1__1__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_1_1()); }

-(rule__AttributeCS__QualifiersAssignment_0_1_1)?

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_0_1_1()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-

-

-

-

 rule__AttributeCS__Group_3__0

     @init {

 		int stackSize = keepStackSize();

@@ -7826,29 +7862,29 @@
 

 

 

-rule__AttributeCS__Group_5__0

+rule__AttributeCS__Group_5_0__0

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__AttributeCS__Group_5__0__Impl

-	rule__AttributeCS__Group_5__1

+	rule__AttributeCS__Group_5_0__0__Impl

+	rule__AttributeCS__Group_5_0__1

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__Group_5__0__Impl

+rule__AttributeCS__Group_5_0__0__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getLeftCurlyBracketKeyword_5_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getLeftCurlyBracketKeyword_5_0_0()); }

 

 	'{' 

 

-{ after(grammarAccess.getAttributeCSAccess().getLeftCurlyBracketKeyword_5_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getLeftCurlyBracketKeyword_5_0_0()); }

 )

 

 ;

@@ -7857,34 +7893,26 @@
 }

 

 

-rule__AttributeCS__Group_5__1

+rule__AttributeCS__Group_5_0__1

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__AttributeCS__Group_5__1__Impl

-	rule__AttributeCS__Group_5__2

+	rule__AttributeCS__Group_5_0__1__Impl

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__Group_5__1__Impl

+rule__AttributeCS__Group_5_0__1__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-(

-{ before(grammarAccess.getAttributeCSAccess().getGroup_5_1()); }

-(rule__AttributeCS__Group_5_1__0)

-{ after(grammarAccess.getAttributeCSAccess().getGroup_5_1()); }

-)

-(

-{ before(grammarAccess.getAttributeCSAccess().getGroup_5_1()); }

-(rule__AttributeCS__Group_5_1__0)*

-{ after(grammarAccess.getAttributeCSAccess().getGroup_5_1()); }

-)

+{ before(grammarAccess.getAttributeCSAccess().getGroup_5_0_1()); }

+(rule__AttributeCS__Group_5_0_1__0)?

+{ after(grammarAccess.getAttributeCSAccess().getGroup_5_0_1()); }

 )

 

 ;

@@ -7893,28 +7921,31 @@
 }

 

 

-rule__AttributeCS__Group_5__2

+

+

+

+

+rule__AttributeCS__Group_5_0_1__0

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__AttributeCS__Group_5__2__Impl

+	rule__AttributeCS__Group_5_0_1__0__Impl

+	rule__AttributeCS__Group_5_0_1__1

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__Group_5__2__Impl

+rule__AttributeCS__Group_5_0_1__0__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getRightCurlyBracketKeyword_5_2()); }

-

-	'}' 

-

-{ after(grammarAccess.getAttributeCSAccess().getRightCurlyBracketKeyword_5_2()); }

+{ before(grammarAccess.getAttributeCSAccess().getAlternatives_5_0_1_0()); }

+(rule__AttributeCS__Alternatives_5_0_1_0)

+{ after(grammarAccess.getAttributeCSAccess().getAlternatives_5_0_1_0()); }

 )

 

 ;

@@ -7923,6 +7954,34 @@
 }

 

 

+rule__AttributeCS__Group_5_0_1__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_0_1__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_0_1__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_0_1_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_0_1_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

 

 

 

@@ -7992,6 +8051,447 @@
 

 

 

+rule__AttributeCS__Group_5_2__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_2__0__Impl

+	rule__AttributeCS__Group_5_2__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_2__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getAlternatives_5_2_0()); }

+(rule__AttributeCS__Alternatives_5_2_0)

+{ after(grammarAccess.getAttributeCSAccess().getAlternatives_5_2_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__Group_5_2__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_2__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_2__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_2_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_2_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__AttributeCS__Group_5_3__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_3__0__Impl

+	rule__AttributeCS__Group_5_3__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_3__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getAlternatives_5_3_0()); }

+(rule__AttributeCS__Alternatives_5_3_0)

+{ after(grammarAccess.getAttributeCSAccess().getAlternatives_5_3_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__Group_5_3__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_3__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_3__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_3_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_3_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__AttributeCS__Group_5_4__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_4__0__Impl

+	rule__AttributeCS__Group_5_4__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_4__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getAlternatives_5_4_0()); }

+(rule__AttributeCS__Alternatives_5_4_0)

+{ after(grammarAccess.getAttributeCSAccess().getAlternatives_5_4_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__Group_5_4__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_4__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_4__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_4_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_4_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__AttributeCS__Group_5_5__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_5__0__Impl

+	rule__AttributeCS__Group_5_5__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_5__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getAlternatives_5_5_0()); }

+(rule__AttributeCS__Alternatives_5_5_0)

+{ after(grammarAccess.getAttributeCSAccess().getAlternatives_5_5_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__Group_5_5__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_5__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_5__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_5_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_5_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__AttributeCS__Group_5_6__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_6__0__Impl

+	rule__AttributeCS__Group_5_6__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_6__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getAlternatives_5_6_0()); }

+(rule__AttributeCS__Alternatives_5_6_0)

+{ after(grammarAccess.getAttributeCSAccess().getAlternatives_5_6_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__Group_5_6__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_6__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_6__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_6_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_6_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__AttributeCS__Group_5_7__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_7__0__Impl

+	rule__AttributeCS__Group_5_7__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_7__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getGroup_5_7_0()); }

+(rule__AttributeCS__Group_5_7_0__0)?

+{ after(grammarAccess.getAttributeCSAccess().getGroup_5_7_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__Group_5_7__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_7__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_7__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getRightCurlyBracketKeyword_5_7_1()); }

+

+	'}' 

+

+{ after(grammarAccess.getAttributeCSAccess().getRightCurlyBracketKeyword_5_7_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__AttributeCS__Group_5_7_0__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_7_0__0__Impl

+	rule__AttributeCS__Group_5_7_0__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_7_0__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getAlternatives_5_7_0_0()); }

+(rule__AttributeCS__Alternatives_5_7_0_0)

+{ after(grammarAccess.getAttributeCSAccess().getAlternatives_5_7_0_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__Group_5_7_0__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__Group_5_7_0__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__AttributeCS__Group_5_7_0__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_7_0_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getAttributeCSAccess().getCommaKeyword_5_7_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

 rule__AttributeCS__Group_6_0__0

     @init {

 		int stackSize = keepStackSize();

@@ -10606,9 +11106,9 @@
     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getAlternatives_0()); }

-(rule__OperationCS__Alternatives_0)?

-{ after(grammarAccess.getOperationCSAccess().getAlternatives_0()); }

+{ before(grammarAccess.getOperationCSAccess().getUnorderedGroup_0()); }

+(rule__OperationCS__UnorderedGroup_0)

+{ after(grammarAccess.getOperationCSAccess().getUnorderedGroup_0()); }

 )

 

 ;

@@ -10873,9 +11373,9 @@
     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getGroup_9()); }

-(rule__OperationCS__Group_9__0)?

-{ after(grammarAccess.getOperationCSAccess().getGroup_9()); }

+{ before(grammarAccess.getOperationCSAccess().getUnorderedGroup_9()); }

+(rule__OperationCS__UnorderedGroup_9)?

+{ after(grammarAccess.getOperationCSAccess().getUnorderedGroup_9()); }

 )

 

 ;

@@ -10934,128 +11434,6 @@
 

 

 

-rule__OperationCS__Group_0_0__0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__OperationCS__Group_0_0__0__Impl

-	rule__OperationCS__Group_0_0__1

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__Group_0_0__0__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_0_0()); }

-(rule__OperationCS__QualifiersAssignment_0_0_0)

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_0_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-rule__OperationCS__Group_0_0__1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__OperationCS__Group_0_0__1__Impl

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__Group_0_0__1__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_0_1()); }

-(rule__OperationCS__QualifiersAssignment_0_0_1)?

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_0_1()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-

-

-

-

-rule__OperationCS__Group_0_1__0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__OperationCS__Group_0_1__0__Impl

-	rule__OperationCS__Group_0_1__1

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__Group_0_1__0__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_1_0()); }

-(rule__OperationCS__QualifiersAssignment_0_1_0)

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-rule__OperationCS__Group_0_1__1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__OperationCS__Group_0_1__1__Impl

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__Group_0_1__1__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_1_1()); }

-(rule__OperationCS__QualifiersAssignment_0_1_1)?

-{ after(grammarAccess.getOperationCSAccess().getQualifiersAssignment_0_1_1()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-

-

-

-

 rule__OperationCS__Group_5__0

     @init {

 		int stackSize = keepStackSize();

@@ -11400,29 +11778,29 @@
 

 

 

-rule__OperationCS__Group_9__0

+rule__OperationCS__Group_9_0__0

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__OperationCS__Group_9__0__Impl

-	rule__OperationCS__Group_9__1

+	rule__OperationCS__Group_9_0__0__Impl

+	rule__OperationCS__Group_9_0__1

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__Group_9__0__Impl

+rule__OperationCS__Group_9_0__0__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_9_0()); }

+{ before(grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_9_0_0()); }

 

 	'{' 

 

-{ after(grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_9_0()); }

+{ after(grammarAccess.getOperationCSAccess().getLeftCurlyBracketKeyword_9_0_0()); }

 )

 

 ;

@@ -11431,34 +11809,26 @@
 }

 

 

-rule__OperationCS__Group_9__1

+rule__OperationCS__Group_9_0__1

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__OperationCS__Group_9__1__Impl

-	rule__OperationCS__Group_9__2

+	rule__OperationCS__Group_9_0__1__Impl

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__Group_9__1__Impl

+rule__OperationCS__Group_9_0__1__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-(

-{ before(grammarAccess.getOperationCSAccess().getGroup_9_1()); }

-(rule__OperationCS__Group_9_1__0)

-{ after(grammarAccess.getOperationCSAccess().getGroup_9_1()); }

-)

-(

-{ before(grammarAccess.getOperationCSAccess().getGroup_9_1()); }

-(rule__OperationCS__Group_9_1__0)*

-{ after(grammarAccess.getOperationCSAccess().getGroup_9_1()); }

-)

+{ before(grammarAccess.getOperationCSAccess().getGroup_9_0_1()); }

+(rule__OperationCS__Group_9_0_1__0)?

+{ after(grammarAccess.getOperationCSAccess().getGroup_9_0_1()); }

 )

 

 ;

@@ -11467,28 +11837,31 @@
 }

 

 

-rule__OperationCS__Group_9__2

+

+

+

+

+rule__OperationCS__Group_9_0_1__0

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__OperationCS__Group_9__2__Impl

+	rule__OperationCS__Group_9_0_1__0__Impl

+	rule__OperationCS__Group_9_0_1__1

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__Group_9__2__Impl

+rule__OperationCS__Group_9_0_1__0__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2()); }

-

-	'}' 

-

-{ after(grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2()); }

+{ before(grammarAccess.getOperationCSAccess().getAlternatives_9_0_1_0()); }

+(rule__OperationCS__Alternatives_9_0_1_0)

+{ after(grammarAccess.getOperationCSAccess().getAlternatives_9_0_1_0()); }

 )

 

 ;

@@ -11497,6 +11870,34 @@
 }

 

 

+rule__OperationCS__Group_9_0_1__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__Group_9_0_1__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__OperationCS__Group_9_0_1__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getOperationCSAccess().getCommaKeyword_9_0_1_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getOperationCSAccess().getCommaKeyword_9_0_1_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

 

 

 

@@ -11566,6 +11967,132 @@
 

 

 

+rule__OperationCS__Group_9_2__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__Group_9_2__0__Impl

+	rule__OperationCS__Group_9_2__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__OperationCS__Group_9_2__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getOperationCSAccess().getGroup_9_2_0()); }

+(rule__OperationCS__Group_9_2_0__0)?

+{ after(grammarAccess.getOperationCSAccess().getGroup_9_2_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__Group_9_2__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__Group_9_2__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__OperationCS__Group_9_2__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2_1()); }

+

+	'}' 

+

+{ after(grammarAccess.getOperationCSAccess().getRightCurlyBracketKeyword_9_2_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__OperationCS__Group_9_2_0__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__Group_9_2_0__0__Impl

+	rule__OperationCS__Group_9_2_0__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__OperationCS__Group_9_2_0__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getOperationCSAccess().getAlternatives_9_2_0_0()); }

+(rule__OperationCS__Alternatives_9_2_0_0)

+{ after(grammarAccess.getOperationCSAccess().getAlternatives_9_2_0_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__Group_9_2_0__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__Group_9_2_0__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__OperationCS__Group_9_2_0__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getOperationCSAccess().getCommaKeyword_9_2_0_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getOperationCSAccess().getCommaKeyword_9_2_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

 rule__OperationCS__Group_10_0__0

     @init {

 		int stackSize = keepStackSize();

@@ -12276,9 +12803,9 @@
     }

 :

 (

-{ before(grammarAccess.getParameterCSAccess().getGroup_2()); }

-(rule__ParameterCS__Group_2__0)?

-{ after(grammarAccess.getParameterCSAccess().getGroup_2()); }

+{ before(grammarAccess.getParameterCSAccess().getUnorderedGroup_2()); }

+(rule__ParameterCS__UnorderedGroup_2)?

+{ after(grammarAccess.getParameterCSAccess().getUnorderedGroup_2()); }

 )

 

 ;

@@ -12386,29 +12913,29 @@
 

 

 

-rule__ParameterCS__Group_2__0

+rule__ParameterCS__Group_2_0__0

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__ParameterCS__Group_2__0__Impl

-	rule__ParameterCS__Group_2__1

+	rule__ParameterCS__Group_2_0__0__Impl

+	rule__ParameterCS__Group_2_0__1

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__ParameterCS__Group_2__0__Impl

+rule__ParameterCS__Group_2_0__0__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getParameterCSAccess().getLeftCurlyBracketKeyword_2_0()); }

+{ before(grammarAccess.getParameterCSAccess().getLeftCurlyBracketKeyword_2_0_0()); }

 

 	'{' 

 

-{ after(grammarAccess.getParameterCSAccess().getLeftCurlyBracketKeyword_2_0()); }

+{ after(grammarAccess.getParameterCSAccess().getLeftCurlyBracketKeyword_2_0_0()); }

 )

 

 ;

@@ -12417,34 +12944,26 @@
 }

 

 

-rule__ParameterCS__Group_2__1

+rule__ParameterCS__Group_2_0__1

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__ParameterCS__Group_2__1__Impl

-	rule__ParameterCS__Group_2__2

+	rule__ParameterCS__Group_2_0__1__Impl

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__ParameterCS__Group_2__1__Impl

+rule__ParameterCS__Group_2_0__1__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-(

-{ before(grammarAccess.getParameterCSAccess().getGroup_2_1()); }

-(rule__ParameterCS__Group_2_1__0)

-{ after(grammarAccess.getParameterCSAccess().getGroup_2_1()); }

-)

-(

-{ before(grammarAccess.getParameterCSAccess().getGroup_2_1()); }

-(rule__ParameterCS__Group_2_1__0)*

-{ after(grammarAccess.getParameterCSAccess().getGroup_2_1()); }

-)

+{ before(grammarAccess.getParameterCSAccess().getGroup_2_0_1()); }

+(rule__ParameterCS__Group_2_0_1__0)?

+{ after(grammarAccess.getParameterCSAccess().getGroup_2_0_1()); }

 )

 

 ;

@@ -12453,28 +12972,31 @@
 }

 

 

-rule__ParameterCS__Group_2__2

+

+

+

+

+rule__ParameterCS__Group_2_0_1__0

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__ParameterCS__Group_2__2__Impl

+	rule__ParameterCS__Group_2_0_1__0__Impl

+	rule__ParameterCS__Group_2_0_1__1

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__ParameterCS__Group_2__2__Impl

+rule__ParameterCS__Group_2_0_1__0__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getParameterCSAccess().getRightCurlyBracketKeyword_2_2()); }

-

-	'}' 

-

-{ after(grammarAccess.getParameterCSAccess().getRightCurlyBracketKeyword_2_2()); }

+{ before(grammarAccess.getParameterCSAccess().getAlternatives_2_0_1_0()); }

+(rule__ParameterCS__Alternatives_2_0_1_0)

+{ after(grammarAccess.getParameterCSAccess().getAlternatives_2_0_1_0()); }

 )

 

 ;

@@ -12483,6 +13005,34 @@
 }

 

 

+rule__ParameterCS__Group_2_0_1__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ParameterCS__Group_2_0_1__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ParameterCS__Group_2_0_1__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getParameterCSAccess().getCommaKeyword_2_0_1_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getParameterCSAccess().getCommaKeyword_2_0_1_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

 

 

 

@@ -12507,9 +13057,9 @@
     }

 :

 (

-{ before(grammarAccess.getParameterCSAccess().getAlternatives_2_1_0()); }

-(rule__ParameterCS__Alternatives_2_1_0)

-{ after(grammarAccess.getParameterCSAccess().getAlternatives_2_1_0()); }

+{ before(grammarAccess.getParameterCSAccess().getGroup_2_1_0()); }

+(rule__ParameterCS__Group_2_1_0__0)?

+{ after(grammarAccess.getParameterCSAccess().getGroup_2_1_0()); }

 )

 

 ;

@@ -12535,11 +13085,74 @@
     }

 :

 (

-{ before(grammarAccess.getParameterCSAccess().getCommaKeyword_2_1_1()); }

+{ before(grammarAccess.getParameterCSAccess().getRightCurlyBracketKeyword_2_1_1()); }

+

+	'}' 

+

+{ after(grammarAccess.getParameterCSAccess().getRightCurlyBracketKeyword_2_1_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ParameterCS__Group_2_1_0__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ParameterCS__Group_2_1_0__0__Impl

+	rule__ParameterCS__Group_2_1_0__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ParameterCS__Group_2_1_0__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getParameterCSAccess().getAlternatives_2_1_0_0()); }

+(rule__ParameterCS__Alternatives_2_1_0_0)

+{ after(grammarAccess.getParameterCSAccess().getAlternatives_2_1_0_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ParameterCS__Group_2_1_0__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ParameterCS__Group_2_1_0__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ParameterCS__Group_2_1_0__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getParameterCSAccess().getCommaKeyword_2_1_0_1()); }

 (

 	',' 

 )?

-{ after(grammarAccess.getParameterCSAccess().getCommaKeyword_2_1_1()); }

+{ after(grammarAccess.getParameterCSAccess().getCommaKeyword_2_1_0_1()); }

 )

 

 ;

@@ -12666,9 +13279,9 @@
     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getAlternatives_0()); }

-(rule__ReferenceCS__Alternatives_0)?

-{ after(grammarAccess.getReferenceCSAccess().getAlternatives_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0()); }

+(rule__ReferenceCS__UnorderedGroup_0)

+{ after(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0()); }

 )

 

 ;

@@ -12842,9 +13455,9 @@
     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getGroup_6()); }

-(rule__ReferenceCS__Group_6__0)?

-{ after(grammarAccess.getReferenceCSAccess().getGroup_6()); }

+{ before(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6()); }

+(rule__ReferenceCS__UnorderedGroup_6)?

+{ after(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6()); }

 )

 

 ;

@@ -12897,128 +13510,6 @@
 

 

 

-rule__ReferenceCS__Group_0_0__0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__ReferenceCS__Group_0_0__0__Impl

-	rule__ReferenceCS__Group_0_0__1

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__Group_0_0__0__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_0_0()); }

-(rule__ReferenceCS__QualifiersAssignment_0_0_0)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_0_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-rule__ReferenceCS__Group_0_0__1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__ReferenceCS__Group_0_0__1__Impl

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__Group_0_0__1__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_0_1()); }

-(rule__ReferenceCS__QualifiersAssignment_0_0_1)?

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_0_1()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-

-

-

-

-rule__ReferenceCS__Group_0_1__0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__ReferenceCS__Group_0_1__0__Impl

-	rule__ReferenceCS__Group_0_1__1

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__Group_0_1__0__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_1_0()); }

-(rule__ReferenceCS__QualifiersAssignment_0_1_0)

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-rule__ReferenceCS__Group_0_1__1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-	rule__ReferenceCS__Group_0_1__1__Impl

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__Group_0_1__1__Impl

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_1_1()); }

-(rule__ReferenceCS__QualifiersAssignment_0_1_1)?

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersAssignment_0_1_1()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-

-

-

-

-

 rule__ReferenceCS__Group_3__0

     @init {

 		int stackSize = keepStackSize();

@@ -13208,29 +13699,29 @@
 

 

 

-rule__ReferenceCS__Group_6__0

+rule__ReferenceCS__Group_6_0__0

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__ReferenceCS__Group_6__0__Impl

-	rule__ReferenceCS__Group_6__1

+	rule__ReferenceCS__Group_6_0__0__Impl

+	rule__ReferenceCS__Group_6_0__1

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__Group_6__0__Impl

+rule__ReferenceCS__Group_6_0__0__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getLeftCurlyBracketKeyword_6_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getLeftCurlyBracketKeyword_6_0_0()); }

 

 	'{' 

 

-{ after(grammarAccess.getReferenceCSAccess().getLeftCurlyBracketKeyword_6_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getLeftCurlyBracketKeyword_6_0_0()); }

 )

 

 ;

@@ -13239,34 +13730,26 @@
 }

 

 

-rule__ReferenceCS__Group_6__1

+rule__ReferenceCS__Group_6_0__1

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__ReferenceCS__Group_6__1__Impl

-	rule__ReferenceCS__Group_6__2

+	rule__ReferenceCS__Group_6_0__1__Impl

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__Group_6__1__Impl

+rule__ReferenceCS__Group_6_0__1__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-(

-{ before(grammarAccess.getReferenceCSAccess().getGroup_6_1()); }

-(rule__ReferenceCS__Group_6_1__0)

-{ after(grammarAccess.getReferenceCSAccess().getGroup_6_1()); }

-)

-(

-{ before(grammarAccess.getReferenceCSAccess().getGroup_6_1()); }

-(rule__ReferenceCS__Group_6_1__0)*

-{ after(grammarAccess.getReferenceCSAccess().getGroup_6_1()); }

-)

+{ before(grammarAccess.getReferenceCSAccess().getGroup_6_0_1()); }

+(rule__ReferenceCS__Group_6_0_1__0)?

+{ after(grammarAccess.getReferenceCSAccess().getGroup_6_0_1()); }

 )

 

 ;

@@ -13275,28 +13758,31 @@
 }

 

 

-rule__ReferenceCS__Group_6__2

+

+

+

+

+rule__ReferenceCS__Group_6_0_1__0

     @init {

 		int stackSize = keepStackSize();

     }

 :

-	rule__ReferenceCS__Group_6__2__Impl

+	rule__ReferenceCS__Group_6_0_1__0__Impl

+	rule__ReferenceCS__Group_6_0_1__1

 ;

 finally {

 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__Group_6__2__Impl

+rule__ReferenceCS__Group_6_0_1__0__Impl

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getRightCurlyBracketKeyword_6_2()); }

-

-	'}' 

-

-{ after(grammarAccess.getReferenceCSAccess().getRightCurlyBracketKeyword_6_2()); }

+{ before(grammarAccess.getReferenceCSAccess().getAlternatives_6_0_1_0()); }

+(rule__ReferenceCS__Alternatives_6_0_1_0)

+{ after(grammarAccess.getReferenceCSAccess().getAlternatives_6_0_1_0()); }

 )

 

 ;

@@ -13305,6 +13791,34 @@
 }

 

 

+rule__ReferenceCS__Group_6_0_1__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_0_1__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_0_1__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_0_1_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_0_1_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

 

 

 

@@ -13374,6 +13888,510 @@
 

 

 

+rule__ReferenceCS__Group_6_2__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_2__0__Impl

+	rule__ReferenceCS__Group_6_2__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_2__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getAlternatives_6_2_0()); }

+(rule__ReferenceCS__Alternatives_6_2_0)

+{ after(grammarAccess.getReferenceCSAccess().getAlternatives_6_2_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__Group_6_2__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_2__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_2__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_2_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_2_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__Group_6_3__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_3__0__Impl

+	rule__ReferenceCS__Group_6_3__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_3__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getAlternatives_6_3_0()); }

+(rule__ReferenceCS__Alternatives_6_3_0)

+{ after(grammarAccess.getReferenceCSAccess().getAlternatives_6_3_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__Group_6_3__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_3__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_3__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_3_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_3_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__Group_6_4__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_4__0__Impl

+	rule__ReferenceCS__Group_6_4__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_4__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getAlternatives_6_4_0()); }

+(rule__ReferenceCS__Alternatives_6_4_0)

+{ after(grammarAccess.getReferenceCSAccess().getAlternatives_6_4_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__Group_6_4__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_4__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_4__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_4_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_4_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__Group_6_5__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_5__0__Impl

+	rule__ReferenceCS__Group_6_5__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_5__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getAlternatives_6_5_0()); }

+(rule__ReferenceCS__Alternatives_6_5_0)

+{ after(grammarAccess.getReferenceCSAccess().getAlternatives_6_5_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__Group_6_5__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_5__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_5__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_5_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_5_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__Group_6_6__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_6__0__Impl

+	rule__ReferenceCS__Group_6_6__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_6__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getAlternatives_6_6_0()); }

+(rule__ReferenceCS__Alternatives_6_6_0)

+{ after(grammarAccess.getReferenceCSAccess().getAlternatives_6_6_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__Group_6_6__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_6__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_6__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_6_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_6_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__Group_6_7__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_7__0__Impl

+	rule__ReferenceCS__Group_6_7__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_7__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getAlternatives_6_7_0()); }

+(rule__ReferenceCS__Alternatives_6_7_0)

+{ after(grammarAccess.getReferenceCSAccess().getAlternatives_6_7_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__Group_6_7__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_7__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_7__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_7_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_7_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__Group_6_8__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_8__0__Impl

+	rule__ReferenceCS__Group_6_8__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_8__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getGroup_6_8_0()); }

+(rule__ReferenceCS__Group_6_8_0__0)?

+{ after(grammarAccess.getReferenceCSAccess().getGroup_6_8_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__Group_6_8__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_8__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_8__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getRightCurlyBracketKeyword_6_8_1()); }

+

+	'}' 

+

+{ after(grammarAccess.getReferenceCSAccess().getRightCurlyBracketKeyword_6_8_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__Group_6_8_0__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_8_0__0__Impl

+	rule__ReferenceCS__Group_6_8_0__1

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_8_0__0__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getAlternatives_6_8_0_0()); }

+(rule__ReferenceCS__Alternatives_6_8_0_0)

+{ after(grammarAccess.getReferenceCSAccess().getAlternatives_6_8_0_0()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__Group_6_8_0__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__Group_6_8_0__1__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+rule__ReferenceCS__Group_6_8_0__1__Impl

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+(

+{ before(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_8_0_1()); }

+(

+	',' 

+)?

+{ after(grammarAccess.getReferenceCSAccess().getCommaKeyword_6_8_0_1()); }

+)

+

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

 rule__ReferenceCS__Group_7_0__0

     @init {

 		int stackSize = keepStackSize();

@@ -22905,6 +23923,1130 @@
 

 

 

+rule__AttributeCS__UnorderedGroup_0

+    @init {

+    	int stackSize = keepStackSize();

+		getUnorderedGroupHelper().enter(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0());

+    }

+:

+	rule__AttributeCS__UnorderedGroup_0__0

+	?

+	

+;

+finally {

+	getUnorderedGroupHelper().leave(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0());

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_0__Impl

+	@init {

+		int stackSize = keepStackSize();

+		boolean selected = false;

+    }

+:

+		(

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0(), 0)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0(), 0);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getIsStaticAssignment_0_0()); }

+						(rule__AttributeCS__IsStaticAssignment_0_0)

+						{ after(grammarAccess.getAttributeCSAccess().getIsStaticAssignment_0_0()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0(), 1)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0(), 1);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getIsDefinitionAssignment_0_1()); }

+						(rule__AttributeCS__IsDefinitionAssignment_0_1)

+						{ after(grammarAccess.getAttributeCSAccess().getIsDefinitionAssignment_0_1()); }

+					)

+ 				)

+			)  

+

+		)

+;

+finally {

+	if (selected)

+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAttributeCSAccess().getUnorderedGroup_0());

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_0__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_0__Impl

+	rule__AttributeCS__UnorderedGroup_0__1?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_0__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_0__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__AttributeCS__UnorderedGroup_5

+    @init {

+    	int stackSize = keepStackSize();

+		getUnorderedGroupHelper().enter(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5());

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__0

+	

+	{getUnorderedGroupHelper().canLeave(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5())}?

+	

+;

+finally {

+	getUnorderedGroupHelper().leave(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5());

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__Impl

+	@init {

+		int stackSize = keepStackSize();

+		boolean selected = false;

+    }

+:

+		(

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 0)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 0);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getGroup_5_0()); }

+						(rule__AttributeCS__Group_5_0__0)

+						{ after(grammarAccess.getAttributeCSAccess().getGroup_5_0()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 1)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 1);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getGroup_5_1()); }

+						(rule__AttributeCS__Group_5_1__0)

+						{ after(grammarAccess.getAttributeCSAccess().getGroup_5_1()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 2)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 2);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getGroup_5_2()); }

+						(rule__AttributeCS__Group_5_2__0)

+						{ after(grammarAccess.getAttributeCSAccess().getGroup_5_2()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 3)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 3);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getGroup_5_3()); }

+						(rule__AttributeCS__Group_5_3__0)

+						{ after(grammarAccess.getAttributeCSAccess().getGroup_5_3()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 4)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 4);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getGroup_5_4()); }

+						(rule__AttributeCS__Group_5_4__0)

+						{ after(grammarAccess.getAttributeCSAccess().getGroup_5_4()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 5)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 5);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getGroup_5_5()); }

+						(rule__AttributeCS__Group_5_5__0)

+						{ after(grammarAccess.getAttributeCSAccess().getGroup_5_5()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 6)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 6);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getGroup_5_6()); }

+						(rule__AttributeCS__Group_5_6__0)

+						{ after(grammarAccess.getAttributeCSAccess().getGroup_5_6()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 7)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5(), 7);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getAttributeCSAccess().getGroup_5_7()); }

+						(rule__AttributeCS__Group_5_7__0)

+						{ after(grammarAccess.getAttributeCSAccess().getGroup_5_7()); }

+					)

+ 				)

+			)  

+

+		)

+;

+finally {

+	if (selected)

+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getAttributeCSAccess().getUnorderedGroup_5());

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__Impl

+	rule__AttributeCS__UnorderedGroup_5__1?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__Impl

+	rule__AttributeCS__UnorderedGroup_5__2?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__2

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__Impl

+	rule__AttributeCS__UnorderedGroup_5__3?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__3

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__Impl

+	rule__AttributeCS__UnorderedGroup_5__4?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__4

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__Impl

+	rule__AttributeCS__UnorderedGroup_5__5?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__5

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__Impl

+	rule__AttributeCS__UnorderedGroup_5__6?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__6

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__Impl

+	rule__AttributeCS__UnorderedGroup_5__7?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__AttributeCS__UnorderedGroup_5__7

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__AttributeCS__UnorderedGroup_5__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+rule__OperationCS__UnorderedGroup_0

+    @init {

+    	int stackSize = keepStackSize();

+		getUnorderedGroupHelper().enter(grammarAccess.getOperationCSAccess().getUnorderedGroup_0());

+    }

+:

+	rule__OperationCS__UnorderedGroup_0__0

+	?

+	

+;

+finally {

+	getUnorderedGroupHelper().leave(grammarAccess.getOperationCSAccess().getUnorderedGroup_0());

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__UnorderedGroup_0__Impl

+	@init {

+		int stackSize = keepStackSize();

+		boolean selected = false;

+    }

+:

+		(

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getOperationCSAccess().getUnorderedGroup_0(), 0)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getOperationCSAccess().getUnorderedGroup_0(), 0);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getOperationCSAccess().getIsStaticAssignment_0_0()); }

+						(rule__OperationCS__IsStaticAssignment_0_0)

+						{ after(grammarAccess.getOperationCSAccess().getIsStaticAssignment_0_0()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getOperationCSAccess().getUnorderedGroup_0(), 1)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getOperationCSAccess().getUnorderedGroup_0(), 1);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getOperationCSAccess().getIsDefinitionAssignment_0_1()); }

+						(rule__OperationCS__IsDefinitionAssignment_0_1)

+						{ after(grammarAccess.getOperationCSAccess().getIsDefinitionAssignment_0_1()); }

+					)

+ 				)

+			)  

+

+		)

+;

+finally {

+	if (selected)

+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOperationCSAccess().getUnorderedGroup_0());

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__UnorderedGroup_0__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__UnorderedGroup_0__Impl

+	rule__OperationCS__UnorderedGroup_0__1?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__UnorderedGroup_0__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__UnorderedGroup_0__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__OperationCS__UnorderedGroup_9

+    @init {

+    	int stackSize = keepStackSize();

+		getUnorderedGroupHelper().enter(grammarAccess.getOperationCSAccess().getUnorderedGroup_9());

+    }

+:

+	rule__OperationCS__UnorderedGroup_9__0

+	

+	{getUnorderedGroupHelper().canLeave(grammarAccess.getOperationCSAccess().getUnorderedGroup_9())}?

+	

+;

+finally {

+	getUnorderedGroupHelper().leave(grammarAccess.getOperationCSAccess().getUnorderedGroup_9());

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__UnorderedGroup_9__Impl

+	@init {

+		int stackSize = keepStackSize();

+		boolean selected = false;

+    }

+:

+		(

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getOperationCSAccess().getUnorderedGroup_9(), 0)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getOperationCSAccess().getUnorderedGroup_9(), 0);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getOperationCSAccess().getGroup_9_0()); }

+						(rule__OperationCS__Group_9_0__0)

+						{ after(grammarAccess.getOperationCSAccess().getGroup_9_0()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getOperationCSAccess().getUnorderedGroup_9(), 1)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getOperationCSAccess().getUnorderedGroup_9(), 1);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getOperationCSAccess().getGroup_9_1()); }

+						(rule__OperationCS__Group_9_1__0)

+						{ after(grammarAccess.getOperationCSAccess().getGroup_9_1()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getOperationCSAccess().getUnorderedGroup_9(), 2)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getOperationCSAccess().getUnorderedGroup_9(), 2);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getOperationCSAccess().getGroup_9_2()); }

+						(rule__OperationCS__Group_9_2__0)

+						{ after(grammarAccess.getOperationCSAccess().getGroup_9_2()); }

+					)

+ 				)

+			)  

+

+		)

+;

+finally {

+	if (selected)

+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getOperationCSAccess().getUnorderedGroup_9());

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__UnorderedGroup_9__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__UnorderedGroup_9__Impl

+	rule__OperationCS__UnorderedGroup_9__1?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__UnorderedGroup_9__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__UnorderedGroup_9__Impl

+	rule__OperationCS__UnorderedGroup_9__2?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__OperationCS__UnorderedGroup_9__2

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__OperationCS__UnorderedGroup_9__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+

+

+rule__ParameterCS__UnorderedGroup_2

+    @init {

+    	int stackSize = keepStackSize();

+		getUnorderedGroupHelper().enter(grammarAccess.getParameterCSAccess().getUnorderedGroup_2());

+    }

+:

+	rule__ParameterCS__UnorderedGroup_2__0

+	

+	{getUnorderedGroupHelper().canLeave(grammarAccess.getParameterCSAccess().getUnorderedGroup_2())}?

+	

+;

+finally {

+	getUnorderedGroupHelper().leave(grammarAccess.getParameterCSAccess().getUnorderedGroup_2());

+	restoreStackSize(stackSize);

+}

+

+

+rule__ParameterCS__UnorderedGroup_2__Impl

+	@init {

+		int stackSize = keepStackSize();

+		boolean selected = false;

+    }

+:

+		(

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getParameterCSAccess().getUnorderedGroup_2(), 0)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getParameterCSAccess().getUnorderedGroup_2(), 0);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getParameterCSAccess().getGroup_2_0()); }

+						(rule__ParameterCS__Group_2_0__0)

+						{ after(grammarAccess.getParameterCSAccess().getGroup_2_0()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getParameterCSAccess().getUnorderedGroup_2(), 1)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getParameterCSAccess().getUnorderedGroup_2(), 1);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getParameterCSAccess().getGroup_2_1()); }

+						(rule__ParameterCS__Group_2_1__0)

+						{ after(grammarAccess.getParameterCSAccess().getGroup_2_1()); }

+					)

+ 				)

+			)  

+

+		)

+;

+finally {

+	if (selected)

+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getParameterCSAccess().getUnorderedGroup_2());

+	restoreStackSize(stackSize);

+}

+

+

+rule__ParameterCS__UnorderedGroup_2__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ParameterCS__UnorderedGroup_2__Impl

+	rule__ParameterCS__UnorderedGroup_2__1?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ParameterCS__UnorderedGroup_2__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ParameterCS__UnorderedGroup_2__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__UnorderedGroup_0

+    @init {

+    	int stackSize = keepStackSize();

+		getUnorderedGroupHelper().enter(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0());

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_0__0

+	?

+	

+;

+finally {

+	getUnorderedGroupHelper().leave(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0());

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_0__Impl

+	@init {

+		int stackSize = keepStackSize();

+		boolean selected = false;

+    }

+:

+		(

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0(), 0)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0(), 0);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getIsStaticAssignment_0_0()); }

+						(rule__ReferenceCS__IsStaticAssignment_0_0)

+						{ after(grammarAccess.getReferenceCSAccess().getIsStaticAssignment_0_0()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0(), 1)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0(), 1);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getIsDefinitionAssignment_0_1()); }

+						(rule__ReferenceCS__IsDefinitionAssignment_0_1)

+						{ after(grammarAccess.getReferenceCSAccess().getIsDefinitionAssignment_0_1()); }

+					)

+ 				)

+			)  

+

+		)

+;

+finally {

+	if (selected)

+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getReferenceCSAccess().getUnorderedGroup_0());

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_0__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_0__Impl

+	rule__ReferenceCS__UnorderedGroup_0__1?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_0__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_0__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+rule__ReferenceCS__UnorderedGroup_6

+    @init {

+    	int stackSize = keepStackSize();

+		getUnorderedGroupHelper().enter(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6());

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__0

+	

+	{getUnorderedGroupHelper().canLeave(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6())}?

+	

+;

+finally {

+	getUnorderedGroupHelper().leave(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6());

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__Impl

+	@init {

+		int stackSize = keepStackSize();

+		boolean selected = false;

+    }

+:

+		(

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 0)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 0);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_0()); }

+						(rule__ReferenceCS__Group_6_0__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_0()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 1)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 1);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_1()); }

+						(rule__ReferenceCS__Group_6_1__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_1()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 2)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 2);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_2()); }

+						(rule__ReferenceCS__Group_6_2__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_2()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 3)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 3);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_3()); }

+						(rule__ReferenceCS__Group_6_3__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_3()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 4)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 4);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_4()); }

+						(rule__ReferenceCS__Group_6_4__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_4()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 5)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 5);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_5()); }

+						(rule__ReferenceCS__Group_6_5__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_5()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 6)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 6);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_6()); }

+						(rule__ReferenceCS__Group_6_6__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_6()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 7)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 7);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_7()); }

+						(rule__ReferenceCS__Group_6_7__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_7()); }

+					)

+ 				)

+			)  |

+

+			( 

+				{getUnorderedGroupHelper().canSelect(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 8)}?=>(

+					{ 

+	 				  getUnorderedGroupHelper().select(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6(), 8);

+	 				}

+	 				{

+	 				  selected = true;

+	 				}

+					(

+					

+						{ before(grammarAccess.getReferenceCSAccess().getGroup_6_8()); }

+						(rule__ReferenceCS__Group_6_8__0)

+						{ after(grammarAccess.getReferenceCSAccess().getGroup_6_8()); }

+					)

+ 				)

+			)  

+

+		)

+;

+finally {

+	if (selected)

+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getReferenceCSAccess().getUnorderedGroup_6());

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__0

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+	rule__ReferenceCS__UnorderedGroup_6__1?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__1

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+	rule__ReferenceCS__UnorderedGroup_6__2?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__2

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+	rule__ReferenceCS__UnorderedGroup_6__3?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__3

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+	rule__ReferenceCS__UnorderedGroup_6__4?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__4

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+	rule__ReferenceCS__UnorderedGroup_6__5?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__5

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+	rule__ReferenceCS__UnorderedGroup_6__6?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__6

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+	rule__ReferenceCS__UnorderedGroup_6__7?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__7

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+	rule__ReferenceCS__UnorderedGroup_6__8?

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+rule__ReferenceCS__UnorderedGroup_6__8

+    @init {

+		int stackSize = keepStackSize();

+    }

+:

+	rule__ReferenceCS__UnorderedGroup_6__Impl

+;

+finally {

+	restoreStackSize(stackSize);

+}

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

 rule__TopLevelCS__OwnedLibrariesAssignment_2

     @init {

 		int stackSize = keepStackSize();

@@ -23268,22 +25410,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_0_0_0

+rule__AttributeCS__IsStaticAssignment_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 

 	'static' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 )

 

 ;

@@ -23291,68 +25433,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_0_0_1

+rule__AttributeCS__IsDefinitionAssignment_0_1

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 

 	'definition' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_0_1_0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-

-	'definition' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_0_1_1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-

-	'static' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 )

 

 ;

@@ -23405,22 +25501,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_5_1_0_0

+rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_0_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsDerivedDerivedKeyword_5_0_1_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_0_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsDerivedDerivedKeyword_5_0_1_0_0_0()); }

 

 	'derived' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_0_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsDerivedDerivedKeyword_5_0_1_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_0_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsDerivedDerivedKeyword_5_0_1_0_0_0()); }

 )

 

 ;

@@ -23428,45 +25524,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_5_1_0_1

+rule__AttributeCS__IsIdAssignment_5_1_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_1_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsIdIdKeyword_5_1_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_1_0()); }

-

-	'!derived' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_1_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersDerivedKeyword_5_1_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_5_1_0_2

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_2_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_2_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsIdIdKeyword_5_1_0_0_0()); }

 

 	'id' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_2_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsIdIdKeyword_5_1_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_2_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsIdIdKeyword_5_1_0_0_0()); }

 )

 

 ;

@@ -23474,45 +25547,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_5_1_0_3

+rule__AttributeCS__IsOrderedAssignment_5_2_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_3_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsOrderedOrderedKeyword_5_2_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_3_0()); }

-

-	'!id' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_3_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersIdKeyword_5_1_0_3_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_5_1_0_4

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_4_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_4_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsOrderedOrderedKeyword_5_2_0_0_0()); }

 

 	'ordered' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_4_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsOrderedOrderedKeyword_5_2_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_4_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsOrderedOrderedKeyword_5_2_0_0_0()); }

 )

 

 ;

@@ -23520,45 +25570,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_5_1_0_5

+rule__AttributeCS__IsReadonlyAssignment_5_3_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_5_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsReadonlyReadonlyKeyword_5_3_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_5_0()); }

-

-	'!ordered' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_5_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersOrderedKeyword_5_1_0_5_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_5_1_0_6

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_6_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_6_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsReadonlyReadonlyKeyword_5_3_0_0_0()); }

 

 	'readonly' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_6_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsReadonlyReadonlyKeyword_5_3_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_6_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsReadonlyReadonlyKeyword_5_3_0_0_0()); }

 )

 

 ;

@@ -23566,45 +25593,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_5_1_0_7

+rule__AttributeCS__IsTransientAssignment_5_4_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_7_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsTransientTransientKeyword_5_4_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_7_0()); }

-

-	'!readonly' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_7_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersReadonlyKeyword_5_1_0_7_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_5_1_0_8

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_8_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_8_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsTransientTransientKeyword_5_4_0_0_0()); }

 

 	'transient' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_8_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsTransientTransientKeyword_5_4_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_8_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsTransientTransientKeyword_5_4_0_0_0()); }

 )

 

 ;

@@ -23612,68 +25616,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_5_1_0_9

+rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_9_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsNotUniqueUniqueKeyword_5_5_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_9_0()); }

-

-	'!transient' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_9_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersTransientKeyword_5_1_0_9_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_5_1_0_10

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_10_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_10_0()); }

-

-	'unique' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_10_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_10_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_5_1_0_11

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_11_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_11_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsNotUniqueUniqueKeyword_5_5_0_0_0()); }

 

 	'!unique' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_11_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsNotUniqueUniqueKeyword_5_5_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersUniqueKeyword_5_1_0_11_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsNotUniqueUniqueKeyword_5_5_0_0_0()); }

 )

 

 ;

@@ -23681,22 +25639,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_5_1_0_12

+rule__AttributeCS__IsUnsettableAssignment_5_6_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_12_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsUnsettableUnsettableKeyword_5_6_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_12_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsUnsettableUnsettableKeyword_5_6_0_0_0()); }

 

 	'unsettable' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_12_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsUnsettableUnsettableKeyword_5_6_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_12_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsUnsettableUnsettableKeyword_5_6_0_0_0()); }

 )

 

 ;

@@ -23704,68 +25662,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__AttributeCS__QualifiersAssignment_5_1_0_13

+rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_13_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsVolatileVolatileKeyword_5_7_0_0_0_0()); }

 (

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_13_0()); }

-

-	'!unsettable' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_13_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersUnsettableKeyword_5_1_0_13_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_5_1_0_14

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_14_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_14_0()); }

+{ before(grammarAccess.getAttributeCSAccess().getIsVolatileVolatileKeyword_5_7_0_0_0_0()); }

 

 	'volatile' 

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_14_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsVolatileVolatileKeyword_5_7_0_0_0_0()); }

 )

 

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_14_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__AttributeCS__QualifiersAssignment_5_1_0_15

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_15_0()); }

-(

-{ before(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_15_0()); }

-

-	'!volatile' 

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_15_0()); }

-)

-

-{ after(grammarAccess.getAttributeCSAccess().getQualifiersVolatileKeyword_5_1_0_15_0()); }

+{ after(grammarAccess.getAttributeCSAccess().getIsVolatileVolatileKeyword_5_7_0_0_0_0()); }

 )

 

 ;

@@ -24291,22 +26203,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__QualifiersAssignment_0_0_0

+rule__OperationCS__IsStaticAssignment_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 

 	'static' 

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 )

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 )

 

 ;

@@ -24314,68 +26226,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__QualifiersAssignment_0_0_1

+rule__OperationCS__IsDefinitionAssignment_0_1

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 

 	'definition' 

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 )

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__QualifiersAssignment_0_1_0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-

-	'definition' 

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-)

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__QualifiersAssignment_0_1_1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-

-	'static' 

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-)

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 )

 

 ;

@@ -24488,22 +26354,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__QualifiersAssignment_9_1_0_0

+rule__OperationCS__IsDerivedAssignment_9_0_1_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_0_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsDerivedDerivedKeyword_9_0_1_0_0_0()); }

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_0_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsDerivedDerivedKeyword_9_0_1_0_0_0()); }

 

 	'derived' 

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_0_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsDerivedDerivedKeyword_9_0_1_0_0_0()); }

 )

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_0_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsDerivedDerivedKeyword_9_0_1_0_0_0()); }

 )

 

 ;

@@ -24511,45 +26377,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__QualifiersAssignment_9_1_0_1

+rule__OperationCS__IsOrderedAssignment_9_1_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_1_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsOrderedOrderedKeyword_9_1_0_0_0()); }

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_1_0()); }

-

-	'!derived' 

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_1_0()); }

-)

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersDerivedKeyword_9_1_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__QualifiersAssignment_9_1_0_2

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_2_0()); }

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_2_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsOrderedOrderedKeyword_9_1_0_0_0()); }

 

 	'ordered' 

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_2_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsOrderedOrderedKeyword_9_1_0_0_0()); }

 )

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_2_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsOrderedOrderedKeyword_9_1_0_0_0()); }

 )

 

 ;

@@ -24557,68 +26400,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__OperationCS__QualifiersAssignment_9_1_0_3

+rule__OperationCS__IsNotUniqueAssignment_9_2_0_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_3_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsNotUniqueUniqueKeyword_9_2_0_0_0_0()); }

 (

-{ before(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_3_0()); }

-

-	'!ordered' 

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_3_0()); }

-)

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersOrderedKeyword_9_1_0_3_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__QualifiersAssignment_9_1_0_4

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); }

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); }

-

-	'unique' 

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); }

-)

-

-{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_4_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__OperationCS__QualifiersAssignment_9_1_0_5

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); }

-(

-{ before(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); }

+{ before(grammarAccess.getOperationCSAccess().getIsNotUniqueUniqueKeyword_9_2_0_0_0_0()); }

 

 	'!unique' 

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsNotUniqueUniqueKeyword_9_2_0_0_0_0()); }

 )

 

-{ after(grammarAccess.getOperationCSAccess().getQualifiersUniqueKeyword_9_1_0_5_0()); }

+{ after(grammarAccess.getOperationCSAccess().getIsNotUniqueUniqueKeyword_9_2_0_0_0_0()); }

 )

 

 ;

@@ -24806,22 +26603,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ParameterCS__QualifiersAssignment_2_1_0_0

+rule__ParameterCS__IsOrderedAssignment_2_0_1_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_0_0()); }

+{ before(grammarAccess.getParameterCSAccess().getIsOrderedOrderedKeyword_2_0_1_0_0_0()); }

 (

-{ before(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_0_0()); }

+{ before(grammarAccess.getParameterCSAccess().getIsOrderedOrderedKeyword_2_0_1_0_0_0()); }

 

 	'ordered' 

 

-{ after(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_0_0()); }

+{ after(grammarAccess.getParameterCSAccess().getIsOrderedOrderedKeyword_2_0_1_0_0_0()); }

 )

 

-{ after(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_0_0()); }

+{ after(grammarAccess.getParameterCSAccess().getIsOrderedOrderedKeyword_2_0_1_0_0_0()); }

 )

 

 ;

@@ -24829,68 +26626,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ParameterCS__QualifiersAssignment_2_1_0_1

+rule__ParameterCS__IsNotUniqueAssignment_2_1_0_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_1_0()); }

+{ before(grammarAccess.getParameterCSAccess().getIsNotUniqueUniqueKeyword_2_1_0_0_0_0()); }

 (

-{ before(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_1_0()); }

-

-	'!ordered' 

-

-{ after(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_1_0()); }

-)

-

-{ after(grammarAccess.getParameterCSAccess().getQualifiersOrderedKeyword_2_1_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ParameterCS__QualifiersAssignment_2_1_0_2

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_2_0()); }

-(

-{ before(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_2_0()); }

-

-	'unique' 

-

-{ after(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_2_0()); }

-)

-

-{ after(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_2_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ParameterCS__QualifiersAssignment_2_1_0_3

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_3_0()); }

-(

-{ before(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_3_0()); }

+{ before(grammarAccess.getParameterCSAccess().getIsNotUniqueUniqueKeyword_2_1_0_0_0_0()); }

 

 	'!unique' 

 

-{ after(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_3_0()); }

+{ after(grammarAccess.getParameterCSAccess().getIsNotUniqueUniqueKeyword_2_1_0_0_0_0()); }

 )

 

-{ after(grammarAccess.getParameterCSAccess().getQualifiersUniqueKeyword_2_1_0_3_0()); }

+{ after(grammarAccess.getParameterCSAccess().getIsNotUniqueUniqueKeyword_2_1_0_0_0_0()); }

 )

 

 ;

@@ -24913,22 +26664,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_0_0_0

+rule__ReferenceCS__IsStaticAssignment_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 

 	'static' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_0_0_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsStaticStaticKeyword_0_0_0()); }

 )

 

 ;

@@ -24936,68 +26687,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_0_0_1

+rule__ReferenceCS__IsDefinitionAssignment_0_1

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 

 	'definition' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_0_1_0

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-

-	'definition' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersDefinitionKeyword_0_1_0_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_0_1_1

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-

-	'static' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersStaticKeyword_0_1_1_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsDefinitionDefinitionKeyword_0_1_0()); }

 )

 

 ;

@@ -25069,22 +26774,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_0

+rule__ReferenceCS__IsComposesAssignment_6_0_1_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_0_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsComposesComposesKeyword_6_0_1_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_0_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsComposesComposesKeyword_6_0_1_0_0_0()); }

 

 	'composes' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_0_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsComposesComposesKeyword_6_0_1_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_0_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsComposesComposesKeyword_6_0_1_0_0_0()); }

 )

 

 ;

@@ -25092,45 +26797,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_1

+rule__ReferenceCS__IsDerivedAssignment_6_1_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_1_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsDerivedDerivedKeyword_6_1_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_1_0()); }

-

-	'!composes' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_1_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersComposesKeyword_6_1_0_1_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_2

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_2_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_2_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsDerivedDerivedKeyword_6_1_0_0_0()); }

 

 	'derived' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_2_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsDerivedDerivedKeyword_6_1_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_2_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsDerivedDerivedKeyword_6_1_0_0_0()); }

 )

 

 ;

@@ -25138,45 +26820,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_3

+rule__ReferenceCS__IsOrderedAssignment_6_2_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_3_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsOrderedOrderedKeyword_6_2_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_3_0()); }

-

-	'!derived' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_3_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersDerivedKeyword_6_1_0_3_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_4

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_4_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_4_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsOrderedOrderedKeyword_6_2_0_0_0()); }

 

 	'ordered' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_4_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsOrderedOrderedKeyword_6_2_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_4_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsOrderedOrderedKeyword_6_2_0_0_0()); }

 )

 

 ;

@@ -25184,45 +26843,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_5

+rule__ReferenceCS__IsReadonlyAssignment_6_3_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_5_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsReadonlyReadonlyKeyword_6_3_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_5_0()); }

-

-	'!ordered' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_5_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersOrderedKeyword_6_1_0_5_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_6

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_6_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_6_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsReadonlyReadonlyKeyword_6_3_0_0_0()); }

 

 	'readonly' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_6_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsReadonlyReadonlyKeyword_6_3_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_6_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsReadonlyReadonlyKeyword_6_3_0_0_0()); }

 )

 

 ;

@@ -25230,45 +26866,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_7

+rule__ReferenceCS__IsResolveAssignment_6_4_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_7_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsResolveResolveKeyword_6_4_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_7_0()); }

-

-	'!readonly' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_7_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersReadonlyKeyword_6_1_0_7_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_8

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_8_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_8_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsResolveResolveKeyword_6_4_0_0_0()); }

 

 	'resolve' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_8_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsResolveResolveKeyword_6_4_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_8_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsResolveResolveKeyword_6_4_0_0_0()); }

 )

 

 ;

@@ -25276,45 +26889,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_9

+rule__ReferenceCS__IsTransientAssignment_6_5_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_9_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsTransientTransientKeyword_6_5_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_9_0()); }

-

-	'!resolve' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_9_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersResolveKeyword_6_1_0_9_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_10

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_10_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_10_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsTransientTransientKeyword_6_5_0_0_0()); }

 

 	'transient' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_10_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsTransientTransientKeyword_6_5_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_10_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsTransientTransientKeyword_6_5_0_0_0()); }

 )

 

 ;

@@ -25322,68 +26912,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_11

+rule__ReferenceCS__IsNotUniqueAssignment_6_6_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_11_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsNotUniqueUniqueKeyword_6_6_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_11_0()); }

-

-	'!transient' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_11_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersTransientKeyword_6_1_0_11_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_12

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_12_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_12_0()); }

-

-	'unique' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_12_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_12_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_13

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_13_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_13_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsNotUniqueUniqueKeyword_6_6_0_0_0()); }

 

 	'!unique' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_13_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsNotUniqueUniqueKeyword_6_6_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersUniqueKeyword_6_1_0_13_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsNotUniqueUniqueKeyword_6_6_0_0_0()); }

 )

 

 ;

@@ -25391,22 +26935,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_14

+rule__ReferenceCS__IsUnsettableAssignment_6_7_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_14_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsUnsettableUnsettableKeyword_6_7_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_14_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsUnsettableUnsettableKeyword_6_7_0_0_0()); }

 

 	'unsettable' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_14_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsUnsettableUnsettableKeyword_6_7_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_14_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsUnsettableUnsettableKeyword_6_7_0_0_0()); }

 )

 

 ;

@@ -25414,68 +26958,22 @@
 	restoreStackSize(stackSize);

 }

 

-rule__ReferenceCS__QualifiersAssignment_6_1_0_15

+rule__ReferenceCS__IsVolatileAssignment_6_8_0_0_0

     @init {

 		int stackSize = keepStackSize();

     }

 :

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_15_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsVolatileVolatileKeyword_6_8_0_0_0_0()); }

 (

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_15_0()); }

-

-	'!unsettable' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_15_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersUnsettableKeyword_6_1_0_15_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_16

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_16_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_16_0()); }

+{ before(grammarAccess.getReferenceCSAccess().getIsVolatileVolatileKeyword_6_8_0_0_0_0()); }

 

 	'volatile' 

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_16_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsVolatileVolatileKeyword_6_8_0_0_0_0()); }

 )

 

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_16_0()); }

-)

-

-;

-finally {

-	restoreStackSize(stackSize);

-}

-

-rule__ReferenceCS__QualifiersAssignment_6_1_0_17

-    @init {

-		int stackSize = keepStackSize();

-    }

-:

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_17_0()); }

-(

-{ before(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_17_0()); }

-

-	'!volatile' 

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_17_0()); }

-)

-

-{ after(grammarAccess.getReferenceCSAccess().getQualifiersVolatileKeyword_6_1_0_17_0()); }

+{ after(grammarAccess.getReferenceCSAccess().getIsVolatileVolatileKeyword_6_8_0_0_0_0()); }

 )

 

 ;

diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.tokens b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.tokens
index d41b23c..d3e740d 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.tokens
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.tokens
@@ -1,61 +1,61 @@
-'!composes'=129

-'!derived'=120

-'!id'=121

-'!ordered'=122

-'!readonly'=123

-'!resolve'=130

-'!serializable'=54

-'!transient'=124

-'!unique'=125

-'!unsettable'=126

-'!volatile'=127

-'#'=101

-'&&'=119

-'('=95

-')'=96

-'*'=63

-'+'=65

-'++'=104

-','=98

-'-'=61

-'->'=77

-'.'=76

-'..'=103

-'/'=64

-':'=97

-'::'=102

-'::*'=128

+'!composes'=62

+'!derived'=54

+'!id'=55

+'!ordered'=56

+'!readonly'=57

+'!resolve'=63

+'!serializable'=61

+'!transient'=58

+'!unique'=129

+'!unsettable'=59

+'!volatile'=60

+'#'=110

+'&&'=128

+'('=104

+')'=105

+'*'=72

+'+'=74

+'++'=113

+','=107

+'-'=70

+'->'=86

+'.'=85

+'..'=112

+'/'=73

+':'=106

+'::'=111

+'::*'=130

 ';'=53

-'<'=67

-'<='=69

-'<>'=71

-'='=70

-'>'=66

-'>='=68

-'?'=94

-'?->'=79

-'?.'=78

+'<'=76

+'<='=78

+'<>'=80

+'='=79

+'>'=75

+'>='=77

+'?'=103

+'?->'=88

+'?.'=87

 '@'=133

-'Bag'=90

-'Boolean'=81

-'Collection'=92

-'Integer'=82

-'Lambda'=105

-'OclAny'=86

-'OclInvalid'=87

-'OclVoid'=88

-'OrderedSet'=93

-'Real'=83

-'Sequence'=91

-'Set'=89

-'String'=84

-'Tuple'=80

-'UnlimitedNatural'=85

-'['=109

-']'=110

+'Bag'=99

+'Boolean'=90

+'Collection'=101

+'Integer'=91

+'Lambda'=114

+'OclAny'=95

+'OclInvalid'=96

+'OclVoid'=97

+'OrderedSet'=102

+'Real'=92

+'Sequence'=100

+'Set'=98

+'String'=93

+'Tuple'=89

+'UnlimitedNatural'=94

+'['=118

+']'=119

 'abstract'=17

-'and'=72

-'annotation'=55

+'and'=81

+'annotation'=64

 'attribute'=18

 'body'=19

 'callable'=20

@@ -65,57 +65,57 @@
 'definition'=24

 'derivation'=25

 'derived'=26

-'documentation'=56

-'else'=114

-'elseif'=116

-'endif'=115

+'documentation'=65

+'else'=123

+'elseif'=125

+'endif'=124

 'enum'=27

 'extends'=28

 'false'=132

 'id'=29

-'if'=112

-'implies'=75

+'if'=121

+'implies'=84

 'import'=30

-'in'=111

+'in'=120

 'initial'=31

 'interface'=32

-'invalid'=106

-'invariant'=57

+'invalid'=115

+'invariant'=66

 'key'=33

-'let'=117

+'let'=126

 'library'=34

-'literal'=58

+'literal'=67

 'module'=35

-'not'=62

-'null'=107

+'not'=71

+'null'=116

 'operation'=36

-'or'=73

+'or'=82

 'ordered'=37

 'package'=38

 'postcondition'=39

-'pre'=108

+'pre'=117

 'precondition'=40

 'primitive'=41

 'property'=42

 'readonly'=43

 'reference'=44

 'resolve'=45

-'self'=118

-'serializable'=59

+'self'=127

+'serializable'=68

 'static'=46

 'super'=47

-'sysml'=60

-'then'=113

+'sysml'=69

+'then'=122

 'throws'=48

 'transient'=49

 'true'=131

 'unique'=50

 'unsettable'=51

 'volatile'=52

-'xor'=74

-'{'=99

+'xor'=83

+'{'=108

 '|'=134

-'}'=100

+'}'=109

 RULE_ANY_OTHER=16

 RULE_DOUBLE_QUOTED_STRING=12

 RULE_ESCAPED_CHARACTER=10

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 5105f63..8d1cddf 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
@@ -939,10 +939,10 @@
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:48:7: ( '!serializable' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:48:9: '!serializable'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:48:7: ( '!derived' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:48:9: '!derived'
             {
-            match("!serializable"); 
+            match("!derived"); 
 
 
             }
@@ -960,10 +960,10 @@
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:49:7: ( 'annotation' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:49:9: 'annotation'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:49:7: ( '!id' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:49:9: '!id'
             {
-            match("annotation"); 
+            match("!id"); 
 
 
             }
@@ -981,10 +981,10 @@
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:50:7: ( 'documentation' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:50:9: 'documentation'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:50:7: ( '!ordered' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:50:9: '!ordered'
             {
-            match("documentation"); 
+            match("!ordered"); 
 
 
             }
@@ -1002,10 +1002,10 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:51:7: ( 'invariant' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:51:9: 'invariant'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:51:7: ( '!readonly' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:51:9: '!readonly'
             {
-            match("invariant"); 
+            match("!readonly"); 
 
 
             }
@@ -1023,10 +1023,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:52:7: ( 'literal' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:52:9: 'literal'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:52:7: ( '!transient' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:52:9: '!transient'
             {
-            match("literal"); 
+            match("!transient"); 
 
 
             }
@@ -1044,10 +1044,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:53:7: ( 'serializable' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:53:9: 'serializable'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:53:7: ( '!unsettable' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:53:9: '!unsettable'
             {
-            match("serializable"); 
+            match("!unsettable"); 
 
 
             }
@@ -1065,10 +1065,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:54:7: ( 'sysml' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:54:9: 'sysml'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:54:7: ( '!volatile' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:54:9: '!volatile'
             {
-            match("sysml"); 
+            match("!volatile"); 
 
 
             }
@@ -1086,10 +1086,11 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:55:7: ( '-' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:55:9: '-'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:55:7: ( '!serializable' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:55:9: '!serializable'
             {
-            match('-'); 
+            match("!serializable"); 
+
 
             }
 
@@ -1106,10 +1107,10 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:56:7: ( 'not' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:56:9: 'not'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:56:7: ( '!composes' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:56:9: '!composes'
             {
-            match("not"); 
+            match("!composes"); 
 
 
             }
@@ -1127,10 +1128,11 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:57:7: ( '*' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:57:9: '*'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:57:7: ( '!resolve' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:57:9: '!resolve'
             {
-            match('*'); 
+            match("!resolve"); 
+
 
             }
 
@@ -1147,10 +1149,11 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:58:7: ( '/' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:58:9: '/'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:58:7: ( 'annotation' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:58:9: 'annotation'
             {
-            match('/'); 
+            match("annotation"); 
+
 
             }
 
@@ -1167,10 +1170,11 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:59:7: ( '+' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:59:9: '+'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:59:7: ( 'documentation' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:59:9: 'documentation'
             {
-            match('+'); 
+            match("documentation"); 
+
 
             }
 
@@ -1187,10 +1191,11 @@
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:60:7: ( '>' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:60:9: '>'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:60:7: ( 'invariant' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:60:9: 'invariant'
             {
-            match('>'); 
+            match("invariant"); 
+
 
             }
 
@@ -1207,10 +1212,11 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:61:7: ( '<' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:61:9: '<'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:61:7: ( 'literal' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:61:9: 'literal'
             {
-            match('<'); 
+            match("literal"); 
+
 
             }
 
@@ -1227,10 +1233,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:62:7: ( '>=' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:62:9: '>='
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:62:7: ( 'serializable' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:62:9: 'serializable'
             {
-            match(">="); 
+            match("serializable"); 
 
 
             }
@@ -1248,10 +1254,10 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:63:7: ( '<=' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:63:9: '<='
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:63:7: ( 'sysml' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:63:9: 'sysml'
             {
-            match("<="); 
+            match("sysml"); 
 
 
             }
@@ -1269,10 +1275,10 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:64:7: ( '=' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:64:9: '='
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:64:7: ( '-' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:64:9: '-'
             {
-            match('='); 
+            match('-'); 
 
             }
 
@@ -1289,10 +1295,10 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:65:7: ( '<>' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:65:9: '<>'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:65:7: ( 'not' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:65:9: 'not'
             {
-            match("<>"); 
+            match("not"); 
 
 
             }
@@ -1310,11 +1316,10 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:66:7: ( 'and' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:66:9: 'and'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:66:7: ( '*' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:66:9: '*'
             {
-            match("and"); 
-
+            match('*'); 
 
             }
 
@@ -1331,11 +1336,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:67:7: ( 'or' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:67:9: 'or'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:67:7: ( '/' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:67:9: '/'
             {
-            match("or"); 
-
+            match('/'); 
 
             }
 
@@ -1352,11 +1356,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:68:7: ( 'xor' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:68:9: 'xor'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:68:7: ( '+' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:68:9: '+'
             {
-            match("xor"); 
-
+            match('+'); 
 
             }
 
@@ -1373,11 +1376,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:69:7: ( 'implies' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:69:9: 'implies'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:69:7: ( '>' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:69:9: '>'
             {
-            match("implies"); 
-
+            match('>'); 
 
             }
 
@@ -1394,10 +1396,10 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:70:7: ( '.' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:70:9: '.'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:70:7: ( '<' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:70:9: '<'
             {
-            match('.'); 
+            match('<'); 
 
             }
 
@@ -1414,10 +1416,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:71:7: ( '->' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:71:9: '->'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:71:7: ( '>=' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:71:9: '>='
             {
-            match("->"); 
+            match(">="); 
 
 
             }
@@ -1435,10 +1437,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:72:7: ( '?.' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:72:9: '?.'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:72:7: ( '<=' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:72:9: '<='
             {
-            match("?."); 
+            match("<="); 
 
 
             }
@@ -1456,11 +1458,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:73:7: ( '?->' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:73:9: '?->'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:73:7: ( '=' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:73:9: '='
             {
-            match("?->"); 
-
+            match('='); 
 
             }
 
@@ -1477,10 +1478,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:74:7: ( 'Tuple' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:74:9: 'Tuple'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:74:7: ( '<>' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:74:9: '<>'
             {
-            match("Tuple"); 
+            match("<>"); 
 
 
             }
@@ -1498,10 +1499,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:75:7: ( 'Boolean' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:75:9: 'Boolean'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:75:7: ( 'and' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:75:9: 'and'
             {
-            match("Boolean"); 
+            match("and"); 
 
 
             }
@@ -1519,10 +1520,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:76:7: ( 'Integer' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:76:9: 'Integer'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:76:7: ( 'or' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:76:9: 'or'
             {
-            match("Integer"); 
+            match("or"); 
 
 
             }
@@ -1540,10 +1541,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:77:7: ( 'Real' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:77:9: 'Real'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:77:7: ( 'xor' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:77:9: 'xor'
             {
-            match("Real"); 
+            match("xor"); 
 
 
             }
@@ -1561,10 +1562,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:78:7: ( 'String' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:78:9: 'String'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:78:7: ( 'implies' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:78:9: 'implies'
             {
-            match("String"); 
+            match("implies"); 
 
 
             }
@@ -1582,11 +1583,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:79:7: ( 'UnlimitedNatural' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:79:9: 'UnlimitedNatural'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:79:7: ( '.' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:79:9: '.'
             {
-            match("UnlimitedNatural"); 
-
+            match('.'); 
 
             }
 
@@ -1603,10 +1603,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:80:7: ( 'OclAny' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:80:9: 'OclAny'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:80:7: ( '->' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:80:9: '->'
             {
-            match("OclAny"); 
+            match("->"); 
 
 
             }
@@ -1624,10 +1624,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:81:7: ( 'OclInvalid' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:81:9: 'OclInvalid'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:81:7: ( '?.' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:81:9: '?.'
             {
-            match("OclInvalid"); 
+            match("?."); 
 
 
             }
@@ -1645,10 +1645,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:82:7: ( 'OclVoid' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:82:9: 'OclVoid'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:82:7: ( '?->' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:82:9: '?->'
             {
-            match("OclVoid"); 
+            match("?->"); 
 
 
             }
@@ -1666,10 +1666,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:83:7: ( 'Set' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:83:9: 'Set'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:83:7: ( 'Tuple' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:83:9: 'Tuple'
             {
-            match("Set"); 
+            match("Tuple"); 
 
 
             }
@@ -1687,10 +1687,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:84:7: ( 'Bag' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:84:9: 'Bag'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:84:7: ( 'Boolean' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:84:9: 'Boolean'
             {
-            match("Bag"); 
+            match("Boolean"); 
 
 
             }
@@ -1708,10 +1708,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:85:7: ( 'Sequence' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:85:9: 'Sequence'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:85:7: ( 'Integer' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:85:9: 'Integer'
             {
-            match("Sequence"); 
+            match("Integer"); 
 
 
             }
@@ -1729,10 +1729,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:86:7: ( 'Collection' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:86:9: 'Collection'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:86:7: ( 'Real' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:86:9: 'Real'
             {
-            match("Collection"); 
+            match("Real"); 
 
 
             }
@@ -1750,10 +1750,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:87:7: ( 'OrderedSet' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:87:9: 'OrderedSet'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:87:7: ( 'String' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:87:9: 'String'
             {
-            match("OrderedSet"); 
+            match("String"); 
 
 
             }
@@ -1771,10 +1771,11 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:88:7: ( '?' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:88:9: '?'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:88:7: ( 'UnlimitedNatural' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:88:9: 'UnlimitedNatural'
             {
-            match('?'); 
+            match("UnlimitedNatural"); 
+
 
             }
 
@@ -1791,10 +1792,11 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:89:7: ( '(' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:89:9: '('
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:89:7: ( 'OclAny' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:89:9: 'OclAny'
             {
-            match('('); 
+            match("OclAny"); 
+
 
             }
 
@@ -1811,10 +1813,11 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:90:7: ( ')' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:90:9: ')'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:90:7: ( 'OclInvalid' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:90:9: 'OclInvalid'
             {
-            match(')'); 
+            match("OclInvalid"); 
+
 
             }
 
@@ -1831,10 +1834,11 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:91:7: ( ':' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:91:9: ':'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:91:7: ( 'OclVoid' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:91:9: 'OclVoid'
             {
-            match(':'); 
+            match("OclVoid"); 
+
 
             }
 
@@ -1851,10 +1855,11 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:92:7: ( ',' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:92:9: ','
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:92:7: ( 'Set' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:92:9: 'Set'
             {
-            match(','); 
+            match("Set"); 
+
 
             }
 
@@ -1871,10 +1876,11 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:93:7: ( '{' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:93:9: '{'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:93:7: ( 'Bag' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:93:9: 'Bag'
             {
-            match('{'); 
+            match("Bag"); 
+
 
             }
 
@@ -1891,10 +1897,11 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:94:8: ( '}' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:94:10: '}'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:94:8: ( 'Sequence' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:94:10: 'Sequence'
             {
-            match('}'); 
+            match("Sequence"); 
+
 
             }
 
@@ -1911,10 +1918,11 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:95:8: ( '#' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:95:10: '#'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:95:8: ( 'Collection' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:95:10: 'Collection'
             {
-            match('#'); 
+            match("Collection"); 
+
 
             }
 
@@ -1931,10 +1939,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:96:8: ( '::' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:96:10: '::'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:96:8: ( 'OrderedSet' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:96:10: 'OrderedSet'
             {
-            match("::"); 
+            match("OrderedSet"); 
 
 
             }
@@ -1952,11 +1960,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:97:8: ( '..' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:97:10: '..'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:97:8: ( '?' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:97:10: '?'
             {
-            match(".."); 
-
+            match('?'); 
 
             }
 
@@ -1973,11 +1980,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:98:8: ( '++' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:98:10: '++'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:98:8: ( '(' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:98:10: '('
             {
-            match("++"); 
-
+            match('('); 
 
             }
 
@@ -1994,11 +2000,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:99:8: ( 'Lambda' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:99:10: 'Lambda'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:99:8: ( ')' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:99:10: ')'
             {
-            match("Lambda"); 
-
+            match(')'); 
 
             }
 
@@ -2015,11 +2020,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:100:8: ( 'invalid' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:100:10: 'invalid'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:100:8: ( ':' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:100:10: ':'
             {
-            match("invalid"); 
-
+            match(':'); 
 
             }
 
@@ -2036,11 +2040,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:101:8: ( 'null' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:101:10: 'null'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:101:8: ( ',' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:101:10: ','
             {
-            match("null"); 
-
+            match(','); 
 
             }
 
@@ -2057,11 +2060,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:102:8: ( 'pre' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:102:10: 'pre'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:102:8: ( '{' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:102:10: '{'
             {
-            match("pre"); 
-
+            match('{'); 
 
             }
 
@@ -2078,10 +2080,10 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:103:8: ( '[' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:103:10: '['
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:103:8: ( '}' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:103:10: '}'
             {
-            match('['); 
+            match('}'); 
 
             }
 
@@ -2098,10 +2100,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:104:8: ( ']' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:104:10: ']'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:104:8: ( '#' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:104:10: '#'
             {
-            match(']'); 
+            match('#'); 
 
             }
 
@@ -2118,10 +2120,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:105:8: ( 'in' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:105:10: 'in'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:105:8: ( '::' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:105:10: '::'
             {
-            match("in"); 
+            match("::"); 
 
 
             }
@@ -2139,10 +2141,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:106:8: ( 'if' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:106:10: 'if'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:106:8: ( '..' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:106:10: '..'
             {
-            match("if"); 
+            match(".."); 
 
 
             }
@@ -2160,10 +2162,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:107:8: ( 'then' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:107:10: 'then'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:107:8: ( '++' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:107:10: '++'
             {
-            match("then"); 
+            match("++"); 
 
 
             }
@@ -2181,10 +2183,10 @@
         try {
             int _type = T__114;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:108:8: ( 'else' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:108:10: 'else'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:108:8: ( 'Lambda' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:108:10: 'Lambda'
             {
-            match("else"); 
+            match("Lambda"); 
 
 
             }
@@ -2202,10 +2204,10 @@
         try {
             int _type = T__115;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:109:8: ( 'endif' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:109:10: 'endif'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:109:8: ( 'invalid' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:109:10: 'invalid'
             {
-            match("endif"); 
+            match("invalid"); 
 
 
             }
@@ -2223,10 +2225,10 @@
         try {
             int _type = T__116;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:110:8: ( 'elseif' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:110:10: 'elseif'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:110:8: ( 'null' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:110:10: 'null'
             {
-            match("elseif"); 
+            match("null"); 
 
 
             }
@@ -2244,10 +2246,10 @@
         try {
             int _type = T__117;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:111:8: ( 'let' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:111:10: 'let'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:111:8: ( 'pre' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:111:10: 'pre'
             {
-            match("let"); 
+            match("pre"); 
 
 
             }
@@ -2265,11 +2267,10 @@
         try {
             int _type = T__118;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:112:8: ( 'self' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:112:10: 'self'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:112:8: ( '[' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:112:10: '['
             {
-            match("self"); 
-
+            match('['); 
 
             }
 
@@ -2286,11 +2287,10 @@
         try {
             int _type = T__119;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:113:8: ( '&&' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:113:10: '&&'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:113:8: ( ']' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:113:10: ']'
             {
-            match("&&"); 
-
+            match(']'); 
 
             }
 
@@ -2307,10 +2307,10 @@
         try {
             int _type = T__120;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:114:8: ( '!derived' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:114:10: '!derived'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:114:8: ( 'in' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:114:10: 'in'
             {
-            match("!derived"); 
+            match("in"); 
 
 
             }
@@ -2328,10 +2328,10 @@
         try {
             int _type = T__121;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:115:8: ( '!id' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:115:10: '!id'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:115:8: ( 'if' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:115:10: 'if'
             {
-            match("!id"); 
+            match("if"); 
 
 
             }
@@ -2349,10 +2349,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:116:8: ( '!ordered' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:116:10: '!ordered'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:116:8: ( 'then' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:116:10: 'then'
             {
-            match("!ordered"); 
+            match("then"); 
 
 
             }
@@ -2370,10 +2370,10 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:117:8: ( '!readonly' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:117:10: '!readonly'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:117:8: ( 'else' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:117:10: 'else'
             {
-            match("!readonly"); 
+            match("else"); 
 
 
             }
@@ -2391,10 +2391,10 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:118:8: ( '!transient' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:118:10: '!transient'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:118:8: ( 'endif' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:118:10: 'endif'
             {
-            match("!transient"); 
+            match("endif"); 
 
 
             }
@@ -2412,10 +2412,10 @@
         try {
             int _type = T__125;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:119:8: ( '!unique' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:119:10: '!unique'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:119:8: ( 'elseif' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:119:10: 'elseif'
             {
-            match("!unique"); 
+            match("elseif"); 
 
 
             }
@@ -2433,10 +2433,10 @@
         try {
             int _type = T__126;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:120:8: ( '!unsettable' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:120:10: '!unsettable'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:120:8: ( 'let' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:120:10: 'let'
             {
-            match("!unsettable"); 
+            match("let"); 
 
 
             }
@@ -2454,10 +2454,10 @@
         try {
             int _type = T__127;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:121:8: ( '!volatile' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:121:10: '!volatile'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:121:8: ( 'self' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:121:10: 'self'
             {
-            match("!volatile"); 
+            match("self"); 
 
 
             }
@@ -2475,10 +2475,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:122:8: ( '::*' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:122:10: '::*'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:122:8: ( '&&' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:122:10: '&&'
             {
-            match("::*"); 
+            match("&&"); 
 
 
             }
@@ -2496,10 +2496,10 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:123:8: ( '!composes' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:123:10: '!composes'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:123:8: ( '!unique' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:123:10: '!unique'
             {
-            match("!composes"); 
+            match("!unique"); 
 
 
             }
@@ -2517,10 +2517,10 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:124:8: ( '!resolve' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:124:10: '!resolve'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:124:8: ( '::*' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:124:10: '::*'
             {
-            match("!resolve"); 
+            match("::*"); 
 
 
             }
@@ -2620,8 +2620,8 @@
         try {
             int _type = RULE_UNQUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27706:22: ( '\\u00A3$%^\\u00A3$%^' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27706:24: '\\u00A3$%^\\u00A3$%^'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29204:22: ( '\\u00A3$%^\\u00A3$%^' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29204:24: '\\u00A3$%^\\u00A3$%^'
             {
             match("\u00A3$%^\u00A3$%^"); 
 
@@ -2639,8 +2639,8 @@
     // $ANTLR start "RULE_ESCAPED_CHARACTER"
     public final void mRULE_ESCAPED_CHARACTER() throws RecognitionException {
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27708:33: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27708:35: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29206:33: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29206: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') ) {
@@ -2664,8 +2664,8 @@
     // $ANTLR start "RULE_LETTER_CHARACTER"
     public final void mRULE_LETTER_CHARACTER() throws RecognitionException {
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27710:32: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27710:34: ( 'a' .. 'z' | 'A' .. 'Z' | '_' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29208:32: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29208: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();
@@ -2690,11 +2690,11 @@
         try {
             int _type = RULE_DOUBLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27712:27: ( '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27712:29: '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29210:27: ( '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29210:29: '\"' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27712:33: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )*
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29210:33: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\"' ) ) )*
             loop1:
             do {
                 int alt1=3;
@@ -2710,14 +2710,14 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27712:34: RULE_ESCAPED_CHARACTER
+            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29210:34: RULE_ESCAPED_CHARACTER
             	    {
             	    mRULE_ESCAPED_CHARACTER(); 
 
             	    }
             	    break;
             	case 2 :
-            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27712:57: ~ ( ( '\\\\' | '\"' ) )
+            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29210:57: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2754,11 +2754,11 @@
         try {
             int _type = RULE_SINGLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27714:27: ( '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27714:29: '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29212:27: ( '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29212:29: '\\'' ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27714:34: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29212:34: ( RULE_ESCAPED_CHARACTER | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop2:
             do {
                 int alt2=3;
@@ -2774,14 +2774,14 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27714:35: RULE_ESCAPED_CHARACTER
+            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29212:35: RULE_ESCAPED_CHARACTER
             	    {
             	    mRULE_ESCAPED_CHARACTER(); 
 
             	    }
             	    break;
             	case 2 :
-            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27714:58: ~ ( ( '\\\\' | '\\'' ) )
+            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29212:58: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2818,12 +2818,12 @@
         try {
             int _type = RULE_ML_SINGLE_QUOTED_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27716:30: ( '/\\'' ( options {greedy=false; } : . )* '\\'/' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27716:32: '/\\'' ( options {greedy=false; } : . )* '\\'/'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29214:30: ( '/\\'' ( options {greedy=false; } : . )* '\\'/' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29214:32: '/\\'' ( options {greedy=false; } : . )* '\\'/'
             {
             match("/'"); 
 
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27716:38: ( options {greedy=false; } : . )*
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29214:38: ( options {greedy=false; } : . )*
             loop3:
             do {
                 int alt3=2;
@@ -2848,7 +2848,7 @@
 
                 switch (alt3) {
             	case 1 :
-            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27716:66: .
+            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29214:66: .
             	    {
             	    matchAny(); 
 
@@ -2878,11 +2878,11 @@
         try {
             int _type = RULE_SIMPLE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27718:16: ( RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )* )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27718:18: RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )*
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29216:16: ( RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )* )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29216:18: RULE_LETTER_CHARACTER ( RULE_LETTER_CHARACTER | '0' .. '9' )*
             {
             mRULE_LETTER_CHARACTER(); 
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27718:40: ( RULE_LETTER_CHARACTER | '0' .. '9' )*
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29216:40: ( RULE_LETTER_CHARACTER | '0' .. '9' )*
             loop4:
             do {
                 int alt4=2;
@@ -2931,8 +2931,8 @@
         try {
             int _type = RULE_ESCAPED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27720:17: ( '_' RULE_SINGLE_QUOTED_STRING )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27720:19: '_' RULE_SINGLE_QUOTED_STRING
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29218:17: ( '_' RULE_SINGLE_QUOTED_STRING )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29218:19: '_' RULE_SINGLE_QUOTED_STRING
             {
             match('_'); 
             mRULE_SINGLE_QUOTED_STRING(); 
@@ -2952,10 +2952,10 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27722:10: ( ( '0' .. '9' )+ )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27722:12: ( '0' .. '9' )+
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29220:10: ( ( '0' .. '9' )+ )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29220:12: ( '0' .. '9' )+
             {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27722:12: ( '0' .. '9' )+
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29220:12: ( '0' .. '9' )+
             int cnt5=0;
             loop5:
             do {
@@ -2969,7 +2969,7 @@
 
                 switch (alt5) {
             	case 1 :
-            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27722:13: '0' .. '9'
+            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29220:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -3001,12 +3001,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27724:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27724:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29222:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29222:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27724:24: ( options {greedy=false; } : . )*
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29222:24: ( options {greedy=false; } : . )*
             loop6:
             do {
                 int alt6=2;
@@ -3031,7 +3031,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27724:52: .
+            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29222:52: .
             	    {
             	    matchAny(); 
 
@@ -3061,12 +3061,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27726:17: ( '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27726:19: '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29224:17: ( '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29224:19: '--' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("--"); 
 
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27726:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29224:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop7:
             do {
                 int alt7=2;
@@ -3079,7 +3079,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27726:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29224: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();
@@ -3099,7 +3099,7 @@
                 }
             } while (true);
 
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27726:40: ( ( '\\r' )? '\\n' )?
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29224:40: ( ( '\\r' )? '\\n' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3108,9 +3108,9 @@
             }
             switch (alt9) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27726:41: ( '\\r' )? '\\n'
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29224:41: ( '\\r' )? '\\n'
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27726:41: ( '\\r' )?
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29224:41: ( '\\r' )?
                     int alt8=2;
                     int LA8_0 = input.LA(1);
 
@@ -3119,7 +3119,7 @@
                     }
                     switch (alt8) {
                         case 1 :
-                            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27726:41: '\\r'
+                            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29224:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3151,10 +3151,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27728:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27728:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29226:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29226:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27728:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29226:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt10=0;
             loop10:
             do {
@@ -3208,8 +3208,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27730:16: ( . )
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:27730:18: .
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29228:16: ( . )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:29228:18: .
             {
             matchAny(); 
 
@@ -4177,7 +4177,7 @@
         "\2\0\1\47\4\uffff\1\163\1\164\1\144\1\uffff\1\144\1\154\1\141\1"+
         "\155\1\164\1\146\1\143\1\144\1\164\1\163\1\60\1\160\2\60\1\171\1"+
         "\142\1\164\1\144\1\145\1\60\1\143\1\163\1\145\2\141\1\160\1\154"+
-        "\1\163\1\145\1\141\1\151\1\154\5\uffff\1\145\1\uffff\1\156\5\uffff"+
+        "\1\163\1\145\1\141\1\151\1\154\4\uffff\1\145\1\uffff\1\156\6\uffff"+
         "\1\164\1\154\14\uffff\1\162\5\uffff\1\160\1\157\1\147\1\164\1\141"+
         "\1\162\1\161\2\154\1\144\1\154\2\uffff\1\52\5\uffff\1\155\3\uffff"+
         "\1\154\10\uffff\1\164\1\162\1\157\1\60\1\171\1\154\1\163\1\160\1"+
@@ -4223,8 +4223,8 @@
         "\uffff\1\44\2\uffff\1\47\4\uffff\1\163\1\164\1\156\1\uffff\1\144"+
         "\1\154\1\141\1\155\1\164\1\162\1\143\1\165\1\164\1\163\1\172\1\160"+
         "\2\172\1\171\2\164\1\144\1\145\1\172\1\143\1\163\1\157\1\163\1\141"+
-        "\1\160\1\162\1\163\1\162\1\165\1\163\1\154\5\uffff\1\145\1\uffff"+
-        "\1\156\5\uffff\1\164\1\154\14\uffff\1\162\5\uffff\1\160\1\157\1"+
+        "\1\160\1\162\1\163\1\162\1\165\1\163\1\154\4\uffff\1\145\1\uffff"+
+        "\1\156\6\uffff\1\164\1\154\14\uffff\1\162\5\uffff\1\160\1\157\1"+
         "\147\1\164\1\141\1\162\1\164\2\154\1\144\1\154\2\uffff\1\52\5\uffff"+
         "\1\155\3\uffff\1\154\10\uffff\1\164\1\162\1\157\1\172\1\171\1\154"+
         "\1\163\1\160\1\141\2\151\1\165\1\155\1\151\2\145\1\uffff\1\157\1"+
@@ -4263,28 +4263,28 @@
         "\1\164\3\uffff\2\156\2\172\1\165\2\172\2\uffff\1\162\2\uffff\1\141"+
         "\1\154\1\172\1\uffff";
     static final String DFA11_acceptS =
-        "\21\uffff\1\45\3\uffff\1\57\4\uffff\1\66\13\uffff\1\117\1\120\1"+
-        "\uffff\1\122\1\123\1\124\1\125\1\uffff\1\135\1\136\2\uffff\1\165"+
+        "\21\uffff\1\45\3\uffff\1\70\4\uffff\1\77\13\uffff\1\130\1\131\1"+
+        "\uffff\1\133\1\134\1\135\1\136\1\uffff\1\146\1\147\2\uffff\1\165"+
         "\1\166\4\uffff\1\173\1\175\1\u0080\1\u0081\3\uffff\1\173\40\uffff"+
-        "\1\45\1\46\1\150\1\151\1\152\1\uffff\1\154\1\uffff\1\157\1\161\1"+
-        "\75\1\177\1\55\2\uffff\1\57\1\172\1\176\1\60\1\130\1\61\1\64\1\62"+
-        "\1\65\1\67\1\63\1\66\1\uffff\1\127\1\74\1\76\1\77\1\116\13\uffff"+
-        "\1\117\1\120\1\uffff\1\121\1\122\1\123\1\124\1\125\1\uffff\1\135"+
-        "\1\136\1\147\1\uffff\1\165\1\166\1\167\1\170\1\171\1\174\1\175\1"+
-        "\u0080\20\uffff\1\15\4\uffff\1\137\1\140\7\uffff\1\71\45\uffff\1"+
-        "\160\1\126\5\uffff\1\70\21\uffff\1\21\2\uffff\1\145\6\uffff\1\134"+
-        "\21\uffff\1\153\1\162\1\155\1\156\1\56\1\uffff\1\72\2\uffff\1\112"+
-        "\3\uffff\1\111\14\uffff\1\3\7\uffff\1\13\3\uffff\1\142\26\uffff"+
-        "\1\146\2\uffff\1\141\1\uffff\1\163\3\uffff\1\133\3\uffff\1\103\16"+
-        "\uffff\1\5\6\uffff\1\143\26\uffff\1\37\1\uffff\1\54\5\uffff\1\100"+
-        "\13\uffff\1\164\13\uffff\1\144\1\16\7\uffff\1\23\12\uffff\1\36\1"+
-        "\uffff\1\40\1\uffff\1\42\4\uffff\1\104\2\uffff\1\106\4\uffff\1\131"+
-        "\10\uffff\1\12\1\uffff\1\14\1\73\1\17\2\uffff\1\132\1\22\1\52\1"+
-        "\uffff\1\25\1\26\6\uffff\1\35\4\uffff\1\101\1\102\3\uffff\1\110"+
+        "\1\45\1\46\1\47\1\50\1\uffff\1\52\1\uffff\1\54\1\55\1\56\1\106\1"+
+        "\177\1\66\2\uffff\1\70\1\172\1\176\1\71\1\141\1\72\1\75\1\73\1\76"+
+        "\1\100\1\74\1\77\1\uffff\1\140\1\105\1\107\1\110\1\127\13\uffff"+
+        "\1\130\1\131\1\uffff\1\132\1\133\1\134\1\135\1\136\1\uffff\1\146"+
+        "\1\147\1\160\1\uffff\1\165\1\166\1\167\1\170\1\171\1\174\1\175\1"+
+        "\u0080\20\uffff\1\15\4\uffff\1\150\1\151\7\uffff\1\102\45\uffff"+
+        "\1\162\1\137\5\uffff\1\101\21\uffff\1\21\2\uffff\1\156\6\uffff\1"+
+        "\145\21\uffff\1\51\1\57\1\53\1\161\1\67\1\uffff\1\103\2\uffff\1"+
+        "\123\3\uffff\1\122\14\uffff\1\3\7\uffff\1\13\3\uffff\1\153\26\uffff"+
+        "\1\157\2\uffff\1\152\1\uffff\1\163\3\uffff\1\144\3\uffff\1\114\16"+
+        "\uffff\1\5\6\uffff\1\154\26\uffff\1\37\1\uffff\1\65\5\uffff\1\111"+
+        "\13\uffff\1\164\13\uffff\1\155\1\16\7\uffff\1\23\12\uffff\1\36\1"+
+        "\uffff\1\40\1\uffff\1\42\4\uffff\1\115\2\uffff\1\117\4\uffff\1\142"+
+        "\10\uffff\1\12\1\uffff\1\14\1\104\1\17\2\uffff\1\143\1\22\1\63\1"+
+        "\uffff\1\25\1\26\6\uffff\1\35\4\uffff\1\112\1\113\3\uffff\1\121"+
         "\2\uffff\1\1\2\uffff\1\4\1\6\1\7\11\uffff\1\32\1\33\4\uffff\1\44"+
-        "\1\113\4\uffff\1\2\4\uffff\1\20\1\51\1\24\2\uffff\1\31\1\34\1\uffff"+
-        "\1\41\5\uffff\1\47\1\10\1\11\4\uffff\1\43\1\uffff\1\107\1\115\1"+
-        "\114\7\uffff\1\30\1\53\1\uffff\1\50\1\27\3\uffff\1\105";
+        "\1\124\4\uffff\1\2\4\uffff\1\20\1\62\1\24\2\uffff\1\31\1\34\1\uffff"+
+        "\1\41\5\uffff\1\60\1\10\1\11\4\uffff\1\43\1\uffff\1\120\1\126\1"+
+        "\125\7\uffff\1\30\1\64\1\uffff\1\61\1\27\3\uffff\1\116";
     static final String DFA11_specialS =
         "\1\2\64\uffff\1\0\1\1\u0212\uffff}>";
     static final String[] DFA11_transitionS = {
@@ -4312,8 +4312,8 @@
             "\1\136",
             "\1\137",
             "",
-            "\1\151\1\142\4\uffff\1\143\5\uffff\1\144\2\uffff\1\145\1\141"+
-            "\1\146\1\147\1\150",
+            "\1\151\1\141\4\uffff\1\142\5\uffff\1\143\2\uffff\1\144\1\150"+
+            "\1\145\1\146\1\147",
             "\1\153\20\uffff\1\152",
             "\1\155\5\uffff\1\156",
             "",
@@ -4397,7 +4397,6 @@
             "",
             "",
             "",
-            "",
             "\1\u00d4",
             "",
             "\1\u00d5",
@@ -4406,6 +4405,7 @@
             "",
             "",
             "",
+            "",
             "\1\u00d6",
             "\1\u00d7",
             "",
@@ -4511,7 +4511,7 @@
             "\1\u0118",
             "\1\u0119",
             "\1\u011a\21\uffff\1\u011b",
-            "\1\u011c\11\uffff\1\u011d",
+            "\1\u011d\11\uffff\1\u011c",
             "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "\1\u011f",
             "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
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 2f43e39..a644490 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
@@ -23,7 +23,7 @@
 @SuppressWarnings("all")
 public class InternalOCLinEcoreParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_UNQUOTED_STRING", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'abstract'", "'attribute'", "'body'", "'callable'", "'class'", "'composes'", "'datatype'", "'definition'", "'derivation'", "'derived'", "'enum'", "'extends'", "'id'", "'import'", "'initial'", "'interface'", "'key'", "'library'", "'module'", "'operation'", "'ordered'", "'package'", "'postcondition'", "'precondition'", "'primitive'", "'property'", "'readonly'", "'reference'", "'resolve'", "'static'", "'super'", "'throws'", "'transient'", "'unique'", "'unsettable'", "'volatile'", "';'", "'!serializable'", "'annotation'", "'documentation'", "'invariant'", "'literal'", "'serializable'", "'sysml'", "'-'", "'not'", "'*'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'?.'", "'?->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'?'", "'('", "')'", "':'", "','", "'{'", "'}'", "'#'", "'::'", "'..'", "'++'", "'Lambda'", "'invalid'", "'null'", "'pre'", "'['", "']'", "'in'", "'if'", "'then'", "'else'", "'endif'", "'elseif'", "'let'", "'self'", "'&&'", "'!derived'", "'!id'", "'!ordered'", "'!readonly'", "'!transient'", "'!unique'", "'!unsettable'", "'!volatile'", "'::*'", "'!composes'", "'!resolve'", "'true'", "'false'", "'@'", "'|'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_UNQUOTED_STRING", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'abstract'", "'attribute'", "'body'", "'callable'", "'class'", "'composes'", "'datatype'", "'definition'", "'derivation'", "'derived'", "'enum'", "'extends'", "'id'", "'import'", "'initial'", "'interface'", "'key'", "'library'", "'module'", "'operation'", "'ordered'", "'package'", "'postcondition'", "'precondition'", "'primitive'", "'property'", "'readonly'", "'reference'", "'resolve'", "'static'", "'super'", "'throws'", "'transient'", "'unique'", "'unsettable'", "'volatile'", "';'", "'!derived'", "'!id'", "'!ordered'", "'!readonly'", "'!transient'", "'!unsettable'", "'!volatile'", "'!serializable'", "'!composes'", "'!resolve'", "'annotation'", "'documentation'", "'invariant'", "'literal'", "'serializable'", "'sysml'", "'-'", "'not'", "'*'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'?.'", "'?->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'?'", "'('", "')'", "':'", "','", "'{'", "'}'", "'#'", "'::'", "'..'", "'++'", "'Lambda'", "'invalid'", "'null'", "'pre'", "'['", "']'", "'in'", "'if'", "'then'", "'else'", "'endif'", "'elseif'", "'let'", "'self'", "'&&'", "'!unique'", "'::*'", "'true'", "'false'", "'@'", "'|'"
     };
     public static final int T__29=29;
     public static final int T__28=28;
@@ -10195,7 +10195,7 @@
             int alt3=2;
             int LA3_0 = input.LA(1);
 
-            if ( (LA3_0==97) ) {
+            if ( (LA3_0==106) ) {
                 alt3=1;
             }
             else if ( (LA3_0==53) ) {
@@ -10285,7 +10285,7 @@
             int alt4=2;
             int LA4_0 = input.LA(1);
 
-            if ( ((LA4_0>=RULE_SIMPLE_ID && LA4_0<=RULE_ESCAPED_ID)||(LA4_0>=17 && LA4_0<=52)||(LA4_0>=55 && LA4_0<=60)) ) {
+            if ( ((LA4_0>=RULE_SIMPLE_ID && LA4_0<=RULE_ESCAPED_ID)||(LA4_0>=17 && LA4_0<=52)||(LA4_0>=64 && LA4_0<=69)) ) {
                 alt4=1;
             }
             else if ( (LA4_0==RULE_SINGLE_QUOTED_STRING) ) {
@@ -10369,7 +10369,7 @@
             int alt5=2;
             int LA5_0 = input.LA(1);
 
-            if ( (LA5_0==99) ) {
+            if ( (LA5_0==108) ) {
                 alt5=1;
             }
             else if ( (LA5_0==53) ) {
@@ -10458,9 +10458,9 @@
             // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3450:1: ( ( ( rule__AnnotationCS__OwnedAnnotationsAssignment_4_0_1_0 ) ) | ( ( rule__AnnotationCS__OwnedContentsAssignment_4_0_1_1 ) ) | ( ( rule__AnnotationCS__OwnedReferencesAssignment_4_0_1_2 ) ) )
             int alt6=3;
             switch ( input.LA(1) ) {
-            case 55:
-            case 56:
-            case 60:
+            case 64:
+            case 65:
+            case 69:
                 {
                 alt6=1;
                 }
@@ -10502,7 +10502,7 @@
             case 50:
             case 51:
             case 52:
-            case 58:
+            case 67:
                 {
                 alt6=2;
                 }
@@ -10511,10 +10511,10 @@
                 {
                 int LA6_3 = input.LA(2);
 
-                if ( ((LA6_3>=RULE_SIMPLE_ID && LA6_3<=RULE_ESCAPED_ID)||(LA6_3>=17 && LA6_3<=52)||(LA6_3>=55 && LA6_3<=60)) ) {
+                if ( ((LA6_3>=RULE_SIMPLE_ID && LA6_3<=RULE_ESCAPED_ID)||(LA6_3>=17 && LA6_3<=52)||(LA6_3>=64 && LA6_3<=69)) ) {
                     alt6=3;
                 }
-                else if ( (LA6_3==53||LA6_3==70||LA6_3==99) ) {
+                else if ( (LA6_3==53||LA6_3==79||LA6_3==108) ) {
                     alt6=2;
                 }
                 else {
@@ -10649,17 +10649,17 @@
             // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3478:1: ( ( ruleAnnotationCS ) | ( ruleDocumentationCS ) | ( ruleSysMLCS ) )
             int alt7=3;
             switch ( input.LA(1) ) {
-            case 55:
+            case 64:
                 {
                 alt7=1;
                 }
                 break;
-            case 56:
+            case 65:
                 {
                 alt7=2;
                 }
                 break;
-            case 60:
+            case 69:
                 {
                 alt7=3;
                 }
@@ -10759,21 +10759,21 @@
     // $ANTLR end "rule__AnnotationElementCS__Alternatives"
 
 
-    // $ANTLR start "rule__AttributeCS__Alternatives_0"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3502:1: rule__AttributeCS__Alternatives_0 : ( ( ( rule__AttributeCS__Group_0_0__0 ) ) | ( ( rule__AttributeCS__Group_0_1__0 ) ) );
-    public final void rule__AttributeCS__Alternatives_0() throws RecognitionException {
+    // $ANTLR start "rule__AttributeCS__Alternatives_5_0_1_0"
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3502:1: rule__AttributeCS__Alternatives_5_0_1_0 : ( ( ( rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0 ) ) | ( '!derived' ) );
+    public final void rule__AttributeCS__Alternatives_5_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3506:1: ( ( ( rule__AttributeCS__Group_0_0__0 ) ) | ( ( rule__AttributeCS__Group_0_1__0 ) ) )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3506:1: ( ( ( rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0 ) ) | ( '!derived' ) )
             int alt8=2;
             int LA8_0 = input.LA(1);
 
-            if ( (LA8_0==46) ) {
+            if ( (LA8_0==26) ) {
                 alt8=1;
             }
-            else if ( (LA8_0==24) ) {
+            else if ( (LA8_0==54) ) {
                 alt8=2;
             }
             else {
@@ -10785,19 +10785,19 @@
             }
             switch (alt8) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3507:1: ( ( rule__AttributeCS__Group_0_0__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3507:1: ( ( rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3507:1: ( ( rule__AttributeCS__Group_0_0__0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3508:1: ( rule__AttributeCS__Group_0_0__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3507:1: ( ( rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3508:1: ( rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0 )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getGroup_0_0()); 
+                       before(grammarAccess.getAttributeCSAccess().getIsDerivedAssignment_5_0_1_0_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3509:1: ( rule__AttributeCS__Group_0_0__0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3509:2: rule__AttributeCS__Group_0_0__0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3509:1: ( rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3509:2: rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__Group_0_0__0_in_rule__AttributeCS__Alternatives_07552);
-                    rule__AttributeCS__Group_0_0__0();
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0_in_rule__AttributeCS__Alternatives_5_0_1_07552);
+                    rule__AttributeCS__IsDerivedAssignment_5_0_1_0_0();
 
                     state._fsp--;
                     if (state.failed) return ;
@@ -10805,7 +10805,7 @@
                     }
 
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getGroup_0_0()); 
+                       after(grammarAccess.getAttributeCSAccess().getIsDerivedAssignment_5_0_1_0_0()); 
                     }
 
                     }
@@ -10814,27 +10814,17 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3513:6: ( ( rule__AttributeCS__Group_0_1__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3513:6: ( '!derived' )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3513:6: ( ( rule__AttributeCS__Group_0_1__0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3514:1: ( rule__AttributeCS__Group_0_1__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3513:6: ( '!derived' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3514:1: '!derived'
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getGroup_0_1()); 
+                       before(grammarAccess.getAttributeCSAccess().getDerivedKeyword_5_0_1_0_1()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3515:1: ( rule__AttributeCS__Group_0_1__0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3515:2: rule__AttributeCS__Group_0_1__0
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__Group_0_1__0_in_rule__AttributeCS__Alternatives_07570);
-                    rule__AttributeCS__Group_0_1__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
+                    match(input,54,FollowSets000.FOLLOW_54_in_rule__AttributeCS__Alternatives_5_0_1_07571); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getGroup_0_1()); 
+                       after(grammarAccess.getAttributeCSAccess().getDerivedKeyword_5_0_1_0_1()); 
                     }
 
                     }
@@ -10856,122 +10846,48 @@
         }
         return ;
     }
-    // $ANTLR end "rule__AttributeCS__Alternatives_0"
+    // $ANTLR end "rule__AttributeCS__Alternatives_5_0_1_0"
 
 
     // $ANTLR start "rule__AttributeCS__Alternatives_5_1_0"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3524:1: rule__AttributeCS__Alternatives_5_1_0 : ( ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_0 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_1 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_2 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_3 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_4 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_5 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_6 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_7 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_8 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_9 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_10 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_11 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_12 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_13 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_14 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_15 ) ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3526:1: rule__AttributeCS__Alternatives_5_1_0 : ( ( ( rule__AttributeCS__IsIdAssignment_5_1_0_0 ) ) | ( '!id' ) );
     public final void rule__AttributeCS__Alternatives_5_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3528:1: ( ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_0 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_1 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_2 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_3 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_4 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_5 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_6 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_7 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_8 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_9 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_10 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_11 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_12 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_13 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_14 ) ) | ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_15 ) ) )
-            int alt9=16;
-            switch ( input.LA(1) ) {
-            case 26:
-                {
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3530:1: ( ( ( rule__AttributeCS__IsIdAssignment_5_1_0_0 ) ) | ( '!id' ) )
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==29) ) {
                 alt9=1;
-                }
-                break;
-            case 120:
-                {
+            }
+            else if ( (LA9_0==55) ) {
                 alt9=2;
-                }
-                break;
-            case 29:
-                {
-                alt9=3;
-                }
-                break;
-            case 121:
-                {
-                alt9=4;
-                }
-                break;
-            case 37:
-                {
-                alt9=5;
-                }
-                break;
-            case 122:
-                {
-                alt9=6;
-                }
-                break;
-            case 43:
-                {
-                alt9=7;
-                }
-                break;
-            case 123:
-                {
-                alt9=8;
-                }
-                break;
-            case 49:
-                {
-                alt9=9;
-                }
-                break;
-            case 124:
-                {
-                alt9=10;
-                }
-                break;
-            case 50:
-                {
-                alt9=11;
-                }
-                break;
-            case 125:
-                {
-                alt9=12;
-                }
-                break;
-            case 51:
-                {
-                alt9=13;
-                }
-                break;
-            case 126:
-                {
-                alt9=14;
-                }
-                break;
-            case 52:
-                {
-                alt9=15;
-                }
-                break;
-            case 127:
-                {
-                alt9=16;
-                }
-                break;
-            default:
+            }
+            else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
                     new NoViableAltException("", 9, 0, input);
 
                 throw nvae;
             }
-
             switch (alt9) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3529:1: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3531:1: ( ( rule__AttributeCS__IsIdAssignment_5_1_0_0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3529:1: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3530:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3531:1: ( ( rule__AttributeCS__IsIdAssignment_5_1_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3532:1: ( rule__AttributeCS__IsIdAssignment_5_1_0_0 )
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_0()); 
+                       before(grammarAccess.getAttributeCSAccess().getIsIdAssignment_5_1_0_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3531:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3531:2: rule__AttributeCS__QualifiersAssignment_5_1_0_0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3533:1: ( rule__AttributeCS__IsIdAssignment_5_1_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3533:2: rule__AttributeCS__IsIdAssignment_5_1_0_0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_0_in_rule__AttributeCS__Alternatives_5_1_07603);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_0();
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__IsIdAssignment_5_1_0_0_in_rule__AttributeCS__Alternatives_5_1_07605);
+                    rule__AttributeCS__IsIdAssignment_5_1_0_0();
 
                     state._fsp--;
                     if (state.failed) return ;
@@ -10979,7 +10895,7 @@
                     }
 
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_0()); 
+                       after(grammarAccess.getAttributeCSAccess().getIsIdAssignment_5_1_0_0()); 
                     }
 
                     }
@@ -10988,433 +10904,17 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3535:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_1 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3537:6: ( '!id' )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3535:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_1 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3536:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_1 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3537:6: ( '!id' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3538:1: '!id'
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_1()); 
+                       before(grammarAccess.getAttributeCSAccess().getIdKeyword_5_1_0_1()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3537:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_1 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3537:2: rule__AttributeCS__QualifiersAssignment_5_1_0_1
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_1_in_rule__AttributeCS__Alternatives_5_1_07621);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_1();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
+                    match(input,55,FollowSets000.FOLLOW_55_in_rule__AttributeCS__Alternatives_5_1_07624); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_1()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3541:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_2 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3541:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_2 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3542:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_2 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_2()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3543:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_2 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3543:2: rule__AttributeCS__QualifiersAssignment_5_1_0_2
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_2_in_rule__AttributeCS__Alternatives_5_1_07639);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_2();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_2()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 4 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3547:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_3 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3547:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_3 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3548:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_3 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_3()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3549:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_3 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3549:2: rule__AttributeCS__QualifiersAssignment_5_1_0_3
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_3_in_rule__AttributeCS__Alternatives_5_1_07657);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_3();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_3()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 5 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3553:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_4 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3553:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_4 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3554:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_4 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_4()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3555:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_4 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3555:2: rule__AttributeCS__QualifiersAssignment_5_1_0_4
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_4_in_rule__AttributeCS__Alternatives_5_1_07675);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_4();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_4()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 6 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3559:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_5 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3559:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_5 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3560:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_5 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_5()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3561:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_5 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3561:2: rule__AttributeCS__QualifiersAssignment_5_1_0_5
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_5_in_rule__AttributeCS__Alternatives_5_1_07693);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_5();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_5()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 7 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3565:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_6 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3565:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_6 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3566:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_6 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_6()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3567:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_6 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3567:2: rule__AttributeCS__QualifiersAssignment_5_1_0_6
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_6_in_rule__AttributeCS__Alternatives_5_1_07711);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_6();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_6()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 8 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3571:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_7 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3571:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_7 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3572:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_7 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_7()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3573:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_7 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3573:2: rule__AttributeCS__QualifiersAssignment_5_1_0_7
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_7_in_rule__AttributeCS__Alternatives_5_1_07729);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_7();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_7()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 9 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3577:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_8 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3577:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_8 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3578:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_8 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_8()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3579:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_8 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3579:2: rule__AttributeCS__QualifiersAssignment_5_1_0_8
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_8_in_rule__AttributeCS__Alternatives_5_1_07747);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_8();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_8()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 10 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3583:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_9 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3583:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_9 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3584:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_9 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_9()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3585:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_9 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3585:2: rule__AttributeCS__QualifiersAssignment_5_1_0_9
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_9_in_rule__AttributeCS__Alternatives_5_1_07765);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_9();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_9()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 11 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3589:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_10 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3589:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_10 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3590:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_10 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_10()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3591:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_10 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3591:2: rule__AttributeCS__QualifiersAssignment_5_1_0_10
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_10_in_rule__AttributeCS__Alternatives_5_1_07783);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_10();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_10()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 12 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3595:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_11 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3595:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_11 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3596:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_11 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_11()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3597:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_11 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3597:2: rule__AttributeCS__QualifiersAssignment_5_1_0_11
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_11_in_rule__AttributeCS__Alternatives_5_1_07801);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_11();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_11()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 13 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3601:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_12 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3601:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_12 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3602:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_12 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_12()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3603:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_12 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3603:2: rule__AttributeCS__QualifiersAssignment_5_1_0_12
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_12_in_rule__AttributeCS__Alternatives_5_1_07819);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_12();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_12()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 14 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3607:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_13 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3607:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_13 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3608:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_13 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_13()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3609:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_13 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3609:2: rule__AttributeCS__QualifiersAssignment_5_1_0_13
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_13_in_rule__AttributeCS__Alternatives_5_1_07837);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_13();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_13()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 15 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3613:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_14 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3613:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_14 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3614:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_14 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_14()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3615:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_14 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3615:2: rule__AttributeCS__QualifiersAssignment_5_1_0_14
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_14_in_rule__AttributeCS__Alternatives_5_1_07855);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_14();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_14()); 
-                    }
-
-                    }
-
-
-                    }
-                    break;
-                case 16 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3619:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_15 ) )
-                    {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3619:6: ( ( rule__AttributeCS__QualifiersAssignment_5_1_0_15 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3620:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_15 )
-                    {
-                    if ( state.backtracking==0 ) {
-                       before(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_15()); 
-                    }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3621:1: ( rule__AttributeCS__QualifiersAssignment_5_1_0_15 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3621:2: rule__AttributeCS__QualifiersAssignment_5_1_0_15
-                    {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__QualifiersAssignment_5_1_0_15_in_rule__AttributeCS__Alternatives_5_1_07873);
-                    rule__AttributeCS__QualifiersAssignment_5_1_0_15();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-
-                    if ( state.backtracking==0 ) {
-                       after(grammarAccess.getAttributeCSAccess().getQualifiersAssignment_5_1_0_15()); 
+                       after(grammarAccess.getAttributeCSAccess().getIdKeyword_5_1_0_1()); 
                     }
 
                     }
@@ -11439,21 +10939,21 @@
     // $ANTLR end "rule__AttributeCS__Alternatives_5_1_0"
 
 
-    // $ANTLR start "rule__AttributeCS__Alternatives_6"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3630:1: rule__AttributeCS__Alternatives_6 : ( ( ( rule__AttributeCS__Group_6_0__0 ) ) | ( ';' ) );
-    public final void rule__AttributeCS__Alternatives_6() throws RecognitionException {
+    // $ANTLR start "rule__AttributeCS__Alternatives_5_2_0"
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3550:1: rule__AttributeCS__Alternatives_5_2_0 : ( ( ( rule__AttributeCS__IsOrderedAssignment_5_2_0_0 ) ) | ( '!ordered' ) );
+    public final void rule__AttributeCS__Alternatives_5_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3634:1: ( ( ( rule__AttributeCS__Group_6_0__0 ) ) | ( ';' ) )
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3554:1: ( ( ( rule__AttributeCS__IsOrderedAssignment_5_2_0_0 ) ) | ( '!ordered' ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
-            if ( (LA10_0==99) ) {
+            if ( (LA10_0==37) ) {
                 alt10=1;
             }
-            else if ( (LA10_0==53) ) {
+            else if ( (LA10_0==56) ) {
                 alt10=2;
             }
             else {
@@ -11465,18 +10965,558 @@
             }
             switch (alt10) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3635:1: ( ( rule__AttributeCS__Group_6_0__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3555:1: ( ( rule__AttributeCS__IsOrderedAssignment_5_2_0_0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3635:1: ( ( rule__AttributeCS__Group_6_0__0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3636:1: ( rule__AttributeCS__Group_6_0__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3555:1: ( ( rule__AttributeCS__IsOrderedAssignment_5_2_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3556:1: ( rule__AttributeCS__IsOrderedAssignment_5_2_0_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getIsOrderedAssignment_5_2_0_0()); 
+                    }
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3557:1: ( rule__AttributeCS__IsOrderedAssignment_5_2_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3557:2: rule__AttributeCS__IsOrderedAssignment_5_2_0_0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__IsOrderedAssignment_5_2_0_0_in_rule__AttributeCS__Alternatives_5_2_07658);
+                    rule__AttributeCS__IsOrderedAssignment_5_2_0_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getIsOrderedAssignment_5_2_0_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3561:6: ( '!ordered' )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3561:6: ( '!ordered' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3562:1: '!ordered'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getOrderedKeyword_5_2_0_1()); 
+                    }
+                    match(input,56,FollowSets000.FOLLOW_56_in_rule__AttributeCS__Alternatives_5_2_07677); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getOrderedKeyword_5_2_0_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AttributeCS__Alternatives_5_2_0"
+
+
+    // $ANTLR start "rule__AttributeCS__Alternatives_5_3_0"
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3574:1: rule__AttributeCS__Alternatives_5_3_0 : ( ( ( rule__AttributeCS__IsReadonlyAssignment_5_3_0_0 ) ) | ( '!readonly' ) );
+    public final void rule__AttributeCS__Alternatives_5_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3578:1: ( ( ( rule__AttributeCS__IsReadonlyAssignment_5_3_0_0 ) ) | ( '!readonly' ) )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==43) ) {
+                alt11=1;
+            }
+            else if ( (LA11_0==57) ) {
+                alt11=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+            switch (alt11) {
+                case 1 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3579:1: ( ( rule__AttributeCS__IsReadonlyAssignment_5_3_0_0 ) )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3579:1: ( ( rule__AttributeCS__IsReadonlyAssignment_5_3_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3580:1: ( rule__AttributeCS__IsReadonlyAssignment_5_3_0_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getIsReadonlyAssignment_5_3_0_0()); 
+                    }
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3581:1: ( rule__AttributeCS__IsReadonlyAssignment_5_3_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3581:2: rule__AttributeCS__IsReadonlyAssignment_5_3_0_0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__IsReadonlyAssignment_5_3_0_0_in_rule__AttributeCS__Alternatives_5_3_07711);
+                    rule__AttributeCS__IsReadonlyAssignment_5_3_0_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getIsReadonlyAssignment_5_3_0_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3585:6: ( '!readonly' )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3585:6: ( '!readonly' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3586:1: '!readonly'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getReadonlyKeyword_5_3_0_1()); 
+                    }
+                    match(input,57,FollowSets000.FOLLOW_57_in_rule__AttributeCS__Alternatives_5_3_07730); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getReadonlyKeyword_5_3_0_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AttributeCS__Alternatives_5_3_0"
+
+
+    // $ANTLR start "rule__AttributeCS__Alternatives_5_4_0"
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3598:1: rule__AttributeCS__Alternatives_5_4_0 : ( ( ( rule__AttributeCS__IsTransientAssignment_5_4_0_0 ) ) | ( '!transient' ) );
+    public final void rule__AttributeCS__Alternatives_5_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3602:1: ( ( ( rule__AttributeCS__IsTransientAssignment_5_4_0_0 ) ) | ( '!transient' ) )
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==49) ) {
+                alt12=1;
+            }
+            else if ( (LA12_0==58) ) {
+                alt12=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 12, 0, input);
+
+                throw nvae;
+            }
+            switch (alt12) {
+                case 1 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3603:1: ( ( rule__AttributeCS__IsTransientAssignment_5_4_0_0 ) )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3603:1: ( ( rule__AttributeCS__IsTransientAssignment_5_4_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3604:1: ( rule__AttributeCS__IsTransientAssignment_5_4_0_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getIsTransientAssignment_5_4_0_0()); 
+                    }
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3605:1: ( rule__AttributeCS__IsTransientAssignment_5_4_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3605:2: rule__AttributeCS__IsTransientAssignment_5_4_0_0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__IsTransientAssignment_5_4_0_0_in_rule__AttributeCS__Alternatives_5_4_07764);
+                    rule__AttributeCS__IsTransientAssignment_5_4_0_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getIsTransientAssignment_5_4_0_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3609:6: ( '!transient' )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3609:6: ( '!transient' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3610:1: '!transient'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getTransientKeyword_5_4_0_1()); 
+                    }
+                    match(input,58,FollowSets000.FOLLOW_58_in_rule__AttributeCS__Alternatives_5_4_07783); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getTransientKeyword_5_4_0_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AttributeCS__Alternatives_5_4_0"
+
+
+    // $ANTLR start "rule__AttributeCS__Alternatives_5_5_0"
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3622:1: rule__AttributeCS__Alternatives_5_5_0 : ( ( ( rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0 ) ) | ( 'unique' ) );
+    public final void rule__AttributeCS__Alternatives_5_5_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3626:1: ( ( ( rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0 ) ) | ( 'unique' ) )
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==129) ) {
+                alt13=1;
+            }
+            else if ( (LA13_0==50) ) {
+                alt13=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 13, 0, input);
+
+                throw nvae;
+            }
+            switch (alt13) {
+                case 1 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3627:1: ( ( rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0 ) )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3627:1: ( ( rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3628:1: ( rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getIsNotUniqueAssignment_5_5_0_0()); 
+                    }
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3629:1: ( rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3629:2: rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0_in_rule__AttributeCS__Alternatives_5_5_07817);
+                    rule__AttributeCS__IsNotUniqueAssignment_5_5_0_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getIsNotUniqueAssignment_5_5_0_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3633:6: ( 'unique' )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3633:6: ( 'unique' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3634:1: 'unique'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getUniqueKeyword_5_5_0_1()); 
+                    }
+                    match(input,50,FollowSets000.FOLLOW_50_in_rule__AttributeCS__Alternatives_5_5_07836); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getUniqueKeyword_5_5_0_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AttributeCS__Alternatives_5_5_0"
+
+
+    // $ANTLR start "rule__AttributeCS__Alternatives_5_6_0"
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3646:1: rule__AttributeCS__Alternatives_5_6_0 : ( ( ( rule__AttributeCS__IsUnsettableAssignment_5_6_0_0 ) ) | ( '!unsettable' ) );
+    public final void rule__AttributeCS__Alternatives_5_6_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3650:1: ( ( ( rule__AttributeCS__IsUnsettableAssignment_5_6_0_0 ) ) | ( '!unsettable' ) )
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==51) ) {
+                alt14=1;
+            }
+            else if ( (LA14_0==59) ) {
+                alt14=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 14, 0, input);
+
+                throw nvae;
+            }
+            switch (alt14) {
+                case 1 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3651:1: ( ( rule__AttributeCS__IsUnsettableAssignment_5_6_0_0 ) )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3651:1: ( ( rule__AttributeCS__IsUnsettableAssignment_5_6_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3652:1: ( rule__AttributeCS__IsUnsettableAssignment_5_6_0_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getIsUnsettableAssignment_5_6_0_0()); 
+                    }
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3653:1: ( rule__AttributeCS__IsUnsettableAssignment_5_6_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3653:2: rule__AttributeCS__IsUnsettableAssignment_5_6_0_0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__IsUnsettableAssignment_5_6_0_0_in_rule__AttributeCS__Alternatives_5_6_07870);
+                    rule__AttributeCS__IsUnsettableAssignment_5_6_0_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getIsUnsettableAssignment_5_6_0_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3657:6: ( '!unsettable' )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3657:6: ( '!unsettable' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3658:1: '!unsettable'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getUnsettableKeyword_5_6_0_1()); 
+                    }
+                    match(input,59,FollowSets000.FOLLOW_59_in_rule__AttributeCS__Alternatives_5_6_07889); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getUnsettableKeyword_5_6_0_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AttributeCS__Alternatives_5_6_0"
+
+
+    // $ANTLR start "rule__AttributeCS__Alternatives_5_7_0_0"
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3670:1: rule__AttributeCS__Alternatives_5_7_0_0 : ( ( ( rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0 ) ) | ( '!volatile' ) );
+    public final void rule__AttributeCS__Alternatives_5_7_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3674:1: ( ( ( rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0 ) ) | ( '!volatile' ) )
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==52) ) {
+                alt15=1;
+            }
+            else if ( (LA15_0==60) ) {
+                alt15=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3675:1: ( ( rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0 ) )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3675:1: ( ( rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3676:1: ( rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getIsVolatileAssignment_5_7_0_0_0()); 
+                    }
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3677:1: ( rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3677:2: rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0_in_rule__AttributeCS__Alternatives_5_7_0_07923);
+                    rule__AttributeCS__IsVolatileAssignment_5_7_0_0_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getIsVolatileAssignment_5_7_0_0_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3681:6: ( '!volatile' )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3681:6: ( '!volatile' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3682:1: '!volatile'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAttributeCSAccess().getVolatileKeyword_5_7_0_0_1()); 
+                    }
+                    match(input,60,FollowSets000.FOLLOW_60_in_rule__AttributeCS__Alternatives_5_7_0_07942); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAttributeCSAccess().getVolatileKeyword_5_7_0_0_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AttributeCS__Alternatives_5_7_0_0"
+
+
+    // $ANTLR start "rule__AttributeCS__Alternatives_6"
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3694:1: rule__AttributeCS__Alternatives_6 : ( ( ( rule__AttributeCS__Group_6_0__0 ) ) | ( ';' ) );
+    public final void rule__AttributeCS__Alternatives_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3698:1: ( ( ( rule__AttributeCS__Group_6_0__0 ) ) | ( ';' ) )
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==108) ) {
+                alt16=1;
+            }
+            else if ( (LA16_0==53) ) {
+                alt16=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 16, 0, input);
+
+                throw nvae;
+            }
+            switch (alt16) {
+                case 1 :
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3699:1: ( ( rule__AttributeCS__Group_6_0__0 ) )
+                    {
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3699:1: ( ( rule__AttributeCS__Group_6_0__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3700:1: ( rule__AttributeCS__Group_6_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAttributeCSAccess().getGroup_6_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3637:1: ( rule__AttributeCS__Group_6_0__0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3637:2: rule__AttributeCS__Group_6_0__0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3701:1: ( rule__AttributeCS__Group_6_0__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3701:2: rule__AttributeCS__Group_6_0__0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__Group_6_0__0_in_rule__AttributeCS__Alternatives_67906);
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__Group_6_0__0_in_rule__AttributeCS__Alternatives_67976);
                     rule__AttributeCS__Group_6_0__0();
 
                     state._fsp--;
@@ -11494,15 +11534,15 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3641:6: ( ';' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3705:6: ( ';' )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3641:6: ( ';' )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3642:1: ';'
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3705:6: ( ';' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3706:1: ';'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAttributeCSAccess().getSemicolonKeyword_6_1()); 
                     }
-                    match(input,53,FollowSets000.FOLLOW_53_in_rule__AttributeCS__Alternatives_67925); if (state.failed) return ;
+                    match(input,53,FollowSets000.FOLLOW_53_in_rule__AttributeCS__Alternatives_67995); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getAttributeCSAccess().getSemicolonKeyword_6_1()); 
                     }
@@ -11530,54 +11570,54 @@
 
 
     // $ANTLR start "rule__AttributeCS__Alternatives_6_0_1"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3654:1: rule__AttributeCS__Alternatives_6_0_1 : ( ( ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 ) ) | ( ( rule__AttributeCS__Group_6_0_1_1__0 ) ) | ( ( rule__AttributeCS__Group_6_0_1_2__0 ) ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3718:1: rule__AttributeCS__Alternatives_6_0_1 : ( ( ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 ) ) | ( ( rule__AttributeCS__Group_6_0_1_1__0 ) ) | ( ( rule__AttributeCS__Group_6_0_1_2__0 ) ) );
     public final void rule__AttributeCS__Alternatives_6_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3658:1: ( ( ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 ) ) | ( ( rule__AttributeCS__Group_6_0_1_1__0 ) ) | ( ( rule__AttributeCS__Group_6_0_1_2__0 ) ) )
-            int alt11=3;
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3722:1: ( ( ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 ) ) | ( ( rule__AttributeCS__Group_6_0_1_1__0 ) ) | ( ( rule__AttributeCS__Group_6_0_1_2__0 ) ) )
+            int alt17=3;
             switch ( input.LA(1) ) {
-            case 55:
-            case 56:
-            case 60:
+            case 64:
+            case 65:
+            case 69:
                 {
-                alt11=1;
+                alt17=1;
                 }
                 break;
             case 25:
                 {
-                alt11=2;
+                alt17=2;
                 }
                 break;
             case 31:
                 {
-                alt11=3;
+                alt17=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 11, 0, input);
+                    new NoViableAltException("", 17, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt11) {
+            switch (alt17) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3659:1: ( ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3723:1: ( ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3659:1: ( ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3660:1: ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3723:1: ( ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3724:1: ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAttributeCSAccess().getOwnedAnnotationsAssignment_6_0_1_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3661:1: ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3661:2: rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3725:1: ( rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3725:2: rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0_in_rule__AttributeCS__Alternatives_6_0_17959);
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0_in_rule__AttributeCS__Alternatives_6_0_18029);
                     rule__AttributeCS__OwnedAnnotationsAssignment_6_0_1_0();
 
                     state._fsp--;
@@ -11595,18 +11635,18 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3665:6: ( ( rule__AttributeCS__Group_6_0_1_1__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3729:6: ( ( rule__AttributeCS__Group_6_0_1_1__0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3665:6: ( ( rule__AttributeCS__Group_6_0_1_1__0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3666:1: ( rule__AttributeCS__Group_6_0_1_1__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3729:6: ( ( rule__AttributeCS__Group_6_0_1_1__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3730:1: ( rule__AttributeCS__Group_6_0_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAttributeCSAccess().getGroup_6_0_1_1()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3667:1: ( rule__AttributeCS__Group_6_0_1_1__0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3667:2: rule__AttributeCS__Group_6_0_1_1__0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3731:1: ( rule__AttributeCS__Group_6_0_1_1__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3731:2: rule__AttributeCS__Group_6_0_1_1__0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__Group_6_0_1_1__0_in_rule__AttributeCS__Alternatives_6_0_17977);
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__Group_6_0_1_1__0_in_rule__AttributeCS__Alternatives_6_0_18047);
                     rule__AttributeCS__Group_6_0_1_1__0();
 
                     state._fsp--;
@@ -11624,18 +11664,18 @@
                     }
                     break;
                 case 3 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3671:6: ( ( rule__AttributeCS__Group_6_0_1_2__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3735:6: ( ( rule__AttributeCS__Group_6_0_1_2__0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3671:6: ( ( rule__AttributeCS__Group_6_0_1_2__0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3672:1: ( rule__AttributeCS__Group_6_0_1_2__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3735:6: ( ( rule__AttributeCS__Group_6_0_1_2__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3736:1: ( rule__AttributeCS__Group_6_0_1_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAttributeCSAccess().getGroup_6_0_1_2()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3673:1: ( rule__AttributeCS__Group_6_0_1_2__0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3673:2: rule__AttributeCS__Group_6_0_1_2__0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3737:1: ( rule__AttributeCS__Group_6_0_1_2__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3737:2: rule__AttributeCS__Group_6_0_1_2__0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__Group_6_0_1_2__0_in_rule__AttributeCS__Alternatives_6_0_17995);
+                    pushFollow(FollowSets000.FOLLOW_rule__AttributeCS__Group_6_0_1_2__0_in_rule__AttributeCS__Alternatives_6_0_18065);
                     rule__AttributeCS__Group_6_0_1_2__0();
 
                     state._fsp--;
@@ -11670,51 +11710,51 @@
 
 
     // $ANTLR start "rule__ClassCS__Alternatives"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3682:1: rule__ClassCS__Alternatives : ( ( ruleStructuredClassCS ) | ( ruleDataTypeCS ) | ( ruleEnumerationCS ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3746:1: rule__ClassCS__Alternatives : ( ( ruleStructuredClassCS ) | ( ruleDataTypeCS ) | ( ruleEnumerationCS ) );
     public final void rule__ClassCS__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3686:1: ( ( ruleStructuredClassCS ) | ( ruleDataTypeCS ) | ( ruleEnumerationCS ) )
-            int alt12=3;
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3750:1: ( ( ruleStructuredClassCS ) | ( ruleDataTypeCS ) | ( ruleEnumerationCS ) )
+            int alt18=3;
             switch ( input.LA(1) ) {
             case 17:
             case 21:
                 {
-                alt12=1;
+                alt18=1;
                 }
                 break;
             case 23:
             case 41:
                 {
-                alt12=2;
+                alt18=2;
                 }
                 break;
             case 27:
                 {
-                alt12=3;
+                alt18=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 12, 0, input);
+                    new NoViableAltException("", 18, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt12) {
+            switch (alt18) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3687:1: ( ruleStructuredClassCS )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3751:1: ( ruleStructuredClassCS )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3687:1: ( ruleStructuredClassCS )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3688:1: ruleStructuredClassCS
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3751:1: ( ruleStructuredClassCS )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3752:1: ruleStructuredClassCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getClassCSAccess().getStructuredClassCSParserRuleCall_0()); 
                     }
-                    pushFollow(FollowSets000.FOLLOW_ruleStructuredClassCS_in_rule__ClassCS__Alternatives8028);
+                    pushFollow(FollowSets000.FOLLOW_ruleStructuredClassCS_in_rule__ClassCS__Alternatives8098);
                     ruleStructuredClassCS();
 
                     state._fsp--;
@@ -11729,15 +11769,15 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3693:6: ( ruleDataTypeCS )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3757:6: ( ruleDataTypeCS )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3693:6: ( ruleDataTypeCS )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3694:1: ruleDataTypeCS
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3757:6: ( ruleDataTypeCS )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3758:1: ruleDataTypeCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getClassCSAccess().getDataTypeCSParserRuleCall_1()); 
                     }
-                    pushFollow(FollowSets000.FOLLOW_ruleDataTypeCS_in_rule__ClassCS__Alternatives8045);
+                    pushFollow(FollowSets000.FOLLOW_ruleDataTypeCS_in_rule__ClassCS__Alternatives8115);
                     ruleDataTypeCS();
 
                     state._fsp--;
@@ -11752,15 +11792,15 @@
                     }
                     break;
                 case 3 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3699:6: ( ruleEnumerationCS )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3763:6: ( ruleEnumerationCS )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3699:6: ( ruleEnumerationCS )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3700:1: ruleEnumerationCS
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3763:6: ( ruleEnumerationCS )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3764:1: ruleEnumerationCS
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getClassCSAccess().getEnumerationCSParserRuleCall_2()); 
                     }
-                    pushFollow(FollowSets000.FOLLOW_ruleEnumerationCS_in_rule__ClassCS__Alternatives8062);
+                    pushFollow(FollowSets000.FOLLOW_ruleEnumerationCS_in_rule__ClassCS__Alternatives8132);
                     ruleEnumerationCS();
 
                     state._fsp--;
@@ -11792,43 +11832,43 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Alternatives_5_1"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3710:1: rule__DataTypeCS__Alternatives_5_1 : ( ( ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 ) ) | ( '!serializable' ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3774:1: rule__DataTypeCS__Alternatives_5_1 : ( ( ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 ) ) | ( '!serializable' ) );
     public final void rule__DataTypeCS__Alternatives_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3714:1: ( ( ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 ) ) | ( '!serializable' ) )
-            int alt13=2;
-            int LA13_0 = input.LA(1);
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3778:1: ( ( ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 ) ) | ( '!serializable' ) )
+            int alt19=2;
+            int LA19_0 = input.LA(1);
 
-            if ( (LA13_0==59) ) {
-                alt13=1;
+            if ( (LA19_0==68) ) {
+                alt19=1;
             }
-            else if ( (LA13_0==54) ) {
-                alt13=2;
+            else if ( (LA19_0==61) ) {
+                alt19=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 13, 0, input);
+                    new NoViableAltException("", 19, 0, input);
 
                 throw nvae;
             }
-            switch (alt13) {
+            switch (alt19) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3715:1: ( ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3779:1: ( ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3715:1: ( ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3716:1: ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3779:1: ( ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3780:1: ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDataTypeCSAccess().getIsSerializableAssignment_5_1_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3717:1: ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3717:2: rule__DataTypeCS__IsSerializableAssignment_5_1_0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3781:1: ( rule__DataTypeCS__IsSerializableAssignment_5_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3781:2: rule__DataTypeCS__IsSerializableAssignment_5_1_0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__DataTypeCS__IsSerializableAssignment_5_1_0_in_rule__DataTypeCS__Alternatives_5_18094);
+                    pushFollow(FollowSets000.FOLLOW_rule__DataTypeCS__IsSerializableAssignment_5_1_0_in_rule__DataTypeCS__Alternatives_5_18164);
                     rule__DataTypeCS__IsSerializableAssignment_5_1_0();
 
                     state._fsp--;
@@ -11846,15 +11886,15 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3721:6: ( '!serializable' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3785:6: ( '!serializable' )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3721:6: ( '!serializable' )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3722:1: '!serializable'
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3785:6: ( '!serializable' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3786:1: '!serializable'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDataTypeCSAccess().getSerializableKeyword_5_1_1()); 
                     }
-                    match(input,54,FollowSets000.FOLLOW_54_in_rule__DataTypeCS__Alternatives_5_18113); if (state.failed) return ;
+                    match(input,61,FollowSets000.FOLLOW_61_in_rule__DataTypeCS__Alternatives_5_18183); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getDataTypeCSAccess().getSerializableKeyword_5_1_1()); 
                     }
@@ -11882,43 +11922,43 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Alternatives_6"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3734:1: rule__DataTypeCS__Alternatives_6 : ( ( ( rule__DataTypeCS__Group_6_0__0 ) ) | ( ';' ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3798:1: rule__DataTypeCS__Alternatives_6 : ( ( ( rule__DataTypeCS__Group_6_0__0 ) ) | ( ';' ) );
     public final void rule__DataTypeCS__Alternatives_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3738:1: ( ( ( rule__DataTypeCS__Group_6_0__0 ) ) | ( ';' ) )
-            int alt14=2;
-            int LA14_0 = input.LA(1);
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3802:1: ( ( ( rule__DataTypeCS__Group_6_0__0 ) ) | ( ';' ) )
+            int alt20=2;
+            int LA20_0 = input.LA(1);
 
-            if ( (LA14_0==99) ) {
-                alt14=1;
+            if ( (LA20_0==108) ) {
+                alt20=1;
             }
-            else if ( (LA14_0==53) ) {
-                alt14=2;
+            else if ( (LA20_0==53) ) {
+                alt20=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 14, 0, input);
+                    new NoViableAltException("", 20, 0, input);
 
                 throw nvae;
             }
-            switch (alt14) {
+            switch (alt20) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3739:1: ( ( rule__DataTypeCS__Group_6_0__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3803:1: ( ( rule__DataTypeCS__Group_6_0__0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3739:1: ( ( rule__DataTypeCS__Group_6_0__0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3740:1: ( rule__DataTypeCS__Group_6_0__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3803:1: ( ( rule__DataTypeCS__Group_6_0__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3804:1: ( rule__DataTypeCS__Group_6_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDataTypeCSAccess().getGroup_6_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3741:1: ( rule__DataTypeCS__Group_6_0__0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3741:2: rule__DataTypeCS__Group_6_0__0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3805:1: ( rule__DataTypeCS__Group_6_0__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3805:2: rule__DataTypeCS__Group_6_0__0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__DataTypeCS__Group_6_0__0_in_rule__DataTypeCS__Alternatives_68147);
+                    pushFollow(FollowSets000.FOLLOW_rule__DataTypeCS__Group_6_0__0_in_rule__DataTypeCS__Alternatives_68217);
                     rule__DataTypeCS__Group_6_0__0();
 
                     state._fsp--;
@@ -11936,15 +11976,15 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3745:6: ( ';' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3809:6: ( ';' )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3745:6: ( ';' )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3746:1: ';'
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3809:6: ( ';' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3810:1: ';'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDataTypeCSAccess().getSemicolonKeyword_6_1()); 
                     }
-                    match(input,53,FollowSets000.FOLLOW_53_in_rule__DataTypeCS__Alternatives_68166); if (state.failed) return ;
+                    match(input,53,FollowSets000.FOLLOW_53_in_rule__DataTypeCS__Alternatives_68236); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getDataTypeCSAccess().getSemicolonKeyword_6_1()); 
                     }
@@ -11972,43 +12012,43 @@
 
 
     // $ANTLR start "rule__DataTypeCS__Alternatives_6_0_1"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3758:1: rule__DataTypeCS__Alternatives_6_0_1 : ( ( ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 ) ) | ( ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 ) ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3822:1: rule__DataTypeCS__Alternatives_6_0_1 : ( ( ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 ) ) | ( ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 ) ) );
     public final void rule__DataTypeCS__Alternatives_6_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3762:1: ( ( ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 ) ) | ( ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 ) ) )
-            int alt15=2;
-            int LA15_0 = input.LA(1);
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3826:1: ( ( ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 ) ) | ( ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 ) ) )
+            int alt21=2;
+            int LA21_0 = input.LA(1);
 
-            if ( ((LA15_0>=55 && LA15_0<=56)||LA15_0==60) ) {
-                alt15=1;
+            if ( ((LA21_0>=64 && LA21_0<=65)||LA21_0==69) ) {
+                alt21=1;
             }
-            else if ( (LA15_0==20||LA15_0==57) ) {
-                alt15=2;
+            else if ( (LA21_0==20||LA21_0==66) ) {
+                alt21=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 15, 0, input);
+                    new NoViableAltException("", 21, 0, input);
 
                 throw nvae;
             }
-            switch (alt15) {
+            switch (alt21) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3763:1: ( ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3827:1: ( ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3763:1: ( ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3764:1: ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3827:1: ( ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3828:1: ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDataTypeCSAccess().getOwnedAnnotationsAssignment_6_0_1_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3765:1: ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3765:2: rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3829:1: ( rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3829:2: rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0_in_rule__DataTypeCS__Alternatives_6_0_18200);
+                    pushFollow(FollowSets000.FOLLOW_rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0_in_rule__DataTypeCS__Alternatives_6_0_18270);
                     rule__DataTypeCS__OwnedAnnotationsAssignment_6_0_1_0();
 
                     state._fsp--;
@@ -12026,18 +12066,18 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3769:6: ( ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3833:6: ( ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3769:6: ( ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3770:1: ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3833:6: ( ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3834:1: ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDataTypeCSAccess().getOwnedConstraintsAssignment_6_0_1_1()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3771:1: ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3771:2: rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3835:1: ( rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3835:2: rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1_in_rule__DataTypeCS__Alternatives_6_0_18218);
+                    pushFollow(FollowSets000.FOLLOW_rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1_in_rule__DataTypeCS__Alternatives_6_0_18288);
                     rule__DataTypeCS__OwnedConstraintsAssignment_6_0_1_1();
 
                     state._fsp--;
@@ -12072,40 +12112,40 @@
 
 
     // $ANTLR start "rule__DetailCS__NameAlternatives_0_0"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3780:1: rule__DetailCS__NameAlternatives_0_0 : ( ( ruleUnrestrictedName ) | ( RULE_SINGLE_QUOTED_STRING ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3844:1: rule__DetailCS__NameAlternatives_0_0 : ( ( ruleUnrestrictedName ) | ( RULE_SINGLE_QUOTED_STRING ) );
     public final void rule__DetailCS__NameAlternatives_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3784:1: ( ( ruleUnrestrictedName ) | ( RULE_SINGLE_QUOTED_STRING ) )
-            int alt16=2;
-            int LA16_0 = input.LA(1);
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3848:1: ( ( ruleUnrestrictedName ) | ( RULE_SINGLE_QUOTED_STRING ) )
+            int alt22=2;
+            int LA22_0 = input.LA(1);
 
-            if ( ((LA16_0>=RULE_SIMPLE_ID && LA16_0<=RULE_ESCAPED_ID)||(LA16_0>=17 && LA16_0<=52)||(LA16_0>=55 && LA16_0<=60)) ) {
-                alt16=1;
+            if ( ((LA22_0>=RULE_SIMPLE_ID && LA22_0<=RULE_ESCAPED_ID)||(LA22_0>=17 && LA22_0<=52)||(LA22_0>=64 && LA22_0<=69)) ) {
+                alt22=1;
             }
-            else if ( (LA16_0==RULE_SINGLE_QUOTED_STRING) ) {
-                alt16=2;
+            else if ( (LA22_0==RULE_SINGLE_QUOTED_STRING) ) {
+                alt22=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 16, 0, input);
+                    new NoViableAltException("", 22, 0, input);
 
                 throw nvae;
             }
-            switch (alt16) {
+            switch (alt22) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3785:1: ( ruleUnrestrictedName )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3849:1: ( ruleUnrestrictedName )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3785:1: ( ruleUnrestrictedName )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3786:1: ruleUnrestrictedName
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3849:1: ( ruleUnrestrictedName )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3850:1: ruleUnrestrictedName
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDetailCSAccess().getNameUnrestrictedNameParserRuleCall_0_0_0()); 
                     }
-                    pushFollow(FollowSets000.FOLLOW_ruleUnrestrictedName_in_rule__DetailCS__NameAlternatives_0_08251);
+                    pushFollow(FollowSets000.FOLLOW_ruleUnrestrictedName_in_rule__DetailCS__NameAlternatives_0_08321);
                     ruleUnrestrictedName();
 
                     state._fsp--;
@@ -12120,15 +12160,15 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3791:6: ( RULE_SINGLE_QUOTED_STRING )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3855:6: ( RULE_SINGLE_QUOTED_STRING )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3791:6: ( RULE_SINGLE_QUOTED_STRING )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3792:1: RULE_SINGLE_QUOTED_STRING
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3855:6: ( RULE_SINGLE_QUOTED_STRING )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3856:1: RULE_SINGLE_QUOTED_STRING
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDetailCSAccess().getNameSINGLE_QUOTED_STRINGTerminalRuleCall_0_0_1()); 
                     }
-                    match(input,RULE_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_RULE_SINGLE_QUOTED_STRING_in_rule__DetailCS__NameAlternatives_0_08268); if (state.failed) return ;
+                    match(input,RULE_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_RULE_SINGLE_QUOTED_STRING_in_rule__DetailCS__NameAlternatives_0_08338); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getDetailCSAccess().getNameSINGLE_QUOTED_STRINGTerminalRuleCall_0_0_1()); 
                     }
@@ -12156,40 +12196,40 @@
 
 
     // $ANTLR start "rule__DetailCS__ValuesAlternatives_2_0"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3802:1: rule__DetailCS__ValuesAlternatives_2_0 : ( ( RULE_SINGLE_QUOTED_STRING ) | ( RULE_ML_SINGLE_QUOTED_STRING ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3866:1: rule__DetailCS__ValuesAlternatives_2_0 : ( ( RULE_SINGLE_QUOTED_STRING ) | ( RULE_ML_SINGLE_QUOTED_STRING ) );
     public final void rule__DetailCS__ValuesAlternatives_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3806:1: ( ( RULE_SINGLE_QUOTED_STRING ) | ( RULE_ML_SINGLE_QUOTED_STRING ) )
-            int alt17=2;
-            int LA17_0 = input.LA(1);
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3870:1: ( ( RULE_SINGLE_QUOTED_STRING ) | ( RULE_ML_SINGLE_QUOTED_STRING ) )
+            int alt23=2;
+            int LA23_0 = input.LA(1);
 
-            if ( (LA17_0==RULE_SINGLE_QUOTED_STRING) ) {
-                alt17=1;
+            if ( (LA23_0==RULE_SINGLE_QUOTED_STRING) ) {
+                alt23=1;
             }
-            else if ( (LA17_0==RULE_ML_SINGLE_QUOTED_STRING) ) {
-                alt17=2;
+            else if ( (LA23_0==RULE_ML_SINGLE_QUOTED_STRING) ) {
+                alt23=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 17, 0, input);
+                    new NoViableAltException("", 23, 0, input);
 
                 throw nvae;
             }
-            switch (alt17) {
+            switch (alt23) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3807:1: ( RULE_SINGLE_QUOTED_STRING )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3871:1: ( RULE_SINGLE_QUOTED_STRING )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3807:1: ( RULE_SINGLE_QUOTED_STRING )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3808:1: RULE_SINGLE_QUOTED_STRING
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3871:1: ( RULE_SINGLE_QUOTED_STRING )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3872:1: RULE_SINGLE_QUOTED_STRING
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDetailCSAccess().getValuesSINGLE_QUOTED_STRINGTerminalRuleCall_2_0_0()); 
                     }
-                    match(input,RULE_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_RULE_SINGLE_QUOTED_STRING_in_rule__DetailCS__ValuesAlternatives_2_08300); if (state.failed) return ;
+                    match(input,RULE_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_RULE_SINGLE_QUOTED_STRING_in_rule__DetailCS__ValuesAlternatives_2_08370); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getDetailCSAccess().getValuesSINGLE_QUOTED_STRINGTerminalRuleCall_2_0_0()); 
                     }
@@ -12200,15 +12240,15 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3813:6: ( RULE_ML_SINGLE_QUOTED_STRING )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3877:6: ( RULE_ML_SINGLE_QUOTED_STRING )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3813:6: ( RULE_ML_SINGLE_QUOTED_STRING )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3814:1: RULE_ML_SINGLE_QUOTED_STRING
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3877:6: ( RULE_ML_SINGLE_QUOTED_STRING )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3878:1: RULE_ML_SINGLE_QUOTED_STRING
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDetailCSAccess().getValuesML_SINGLE_QUOTED_STRINGTerminalRuleCall_2_0_1()); 
                     }
-                    match(input,RULE_ML_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_RULE_ML_SINGLE_QUOTED_STRING_in_rule__DetailCS__ValuesAlternatives_2_08317); if (state.failed) return ;
+                    match(input,RULE_ML_SINGLE_QUOTED_STRING,FollowSets000.FOLLOW_RULE_ML_SINGLE_QUOTED_STRING_in_rule__DetailCS__ValuesAlternatives_2_08387); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getDetailCSAccess().getValuesML_SINGLE_QUOTED_STRINGTerminalRuleCall_2_0_1()); 
                     }
@@ -12236,43 +12276,43 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Alternatives_4_1"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3824:1: rule__EnumerationCS__Alternatives_4_1 : ( ( ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 ) ) | ( '!serializable' ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3888:1: rule__EnumerationCS__Alternatives_4_1 : ( ( ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 ) ) | ( '!serializable' ) );
     public final void rule__EnumerationCS__Alternatives_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3828:1: ( ( ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 ) ) | ( '!serializable' ) )
-            int alt18=2;
-            int LA18_0 = input.LA(1);
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3892:1: ( ( ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 ) ) | ( '!serializable' ) )
+            int alt24=2;
+            int LA24_0 = input.LA(1);
 
-            if ( (LA18_0==59) ) {
-                alt18=1;
+            if ( (LA24_0==68) ) {
+                alt24=1;
             }
-            else if ( (LA18_0==54) ) {
-                alt18=2;
+            else if ( (LA24_0==61) ) {
+                alt24=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 18, 0, input);
+                    new NoViableAltException("", 24, 0, input);
 
                 throw nvae;
             }
-            switch (alt18) {
+            switch (alt24) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3829:1: ( ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3893:1: ( ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3829:1: ( ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3830:1: ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3893:1: ( ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3894:1: ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEnumerationCSAccess().getIsSerializableAssignment_4_1_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3831:1: ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3831:2: rule__EnumerationCS__IsSerializableAssignment_4_1_0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3895:1: ( rule__EnumerationCS__IsSerializableAssignment_4_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3895:2: rule__EnumerationCS__IsSerializableAssignment_4_1_0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__EnumerationCS__IsSerializableAssignment_4_1_0_in_rule__EnumerationCS__Alternatives_4_18349);
+                    pushFollow(FollowSets000.FOLLOW_rule__EnumerationCS__IsSerializableAssignment_4_1_0_in_rule__EnumerationCS__Alternatives_4_18419);
                     rule__EnumerationCS__IsSerializableAssignment_4_1_0();
 
                     state._fsp--;
@@ -12290,15 +12330,15 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3835:6: ( '!serializable' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3899:6: ( '!serializable' )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3835:6: ( '!serializable' )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3836:1: '!serializable'
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3899:6: ( '!serializable' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3900:1: '!serializable'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEnumerationCSAccess().getSerializableKeyword_4_1_1()); 
                     }
-                    match(input,54,FollowSets000.FOLLOW_54_in_rule__EnumerationCS__Alternatives_4_18368); if (state.failed) return ;
+                    match(input,61,FollowSets000.FOLLOW_61_in_rule__EnumerationCS__Alternatives_4_18438); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getEnumerationCSAccess().getSerializableKeyword_4_1_1()); 
                     }
@@ -12326,43 +12366,43 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Alternatives_5"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3848:1: rule__EnumerationCS__Alternatives_5 : ( ( ( rule__EnumerationCS__Group_5_0__0 ) ) | ( ';' ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3912:1: rule__EnumerationCS__Alternatives_5 : ( ( ( rule__EnumerationCS__Group_5_0__0 ) ) | ( ';' ) );
     public final void rule__EnumerationCS__Alternatives_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3852:1: ( ( ( rule__EnumerationCS__Group_5_0__0 ) ) | ( ';' ) )
-            int alt19=2;
-            int LA19_0 = input.LA(1);
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3916:1: ( ( ( rule__EnumerationCS__Group_5_0__0 ) ) | ( ';' ) )
+            int alt25=2;
+            int LA25_0 = input.LA(1);
 
-            if ( (LA19_0==99) ) {
-                alt19=1;
+            if ( (LA25_0==108) ) {
+                alt25=1;
             }
-            else if ( (LA19_0==53) ) {
-                alt19=2;
+            else if ( (LA25_0==53) ) {
+                alt25=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 19, 0, input);
+                    new NoViableAltException("", 25, 0, input);
 
                 throw nvae;
             }
-            switch (alt19) {
+            switch (alt25) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3853:1: ( ( rule__EnumerationCS__Group_5_0__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3917:1: ( ( rule__EnumerationCS__Group_5_0__0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3853:1: ( ( rule__EnumerationCS__Group_5_0__0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3854:1: ( rule__EnumerationCS__Group_5_0__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3917:1: ( ( rule__EnumerationCS__Group_5_0__0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3918:1: ( rule__EnumerationCS__Group_5_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEnumerationCSAccess().getGroup_5_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3855:1: ( rule__EnumerationCS__Group_5_0__0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3855:2: rule__EnumerationCS__Group_5_0__0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3919:1: ( rule__EnumerationCS__Group_5_0__0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3919:2: rule__EnumerationCS__Group_5_0__0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__EnumerationCS__Group_5_0__0_in_rule__EnumerationCS__Alternatives_58402);
+                    pushFollow(FollowSets000.FOLLOW_rule__EnumerationCS__Group_5_0__0_in_rule__EnumerationCS__Alternatives_58472);
                     rule__EnumerationCS__Group_5_0__0();
 
                     state._fsp--;
@@ -12380,15 +12420,15 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3859:6: ( ';' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3923:6: ( ';' )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3859:6: ( ';' )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3860:1: ';'
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3923:6: ( ';' )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3924:1: ';'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEnumerationCSAccess().getSemicolonKeyword_5_1()); 
                     }
-                    match(input,53,FollowSets000.FOLLOW_53_in_rule__EnumerationCS__Alternatives_58421); if (state.failed) return ;
+                    match(input,53,FollowSets000.FOLLOW_53_in_rule__EnumerationCS__Alternatives_58491); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getEnumerationCSAccess().getSemicolonKeyword_5_1()); 
                     }
@@ -12416,20 +12456,20 @@
 
 
     // $ANTLR start "rule__EnumerationCS__Alternatives_5_0_1"
-    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3872:1: rule__EnumerationCS__Alternatives_5_0_1 : ( ( ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 ) ) | ( ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 ) ) | ( ( rule__EnumerationCS__OwnedConstraintsAssignment_5_0_1_2 ) ) );
+    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3936:1: rule__EnumerationCS__Alternatives_5_0_1 : ( ( ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 ) ) | ( ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 ) ) | ( ( rule__EnumerationCS__OwnedConstraintsAssignment_5_0_1_2 ) ) );
     public final void rule__EnumerationCS__Alternatives_5_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3876:1: ( ( ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 ) ) | ( ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 ) ) | ( ( rule__EnumerationCS__OwnedConstraintsAssignment_5_0_1_2 ) ) )
-            int alt20=3;
+            // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3940:1: ( ( ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 ) ) | ( ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 ) ) | ( ( rule__EnumerationCS__OwnedConstraintsAssignment_5_0_1_2 ) ) )
+            int alt26=3;
             switch ( input.LA(1) ) {
-            case 55:
-            case 56:
-            case 60:
+            case 64:
+            case 65:
+            case 69:
                 {
-                alt20=1;
+                alt26=1;
                 }
                 break;
             case RULE_SIMPLE_ID:
@@ -12469,57 +12509,57 @@
             case 50:
             case 51:
             case 52:
-            case 58:
+            case 67:
                 {
-                alt20=2;
+                alt26=2;
                 }
                 break;
             case 20:
                 {
-                int LA20_3 = input.LA(2);
+                int LA26_3 = input.LA(2);
 
-                if ( (LA20_3==57) ) {
-                    alt20=3;
+                if ( (LA26_3==66) ) {
+                    alt26=3;
                 }
-                else if ( (LA20_3==53||LA20_3==70||LA20_3==99) ) {
-                    alt20=2;
+                else if ( (LA26_3==53||LA26_3==79||LA26_3==108) ) {
+                    alt26=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 20, 3, input);
+                        new NoViableAltException("", 26, 3, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 57:
+            case 66:
                 {
-                alt20=3;
+                alt26=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 20, 0, input);
+                    new NoViableAltException("", 26, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt20) {
+            switch (alt26) {
                 case 1 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3877:1: ( ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3941:1: ( ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3877:1: ( ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3878:1: ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3941:1: ( ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3942:1: ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEnumerationCSAccess().getOwnedAnnotationsAssignment_5_0_1_0()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3879:1: ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3879:2: rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3943:1: ( rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3943:2: rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0
                     {
-                    pushFollow(FollowSets000.FOLLOW_rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0_in_rule__EnumerationCS__Alternatives_5_0_18455);
+                    pushFollow(FollowSets000.FOLLOW_rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0_in_rule__EnumerationCS__Alternatives_5_0_18525);
                     rule__EnumerationCS__OwnedAnnotationsAssignment_5_0_1_0();
 
                     state._fsp--;
@@ -12537,18 +12577,18 @@
                     }
                     break;
                 case 2 :
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3883:6: ( ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3947:6: ( ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 ) )
                     {
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3883:6: ( ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 ) )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3884:1: ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3947:6: ( ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 ) )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3948:1: ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEnumerationCSAccess().getOwnedLiteralsAssignment_5_0_1_1()); 
                     }
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3885:1: ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 )
-                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3885:2: rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3949:1: ( rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1 )
+                    // ../../plugins/org.eclipse.ocl.xtext.oclinecore.ui/src-gen/org/eclipse/ocl/xtext/oclinecore/ui/contentassist/antlr/internal/InternalOCLinEcore.g:3949:2: rule__EnumerationCS__OwnedLiteralsAssignment_5_0_1_1</