catch up with branch daily

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/CubeDSLParser.java b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/CubeDSLParser.java
index 04ca87c..2e6a7fa 100644
--- a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/CubeDSLParser.java
+++ b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/CubeDSLParser.java
@@ -108,8 +108,11 @@
 					put(grammarAccess.getCubeDimensionEntityAccess().getGroup(), "rule__CubeDimensionEntity__Group__0");
 					put(grammarAccess.getCubeDimensionEntityEntityAccess().getGroup(), "rule__CubeDimensionEntityEntity__Group__0");
 					put(grammarAccess.getCubeLevelAccess().getGroup(), "rule__CubeLevel__Group__0");
+					put(grammarAccess.getCubeLevelAccess().getGroup_4(), "rule__CubeLevel__Group_4__0");
 					put(grammarAccess.getCubeLevelAccess().getGroup_5(), "rule__CubeLevel__Group_5__0");
 					put(grammarAccess.getCubeLevelAccess().getGroup_6(), "rule__CubeLevel__Group_6__0");
+					put(grammarAccess.getCubeLevelAccess().getGroup_8(), "rule__CubeLevel__Group_8__0");
+					put(grammarAccess.getCubeLevelAccess().getGroup_9(), "rule__CubeLevel__Group_9__0");
 					put(grammarAccess.getCubeLevelPropAccess().getGroup(), "rule__CubeLevelProp__Group__0");
 					put(grammarAccess.getCubeLevelPropAccess().getGroup_4(), "rule__CubeLevelProp__Group_4__0");
 					put(grammarAccess.getCubeMeasureAccess().getGroup(), "rule__CubeMeasure__Group__0");
@@ -351,10 +354,16 @@
 					put(grammarAccess.getCubeDimensionEntityEntityAccess().getDimEntityAssignment_6(), "rule__CubeDimensionEntityEntity__DimEntityAssignment_6");
 					put(grammarAccess.getCubeLevelAccess().getNameAssignment_1(), "rule__CubeLevel__NameAssignment_1");
 					put(grammarAccess.getCubeLevelAccess().getLevelColValueAssignment_3(), "rule__CubeLevel__LevelColValueAssignment_3");
-					put(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_4(), "rule__CubeLevel__UniqueMembersAssignment_4");
-					put(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_5_0(), "rule__CubeLevel__LevelTypeAssignment_5_0");
-					put(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_5_1(), "rule__CubeLevel__LevelTypeValueAssignment_5_1");
-					put(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_6_1(), "rule__CubeLevel__PropertiesAssignment_6_1");
+					put(grammarAccess.getCubeLevelAccess().getNameColumnAssignment_4_0(), "rule__CubeLevel__NameColumnAssignment_4_0");
+					put(grammarAccess.getCubeLevelAccess().getLevelNameColValueAssignment_4_1(), "rule__CubeLevel__LevelNameColValueAssignment_4_1");
+					put(grammarAccess.getCubeLevelAccess().getCaptionColumnAssignment_5_0(), "rule__CubeLevel__CaptionColumnAssignment_5_0");
+					put(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueAssignment_5_1(), "rule__CubeLevel__LevelCaptionColValueAssignment_5_1");
+					put(grammarAccess.getCubeLevelAccess().getOrdinalColumnAssignment_6_0(), "rule__CubeLevel__OrdinalColumnAssignment_6_0");
+					put(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueAssignment_6_1(), "rule__CubeLevel__LevelOrdinalColValueAssignment_6_1");
+					put(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_7(), "rule__CubeLevel__UniqueMembersAssignment_7");
+					put(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_8_0(), "rule__CubeLevel__LevelTypeAssignment_8_0");
+					put(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_8_1(), "rule__CubeLevel__LevelTypeValueAssignment_8_1");
+					put(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_9_1(), "rule__CubeLevel__PropertiesAssignment_9_1");
 					put(grammarAccess.getCubeLevelPropAccess().getNameAssignment_1(), "rule__CubeLevelProp__NameAssignment_1");
 					put(grammarAccess.getCubeLevelPropAccess().getLevelPropColValueAssignment_3(), "rule__CubeLevelProp__LevelPropColValueAssignment_3");
 					put(grammarAccess.getCubeLevelPropAccess().getTypeAssignment_4_0(), "rule__CubeLevelProp__TypeAssignment_4_0");
diff --git a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSL.g b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSL.g
index f7d7a19..23fb303 100644
--- a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSL.g
+++ b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSL.g
@@ -3,9 +3,11 @@
  *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
  *                                                                            
  *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
+ *  are made available under the terms of the Eclipse Public License 2.0        
  *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *  https://www.eclipse.org/legal/epl-2.0/                                 
+ *                                 
+ *  SPDX-License-Identifier: EPL-2.0                                 
  *                                                                            
  *  Contributors:                                                      
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
@@ -5771,9 +5773,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_4()); }
-	(rule__CubeLevel__UniqueMembersAssignment_4)?
-	{ after(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_4()); }
+	{ before(grammarAccess.getCubeLevelAccess().getGroup_4()); }
+	(rule__CubeLevel__Group_4__0)?
+	{ after(grammarAccess.getCubeLevelAccess().getGroup_4()); }
 )
 ;
 finally {
@@ -5813,6 +5815,7 @@
 	}
 :
 	rule__CubeLevel__Group__6__Impl
+	rule__CubeLevel__Group__7
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -5833,6 +5836,140 @@
 	restoreStackSize(stackSize);
 }
 
+rule__CubeLevel__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group__7__Impl
+	rule__CubeLevel__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_7()); }
+	(rule__CubeLevel__UniqueMembersAssignment_7)?
+	{ after(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group__8__Impl
+	rule__CubeLevel__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getGroup_8()); }
+	(rule__CubeLevel__Group_8__0)?
+	{ after(grammarAccess.getCubeLevelAccess().getGroup_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getGroup_9()); }
+	(rule__CubeLevel__Group_9__0)?
+	{ after(grammarAccess.getCubeLevelAccess().getGroup_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__CubeLevel__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group_4__0__Impl
+	rule__CubeLevel__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getNameColumnAssignment_4_0()); }
+	(rule__CubeLevel__NameColumnAssignment_4_0)
+	{ after(grammarAccess.getCubeLevelAccess().getNameColumnAssignment_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getLevelNameColValueAssignment_4_1()); }
+	(rule__CubeLevel__LevelNameColValueAssignment_4_1)
+	{ after(grammarAccess.getCubeLevelAccess().getLevelNameColValueAssignment_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 
 rule__CubeLevel__Group_5__0
 	@init {
@@ -5852,9 +5989,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_5_0()); }
-	(rule__CubeLevel__LevelTypeAssignment_5_0)
-	{ after(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_5_0()); }
+	{ before(grammarAccess.getCubeLevelAccess().getCaptionColumnAssignment_5_0()); }
+	(rule__CubeLevel__CaptionColumnAssignment_5_0)
+	{ after(grammarAccess.getCubeLevelAccess().getCaptionColumnAssignment_5_0()); }
 )
 ;
 finally {
@@ -5878,9 +6015,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_5_1()); }
-	(rule__CubeLevel__LevelTypeValueAssignment_5_1)
-	{ after(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_5_1()); }
+	{ before(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueAssignment_5_1()); }
+	(rule__CubeLevel__LevelCaptionColValueAssignment_5_1)
+	{ after(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueAssignment_5_1()); }
 )
 ;
 finally {
@@ -5906,9 +6043,9 @@
 	}
 :
 (
-	{ before(grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_6_0()); }
-	'{'
-	{ after(grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_6_0()); }
+	{ before(grammarAccess.getCubeLevelAccess().getOrdinalColumnAssignment_6_0()); }
+	(rule__CubeLevel__OrdinalColumnAssignment_6_0)
+	{ after(grammarAccess.getCubeLevelAccess().getOrdinalColumnAssignment_6_0()); }
 )
 ;
 finally {
@@ -5921,7 +6058,6 @@
 	}
 :
 	rule__CubeLevel__Group_6__1__Impl
-	rule__CubeLevel__Group_6__2
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -5933,35 +6069,144 @@
 	}
 :
 (
-	{ before(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_6_1()); }
-	(rule__CubeLevel__PropertiesAssignment_6_1)*
-	{ after(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_6_1()); }
+	{ before(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueAssignment_6_1()); }
+	(rule__CubeLevel__LevelOrdinalColValueAssignment_6_1)
+	{ after(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueAssignment_6_1()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__CubeLevel__Group_6__2
+
+rule__CubeLevel__Group_8__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__CubeLevel__Group_6__2__Impl
+	rule__CubeLevel__Group_8__0__Impl
+	rule__CubeLevel__Group_8__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__CubeLevel__Group_6__2__Impl
+rule__CubeLevel__Group_8__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_6_2()); }
+	{ before(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_8_0()); }
+	(rule__CubeLevel__LevelTypeAssignment_8_0)
+	{ after(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_8_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_8__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_8__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_8_1()); }
+	(rule__CubeLevel__LevelTypeValueAssignment_8_1)
+	{ after(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_8_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__CubeLevel__Group_9__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group_9__0__Impl
+	rule__CubeLevel__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_9__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_9_0()); }
+	'{'
+	{ after(grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_9_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_9__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group_9__1__Impl
+	rule__CubeLevel__Group_9__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_9__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_9_1()); }
+	(rule__CubeLevel__PropertiesAssignment_9_1)*
+	{ after(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_9_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_9__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__CubeLevel__Group_9__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__Group_9__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_9_2()); }
 	'}'
-	{ after(grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_6_2()); }
+	{ after(grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_9_2()); }
 )
 ;
 finally {
@@ -19936,68 +20181,182 @@
 	restoreStackSize(stackSize);
 }
 
-rule__CubeLevel__UniqueMembersAssignment_4
+rule__CubeLevel__NameColumnAssignment_4_0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0()); }
+		{ before(grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0()); }
 		(
-			{ before(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0()); }
+			{ before(grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0()); }
+			'nameColumn'
+			{ after(grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0()); }
+		)
+		{ after(grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__LevelNameColValueAssignment_4_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureCrossReference_4_1_0()); }
+		(
+			{ before(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureLFQNParserRuleCall_4_1_0_1()); }
+			ruleLFQN
+			{ after(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureLFQNParserRuleCall_4_1_0_1()); }
+		)
+		{ after(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureCrossReference_4_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__CaptionColumnAssignment_5_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0()); }
+		(
+			{ before(grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0()); }
+			'captionColumn'
+			{ after(grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0()); }
+		)
+		{ after(grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__LevelCaptionColValueAssignment_5_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureCrossReference_5_1_0()); }
+		(
+			{ before(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureLFQNParserRuleCall_5_1_0_1()); }
+			ruleLFQN
+			{ after(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureLFQNParserRuleCall_5_1_0_1()); }
+		)
+		{ after(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureCrossReference_5_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__OrdinalColumnAssignment_6_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0()); }
+		(
+			{ before(grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0()); }
+			'ordinalColumn'
+			{ after(grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0()); }
+		)
+		{ after(grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__LevelOrdinalColValueAssignment_6_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0()); }
+		(
+			{ before(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureLFQNParserRuleCall_6_1_0_1()); }
+			ruleLFQN
+			{ after(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureLFQNParserRuleCall_6_1_0_1()); }
+		)
+		{ after(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CubeLevel__UniqueMembersAssignment_7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0()); }
+		(
+			{ before(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0()); }
 			'uniqueMembers'
-			{ after(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0()); }
+			{ after(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0()); }
 		)
-		{ after(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0()); }
+		{ after(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__CubeLevel__LevelTypeAssignment_5_0
+rule__CubeLevel__LevelTypeAssignment_8_0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0()); }
+		{ before(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0()); }
 		(
-			{ before(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0()); }
+			{ before(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0()); }
 			'levelType'
-			{ after(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0()); }
+			{ after(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0()); }
 		)
-		{ after(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0()); }
+		{ after(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__CubeLevel__LevelTypeValueAssignment_5_1
+rule__CubeLevel__LevelTypeValueAssignment_8_1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0()); }
+		{ before(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0()); }
 		ruleCubeLevelLevelType
-		{ after(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0()); }
+		{ after(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0()); }
 	)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__CubeLevel__PropertiesAssignment_6_1
+rule__CubeLevel__PropertiesAssignment_9_1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 	(
-		{ before(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_6_1_0()); }
+		{ before(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_9_1_0()); }
 		ruleCubeLevelProp
-		{ after(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_6_1_0()); }
+		{ after(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_9_1_0()); }
 	)
 ;
 finally {
diff --git a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSL.tokens b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSL.tokens
index e2ec93b..bd40f5e 100644
--- a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSL.tokens
+++ b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSL.tokens
@@ -25,7 +25,7 @@
 '/'=38
 '/='=19
 ':'=99
-'::'=127
+'::'=130
 ';'=86
 '<'=27
 '<>'=32
@@ -36,7 +36,7 @@
 '>'=26
 '>='=25
 '?'=114
-'?.'=128
+'?.'=131
 '?:'=33
 '@'=87
 'Boolean'=60
@@ -60,6 +60,7 @@
 'allMemberName'=119
 'as'=95
 'avg'=55
+'captionColumn'=123
 'case'=101
 'catch'=113
 'column'=83
@@ -86,14 +87,16 @@
 'instanceof'=94
 'key'=121
 'level'=82
-'levelType'=123
+'levelType'=126
 'max'=54
 'measure'=85
 'min'=53
+'nameColumn'=122
 'new'=105
-'notVisible'=125
-'ns'=126
+'notVisible'=128
+'ns'=129
 'null'=106
+'ordinalColumn'=124
 'over'=78
 'package'=73
 'property'=84
@@ -104,17 +107,17 @@
 'switch'=98
 'synchronized'=112
 'throw'=108
-'true'=131
+'true'=134
 'try'=110
-'type'=124
+'type'=127
 'typeTime'=117
 'typeof'=107
-'uniqueMembers'=122
+'uniqueMembers'=125
 'val'=44
-'var'=130
+'var'=133
 'while'=103
 '{'=74
-'|'=129
+'|'=132
 '||'=14
 '}'=75
 RULE_ANY_OTHER=12
@@ -158,6 +161,9 @@
 T__129=129
 T__130=130
 T__131=131
+T__132=132
+T__133=133
+T__134=134
 T__13=13
 T__14=14
 T__15=15
diff --git a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSLLexer.java b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSLLexer.java
index 7a8c630..a3857ce 100644
--- a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSLLexer.java
+++ b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSLLexer.java
@@ -1,20 +1,3 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License 2.0        
- *  which accompanies this distribution, and is available at                  
- *  https://www.eclipse.org/legal/epl-2.0/                                 
- *                                 
- *  SPDX-License-Identifier: EPL-2.0                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- * generated by Xtext 2.11.0
- *
- */
 package org.eclipse.osbp.xtext.cubedsl.ide.contentassist.antlr.internal;
 
 // Hack: Use our own Lexer superclass by means of import. 
@@ -40,8 +23,11 @@
     public static final int T__52=52;
     public static final int T__53=53;
     public static final int T__54=54;
+    public static final int T__133=133;
+    public static final int T__132=132;
     public static final int T__60=60;
     public static final int T__61=61;
+    public static final int T__134=134;
     public static final int RULE_ID=4;
     public static final int T__131=131;
     public static final int T__130=130;
@@ -2443,10 +2429,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:120:8: ( 'uniqueMembers' )
-            // InternalCubeDSL.g:120:10: 'uniqueMembers'
+            // InternalCubeDSL.g:120:8: ( 'nameColumn' )
+            // InternalCubeDSL.g:120:10: 'nameColumn'
             {
-            match("uniqueMembers"); 
+            match("nameColumn"); 
 
 
             }
@@ -2464,10 +2450,10 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:121:8: ( 'levelType' )
-            // InternalCubeDSL.g:121:10: 'levelType'
+            // InternalCubeDSL.g:121:8: ( 'captionColumn' )
+            // InternalCubeDSL.g:121:10: 'captionColumn'
             {
-            match("levelType"); 
+            match("captionColumn"); 
 
 
             }
@@ -2485,10 +2471,10 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:122:8: ( 'type' )
-            // InternalCubeDSL.g:122:10: 'type'
+            // InternalCubeDSL.g:122:8: ( 'ordinalColumn' )
+            // InternalCubeDSL.g:122:10: 'ordinalColumn'
             {
-            match("type"); 
+            match("ordinalColumn"); 
 
 
             }
@@ -2506,10 +2492,10 @@
         try {
             int _type = T__125;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:123:8: ( 'notVisible' )
-            // InternalCubeDSL.g:123:10: 'notVisible'
+            // InternalCubeDSL.g:123:8: ( 'uniqueMembers' )
+            // InternalCubeDSL.g:123:10: 'uniqueMembers'
             {
-            match("notVisible"); 
+            match("uniqueMembers"); 
 
 
             }
@@ -2527,10 +2513,10 @@
         try {
             int _type = T__126;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:124:8: ( 'ns' )
-            // InternalCubeDSL.g:124:10: 'ns'
+            // InternalCubeDSL.g:124:8: ( 'levelType' )
+            // InternalCubeDSL.g:124:10: 'levelType'
             {
-            match("ns"); 
+            match("levelType"); 
 
 
             }
@@ -2548,10 +2534,10 @@
         try {
             int _type = T__127;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:125:8: ( '::' )
-            // InternalCubeDSL.g:125:10: '::'
+            // InternalCubeDSL.g:125:8: ( 'type' )
+            // InternalCubeDSL.g:125:10: 'type'
             {
-            match("::"); 
+            match("type"); 
 
 
             }
@@ -2569,10 +2555,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:126:8: ( '?.' )
-            // InternalCubeDSL.g:126:10: '?.'
+            // InternalCubeDSL.g:126:8: ( 'notVisible' )
+            // InternalCubeDSL.g:126:10: 'notVisible'
             {
-            match("?."); 
+            match("notVisible"); 
 
 
             }
@@ -2590,10 +2576,11 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:127:8: ( '|' )
-            // InternalCubeDSL.g:127:10: '|'
+            // InternalCubeDSL.g:127:8: ( 'ns' )
+            // InternalCubeDSL.g:127:10: 'ns'
             {
-            match('|'); 
+            match("ns"); 
+
 
             }
 
@@ -2610,10 +2597,10 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:128:8: ( 'var' )
-            // InternalCubeDSL.g:128:10: 'var'
+            // InternalCubeDSL.g:128:8: ( '::' )
+            // InternalCubeDSL.g:128:10: '::'
             {
-            match("var"); 
+            match("::"); 
 
 
             }
@@ -2631,10 +2618,10 @@
         try {
             int _type = T__131;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:129:8: ( 'true' )
-            // InternalCubeDSL.g:129:10: 'true'
+            // InternalCubeDSL.g:129:8: ( '?.' )
+            // InternalCubeDSL.g:129:10: '?.'
             {
-            match("true"); 
+            match("?."); 
 
 
             }
@@ -2647,15 +2634,77 @@
     }
     // $ANTLR end "T__131"
 
+    // $ANTLR start "T__132"
+    public final void mT__132() throws RecognitionException {
+        try {
+            int _type = T__132;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalCubeDSL.g:130:8: ( '|' )
+            // InternalCubeDSL.g:130:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__132"
+
+    // $ANTLR start "T__133"
+    public final void mT__133() throws RecognitionException {
+        try {
+            int _type = T__133;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalCubeDSL.g:131:8: ( 'var' )
+            // InternalCubeDSL.g:131:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__133"
+
+    // $ANTLR start "T__134"
+    public final void mT__134() throws RecognitionException {
+        try {
+            int _type = T__134;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalCubeDSL.g:132:8: ( 'true' )
+            // InternalCubeDSL.g:132:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__134"
+
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22601:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalCubeDSL.g:22601:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalCubeDSL.g:22960:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalCubeDSL.g:22960:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalCubeDSL.g:22601:12: ( '0x' | '0X' )
+            // InternalCubeDSL.g:22960:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2683,7 +2732,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalCubeDSL.g:22601:13: '0x'
+                    // InternalCubeDSL.g:22960:13: '0x'
                     {
                     match("0x"); 
 
@@ -2691,7 +2740,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:22601:18: '0X'
+                    // InternalCubeDSL.g:22960:18: '0X'
                     {
                     match("0X"); 
 
@@ -2701,7 +2750,7 @@
 
             }
 
-            // InternalCubeDSL.g:22601:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalCubeDSL.g:22960:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2739,7 +2788,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalCubeDSL.g:22601:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalCubeDSL.g:22960:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2748,10 +2797,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalCubeDSL.g:22601:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalCubeDSL.g:22960:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalCubeDSL.g:22601:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalCubeDSL.g:22960:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2769,7 +2818,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalCubeDSL.g:22601:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalCubeDSL.g:22960:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2793,7 +2842,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:22601:84: ( 'l' | 'L' )
+                            // InternalCubeDSL.g:22960:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2832,11 +2881,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22603:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalCubeDSL.g:22603:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalCubeDSL.g:22962:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalCubeDSL.g:22962:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalCubeDSL.g:22603:21: ( '0' .. '9' | '_' )*
+            // InternalCubeDSL.g:22962:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2885,11 +2934,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22605:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalCubeDSL.g:22605:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalCubeDSL.g:22964:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalCubeDSL.g:22964:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalCubeDSL.g:22605:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalCubeDSL.g:22964:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2898,7 +2947,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalCubeDSL.g:22605:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalCubeDSL.g:22964:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2909,7 +2958,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalCubeDSL.g:22605:36: ( '+' | '-' )?
+                    // InternalCubeDSL.g:22964:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2942,7 +2991,7 @@
 
             }
 
-            // InternalCubeDSL.g:22605:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalCubeDSL.g:22964:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2954,7 +3003,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalCubeDSL.g:22605:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalCubeDSL.g:22964:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2978,7 +3027,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:22605:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalCubeDSL.g:22964:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
                     {
                     if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
                         input.consume();
@@ -3011,10 +3060,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22607:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalCubeDSL.g:22607:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalCubeDSL.g:22966:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalCubeDSL.g:22966:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalCubeDSL.g:22607:11: ( '^' )?
+            // InternalCubeDSL.g:22966:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3023,7 +3072,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalCubeDSL.g:22607:11: '^'
+                    // InternalCubeDSL.g:22966:11: '^'
                     {
                     match('^'); 
 
@@ -3041,7 +3090,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalCubeDSL.g:22607:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalCubeDSL.g:22966:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -3090,10 +3139,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22609:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalCubeDSL.g:22609:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalCubeDSL.g:22968:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalCubeDSL.g:22968:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalCubeDSL.g:22609:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalCubeDSL.g:22968:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -3111,10 +3160,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalCubeDSL.g:22609:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalCubeDSL.g:22968:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalCubeDSL.g:22609:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalCubeDSL.g:22968:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -3130,7 +3179,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:22609:21: '\\\\' .
+                    	    // InternalCubeDSL.g:22968:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3138,7 +3187,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalCubeDSL.g:22609:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalCubeDSL.g:22968:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3158,7 +3207,7 @@
                         }
                     } while (true);
 
-                    // InternalCubeDSL.g:22609:44: ( '\"' )?
+                    // InternalCubeDSL.g:22968:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3167,7 +3216,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalCubeDSL.g:22609:44: '\"'
+                            // InternalCubeDSL.g:22968:44: '\"'
                             {
                             match('\"'); 
 
@@ -3180,10 +3229,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:22609:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalCubeDSL.g:22968:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalCubeDSL.g:22609:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalCubeDSL.g:22968:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3199,7 +3248,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:22609:55: '\\\\' .
+                    	    // InternalCubeDSL.g:22968:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3207,7 +3256,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalCubeDSL.g:22609:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalCubeDSL.g:22968:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3227,7 +3276,7 @@
                         }
                     } while (true);
 
-                    // InternalCubeDSL.g:22609:79: ( '\\'' )?
+                    // InternalCubeDSL.g:22968:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3236,7 +3285,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalCubeDSL.g:22609:79: '\\''
+                            // InternalCubeDSL.g:22968:79: '\\''
                             {
                             match('\''); 
 
@@ -3267,12 +3316,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22611:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalCubeDSL.g:22611:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalCubeDSL.g:22970:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalCubeDSL.g:22970:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalCubeDSL.g:22611:24: ( options {greedy=false; } : . )*
+            // InternalCubeDSL.g:22970:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3297,7 +3346,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalCubeDSL.g:22611:52: .
+            	    // InternalCubeDSL.g:22970:52: .
             	    {
             	    matchAny(); 
 
@@ -3327,12 +3376,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22613:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalCubeDSL.g:22613:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalCubeDSL.g:22972:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalCubeDSL.g:22972:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalCubeDSL.g:22613:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalCubeDSL.g:22972:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3345,7 +3394,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalCubeDSL.g:22613:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalCubeDSL.g:22972: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();
@@ -3365,7 +3414,7 @@
                 }
             } while (true);
 
-            // InternalCubeDSL.g:22613:40: ( ( '\\r' )? '\\n' )?
+            // InternalCubeDSL.g:22972:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3374,9 +3423,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalCubeDSL.g:22613:41: ( '\\r' )? '\\n'
+                    // InternalCubeDSL.g:22972:41: ( '\\r' )? '\\n'
                     {
-                    // InternalCubeDSL.g:22613:41: ( '\\r' )?
+                    // InternalCubeDSL.g:22972:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3385,7 +3434,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalCubeDSL.g:22613:41: '\\r'
+                            // InternalCubeDSL.g:22972:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3417,10 +3466,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22615:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalCubeDSL.g:22615:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalCubeDSL.g:22974:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalCubeDSL.g:22974:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalCubeDSL.g:22615:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalCubeDSL.g:22974:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3474,8 +3523,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:22617:16: ( . )
-            // InternalCubeDSL.g:22617:18: .
+            // InternalCubeDSL.g:22976:16: ( . )
+            // InternalCubeDSL.g:22976:18: .
             {
             matchAny(); 
 
@@ -3490,8 +3539,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalCubeDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=128;
+        // InternalCubeDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=131;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -4328,63 +4377,84 @@
                 }
                 break;
             case 120 :
-                // InternalCubeDSL.g:1:756: RULE_HEX
+                // InternalCubeDSL.g:1:756: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 121 :
+                // InternalCubeDSL.g:1:763: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 122 :
+                // InternalCubeDSL.g:1:770: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 123 :
+                // InternalCubeDSL.g:1:777: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 121 :
-                // InternalCubeDSL.g:1:765: RULE_INT
+            case 124 :
+                // InternalCubeDSL.g:1:786: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 122 :
-                // InternalCubeDSL.g:1:774: RULE_DECIMAL
+            case 125 :
+                // InternalCubeDSL.g:1:795: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 123 :
-                // InternalCubeDSL.g:1:787: RULE_ID
+            case 126 :
+                // InternalCubeDSL.g:1:808: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 124 :
-                // InternalCubeDSL.g:1:795: RULE_STRING
+            case 127 :
+                // InternalCubeDSL.g:1:816: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 125 :
-                // InternalCubeDSL.g:1:807: RULE_ML_COMMENT
+            case 128 :
+                // InternalCubeDSL.g:1:828: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 126 :
-                // InternalCubeDSL.g:1:823: RULE_SL_COMMENT
+            case 129 :
+                // InternalCubeDSL.g:1:844: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 127 :
-                // InternalCubeDSL.g:1:839: RULE_WS
+            case 130 :
+                // InternalCubeDSL.g:1:860: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 128 :
-                // InternalCubeDSL.g:1:847: RULE_ANY_OTHER
+            case 131 :
+                // InternalCubeDSL.g:1:868: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -4398,17 +4468,17 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\74\1\76\1\100\1\103\1\107\1\112\1\116\1\120\1\122\1\124\1\126\1\130\1\133\20\135\2\uffff\3\135\10\uffff\1\u008e\6\135\2\u009c\1\71\5\uffff\1\u00a1\26\uffff\1\u00a3\5\uffff\1\u00a5\4\uffff\1\135\1\uffff\11\135\1\u00b2\12\135\1\u00bf\3\135\1\u00c4\10\135\2\uffff\4\135\12\uffff\4\135\1\u00d5\6\135\1\uffff\1\u009c\12\uffff\1\u00dd\1\u00de\5\135\1\u00e4\4\135\1\uffff\1\135\1\u00ea\6\135\1\u00f1\1\u00f2\1\135\1\u00f4\1\uffff\4\135\1\uffff\15\135\1\u0106\2\135\1\uffff\2\135\1\u010b\2\135\1\u010e\1\135\2\uffff\2\135\1\u0112\2\135\1\uffff\5\135\1\uffff\3\135\1\u011d\1\u011e\1\135\2\uffff\1\135\1\uffff\10\135\1\u0129\1\u0132\2\135\1\u0135\4\135\1\uffff\1\u013a\1\135\1\u013e\1\135\1\uffff\1\u0140\1\135\1\uffff\3\135\1\uffff\1\135\1\u0147\4\135\1\u014c\1\135\1\u014e\1\135\2\uffff\1\u0150\11\135\1\uffff\10\135\1\uffff\2\135\1\uffff\2\135\1\u0169\1\u016a\1\uffff\3\135\1\uffff\1\u016e\1\uffff\4\135\1\u0173\1\u0174\1\uffff\1\u0175\1\135\1\u0177\1\135\1\uffff\1\135\1\uffff\1\u017a\1\uffff\5\135\1\u0180\20\135\1\u0191\1\135\2\uffff\1\135\1\u0194\1\135\1\uffff\1\u0196\1\135\1\u0198\1\135\3\uffff\1\135\1\uffff\1\135\1\u019c\1\uffff\1\u019d\3\135\1\u01a2\1\uffff\1\u01a3\1\u01a4\1\u01a5\12\135\1\u01b0\2\135\1\uffff\2\135\1\uffff\1\135\1\uffff\1\135\1\uffff\3\135\2\uffff\4\135\4\uffff\10\135\1\u01c6\1\135\1\uffff\1\u01c8\3\135\1\u01cc\1\135\1\u01ce\3\135\1\uffff\1\u01d3\1\135\1\u01d6\1\u01d7\1\135\1\u01d9\3\135\1\u01dd\1\uffff\1\135\1\uffff\1\u01df\1\u01e0\1\135\1\uffff\1\135\1\uffff\1\135\1\u01e4\2\135\1\uffff\2\135\2\uffff\1\135\1\uffff\1\135\1\u01eb\1\135\1\uffff\1\135\2\uffff\1\u01ee\2\135\1\uffff\6\135\1\uffff\1\u01f7\1\u01f8\1\uffff\1\135\1\u01fa\5\135\1\u0200\2\uffff\1\135\1\uffff\1\u0202\2\135\1\u0205\1\u0206\1\uffff\1\u0207\1\uffff\1\u0208\1\u0209\5\uffff";
+        "\1\uffff\1\74\1\76\1\100\1\103\1\107\1\112\1\116\1\120\1\122\1\124\1\126\1\130\1\133\20\135\2\uffff\3\135\10\uffff\1\u008f\6\135\2\u009e\1\71\5\uffff\1\u00a3\26\uffff\1\u00a5\5\uffff\1\u00a7\4\uffff\1\135\1\uffff\11\135\1\u00b4\12\135\1\u00c2\3\135\1\u00c7\10\135\2\uffff\5\135\12\uffff\5\135\1\u00da\6\135\1\uffff\1\u009e\12\uffff\1\u00e2\1\u00e3\5\135\1\u00e9\4\135\1\uffff\1\135\1\u00ef\7\135\1\u00f7\1\u00f8\1\135\1\u00fa\1\uffff\4\135\1\uffff\16\135\1\u010d\3\135\1\uffff\2\135\1\u0113\2\135\1\u0116\1\135\2\uffff\2\135\1\u011a\2\135\1\uffff\5\135\1\uffff\3\135\1\u0125\1\u0126\2\135\2\uffff\1\135\1\uffff\10\135\1\u0132\1\u013b\2\135\1\u013e\5\135\1\uffff\1\u0144\2\135\1\u0149\1\135\1\uffff\1\u014b\1\135\1\uffff\3\135\1\uffff\1\135\1\u0152\4\135\1\u0157\1\135\1\u0159\1\135\2\uffff\1\u015b\12\135\1\uffff\10\135\1\uffff\2\135\1\uffff\3\135\1\u0176\1\u0177\1\uffff\4\135\1\uffff\1\u017c\1\uffff\4\135\1\u0181\1\u0182\1\uffff\1\u0183\1\135\1\u0185\1\135\1\uffff\1\135\1\uffff\1\u0188\1\uffff\6\135\1\u018f\21\135\1\u01a1\1\135\2\uffff\2\135\1\u01a5\1\135\1\uffff\1\u01a7\1\135\1\u01a9\1\135\3\uffff\1\135\1\uffff\1\135\1\u01ad\1\uffff\1\135\1\u01af\3\135\1\u01b4\1\uffff\1\u01b5\1\u01b6\1\u01b7\12\135\1\u01c2\3\135\1\uffff\3\135\1\uffff\1\135\1\uffff\1\135\1\uffff\3\135\1\uffff\1\135\1\uffff\4\135\4\uffff\10\135\1\u01db\1\135\1\uffff\1\u01dd\5\135\1\u01e3\1\135\1\u01e5\4\135\1\uffff\1\u01eb\1\135\1\u01ee\1\u01ef\1\135\1\u01f1\3\135\1\u01f5\1\uffff\1\135\1\uffff\1\135\1\u01f8\1\u01f9\2\135\1\uffff\1\135\1\uffff\1\135\1\u01fe\3\135\1\uffff\2\135\2\uffff\1\135\1\uffff\1\135\1\u0206\1\135\1\uffff\2\135\2\uffff\1\u020a\1\u020b\2\135\1\uffff\7\135\1\uffff\1\u0215\1\u0216\1\135\2\uffff\1\135\1\u0219\6\135\1\u0220\2\uffff\2\135\1\uffff\1\u0223\1\u0224\2\135\1\u0227\1\u0228\1\uffff\1\u0229\1\u022a\2\uffff\1\u022b\1\u022c\6\uffff";
     static final String DFA21_eofS =
-        "\u020a\uffff";
+        "\u022d\uffff";
     static final String DFA21_minS =
-        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\154\1\164\1\146\3\141\1\154\1\145\1\164\1\165\1\156\1\157\1\141\1\151\1\141\2\uffff\1\166\1\141\1\145\10\uffff\1\72\1\150\1\145\1\150\2\145\1\156\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\uffff\2\164\1\163\1\141\1\155\1\151\1\156\1\160\1\163\1\44\1\154\1\162\1\156\1\154\1\142\1\163\1\156\1\170\1\141\1\147\1\44\1\154\1\155\1\146\1\44\1\162\1\155\1\164\1\157\1\164\1\155\1\143\1\157\2\uffff\2\145\1\163\1\166\12\uffff\1\151\1\167\1\154\1\164\1\44\1\160\1\162\1\165\1\164\1\171\1\151\1\uffff\1\60\12\uffff\2\44\1\145\1\151\1\145\1\164\1\145\1\44\1\164\1\143\1\157\1\164\1\uffff\1\163\1\44\1\141\1\156\1\165\2\145\1\143\2\44\1\163\1\44\1\uffff\1\115\1\164\1\145\1\141\1\uffff\1\151\2\145\1\154\2\145\1\153\1\160\2\162\1\101\1\145\1\154\1\44\1\154\1\126\1\uffff\1\145\1\157\1\44\1\145\1\165\1\44\1\161\2\uffff\1\156\1\164\1\44\1\151\1\162\1\uffff\1\143\1\150\1\162\1\141\1\145\1\uffff\1\154\1\164\1\155\2\44\1\150\2\uffff\1\165\1\uffff\1\145\1\151\1\156\1\165\1\156\1\162\1\147\1\145\2\44\1\141\1\145\1\44\1\141\2\154\1\145\1\uffff\1\44\1\151\1\44\1\167\1\uffff\1\44\1\162\1\uffff\1\165\1\144\1\171\1\uffff\1\143\1\44\1\150\1\162\1\164\1\156\1\44\1\154\1\44\1\156\2\uffff\1\44\1\162\1\155\1\156\1\163\1\154\1\147\1\151\1\145\1\141\1\uffff\1\164\1\145\1\141\1\165\1\151\1\145\1\141\1\145\1\uffff\1\147\1\162\1\uffff\1\162\1\154\2\44\1\uffff\1\163\1\146\1\151\1\uffff\1\44\1\uffff\1\156\1\145\1\163\1\151\2\44\1\uffff\1\44\1\157\1\44\1\143\1\uffff\1\171\1\uffff\1\44\1\uffff\1\145\1\142\1\143\1\151\1\164\1\44\1\143\1\162\1\156\2\141\1\154\1\165\1\141\2\156\1\145\1\171\1\143\1\145\1\164\1\143\1\44\1\171\2\uffff\1\151\1\44\1\155\1\uffff\1\44\1\115\1\44\1\157\3\uffff\1\156\1\uffff\1\145\1\44\1\uffff\1\44\1\145\1\164\1\157\1\44\1\uffff\3\44\1\155\1\162\1\146\2\162\1\164\1\165\1\153\1\163\1\157\1\44\1\171\1\150\1\uffff\1\160\1\142\1\uffff\1\145\1\uffff\1\145\1\uffff\1\156\1\151\1\157\2\uffff\1\162\1\55\1\156\1\145\4\uffff\1\160\1\163\1\131\1\163\1\164\1\150\1\164\1\163\1\44\1\156\1\uffff\1\44\1\171\1\145\1\154\1\44\1\155\1\44\1\172\1\146\1\116\1\uffff\1\44\1\141\2\44\1\145\1\44\1\145\1\163\1\145\1\44\1\uffff\1\144\1\uffff\2\44\1\145\1\uffff\1\142\1\uffff\1\145\1\44\1\141\1\163\1\uffff\1\163\1\142\2\uffff\1\141\1\uffff\1\162\1\44\1\163\1\uffff\1\163\2\uffff\1\44\1\145\1\144\1\uffff\1\155\1\141\1\165\1\145\1\162\1\163\1\uffff\2\44\1\uffff\1\162\1\44\1\145\1\147\2\162\1\163\1\44\2\uffff\1\163\1\uffff\1\44\2\145\2\44\1\uffff\1\44\1\uffff\2\44\5\uffff";
+        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\154\1\164\1\146\3\141\1\154\1\145\1\164\1\165\1\156\1\157\1\141\1\151\1\141\2\uffff\1\162\1\141\1\145\10\uffff\1\72\1\150\1\141\1\150\2\145\1\156\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\uffff\2\164\1\163\1\141\1\155\1\151\1\156\1\160\1\163\1\44\1\154\1\162\1\156\1\154\1\142\1\160\1\156\1\170\1\141\1\147\1\44\1\154\1\155\1\146\1\44\1\162\1\155\1\164\1\157\1\164\1\155\1\143\1\157\2\uffff\1\145\1\144\1\145\1\163\1\166\12\uffff\1\151\1\167\1\154\1\155\1\164\1\44\1\160\1\162\1\165\1\164\1\171\1\151\1\uffff\1\60\12\uffff\2\44\1\145\1\151\1\145\1\164\1\145\1\44\1\164\1\143\1\157\1\164\1\uffff\1\163\1\44\1\141\1\156\1\165\2\145\1\143\1\164\2\44\1\163\1\44\1\uffff\1\115\1\164\1\145\1\141\1\uffff\1\151\2\145\1\154\2\145\1\153\1\160\1\162\1\151\1\162\1\101\1\145\1\154\1\44\1\154\1\145\1\126\1\uffff\1\145\1\157\1\44\1\145\1\165\1\44\1\161\2\uffff\1\156\1\164\1\44\1\151\1\162\1\uffff\1\143\1\150\1\162\1\141\1\145\1\uffff\1\154\1\164\1\155\2\44\1\150\1\151\2\uffff\1\165\1\uffff\1\145\1\151\1\156\1\165\1\156\1\162\1\147\1\145\2\44\1\141\1\145\1\44\1\156\1\141\2\154\1\145\1\uffff\1\44\1\103\1\151\1\44\1\167\1\uffff\1\44\1\162\1\uffff\1\165\1\144\1\171\1\uffff\1\143\1\44\1\150\1\162\1\164\1\156\1\44\1\154\1\44\1\156\2\uffff\1\44\1\157\1\162\1\155\1\156\1\163\1\154\1\147\1\151\1\145\1\141\1\uffff\1\164\1\145\1\141\1\165\1\151\1\145\1\141\1\145\1\uffff\1\147\1\162\1\uffff\1\141\1\162\1\154\2\44\1\uffff\1\157\1\163\1\146\1\151\1\uffff\1\44\1\uffff\1\156\1\145\1\163\1\151\2\44\1\uffff\1\44\1\157\1\44\1\143\1\uffff\1\171\1\uffff\1\44\1\uffff\1\156\1\145\1\142\1\143\1\151\1\164\1\44\1\143\1\162\1\156\2\141\1\154\1\165\1\141\2\156\1\145\1\171\1\143\1\145\1\164\1\154\1\143\1\44\1\171\2\uffff\1\154\1\151\1\44\1\155\1\uffff\1\44\1\115\1\44\1\157\3\uffff\1\156\1\uffff\1\145\1\44\1\uffff\1\103\1\44\1\145\1\164\1\157\1\44\1\uffff\3\44\1\155\1\162\1\146\2\162\1\164\1\165\1\153\1\163\1\157\1\44\1\171\1\103\1\150\1\uffff\1\160\1\165\1\142\1\uffff\1\145\1\uffff\1\145\1\uffff\1\156\1\151\1\157\1\uffff\1\157\1\uffff\1\162\1\55\1\156\1\145\4\uffff\1\160\1\163\1\131\1\163\1\164\1\150\1\164\1\163\1\44\1\156\1\uffff\1\44\1\157\1\171\1\145\1\155\1\154\1\44\1\155\1\44\1\172\1\146\1\154\1\116\1\uffff\1\44\1\141\2\44\1\145\1\44\1\145\1\163\1\145\1\44\1\uffff\1\144\1\uffff\1\154\2\44\1\156\1\145\1\uffff\1\142\1\uffff\1\145\1\44\1\165\1\141\1\163\1\uffff\1\163\1\142\2\uffff\1\141\1\uffff\1\162\1\44\1\163\1\uffff\1\163\1\165\2\uffff\2\44\1\145\1\144\1\uffff\2\155\1\141\1\165\1\145\1\162\1\163\1\uffff\2\44\1\155\2\uffff\1\162\1\44\1\156\1\145\1\147\2\162\1\163\1\44\2\uffff\1\156\1\163\1\uffff\2\44\2\145\2\44\1\uffff\2\44\2\uffff\2\44\6\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\76\1\174\1\46\1\75\1\76\5\75\1\76\1\56\1\72\1\141\1\170\1\171\1\156\1\157\1\165\1\151\1\166\1\157\1\164\1\165\1\156\1\157\1\141\1\151\1\162\2\uffff\1\166\1\151\1\145\10\uffff\1\72\1\150\1\165\1\171\2\145\1\156\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\162\1\uffff\2\164\1\163\1\141\1\160\1\151\1\156\1\160\1\163\1\172\1\154\1\162\1\156\1\165\1\142\1\164\1\156\1\170\1\141\1\147\1\172\1\154\1\163\1\146\1\172\1\162\1\155\1\164\1\157\1\164\1\155\1\143\1\157\2\uffff\2\145\1\163\1\166\12\uffff\1\151\1\167\1\154\1\164\1\172\1\160\1\162\1\171\1\164\1\171\1\151\1\uffff\1\154\12\uffff\2\172\1\145\1\151\1\145\1\164\1\145\1\172\1\164\1\143\1\157\1\164\1\uffff\1\163\1\172\1\141\1\156\1\165\2\145\1\143\2\172\1\163\1\172\1\uffff\1\115\1\164\1\145\1\141\1\uffff\1\151\2\145\1\154\2\145\1\153\1\160\2\162\1\101\1\145\1\154\1\172\1\154\1\126\1\uffff\1\145\1\157\1\172\1\145\1\165\1\172\1\161\2\uffff\1\156\1\164\1\172\1\151\1\162\1\uffff\1\143\1\150\1\162\1\141\1\145\1\uffff\1\154\1\164\1\155\2\172\1\150\2\uffff\1\165\1\uffff\1\145\1\151\1\156\1\165\1\156\1\162\1\147\1\145\2\172\1\141\1\145\1\172\1\141\2\154\1\145\1\uffff\1\172\1\151\1\172\1\167\1\uffff\1\172\1\162\1\uffff\1\165\1\163\1\171\1\uffff\1\143\1\172\1\150\1\162\1\164\1\156\1\172\1\154\1\172\1\156\2\uffff\1\172\1\162\1\155\1\156\1\163\1\154\1\147\1\151\1\145\1\141\1\uffff\1\164\1\145\1\157\1\165\1\157\1\145\1\141\1\145\1\uffff\1\147\1\162\1\uffff\1\162\1\154\2\172\1\uffff\1\163\1\146\1\151\1\uffff\1\172\1\uffff\1\156\1\145\1\163\1\151\2\172\1\uffff\1\172\1\157\1\172\1\143\1\uffff\1\171\1\uffff\1\172\1\uffff\1\145\1\142\1\143\1\151\1\164\1\172\1\143\1\162\1\156\2\141\1\154\1\165\1\141\2\156\1\145\1\171\1\143\1\145\1\164\1\143\1\172\1\171\2\uffff\1\151\1\172\1\155\1\uffff\1\172\1\115\1\172\1\157\3\uffff\1\156\1\uffff\1\145\1\172\1\uffff\1\172\1\145\1\164\1\157\1\172\1\uffff\3\172\1\155\1\162\1\146\2\162\1\164\1\165\1\153\1\163\1\157\1\172\1\171\1\150\1\uffff\1\160\1\142\1\uffff\1\145\1\uffff\1\145\1\uffff\1\156\1\151\1\157\2\uffff\1\162\1\55\1\156\1\145\4\uffff\1\160\1\163\1\131\1\163\1\164\1\150\1\164\1\163\1\172\1\156\1\uffff\1\172\1\171\1\145\1\154\1\172\1\155\2\172\1\146\1\116\1\uffff\1\172\1\155\2\172\1\145\1\172\1\145\1\163\1\145\1\172\1\uffff\1\144\1\uffff\2\172\1\145\1\uffff\1\142\1\uffff\1\145\1\172\1\141\1\163\1\uffff\1\163\1\142\2\uffff\1\141\1\uffff\1\162\1\172\1\163\1\uffff\1\163\2\uffff\1\172\1\145\1\144\1\uffff\1\155\1\141\1\165\1\145\1\162\1\163\1\uffff\2\172\1\uffff\1\162\1\172\1\145\1\147\2\162\1\163\1\172\2\uffff\1\163\1\uffff\1\172\2\145\2\172\1\uffff\1\172\1\uffff\2\172\5\uffff";
+        "\1\uffff\1\76\1\174\1\46\1\75\1\76\5\75\1\76\1\56\1\72\1\141\1\170\1\171\1\156\1\157\1\165\1\151\1\166\1\157\1\164\1\165\1\156\1\157\1\141\1\151\1\162\2\uffff\1\166\1\151\1\145\10\uffff\1\72\1\150\1\165\1\171\2\145\1\156\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\162\1\uffff\2\164\1\163\1\141\1\160\1\151\1\156\1\160\1\163\1\172\1\154\1\162\1\156\1\165\1\142\1\164\1\156\1\170\1\141\1\147\1\172\1\154\1\163\1\146\1\172\1\162\1\155\1\164\1\157\1\164\1\155\1\143\1\157\2\uffff\1\145\1\144\1\145\1\163\1\166\12\uffff\1\151\1\167\1\154\1\155\1\164\1\172\1\160\1\162\1\171\1\164\1\171\1\151\1\uffff\1\154\12\uffff\2\172\1\145\1\151\1\145\1\164\1\145\1\172\1\164\1\143\1\157\1\164\1\uffff\1\163\1\172\1\141\1\156\1\165\2\145\1\143\1\164\2\172\1\163\1\172\1\uffff\1\115\1\164\1\145\1\141\1\uffff\1\151\2\145\1\154\2\145\1\153\1\160\1\162\1\151\1\162\1\101\1\145\1\154\1\172\1\154\1\145\1\126\1\uffff\1\145\1\157\1\172\1\145\1\165\1\172\1\161\2\uffff\1\156\1\164\1\172\1\151\1\162\1\uffff\1\143\1\150\1\162\1\141\1\145\1\uffff\1\154\1\164\1\155\2\172\1\150\1\151\2\uffff\1\165\1\uffff\1\145\1\151\1\156\1\165\1\156\1\162\1\147\1\145\2\172\1\141\1\145\1\172\1\156\1\141\2\154\1\145\1\uffff\1\172\1\103\1\151\1\172\1\167\1\uffff\1\172\1\162\1\uffff\1\165\1\163\1\171\1\uffff\1\143\1\172\1\150\1\162\1\164\1\156\1\172\1\154\1\172\1\156\2\uffff\1\172\1\157\1\162\1\155\1\156\1\163\1\154\1\147\1\151\1\145\1\141\1\uffff\1\164\1\145\1\157\1\165\1\157\1\145\1\141\1\145\1\uffff\1\147\1\162\1\uffff\1\141\1\162\1\154\2\172\1\uffff\1\157\1\163\1\146\1\151\1\uffff\1\172\1\uffff\1\156\1\145\1\163\1\151\2\172\1\uffff\1\172\1\157\1\172\1\143\1\uffff\1\171\1\uffff\1\172\1\uffff\1\156\1\145\1\142\1\143\1\151\1\164\1\172\1\143\1\162\1\156\2\141\1\154\1\165\1\141\2\156\1\145\1\171\1\143\1\145\1\164\1\154\1\143\1\172\1\171\2\uffff\1\154\1\151\1\172\1\155\1\uffff\1\172\1\115\1\172\1\157\3\uffff\1\156\1\uffff\1\145\1\172\1\uffff\1\103\1\172\1\145\1\164\1\157\1\172\1\uffff\3\172\1\155\1\162\1\146\2\162\1\164\1\165\1\153\1\163\1\157\1\172\1\171\1\103\1\150\1\uffff\1\160\1\165\1\142\1\uffff\1\145\1\uffff\1\145\1\uffff\1\156\1\151\1\157\1\uffff\1\157\1\uffff\1\162\1\55\1\156\1\145\4\uffff\1\160\1\163\1\131\1\163\1\164\1\150\1\164\1\163\1\172\1\156\1\uffff\1\172\1\157\1\171\1\145\1\155\1\154\1\172\1\155\2\172\1\146\1\154\1\116\1\uffff\1\172\1\155\2\172\1\145\1\172\1\145\1\163\1\145\1\172\1\uffff\1\144\1\uffff\1\154\2\172\1\156\1\145\1\uffff\1\142\1\uffff\1\145\1\172\1\165\1\141\1\163\1\uffff\1\163\1\142\2\uffff\1\141\1\uffff\1\162\1\172\1\163\1\uffff\1\163\1\165\2\uffff\2\172\1\145\1\144\1\uffff\2\155\1\141\1\165\1\145\1\162\1\163\1\uffff\2\172\1\155\2\uffff\1\162\1\172\1\156\1\145\1\147\2\162\1\163\1\172\2\uffff\1\156\1\163\1\uffff\2\172\2\145\2\172\1\uffff\2\172\2\uffff\2\172\6\uffff";
     static final String DFA21_acceptS =
-        "\36\uffff\1\76\1\77\3\uffff\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\121\12\uffff\1\173\2\174\1\177\1\u0080\1\uffff\1\23\1\1\1\2\1\165\1\3\1\147\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\175\1\176\1\32\1\10\1\33\1\uffff\1\34\1\15\1\16\1\24\1\17\1\uffff\1\37\1\25\1\164\1\146\1\uffff\1\173\41\uffff\1\76\1\77\4\uffff\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\163\1\127\13\uffff\1\170\1\uffff\1\171\1\172\1\174\1\177\1\13\1\11\1\14\1\12\1\21\1\22\14\uffff\1\124\14\uffff\1\123\4\uffff\1\134\20\uffff\1\162\7\uffff\1\40\1\166\5\uffff\1\47\5\uffff\1\132\6\uffff\1\51\1\52\1\uffff\1\53\21\uffff\1\135\4\uffff\1\142\2\uffff\1\155\3\uffff\1\125\12\uffff\1\100\1\131\12\uffff\1\61\10\uffff\1\62\2\uffff\1\102\4\uffff\1\136\3\uffff\1\160\1\uffff\1\167\6\uffff\1\45\4\uffff\1\46\1\uffff\1\50\1\uffff\1\145\30\uffff\1\106\1\133\3\uffff\1\140\4\uffff\1\105\1\42\1\126\1\uffff\1\43\2\uffff\1\107\5\uffff\1\55\20\uffff\1\152\2\uffff\1\137\1\uffff\1\141\1\uffff\1\41\3\uffff\1\143\1\111\4\uffff\1\130\1\56\1\57\1\60\12\uffff\1\75\12\uffff\1\54\12\uffff\1\71\1\uffff\1\110\3\uffff\1\151\1\uffff\1\44\4\uffff\1\103\2\uffff\1\63\1\64\1\uffff\1\72\3\uffff\1\70\1\uffff\1\104\1\157\3\uffff\1\122\6\uffff\1\67\2\uffff\1\161\10\uffff\1\73\1\74\1\uffff\1\144\5\uffff\1\66\1\uffff\1\153\2\uffff\1\154\1\65\1\156\1\101\1\150";
+        "\36\uffff\1\76\1\77\3\uffff\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\121\12\uffff\1\176\2\177\1\u0082\1\u0083\1\uffff\1\23\1\1\1\2\1\170\1\3\1\147\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\u0080\1\u0081\1\32\1\10\1\33\1\uffff\1\34\1\15\1\16\1\24\1\17\1\uffff\1\37\1\25\1\167\1\146\1\uffff\1\176\41\uffff\1\76\1\77\5\uffff\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\166\1\127\14\uffff\1\173\1\uffff\1\174\1\175\1\177\1\u0082\1\13\1\11\1\14\1\12\1\21\1\22\14\uffff\1\124\15\uffff\1\123\4\uffff\1\134\22\uffff\1\165\7\uffff\1\40\1\171\5\uffff\1\47\5\uffff\1\132\7\uffff\1\51\1\52\1\uffff\1\53\22\uffff\1\135\5\uffff\1\142\2\uffff\1\155\3\uffff\1\125\12\uffff\1\100\1\131\13\uffff\1\61\10\uffff\1\62\2\uffff\1\102\5\uffff\1\136\4\uffff\1\163\1\uffff\1\172\6\uffff\1\45\4\uffff\1\46\1\uffff\1\50\1\uffff\1\145\32\uffff\1\106\1\133\4\uffff\1\140\4\uffff\1\105\1\42\1\126\1\uffff\1\43\2\uffff\1\107\6\uffff\1\55\21\uffff\1\152\3\uffff\1\137\1\uffff\1\141\1\uffff\1\41\3\uffff\1\143\1\uffff\1\111\4\uffff\1\130\1\56\1\57\1\60\12\uffff\1\75\15\uffff\1\54\12\uffff\1\71\1\uffff\1\110\5\uffff\1\151\1\uffff\1\44\5\uffff\1\103\2\uffff\1\63\1\64\1\uffff\1\72\3\uffff\1\70\2\uffff\1\104\1\162\4\uffff\1\122\7\uffff\1\67\3\uffff\1\156\1\164\11\uffff\1\73\1\74\2\uffff\1\144\6\uffff\1\66\2\uffff\1\157\1\153\2\uffff\1\154\1\65\1\160\1\161\1\101\1\150";
     static final String DFA21_specialS =
-        "\1\0\u0209\uffff}>";
+        "\1\0\u022c\uffff}>";
     static final String[] DFA21_transitionS = {
             "\11\71\2\70\2\71\1\70\22\71\1\70\1\11\1\66\1\51\1\65\1\10\1\3\1\67\1\45\1\46\1\6\1\4\1\47\1\5\1\14\1\7\1\62\11\63\1\53\1\43\1\13\1\1\1\12\1\15\1\44\1\65\1\32\1\65\1\33\4\65\1\31\4\65\1\30\4\65\1\27\1\34\6\65\1\52\1\71\1\50\1\64\1\65\1\71\1\25\1\65\1\23\1\26\1\17\1\22\1\65\1\41\1\21\1\65\1\60\1\42\1\24\1\55\1\40\1\35\1\65\1\57\1\20\1\56\1\61\1\16\1\54\3\65\1\36\1\2\1\37\uff82\71",
             "\1\72\1\73",
@@ -4442,9 +4512,9 @@
             "\1\175\20\uffff\1\176",
             "",
             "",
-            "\1\u0081",
-            "\1\u0083\7\uffff\1\u0082",
-            "\1\u0084",
+            "\1\u0082\3\uffff\1\u0081",
+            "\1\u0084\7\uffff\1\u0083",
+            "\1\u0085",
             "",
             "",
             "",
@@ -4453,166 +4523,163 @@
             "",
             "",
             "",
-            "\1\u008d",
-            "\1\u008f",
-            "\1\u0090\11\uffff\1\u0092\3\uffff\1\u0093\1\uffff\1\u0091",
-            "\1\u0095\11\uffff\1\u0096\6\uffff\1\u0094",
-            "\1\u0097",
-            "\1\u0098",
+            "\1\u008e",
+            "\1\u0090",
+            "\1\u0093\3\uffff\1\u0091\11\uffff\1\u0094\3\uffff\1\u0095\1\uffff\1\u0092",
+            "\1\u0097\11\uffff\1\u0098\6\uffff\1\u0096",
             "\1\u0099",
-            "\12\u009b\10\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d\13\uffff\1\u009a\6\uffff\1\u009b\2\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d\13\uffff\1\u009a",
-            "\12\u009b\10\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d\22\uffff\1\u009b\2\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d",
+            "\1\u009a",
+            "\1\u009b",
+            "\12\u009d\10\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f\13\uffff\1\u009c\6\uffff\1\u009d\2\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f\13\uffff\1\u009c",
+            "\12\u009d\10\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f\22\uffff\1\u009d\2\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f",
             "\1\135\34\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "",
             "",
             "",
             "",
             "",
-            "\1\u00a0",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
             "\1\u00a2",
             "",
             "",
             "",
             "",
             "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00a4",
             "",
             "",
             "",
             "",
-            "\1\u00a6\5\uffff\1\u00a7",
             "",
-            "\1\u00a8",
-            "\1\u00a9",
+            "\1\u00a6",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00a8\5\uffff\1\u00a9",
+            "",
             "\1\u00aa",
             "\1\u00ab",
-            "\1\u00ad\2\uffff\1\u00ac",
-            "\1\u00ae",
-            "\1\u00af",
+            "\1\u00ac",
+            "\1\u00ad",
+            "\1\u00af\2\uffff\1\u00ae",
             "\1\u00b0",
             "\1\u00b1",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u00b2",
             "\1\u00b3",
-            "\1\u00b4",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u00b5",
-            "\1\u00b7\10\uffff\1\u00b6",
-            "\1\u00b8",
-            "\1\u00b9\1\u00ba",
-            "\1\u00bb",
-            "\1\u00bc",
-            "\1\u00bd",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b9\10\uffff\1\u00b8",
+            "\1\u00ba",
+            "\1\u00bd\2\uffff\1\u00bb\1\u00bc",
             "\1\u00be",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u00bf",
             "\1\u00c0",
-            "\1\u00c2\5\uffff\1\u00c1",
-            "\1\u00c3",
+            "\1\u00c1",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u00c5",
+            "\1\u00c3",
+            "\1\u00c5\5\uffff\1\u00c4",
             "\1\u00c6",
-            "\1\u00c7",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u00c8",
             "\1\u00c9",
             "\1\u00ca",
             "\1\u00cb",
             "\1\u00cc",
-            "",
-            "",
             "\1\u00cd",
             "\1\u00ce",
             "\1\u00cf",
+            "",
+            "",
             "\1\u00d0",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
             "\1\u00d1",
             "\1\u00d2",
             "\1\u00d3",
             "\1\u00d4",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00d5",
             "\1\u00d6",
             "\1\u00d7",
-            "\1\u00d9\3\uffff\1\u00d8",
-            "\1\u00da",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u00db",
             "\1\u00dc",
-            "",
-            "\12\u009b\10\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d\22\uffff\1\u009b\2\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u00de\3\uffff\1\u00dd",
             "\1\u00df",
             "\1\u00e0",
             "\1\u00e1",
-            "\1\u00e2",
-            "\1\u00e3",
+            "",
+            "\12\u009d\10\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f\22\uffff\1\u009d\2\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u00e4",
             "\1\u00e5",
             "\1\u00e6",
             "\1\u00e7",
             "\1\u00e8",
-            "",
-            "\1\u00e9",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u00ea",
             "\1\u00eb",
             "\1\u00ec",
             "\1\u00ed",
-            "\1\u00ee",
-            "\1\u00ef",
-            "\1\u00f0",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u00f3",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "",
+            "\1\u00ee",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u00f0",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4",
             "\1\u00f5",
             "\1\u00f6",
-            "\1\u00f7",
-            "\1\u00f8",
-            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u00f9",
-            "\1\u00fa",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
             "\1\u00fb",
             "\1\u00fc",
             "\1\u00fd",
             "\1\u00fe",
+            "",
             "\1\u00ff",
             "\1\u0100",
             "\1\u0101",
@@ -4620,310 +4687,347 @@
             "\1\u0103",
             "\1\u0104",
             "\1\u0105",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0106",
             "\1\u0107",
             "\1\u0108",
-            "",
             "\1\u0109",
             "\1\u010a",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u010b",
             "\1\u010c",
-            "\1\u010d",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u010e",
             "\1\u010f",
-            "",
-            "",
             "\1\u0110",
-            "\1\u0111",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u0113",
-            "\1\u0114",
             "",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0114",
             "\1\u0115",
-            "\1\u0116",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0117",
+            "",
+            "",
             "\1\u0118",
             "\1\u0119",
-            "",
-            "\1\u011a",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u011b",
             "\1\u011c",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
+            "\1\u011d",
+            "\1\u011e",
             "\1\u011f",
-            "",
-            "",
             "\1\u0120",
-            "",
             "\1\u0121",
+            "",
             "\1\u0122",
             "\1\u0123",
             "\1\u0124",
-            "\1\u0125",
-            "\1\u0126",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0127",
             "\1\u0128",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\135\13\uffff\12\135\7\uffff\3\135\1\u0130\3\135\1\u012c\4\135\1\u012e\3\135\1\u012d\1\135\1\u0131\3\135\1\u012f\1\135\1\u012b\1\135\4\uffff\1\135\1\uffff\22\135\1\u012a\7\135",
-            "\1\u0133",
-            "\1\u0134",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u0136",
-            "\1\u0137",
-            "\1\u0138",
-            "\1\u0139",
             "",
+            "",
+            "\1\u0129",
+            "",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "\1\u012d",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u013b",
-            "\1\135\13\uffff\12\135\7\uffff\23\135\1\u013d\6\135\4\uffff\1\135\1\uffff\16\135\1\u013c\13\135",
+            "\1\135\13\uffff\12\135\7\uffff\3\135\1\u0139\3\135\1\u0135\4\135\1\u0137\3\135\1\u0136\1\135\1\u013a\3\135\1\u0138\1\135\1\u0134\1\135\4\uffff\1\135\1\uffff\22\135\1\u0133\7\135",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u013f",
-            "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0140",
             "\1\u0141",
-            "",
             "\1\u0142",
-            "\1\u0143\16\uffff\1\u0144",
+            "\1\u0143",
+            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0145",
-            "",
             "\1\u0146",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u0148",
-            "\1\u0149",
+            "\1\135\13\uffff\12\135\7\uffff\23\135\1\u0148\6\135\4\uffff\1\135\1\uffff\16\135\1\u0147\13\135",
             "\1\u014a",
-            "\1\u014b",
+            "",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u014c",
+            "",
             "\1\u014d",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u014f",
+            "\1\u014e\16\uffff\1\u014f",
+            "\1\u0150",
             "",
-            "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0151",
-            "\1\u0152",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0153",
             "\1\u0154",
             "\1\u0155",
             "\1\u0156",
-            "\1\u0157",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0158",
-            "\1\u0159",
-            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u015a",
-            "\1\u015b",
-            "\1\u015c\15\uffff\1\u015d",
+            "",
+            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u015c",
+            "\1\u015d",
             "\1\u015e",
-            "\1\u0160\5\uffff\1\u015f",
+            "\1\u015f",
+            "\1\u0160",
             "\1\u0161",
             "\1\u0162",
             "\1\u0163",
-            "",
             "\1\u0164",
             "\1\u0165",
             "",
             "\1\u0166",
             "\1\u0167",
-            "\1\135\13\uffff\12\135\7\uffff\23\135\1\u0168\6\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "",
-            "\1\u016b",
-            "\1\u016c",
+            "\1\u0168\15\uffff\1\u0169",
+            "\1\u016a",
+            "\1\u016c\5\uffff\1\u016b",
             "\1\u016d",
-            "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "",
+            "\1\u016e",
             "\1\u016f",
+            "",
             "\1\u0170",
             "\1\u0171",
+            "",
             "\1\u0172",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0173",
+            "\1\u0174",
+            "\1\135\13\uffff\12\135\7\uffff\23\135\1\u0175\6\135\4\uffff\1\135\1\uffff\32\135",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u0176",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0178",
-            "",
             "\1\u0179",
+            "\1\u017a",
+            "\1\u017b",
             "",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "",
-            "\1\u017b",
-            "\1\u017c",
             "\1\u017d",
             "\1\u017e",
             "\1\u017f",
+            "\1\u0180",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u0181",
-            "\1\u0182",
-            "\1\u0183",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0184",
-            "\1\u0185",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0186",
+            "",
             "\1\u0187",
-            "\1\u0188",
+            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
             "\1\u0189",
             "\1\u018a",
             "\1\u018b",
             "\1\u018c",
             "\1\u018d",
             "\1\u018e",
-            "\1\u018f",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u0190",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0191",
             "\1\u0192",
-            "",
-            "",
             "\1\u0193",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0194",
             "\1\u0195",
-            "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0196",
             "\1\u0197",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0198",
             "\1\u0199",
-            "",
-            "",
-            "",
             "\1\u019a",
-            "",
             "\1\u019b",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u019c",
+            "\1\u019d",
             "\1\u019e",
             "\1\u019f",
             "\1\u01a0",
-            "\1\135\13\uffff\12\135\7\uffff\14\135\1\u01a1\15\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01a2",
             "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
+            "\1\u01a3",
+            "\1\u01a4",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u01a6",
-            "\1\u01a7",
-            "\1\u01a8",
-            "\1\u01a9",
-            "\1\u01aa",
-            "\1\u01ab",
-            "\1\u01ac",
-            "\1\u01ad",
-            "\1\u01ae",
-            "\1\u01af",
+            "",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01a8",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01aa",
+            "",
+            "",
+            "",
+            "\1\u01ab",
+            "",
+            "\1\u01ac",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
+            "\1\u01ae",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01b0",
             "\1\u01b1",
             "\1\u01b2",
+            "\1\135\13\uffff\12\135\7\uffff\14\135\1\u01b3\15\135\4\uffff\1\135\1\uffff\32\135",
             "",
-            "\1\u01b3",
-            "\1\u01b4",
-            "",
-            "\1\u01b5",
-            "",
-            "\1\u01b6",
-            "",
-            "\1\u01b7",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u01b8",
             "\1\u01b9",
-            "",
-            "",
             "\1\u01ba",
             "\1\u01bb",
             "\1\u01bc",
             "\1\u01bd",
-            "",
-            "",
-            "",
-            "",
             "\1\u01be",
             "\1\u01bf",
             "\1\u01c0",
             "\1\u01c1",
-            "\1\u01c2",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u01c3",
             "\1\u01c4",
             "\1\u01c5",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u01c7",
             "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01c6",
+            "\1\u01c7",
+            "\1\u01c8",
+            "",
             "\1\u01c9",
+            "",
             "\1\u01ca",
+            "",
             "\1\u01cb",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01cc",
             "\1\u01cd",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
+            "\1\u01ce",
+            "",
             "\1\u01cf",
             "\1\u01d0",
             "\1\u01d1",
+            "\1\u01d2",
             "",
-            "\1\135\13\uffff\12\135\7\uffff\24\135\1\u01d2\5\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u01d4\13\uffff\1\u01d5",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
+            "",
+            "",
+            "\1\u01d3",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\u01d6",
+            "\1\u01d7",
             "\1\u01d8",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01d9",
             "\1\u01da",
-            "\1\u01db",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u01dc",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u01de",
-            "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01df",
+            "\1\u01e0",
             "\1\u01e1",
-            "",
             "\1\u01e2",
-            "",
-            "\1\u01e3",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u01e5",
+            "\1\u01e4",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u01e6",
-            "",
             "\1\u01e7",
             "\1\u01e8",
-            "",
-            "",
             "\1\u01e9",
             "",
-            "\1\u01ea",
+            "\1\135\13\uffff\12\135\7\uffff\24\135\1\u01ea\5\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01ec\13\uffff\1\u01ed",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u01ec",
-            "",
-            "\1\u01ed",
-            "",
-            "",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "\1\u01ef",
             "\1\u01f0",
-            "",
-            "\1\u01f1",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\u01f2",
             "\1\u01f3",
             "\1\u01f4",
-            "\1\u01f5",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
             "\1\u01f6",
             "",
+            "\1\u01f7",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "",
-            "\1\u01f9",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u01fa",
             "\1\u01fb",
+            "",
             "\1\u01fc",
+            "",
             "\1\u01fd",
-            "\1\u01fe",
-            "\1\u01ff",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
-            "",
-            "",
+            "\1\u01ff",
+            "\1\u0200",
             "\1\u0201",
             "",
-            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0202",
             "\1\u0203",
+            "",
+            "",
             "\1\u0204",
+            "",
+            "\1\u0205",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0207",
+            "",
+            "\1\u0208",
+            "\1\u0209",
+            "",
+            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u020c",
+            "\1\u020d",
+            "",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "\1\u0212",
+            "\1\u0213",
+            "\1\u0214",
+            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0217",
+            "",
+            "",
+            "\1\u0218",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u021a",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\u021d",
+            "\1\u021e",
+            "\1\u021f",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
+            "",
+            "\1\u0221",
+            "\1\u0222",
+            "",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\u0225",
+            "\1\u0226",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
+            "",
             "",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
             "\1\135\13\uffff\12\135\7\uffff\32\135\4\uffff\1\135\1\uffff\32\135",
@@ -4931,6 +5035,7 @@
             "",
             "",
             "",
+            "",
             ""
     };
 
@@ -4964,7 +5069,7 @@
             this.transition = DFA21_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
diff --git a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSLParser.java b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSLParser.java
index dae21dc..f26af47 100644
--- a/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSLParser.java
+++ b/org.eclipse.osbp.xtext.cubedsl.ide/src-gen/org/eclipse/osbp/xtext/cubedsl/ide/contentassist/antlr/internal/InternalCubeDSLParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalCubeDSLParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'sum'", "'count'", "'min'", "'max'", "'avg'", "'distinct-count'", "'String'", "'Numeric'", "'Integer'", "'Boolean'", "'Date'", "'Time'", "'Timestamp'", "'TimeYears'", "'TimeHalfYears'", "'TimeQuarters'", "'TimeMonths'", "'TimeWeeks'", "'TimeDays'", "'TimeHours'", "'TimeMinutes'", "'TimeSeconds'", "'package'", "'{'", "'}'", "'cube'", "'dimensionUsage'", "'over'", "'dimension'", "'hierarchy'", "'entity'", "'level'", "'column'", "'property'", "'measure'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'defaultMeasure'", "'typeTime'", "'hasAll'", "'allMemberName'", "'defaultMember'", "'key'", "'uniqueMembers'", "'levelType'", "'type'", "'notVisible'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'sum'", "'count'", "'min'", "'max'", "'avg'", "'distinct-count'", "'String'", "'Numeric'", "'Integer'", "'Boolean'", "'Date'", "'Time'", "'Timestamp'", "'TimeYears'", "'TimeHalfYears'", "'TimeQuarters'", "'TimeMonths'", "'TimeWeeks'", "'TimeDays'", "'TimeHours'", "'TimeMinutes'", "'TimeSeconds'", "'package'", "'{'", "'}'", "'cube'", "'dimensionUsage'", "'over'", "'dimension'", "'hierarchy'", "'entity'", "'level'", "'column'", "'property'", "'measure'", "';'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'defaultMeasure'", "'typeTime'", "'hasAll'", "'allMemberName'", "'defaultMember'", "'key'", "'nameColumn'", "'captionColumn'", "'ordinalColumn'", "'uniqueMembers'", "'levelType'", "'type'", "'notVisible'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
     };
     public static final int RULE_HEX=6;
     public static final int T__50=50;
@@ -53,8 +53,11 @@
     public static final int T__52=52;
     public static final int T__53=53;
     public static final int T__54=54;
+    public static final int T__133=133;
+    public static final int T__132=132;
     public static final int T__60=60;
     public static final int T__61=61;
+    public static final int T__134=134;
     public static final int RULE_ID=4;
     public static final int T__131=131;
     public static final int T__130=130;
@@ -208,11 +211,11 @@
 
 
     // $ANTLR start "entryRuleCubeModel"
-    // InternalCubeDSL.g:67:1: entryRuleCubeModel : ruleCubeModel EOF ;
+    // InternalCubeDSL.g:69:1: entryRuleCubeModel : ruleCubeModel EOF ;
     public final void entryRuleCubeModel() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:68:1: ( ruleCubeModel EOF )
-            // InternalCubeDSL.g:69:1: ruleCubeModel EOF
+            // InternalCubeDSL.g:70:1: ( ruleCubeModel EOF )
+            // InternalCubeDSL.g:71:1: ruleCubeModel EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeModelRule()); 
@@ -242,23 +245,23 @@
 
 
     // $ANTLR start "ruleCubeModel"
-    // InternalCubeDSL.g:76:1: ruleCubeModel : ( ( rule__CubeModel__Group__0 ) ) ;
+    // InternalCubeDSL.g:78:1: ruleCubeModel : ( ( rule__CubeModel__Group__0 ) ) ;
     public final void ruleCubeModel() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:80:2: ( ( ( rule__CubeModel__Group__0 ) ) )
-            // InternalCubeDSL.g:81:2: ( ( rule__CubeModel__Group__0 ) )
+            // InternalCubeDSL.g:82:2: ( ( ( rule__CubeModel__Group__0 ) ) )
+            // InternalCubeDSL.g:83:2: ( ( rule__CubeModel__Group__0 ) )
             {
-            // InternalCubeDSL.g:81:2: ( ( rule__CubeModel__Group__0 ) )
-            // InternalCubeDSL.g:82:3: ( rule__CubeModel__Group__0 )
+            // InternalCubeDSL.g:83:2: ( ( rule__CubeModel__Group__0 ) )
+            // InternalCubeDSL.g:84:3: ( rule__CubeModel__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeModelAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:83:3: ( rule__CubeModel__Group__0 )
-            // InternalCubeDSL.g:83:4: rule__CubeModel__Group__0
+            // InternalCubeDSL.g:85:3: ( rule__CubeModel__Group__0 )
+            // InternalCubeDSL.g:85:4: rule__CubeModel__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeModel__Group__0();
@@ -293,11 +296,11 @@
 
 
     // $ANTLR start "entryRuleCubePackage"
-    // InternalCubeDSL.g:92:1: entryRuleCubePackage : ruleCubePackage EOF ;
+    // InternalCubeDSL.g:94:1: entryRuleCubePackage : ruleCubePackage EOF ;
     public final void entryRuleCubePackage() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:93:1: ( ruleCubePackage EOF )
-            // InternalCubeDSL.g:94:1: ruleCubePackage EOF
+            // InternalCubeDSL.g:95:1: ( ruleCubePackage EOF )
+            // InternalCubeDSL.g:96:1: ruleCubePackage EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageRule()); 
@@ -327,23 +330,23 @@
 
 
     // $ANTLR start "ruleCubePackage"
-    // InternalCubeDSL.g:101:1: ruleCubePackage : ( ( rule__CubePackage__Group__0 ) ) ;
+    // InternalCubeDSL.g:103:1: ruleCubePackage : ( ( rule__CubePackage__Group__0 ) ) ;
     public final void ruleCubePackage() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:105:2: ( ( ( rule__CubePackage__Group__0 ) ) )
-            // InternalCubeDSL.g:106:2: ( ( rule__CubePackage__Group__0 ) )
+            // InternalCubeDSL.g:107:2: ( ( ( rule__CubePackage__Group__0 ) ) )
+            // InternalCubeDSL.g:108:2: ( ( rule__CubePackage__Group__0 ) )
             {
-            // InternalCubeDSL.g:106:2: ( ( rule__CubePackage__Group__0 ) )
-            // InternalCubeDSL.g:107:3: ( rule__CubePackage__Group__0 )
+            // InternalCubeDSL.g:108:2: ( ( rule__CubePackage__Group__0 ) )
+            // InternalCubeDSL.g:109:3: ( rule__CubePackage__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:108:3: ( rule__CubePackage__Group__0 )
-            // InternalCubeDSL.g:108:4: rule__CubePackage__Group__0
+            // InternalCubeDSL.g:110:3: ( rule__CubePackage__Group__0 )
+            // InternalCubeDSL.g:110:4: rule__CubePackage__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubePackage__Group__0();
@@ -378,11 +381,11 @@
 
 
     // $ANTLR start "entryRuleCubeType"
-    // InternalCubeDSL.g:117:1: entryRuleCubeType : ruleCubeType EOF ;
+    // InternalCubeDSL.g:119:1: entryRuleCubeType : ruleCubeType EOF ;
     public final void entryRuleCubeType() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:118:1: ( ruleCubeType EOF )
-            // InternalCubeDSL.g:119:1: ruleCubeType EOF
+            // InternalCubeDSL.g:120:1: ( ruleCubeType EOF )
+            // InternalCubeDSL.g:121:1: ruleCubeType EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeRule()); 
@@ -412,23 +415,23 @@
 
 
     // $ANTLR start "ruleCubeType"
-    // InternalCubeDSL.g:126:1: ruleCubeType : ( ( rule__CubeType__Group__0 ) ) ;
+    // InternalCubeDSL.g:128:1: ruleCubeType : ( ( rule__CubeType__Group__0 ) ) ;
     public final void ruleCubeType() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:130:2: ( ( ( rule__CubeType__Group__0 ) ) )
-            // InternalCubeDSL.g:131:2: ( ( rule__CubeType__Group__0 ) )
+            // InternalCubeDSL.g:132:2: ( ( ( rule__CubeType__Group__0 ) ) )
+            // InternalCubeDSL.g:133:2: ( ( rule__CubeType__Group__0 ) )
             {
-            // InternalCubeDSL.g:131:2: ( ( rule__CubeType__Group__0 ) )
-            // InternalCubeDSL.g:132:3: ( rule__CubeType__Group__0 )
+            // InternalCubeDSL.g:133:2: ( ( rule__CubeType__Group__0 ) )
+            // InternalCubeDSL.g:134:3: ( rule__CubeType__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:133:3: ( rule__CubeType__Group__0 )
-            // InternalCubeDSL.g:133:4: rule__CubeType__Group__0
+            // InternalCubeDSL.g:135:3: ( rule__CubeType__Group__0 )
+            // InternalCubeDSL.g:135:4: rule__CubeType__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeType__Group__0();
@@ -463,11 +466,11 @@
 
 
     // $ANTLR start "entryRuleCubeDimensionUsage"
-    // InternalCubeDSL.g:142:1: entryRuleCubeDimensionUsage : ruleCubeDimensionUsage EOF ;
+    // InternalCubeDSL.g:144:1: entryRuleCubeDimensionUsage : ruleCubeDimensionUsage EOF ;
     public final void entryRuleCubeDimensionUsage() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:143:1: ( ruleCubeDimensionUsage EOF )
-            // InternalCubeDSL.g:144:1: ruleCubeDimensionUsage EOF
+            // InternalCubeDSL.g:145:1: ( ruleCubeDimensionUsage EOF )
+            // InternalCubeDSL.g:146:1: ruleCubeDimensionUsage EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageRule()); 
@@ -497,23 +500,23 @@
 
 
     // $ANTLR start "ruleCubeDimensionUsage"
-    // InternalCubeDSL.g:151:1: ruleCubeDimensionUsage : ( ( rule__CubeDimensionUsage__Group__0 ) ) ;
+    // InternalCubeDSL.g:153:1: ruleCubeDimensionUsage : ( ( rule__CubeDimensionUsage__Group__0 ) ) ;
     public final void ruleCubeDimensionUsage() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:155:2: ( ( ( rule__CubeDimensionUsage__Group__0 ) ) )
-            // InternalCubeDSL.g:156:2: ( ( rule__CubeDimensionUsage__Group__0 ) )
+            // InternalCubeDSL.g:157:2: ( ( ( rule__CubeDimensionUsage__Group__0 ) ) )
+            // InternalCubeDSL.g:158:2: ( ( rule__CubeDimensionUsage__Group__0 ) )
             {
-            // InternalCubeDSL.g:156:2: ( ( rule__CubeDimensionUsage__Group__0 ) )
-            // InternalCubeDSL.g:157:3: ( rule__CubeDimensionUsage__Group__0 )
+            // InternalCubeDSL.g:158:2: ( ( rule__CubeDimensionUsage__Group__0 ) )
+            // InternalCubeDSL.g:159:3: ( rule__CubeDimensionUsage__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:158:3: ( rule__CubeDimensionUsage__Group__0 )
-            // InternalCubeDSL.g:158:4: rule__CubeDimensionUsage__Group__0
+            // InternalCubeDSL.g:160:3: ( rule__CubeDimensionUsage__Group__0 )
+            // InternalCubeDSL.g:160:4: rule__CubeDimensionUsage__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionUsage__Group__0();
@@ -548,11 +551,11 @@
 
 
     // $ANTLR start "entryRuleCubeDimension"
-    // InternalCubeDSL.g:167:1: entryRuleCubeDimension : ruleCubeDimension EOF ;
+    // InternalCubeDSL.g:169:1: entryRuleCubeDimension : ruleCubeDimension EOF ;
     public final void entryRuleCubeDimension() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:168:1: ( ruleCubeDimension EOF )
-            // InternalCubeDSL.g:169:1: ruleCubeDimension EOF
+            // InternalCubeDSL.g:170:1: ( ruleCubeDimension EOF )
+            // InternalCubeDSL.g:171:1: ruleCubeDimension EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionRule()); 
@@ -582,23 +585,23 @@
 
 
     // $ANTLR start "ruleCubeDimension"
-    // InternalCubeDSL.g:176:1: ruleCubeDimension : ( ( rule__CubeDimension__Group__0 ) ) ;
+    // InternalCubeDSL.g:178:1: ruleCubeDimension : ( ( rule__CubeDimension__Group__0 ) ) ;
     public final void ruleCubeDimension() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:180:2: ( ( ( rule__CubeDimension__Group__0 ) ) )
-            // InternalCubeDSL.g:181:2: ( ( rule__CubeDimension__Group__0 ) )
+            // InternalCubeDSL.g:182:2: ( ( ( rule__CubeDimension__Group__0 ) ) )
+            // InternalCubeDSL.g:183:2: ( ( rule__CubeDimension__Group__0 ) )
             {
-            // InternalCubeDSL.g:181:2: ( ( rule__CubeDimension__Group__0 ) )
-            // InternalCubeDSL.g:182:3: ( rule__CubeDimension__Group__0 )
+            // InternalCubeDSL.g:183:2: ( ( rule__CubeDimension__Group__0 ) )
+            // InternalCubeDSL.g:184:3: ( rule__CubeDimension__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:183:3: ( rule__CubeDimension__Group__0 )
-            // InternalCubeDSL.g:183:4: rule__CubeDimension__Group__0
+            // InternalCubeDSL.g:185:3: ( rule__CubeDimension__Group__0 )
+            // InternalCubeDSL.g:185:4: rule__CubeDimension__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimension__Group__0();
@@ -633,11 +636,11 @@
 
 
     // $ANTLR start "entryRuleCubeHierarchy"
-    // InternalCubeDSL.g:192:1: entryRuleCubeHierarchy : ruleCubeHierarchy EOF ;
+    // InternalCubeDSL.g:194:1: entryRuleCubeHierarchy : ruleCubeHierarchy EOF ;
     public final void entryRuleCubeHierarchy() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:193:1: ( ruleCubeHierarchy EOF )
-            // InternalCubeDSL.g:194:1: ruleCubeHierarchy EOF
+            // InternalCubeDSL.g:195:1: ( ruleCubeHierarchy EOF )
+            // InternalCubeDSL.g:196:1: ruleCubeHierarchy EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyRule()); 
@@ -667,23 +670,23 @@
 
 
     // $ANTLR start "ruleCubeHierarchy"
-    // InternalCubeDSL.g:201:1: ruleCubeHierarchy : ( ( rule__CubeHierarchy__Group__0 ) ) ;
+    // InternalCubeDSL.g:203:1: ruleCubeHierarchy : ( ( rule__CubeHierarchy__Group__0 ) ) ;
     public final void ruleCubeHierarchy() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:205:2: ( ( ( rule__CubeHierarchy__Group__0 ) ) )
-            // InternalCubeDSL.g:206:2: ( ( rule__CubeHierarchy__Group__0 ) )
+            // InternalCubeDSL.g:207:2: ( ( ( rule__CubeHierarchy__Group__0 ) ) )
+            // InternalCubeDSL.g:208:2: ( ( rule__CubeHierarchy__Group__0 ) )
             {
-            // InternalCubeDSL.g:206:2: ( ( rule__CubeHierarchy__Group__0 ) )
-            // InternalCubeDSL.g:207:3: ( rule__CubeHierarchy__Group__0 )
+            // InternalCubeDSL.g:208:2: ( ( rule__CubeHierarchy__Group__0 ) )
+            // InternalCubeDSL.g:209:3: ( rule__CubeHierarchy__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:208:3: ( rule__CubeHierarchy__Group__0 )
-            // InternalCubeDSL.g:208:4: rule__CubeHierarchy__Group__0
+            // InternalCubeDSL.g:210:3: ( rule__CubeHierarchy__Group__0 )
+            // InternalCubeDSL.g:210:4: rule__CubeHierarchy__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__Group__0();
@@ -718,11 +721,11 @@
 
 
     // $ANTLR start "entryRuleCubeEntity"
-    // InternalCubeDSL.g:217:1: entryRuleCubeEntity : ruleCubeEntity EOF ;
+    // InternalCubeDSL.g:219:1: entryRuleCubeEntity : ruleCubeEntity EOF ;
     public final void entryRuleCubeEntity() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:218:1: ( ruleCubeEntity EOF )
-            // InternalCubeDSL.g:219:1: ruleCubeEntity EOF
+            // InternalCubeDSL.g:220:1: ( ruleCubeEntity EOF )
+            // InternalCubeDSL.g:221:1: ruleCubeEntity EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityRule()); 
@@ -752,23 +755,23 @@
 
 
     // $ANTLR start "ruleCubeEntity"
-    // InternalCubeDSL.g:226:1: ruleCubeEntity : ( ( rule__CubeEntity__Group__0 ) ) ;
+    // InternalCubeDSL.g:228:1: ruleCubeEntity : ( ( rule__CubeEntity__Group__0 ) ) ;
     public final void ruleCubeEntity() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:230:2: ( ( ( rule__CubeEntity__Group__0 ) ) )
-            // InternalCubeDSL.g:231:2: ( ( rule__CubeEntity__Group__0 ) )
+            // InternalCubeDSL.g:232:2: ( ( ( rule__CubeEntity__Group__0 ) ) )
+            // InternalCubeDSL.g:233:2: ( ( rule__CubeEntity__Group__0 ) )
             {
-            // InternalCubeDSL.g:231:2: ( ( rule__CubeEntity__Group__0 ) )
-            // InternalCubeDSL.g:232:3: ( rule__CubeEntity__Group__0 )
+            // InternalCubeDSL.g:233:2: ( ( rule__CubeEntity__Group__0 ) )
+            // InternalCubeDSL.g:234:3: ( rule__CubeEntity__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:233:3: ( rule__CubeEntity__Group__0 )
-            // InternalCubeDSL.g:233:4: rule__CubeEntity__Group__0
+            // InternalCubeDSL.g:235:3: ( rule__CubeEntity__Group__0 )
+            // InternalCubeDSL.g:235:4: rule__CubeEntity__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeEntity__Group__0();
@@ -803,11 +806,11 @@
 
 
     // $ANTLR start "entryRuleCubeTypeEntity"
-    // InternalCubeDSL.g:242:1: entryRuleCubeTypeEntity : ruleCubeTypeEntity EOF ;
+    // InternalCubeDSL.g:244:1: entryRuleCubeTypeEntity : ruleCubeTypeEntity EOF ;
     public final void entryRuleCubeTypeEntity() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:243:1: ( ruleCubeTypeEntity EOF )
-            // InternalCubeDSL.g:244:1: ruleCubeTypeEntity EOF
+            // InternalCubeDSL.g:245:1: ( ruleCubeTypeEntity EOF )
+            // InternalCubeDSL.g:246:1: ruleCubeTypeEntity EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityRule()); 
@@ -837,23 +840,23 @@
 
 
     // $ANTLR start "ruleCubeTypeEntity"
-    // InternalCubeDSL.g:251:1: ruleCubeTypeEntity : ( ( rule__CubeTypeEntity__Group__0 ) ) ;
+    // InternalCubeDSL.g:253:1: ruleCubeTypeEntity : ( ( rule__CubeTypeEntity__Group__0 ) ) ;
     public final void ruleCubeTypeEntity() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:255:2: ( ( ( rule__CubeTypeEntity__Group__0 ) ) )
-            // InternalCubeDSL.g:256:2: ( ( rule__CubeTypeEntity__Group__0 ) )
+            // InternalCubeDSL.g:257:2: ( ( ( rule__CubeTypeEntity__Group__0 ) ) )
+            // InternalCubeDSL.g:258:2: ( ( rule__CubeTypeEntity__Group__0 ) )
             {
-            // InternalCubeDSL.g:256:2: ( ( rule__CubeTypeEntity__Group__0 ) )
-            // InternalCubeDSL.g:257:3: ( rule__CubeTypeEntity__Group__0 )
+            // InternalCubeDSL.g:258:2: ( ( rule__CubeTypeEntity__Group__0 ) )
+            // InternalCubeDSL.g:259:3: ( rule__CubeTypeEntity__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:258:3: ( rule__CubeTypeEntity__Group__0 )
-            // InternalCubeDSL.g:258:4: rule__CubeTypeEntity__Group__0
+            // InternalCubeDSL.g:260:3: ( rule__CubeTypeEntity__Group__0 )
+            // InternalCubeDSL.g:260:4: rule__CubeTypeEntity__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeTypeEntity__Group__0();
@@ -888,11 +891,11 @@
 
 
     // $ANTLR start "entryRuleCubeDimensionEntity"
-    // InternalCubeDSL.g:267:1: entryRuleCubeDimensionEntity : ruleCubeDimensionEntity EOF ;
+    // InternalCubeDSL.g:269:1: entryRuleCubeDimensionEntity : ruleCubeDimensionEntity EOF ;
     public final void entryRuleCubeDimensionEntity() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:268:1: ( ruleCubeDimensionEntity EOF )
-            // InternalCubeDSL.g:269:1: ruleCubeDimensionEntity EOF
+            // InternalCubeDSL.g:270:1: ( ruleCubeDimensionEntity EOF )
+            // InternalCubeDSL.g:271:1: ruleCubeDimensionEntity EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityRule()); 
@@ -922,23 +925,23 @@
 
 
     // $ANTLR start "ruleCubeDimensionEntity"
-    // InternalCubeDSL.g:276:1: ruleCubeDimensionEntity : ( ( rule__CubeDimensionEntity__Group__0 ) ) ;
+    // InternalCubeDSL.g:278:1: ruleCubeDimensionEntity : ( ( rule__CubeDimensionEntity__Group__0 ) ) ;
     public final void ruleCubeDimensionEntity() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:280:2: ( ( ( rule__CubeDimensionEntity__Group__0 ) ) )
-            // InternalCubeDSL.g:281:2: ( ( rule__CubeDimensionEntity__Group__0 ) )
+            // InternalCubeDSL.g:282:2: ( ( ( rule__CubeDimensionEntity__Group__0 ) ) )
+            // InternalCubeDSL.g:283:2: ( ( rule__CubeDimensionEntity__Group__0 ) )
             {
-            // InternalCubeDSL.g:281:2: ( ( rule__CubeDimensionEntity__Group__0 ) )
-            // InternalCubeDSL.g:282:3: ( rule__CubeDimensionEntity__Group__0 )
+            // InternalCubeDSL.g:283:2: ( ( rule__CubeDimensionEntity__Group__0 ) )
+            // InternalCubeDSL.g:284:3: ( rule__CubeDimensionEntity__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:283:3: ( rule__CubeDimensionEntity__Group__0 )
-            // InternalCubeDSL.g:283:4: rule__CubeDimensionEntity__Group__0
+            // InternalCubeDSL.g:285:3: ( rule__CubeDimensionEntity__Group__0 )
+            // InternalCubeDSL.g:285:4: rule__CubeDimensionEntity__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionEntity__Group__0();
@@ -973,11 +976,11 @@
 
 
     // $ANTLR start "entryRuleCubeDimensionEntityEntity"
-    // InternalCubeDSL.g:292:1: entryRuleCubeDimensionEntityEntity : ruleCubeDimensionEntityEntity EOF ;
+    // InternalCubeDSL.g:294:1: entryRuleCubeDimensionEntityEntity : ruleCubeDimensionEntityEntity EOF ;
     public final void entryRuleCubeDimensionEntityEntity() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:293:1: ( ruleCubeDimensionEntityEntity EOF )
-            // InternalCubeDSL.g:294:1: ruleCubeDimensionEntityEntity EOF
+            // InternalCubeDSL.g:295:1: ( ruleCubeDimensionEntityEntity EOF )
+            // InternalCubeDSL.g:296:1: ruleCubeDimensionEntityEntity EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityRule()); 
@@ -1007,23 +1010,23 @@
 
 
     // $ANTLR start "ruleCubeDimensionEntityEntity"
-    // InternalCubeDSL.g:301:1: ruleCubeDimensionEntityEntity : ( ( rule__CubeDimensionEntityEntity__Group__0 ) ) ;
+    // InternalCubeDSL.g:303:1: ruleCubeDimensionEntityEntity : ( ( rule__CubeDimensionEntityEntity__Group__0 ) ) ;
     public final void ruleCubeDimensionEntityEntity() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:305:2: ( ( ( rule__CubeDimensionEntityEntity__Group__0 ) ) )
-            // InternalCubeDSL.g:306:2: ( ( rule__CubeDimensionEntityEntity__Group__0 ) )
+            // InternalCubeDSL.g:307:2: ( ( ( rule__CubeDimensionEntityEntity__Group__0 ) ) )
+            // InternalCubeDSL.g:308:2: ( ( rule__CubeDimensionEntityEntity__Group__0 ) )
             {
-            // InternalCubeDSL.g:306:2: ( ( rule__CubeDimensionEntityEntity__Group__0 ) )
-            // InternalCubeDSL.g:307:3: ( rule__CubeDimensionEntityEntity__Group__0 )
+            // InternalCubeDSL.g:308:2: ( ( rule__CubeDimensionEntityEntity__Group__0 ) )
+            // InternalCubeDSL.g:309:3: ( rule__CubeDimensionEntityEntity__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:308:3: ( rule__CubeDimensionEntityEntity__Group__0 )
-            // InternalCubeDSL.g:308:4: rule__CubeDimensionEntityEntity__Group__0
+            // InternalCubeDSL.g:310:3: ( rule__CubeDimensionEntityEntity__Group__0 )
+            // InternalCubeDSL.g:310:4: rule__CubeDimensionEntityEntity__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionEntityEntity__Group__0();
@@ -1058,11 +1061,11 @@
 
 
     // $ANTLR start "entryRuleCubeLevel"
-    // InternalCubeDSL.g:317:1: entryRuleCubeLevel : ruleCubeLevel EOF ;
+    // InternalCubeDSL.g:319:1: entryRuleCubeLevel : ruleCubeLevel EOF ;
     public final void entryRuleCubeLevel() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:318:1: ( ruleCubeLevel EOF )
-            // InternalCubeDSL.g:319:1: ruleCubeLevel EOF
+            // InternalCubeDSL.g:320:1: ( ruleCubeLevel EOF )
+            // InternalCubeDSL.g:321:1: ruleCubeLevel EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelRule()); 
@@ -1092,23 +1095,23 @@
 
 
     // $ANTLR start "ruleCubeLevel"
-    // InternalCubeDSL.g:326:1: ruleCubeLevel : ( ( rule__CubeLevel__Group__0 ) ) ;
+    // InternalCubeDSL.g:328:1: ruleCubeLevel : ( ( rule__CubeLevel__Group__0 ) ) ;
     public final void ruleCubeLevel() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:330:2: ( ( ( rule__CubeLevel__Group__0 ) ) )
-            // InternalCubeDSL.g:331:2: ( ( rule__CubeLevel__Group__0 ) )
+            // InternalCubeDSL.g:332:2: ( ( ( rule__CubeLevel__Group__0 ) ) )
+            // InternalCubeDSL.g:333:2: ( ( rule__CubeLevel__Group__0 ) )
             {
-            // InternalCubeDSL.g:331:2: ( ( rule__CubeLevel__Group__0 ) )
-            // InternalCubeDSL.g:332:3: ( rule__CubeLevel__Group__0 )
+            // InternalCubeDSL.g:333:2: ( ( rule__CubeLevel__Group__0 ) )
+            // InternalCubeDSL.g:334:3: ( rule__CubeLevel__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:333:3: ( rule__CubeLevel__Group__0 )
-            // InternalCubeDSL.g:333:4: rule__CubeLevel__Group__0
+            // InternalCubeDSL.g:335:3: ( rule__CubeLevel__Group__0 )
+            // InternalCubeDSL.g:335:4: rule__CubeLevel__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevel__Group__0();
@@ -1143,11 +1146,11 @@
 
 
     // $ANTLR start "entryRuleCubeLevelProp"
-    // InternalCubeDSL.g:342:1: entryRuleCubeLevelProp : ruleCubeLevelProp EOF ;
+    // InternalCubeDSL.g:344:1: entryRuleCubeLevelProp : ruleCubeLevelProp EOF ;
     public final void entryRuleCubeLevelProp() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:343:1: ( ruleCubeLevelProp EOF )
-            // InternalCubeDSL.g:344:1: ruleCubeLevelProp EOF
+            // InternalCubeDSL.g:345:1: ( ruleCubeLevelProp EOF )
+            // InternalCubeDSL.g:346:1: ruleCubeLevelProp EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropRule()); 
@@ -1177,23 +1180,23 @@
 
 
     // $ANTLR start "ruleCubeLevelProp"
-    // InternalCubeDSL.g:351:1: ruleCubeLevelProp : ( ( rule__CubeLevelProp__Group__0 ) ) ;
+    // InternalCubeDSL.g:353:1: ruleCubeLevelProp : ( ( rule__CubeLevelProp__Group__0 ) ) ;
     public final void ruleCubeLevelProp() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:355:2: ( ( ( rule__CubeLevelProp__Group__0 ) ) )
-            // InternalCubeDSL.g:356:2: ( ( rule__CubeLevelProp__Group__0 ) )
+            // InternalCubeDSL.g:357:2: ( ( ( rule__CubeLevelProp__Group__0 ) ) )
+            // InternalCubeDSL.g:358:2: ( ( rule__CubeLevelProp__Group__0 ) )
             {
-            // InternalCubeDSL.g:356:2: ( ( rule__CubeLevelProp__Group__0 ) )
-            // InternalCubeDSL.g:357:3: ( rule__CubeLevelProp__Group__0 )
+            // InternalCubeDSL.g:358:2: ( ( rule__CubeLevelProp__Group__0 ) )
+            // InternalCubeDSL.g:359:3: ( rule__CubeLevelProp__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:358:3: ( rule__CubeLevelProp__Group__0 )
-            // InternalCubeDSL.g:358:4: rule__CubeLevelProp__Group__0
+            // InternalCubeDSL.g:360:3: ( rule__CubeLevelProp__Group__0 )
+            // InternalCubeDSL.g:360:4: rule__CubeLevelProp__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelProp__Group__0();
@@ -1228,11 +1231,11 @@
 
 
     // $ANTLR start "entryRuleCubeMeasure"
-    // InternalCubeDSL.g:367:1: entryRuleCubeMeasure : ruleCubeMeasure EOF ;
+    // InternalCubeDSL.g:369:1: entryRuleCubeMeasure : ruleCubeMeasure EOF ;
     public final void entryRuleCubeMeasure() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:368:1: ( ruleCubeMeasure EOF )
-            // InternalCubeDSL.g:369:1: ruleCubeMeasure EOF
+            // InternalCubeDSL.g:370:1: ( ruleCubeMeasure EOF )
+            // InternalCubeDSL.g:371:1: ruleCubeMeasure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureRule()); 
@@ -1262,23 +1265,23 @@
 
 
     // $ANTLR start "ruleCubeMeasure"
-    // InternalCubeDSL.g:376:1: ruleCubeMeasure : ( ( rule__CubeMeasure__Group__0 ) ) ;
+    // InternalCubeDSL.g:378:1: ruleCubeMeasure : ( ( rule__CubeMeasure__Group__0 ) ) ;
     public final void ruleCubeMeasure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:380:2: ( ( ( rule__CubeMeasure__Group__0 ) ) )
-            // InternalCubeDSL.g:381:2: ( ( rule__CubeMeasure__Group__0 ) )
+            // InternalCubeDSL.g:382:2: ( ( ( rule__CubeMeasure__Group__0 ) ) )
+            // InternalCubeDSL.g:383:2: ( ( rule__CubeMeasure__Group__0 ) )
             {
-            // InternalCubeDSL.g:381:2: ( ( rule__CubeMeasure__Group__0 ) )
-            // InternalCubeDSL.g:382:3: ( rule__CubeMeasure__Group__0 )
+            // InternalCubeDSL.g:383:2: ( ( rule__CubeMeasure__Group__0 ) )
+            // InternalCubeDSL.g:384:3: ( rule__CubeMeasure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:383:3: ( rule__CubeMeasure__Group__0 )
-            // InternalCubeDSL.g:383:4: rule__CubeMeasure__Group__0
+            // InternalCubeDSL.g:385:3: ( rule__CubeMeasure__Group__0 )
+            // InternalCubeDSL.g:385:4: rule__CubeMeasure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CubeMeasure__Group__0();
@@ -1313,11 +1316,11 @@
 
 
     // $ANTLR start "entryRuleLFQN"
-    // InternalCubeDSL.g:392:1: entryRuleLFQN : ruleLFQN EOF ;
+    // InternalCubeDSL.g:394:1: entryRuleLFQN : ruleLFQN EOF ;
     public final void entryRuleLFQN() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:393:1: ( ruleLFQN EOF )
-            // InternalCubeDSL.g:394:1: ruleLFQN EOF
+            // InternalCubeDSL.g:395:1: ( ruleLFQN EOF )
+            // InternalCubeDSL.g:396:1: ruleLFQN EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLFQNRule()); 
@@ -1347,23 +1350,23 @@
 
 
     // $ANTLR start "ruleLFQN"
-    // InternalCubeDSL.g:401:1: ruleLFQN : ( ( rule__LFQN__Group__0 ) ) ;
+    // InternalCubeDSL.g:403:1: ruleLFQN : ( ( rule__LFQN__Group__0 ) ) ;
     public final void ruleLFQN() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:405:2: ( ( ( rule__LFQN__Group__0 ) ) )
-            // InternalCubeDSL.g:406:2: ( ( rule__LFQN__Group__0 ) )
+            // InternalCubeDSL.g:407:2: ( ( ( rule__LFQN__Group__0 ) ) )
+            // InternalCubeDSL.g:408:2: ( ( rule__LFQN__Group__0 ) )
             {
-            // InternalCubeDSL.g:406:2: ( ( rule__LFQN__Group__0 ) )
-            // InternalCubeDSL.g:407:3: ( rule__LFQN__Group__0 )
+            // InternalCubeDSL.g:408:2: ( ( rule__LFQN__Group__0 ) )
+            // InternalCubeDSL.g:409:3: ( rule__LFQN__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLFQNAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:408:3: ( rule__LFQN__Group__0 )
-            // InternalCubeDSL.g:408:4: rule__LFQN__Group__0
+            // InternalCubeDSL.g:410:3: ( rule__LFQN__Group__0 )
+            // InternalCubeDSL.g:410:4: rule__LFQN__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__LFQN__Group__0();
@@ -1398,11 +1401,11 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalCubeDSL.g:417:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
+    // InternalCubeDSL.g:419:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
     public final void entryRuleTRANSLATABLEID() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:418:1: ( ruleTRANSLATABLEID EOF )
-            // InternalCubeDSL.g:419:1: ruleTRANSLATABLEID EOF
+            // InternalCubeDSL.g:420:1: ( ruleTRANSLATABLEID EOF )
+            // InternalCubeDSL.g:421:1: ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -1432,17 +1435,17 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalCubeDSL.g:426:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
+    // InternalCubeDSL.g:428:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
     public final void ruleTRANSLATABLEID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:430:2: ( ( RULE_ID ) )
-            // InternalCubeDSL.g:431:2: ( RULE_ID )
+            // InternalCubeDSL.g:432:2: ( ( RULE_ID ) )
+            // InternalCubeDSL.g:433:2: ( RULE_ID )
             {
-            // InternalCubeDSL.g:431:2: ( RULE_ID )
-            // InternalCubeDSL.g:432:3: RULE_ID
+            // InternalCubeDSL.g:433:2: ( RULE_ID )
+            // InternalCubeDSL.g:434:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
@@ -1473,11 +1476,11 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLESTRING"
-    // InternalCubeDSL.g:442:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
+    // InternalCubeDSL.g:444:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
     public final void entryRuleTRANSLATABLESTRING() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:443:1: ( ruleTRANSLATABLESTRING EOF )
-            // InternalCubeDSL.g:444:1: ruleTRANSLATABLESTRING EOF
+            // InternalCubeDSL.g:445:1: ( ruleTRANSLATABLESTRING EOF )
+            // InternalCubeDSL.g:446:1: ruleTRANSLATABLESTRING EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLESTRINGRule()); 
@@ -1507,17 +1510,17 @@
 
 
     // $ANTLR start "ruleTRANSLATABLESTRING"
-    // InternalCubeDSL.g:451:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
+    // InternalCubeDSL.g:453:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
     public final void ruleTRANSLATABLESTRING() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:455:2: ( ( RULE_STRING ) )
-            // InternalCubeDSL.g:456:2: ( RULE_STRING )
+            // InternalCubeDSL.g:457:2: ( ( RULE_STRING ) )
+            // InternalCubeDSL.g:458:2: ( RULE_STRING )
             {
-            // InternalCubeDSL.g:456:2: ( RULE_STRING )
-            // InternalCubeDSL.g:457:3: RULE_STRING
+            // InternalCubeDSL.g:458:2: ( RULE_STRING )
+            // InternalCubeDSL.g:459:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
@@ -1548,11 +1551,11 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalCubeDSL.g:467:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+    // InternalCubeDSL.g:469:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
     public final void entryRuleXImportDeclaration() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:468:1: ( ruleXImportDeclaration EOF )
-            // InternalCubeDSL.g:469:1: ruleXImportDeclaration EOF
+            // InternalCubeDSL.g:470:1: ( ruleXImportDeclaration EOF )
+            // InternalCubeDSL.g:471:1: ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationRule()); 
@@ -1582,23 +1585,23 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalCubeDSL.g:476:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+    // InternalCubeDSL.g:478:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
     public final void ruleXImportDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:480:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
-            // InternalCubeDSL.g:481:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalCubeDSL.g:482:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+            // InternalCubeDSL.g:483:2: ( ( rule__XImportDeclaration__Group__0 ) )
             {
-            // InternalCubeDSL.g:481:2: ( ( rule__XImportDeclaration__Group__0 ) )
-            // InternalCubeDSL.g:482:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalCubeDSL.g:483:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalCubeDSL.g:484:3: ( rule__XImportDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:483:3: ( rule__XImportDeclaration__Group__0 )
-            // InternalCubeDSL.g:483:4: rule__XImportDeclaration__Group__0
+            // InternalCubeDSL.g:485:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalCubeDSL.g:485:4: rule__XImportDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__0();
@@ -1633,11 +1636,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalCubeDSL.g:492:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
+    // InternalCubeDSL.g:494:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
     public final void entryRuleXAnnotation() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:493:1: ( ruleXAnnotation EOF )
-            // InternalCubeDSL.g:494:1: ruleXAnnotation EOF
+            // InternalCubeDSL.g:495:1: ( ruleXAnnotation EOF )
+            // InternalCubeDSL.g:496:1: ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationRule()); 
@@ -1667,23 +1670,23 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalCubeDSL.g:501:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
+    // InternalCubeDSL.g:503:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
     public final void ruleXAnnotation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:505:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
-            // InternalCubeDSL.g:506:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalCubeDSL.g:507:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
+            // InternalCubeDSL.g:508:2: ( ( rule__XAnnotation__Group__0 ) )
             {
-            // InternalCubeDSL.g:506:2: ( ( rule__XAnnotation__Group__0 ) )
-            // InternalCubeDSL.g:507:3: ( rule__XAnnotation__Group__0 )
+            // InternalCubeDSL.g:508:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalCubeDSL.g:509:3: ( rule__XAnnotation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:508:3: ( rule__XAnnotation__Group__0 )
-            // InternalCubeDSL.g:508:4: rule__XAnnotation__Group__0
+            // InternalCubeDSL.g:510:3: ( rule__XAnnotation__Group__0 )
+            // InternalCubeDSL.g:510:4: rule__XAnnotation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__0();
@@ -1718,11 +1721,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalCubeDSL.g:517:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
+    // InternalCubeDSL.g:519:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
     public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:518:1: ( ruleXAnnotationElementValuePair EOF )
-            // InternalCubeDSL.g:519:1: ruleXAnnotationElementValuePair EOF
+            // InternalCubeDSL.g:520:1: ( ruleXAnnotationElementValuePair EOF )
+            // InternalCubeDSL.g:521:1: ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -1752,23 +1755,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalCubeDSL.g:526:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
+    // InternalCubeDSL.g:528:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
     public final void ruleXAnnotationElementValuePair() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:530:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
-            // InternalCubeDSL.g:531:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalCubeDSL.g:532:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
+            // InternalCubeDSL.g:533:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
             {
-            // InternalCubeDSL.g:531:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
-            // InternalCubeDSL.g:532:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalCubeDSL.g:533:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalCubeDSL.g:534:3: ( rule__XAnnotationElementValuePair__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:533:3: ( rule__XAnnotationElementValuePair__Group__0 )
-            // InternalCubeDSL.g:533:4: rule__XAnnotationElementValuePair__Group__0
+            // InternalCubeDSL.g:535:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalCubeDSL.g:535:4: rule__XAnnotationElementValuePair__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__0();
@@ -1803,11 +1806,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalCubeDSL.g:542:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalCubeDSL.g:544:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
     public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:543:1: ( ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalCubeDSL.g:544:1: ruleXAnnotationElementValueOrCommaList EOF
+            // InternalCubeDSL.g:545:1: ( ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalCubeDSL.g:546:1: ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -1837,23 +1840,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalCubeDSL.g:551:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
+    // InternalCubeDSL.g:553:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
     public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:555:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
-            // InternalCubeDSL.g:556:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalCubeDSL.g:557:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
+            // InternalCubeDSL.g:558:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
             {
-            // InternalCubeDSL.g:556:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
-            // InternalCubeDSL.g:557:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalCubeDSL.g:558:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalCubeDSL.g:559:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:558:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
-            // InternalCubeDSL.g:558:4: rule__XAnnotationElementValueOrCommaList__Alternatives
+            // InternalCubeDSL.g:560:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalCubeDSL.g:560:4: rule__XAnnotationElementValueOrCommaList__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Alternatives();
@@ -1888,11 +1891,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalCubeDSL.g:567:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
+    // InternalCubeDSL.g:569:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
     public final void entryRuleXAnnotationElementValue() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:568:1: ( ruleXAnnotationElementValue EOF )
-            // InternalCubeDSL.g:569:1: ruleXAnnotationElementValue EOF
+            // InternalCubeDSL.g:570:1: ( ruleXAnnotationElementValue EOF )
+            // InternalCubeDSL.g:571:1: ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueRule()); 
@@ -1922,23 +1925,23 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalCubeDSL.g:576:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
+    // InternalCubeDSL.g:578:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
     public final void ruleXAnnotationElementValue() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:580:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
-            // InternalCubeDSL.g:581:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalCubeDSL.g:582:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
+            // InternalCubeDSL.g:583:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
             {
-            // InternalCubeDSL.g:581:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
-            // InternalCubeDSL.g:582:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalCubeDSL.g:583:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalCubeDSL.g:584:3: ( rule__XAnnotationElementValue__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:583:3: ( rule__XAnnotationElementValue__Alternatives )
-            // InternalCubeDSL.g:583:4: rule__XAnnotationElementValue__Alternatives
+            // InternalCubeDSL.g:585:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalCubeDSL.g:585:4: rule__XAnnotationElementValue__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Alternatives();
@@ -1973,11 +1976,11 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalCubeDSL.g:592:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
+    // InternalCubeDSL.g:594:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
     public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:593:1: ( ruleXAnnotationOrExpression EOF )
-            // InternalCubeDSL.g:594:1: ruleXAnnotationOrExpression EOF
+            // InternalCubeDSL.g:595:1: ( ruleXAnnotationOrExpression EOF )
+            // InternalCubeDSL.g:596:1: ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -2007,23 +2010,23 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalCubeDSL.g:601:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
+    // InternalCubeDSL.g:603:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
     public final void ruleXAnnotationOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:605:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
-            // InternalCubeDSL.g:606:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalCubeDSL.g:607:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
+            // InternalCubeDSL.g:608:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
             {
-            // InternalCubeDSL.g:606:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
-            // InternalCubeDSL.g:607:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalCubeDSL.g:608:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalCubeDSL.g:609:3: ( rule__XAnnotationOrExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:608:3: ( rule__XAnnotationOrExpression__Alternatives )
-            // InternalCubeDSL.g:608:4: rule__XAnnotationOrExpression__Alternatives
+            // InternalCubeDSL.g:610:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalCubeDSL.g:610:4: rule__XAnnotationOrExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationOrExpression__Alternatives();
@@ -2058,11 +2061,11 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalCubeDSL.g:617:1: entryRuleXExpression : ruleXExpression EOF ;
+    // InternalCubeDSL.g:619:1: entryRuleXExpression : ruleXExpression EOF ;
     public final void entryRuleXExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:618:1: ( ruleXExpression EOF )
-            // InternalCubeDSL.g:619:1: ruleXExpression EOF
+            // InternalCubeDSL.g:620:1: ( ruleXExpression EOF )
+            // InternalCubeDSL.g:621:1: ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionRule()); 
@@ -2092,17 +2095,17 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalCubeDSL.g:626:1: ruleXExpression : ( ruleXAssignment ) ;
+    // InternalCubeDSL.g:628:1: ruleXExpression : ( ruleXAssignment ) ;
     public final void ruleXExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:630:2: ( ( ruleXAssignment ) )
-            // InternalCubeDSL.g:631:2: ( ruleXAssignment )
+            // InternalCubeDSL.g:632:2: ( ( ruleXAssignment ) )
+            // InternalCubeDSL.g:633:2: ( ruleXAssignment )
             {
-            // InternalCubeDSL.g:631:2: ( ruleXAssignment )
-            // InternalCubeDSL.g:632:3: ruleXAssignment
+            // InternalCubeDSL.g:633:2: ( ruleXAssignment )
+            // InternalCubeDSL.g:634:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
@@ -2137,11 +2140,11 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalCubeDSL.g:642:1: entryRuleXAssignment : ruleXAssignment EOF ;
+    // InternalCubeDSL.g:644:1: entryRuleXAssignment : ruleXAssignment EOF ;
     public final void entryRuleXAssignment() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:643:1: ( ruleXAssignment EOF )
-            // InternalCubeDSL.g:644:1: ruleXAssignment EOF
+            // InternalCubeDSL.g:645:1: ( ruleXAssignment EOF )
+            // InternalCubeDSL.g:646:1: ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentRule()); 
@@ -2171,23 +2174,23 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalCubeDSL.g:651:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+    // InternalCubeDSL.g:653:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
     public final void ruleXAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:655:2: ( ( ( rule__XAssignment__Alternatives ) ) )
-            // InternalCubeDSL.g:656:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalCubeDSL.g:657:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+            // InternalCubeDSL.g:658:2: ( ( rule__XAssignment__Alternatives ) )
             {
-            // InternalCubeDSL.g:656:2: ( ( rule__XAssignment__Alternatives ) )
-            // InternalCubeDSL.g:657:3: ( rule__XAssignment__Alternatives )
+            // InternalCubeDSL.g:658:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalCubeDSL.g:659:3: ( rule__XAssignment__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:658:3: ( rule__XAssignment__Alternatives )
-            // InternalCubeDSL.g:658:4: rule__XAssignment__Alternatives
+            // InternalCubeDSL.g:660:3: ( rule__XAssignment__Alternatives )
+            // InternalCubeDSL.g:660:4: rule__XAssignment__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Alternatives();
@@ -2222,11 +2225,11 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalCubeDSL.g:667:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+    // InternalCubeDSL.g:669:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
     public final void entryRuleOpSingleAssign() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:668:1: ( ruleOpSingleAssign EOF )
-            // InternalCubeDSL.g:669:1: ruleOpSingleAssign EOF
+            // InternalCubeDSL.g:670:1: ( ruleOpSingleAssign EOF )
+            // InternalCubeDSL.g:671:1: ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignRule()); 
@@ -2256,17 +2259,17 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalCubeDSL.g:676:1: ruleOpSingleAssign : ( '=' ) ;
+    // InternalCubeDSL.g:678:1: ruleOpSingleAssign : ( '=' ) ;
     public final void ruleOpSingleAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:680:2: ( ( '=' ) )
-            // InternalCubeDSL.g:681:2: ( '=' )
+            // InternalCubeDSL.g:682:2: ( ( '=' ) )
+            // InternalCubeDSL.g:683:2: ( '=' )
             {
-            // InternalCubeDSL.g:681:2: ( '=' )
-            // InternalCubeDSL.g:682:3: '='
+            // InternalCubeDSL.g:683:2: ( '=' )
+            // InternalCubeDSL.g:684:3: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
@@ -2297,11 +2300,11 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalCubeDSL.g:692:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+    // InternalCubeDSL.g:694:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
     public final void entryRuleOpMultiAssign() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:693:1: ( ruleOpMultiAssign EOF )
-            // InternalCubeDSL.g:694:1: ruleOpMultiAssign EOF
+            // InternalCubeDSL.g:695:1: ( ruleOpMultiAssign EOF )
+            // InternalCubeDSL.g:696:1: ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignRule()); 
@@ -2331,23 +2334,23 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalCubeDSL.g:701:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+    // InternalCubeDSL.g:703:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
     public final void ruleOpMultiAssign() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:705:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
-            // InternalCubeDSL.g:706:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalCubeDSL.g:707:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+            // InternalCubeDSL.g:708:2: ( ( rule__OpMultiAssign__Alternatives ) )
             {
-            // InternalCubeDSL.g:706:2: ( ( rule__OpMultiAssign__Alternatives ) )
-            // InternalCubeDSL.g:707:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalCubeDSL.g:708:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalCubeDSL.g:709:3: ( rule__OpMultiAssign__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:708:3: ( rule__OpMultiAssign__Alternatives )
-            // InternalCubeDSL.g:708:4: rule__OpMultiAssign__Alternatives
+            // InternalCubeDSL.g:710:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalCubeDSL.g:710:4: rule__OpMultiAssign__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Alternatives();
@@ -2382,11 +2385,11 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalCubeDSL.g:717:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+    // InternalCubeDSL.g:719:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
     public final void entryRuleXOrExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:718:1: ( ruleXOrExpression EOF )
-            // InternalCubeDSL.g:719:1: ruleXOrExpression EOF
+            // InternalCubeDSL.g:720:1: ( ruleXOrExpression EOF )
+            // InternalCubeDSL.g:721:1: ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionRule()); 
@@ -2416,23 +2419,23 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalCubeDSL.g:726:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:728:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
     public final void ruleXOrExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:730:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:731:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalCubeDSL.g:732:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:733:2: ( ( rule__XOrExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:731:2: ( ( rule__XOrExpression__Group__0 ) )
-            // InternalCubeDSL.g:732:3: ( rule__XOrExpression__Group__0 )
+            // InternalCubeDSL.g:733:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalCubeDSL.g:734:3: ( rule__XOrExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:733:3: ( rule__XOrExpression__Group__0 )
-            // InternalCubeDSL.g:733:4: rule__XOrExpression__Group__0
+            // InternalCubeDSL.g:735:3: ( rule__XOrExpression__Group__0 )
+            // InternalCubeDSL.g:735:4: rule__XOrExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__0();
@@ -2467,11 +2470,11 @@
 
 
     // $ANTLR start "entryRuleOpOr"
-    // InternalCubeDSL.g:742:1: entryRuleOpOr : ruleOpOr EOF ;
+    // InternalCubeDSL.g:744:1: entryRuleOpOr : ruleOpOr EOF ;
     public final void entryRuleOpOr() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:743:1: ( ruleOpOr EOF )
-            // InternalCubeDSL.g:744:1: ruleOpOr EOF
+            // InternalCubeDSL.g:745:1: ( ruleOpOr EOF )
+            // InternalCubeDSL.g:746:1: ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrRule()); 
@@ -2501,17 +2504,17 @@
 
 
     // $ANTLR start "ruleOpOr"
-    // InternalCubeDSL.g:751:1: ruleOpOr : ( '||' ) ;
+    // InternalCubeDSL.g:753:1: ruleOpOr : ( '||' ) ;
     public final void ruleOpOr() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:755:2: ( ( '||' ) )
-            // InternalCubeDSL.g:756:2: ( '||' )
+            // InternalCubeDSL.g:757:2: ( ( '||' ) )
+            // InternalCubeDSL.g:758:2: ( '||' )
             {
-            // InternalCubeDSL.g:756:2: ( '||' )
-            // InternalCubeDSL.g:757:3: '||'
+            // InternalCubeDSL.g:758:2: ( '||' )
+            // InternalCubeDSL.g:759:3: '||'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
@@ -2542,11 +2545,11 @@
 
 
     // $ANTLR start "entryRuleXAndExpression"
-    // InternalCubeDSL.g:767:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+    // InternalCubeDSL.g:769:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
     public final void entryRuleXAndExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:768:1: ( ruleXAndExpression EOF )
-            // InternalCubeDSL.g:769:1: ruleXAndExpression EOF
+            // InternalCubeDSL.g:770:1: ( ruleXAndExpression EOF )
+            // InternalCubeDSL.g:771:1: ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionRule()); 
@@ -2576,23 +2579,23 @@
 
 
     // $ANTLR start "ruleXAndExpression"
-    // InternalCubeDSL.g:776:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:778:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
     public final void ruleXAndExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:780:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:781:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalCubeDSL.g:782:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:783:2: ( ( rule__XAndExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:781:2: ( ( rule__XAndExpression__Group__0 ) )
-            // InternalCubeDSL.g:782:3: ( rule__XAndExpression__Group__0 )
+            // InternalCubeDSL.g:783:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalCubeDSL.g:784:3: ( rule__XAndExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:783:3: ( rule__XAndExpression__Group__0 )
-            // InternalCubeDSL.g:783:4: rule__XAndExpression__Group__0
+            // InternalCubeDSL.g:785:3: ( rule__XAndExpression__Group__0 )
+            // InternalCubeDSL.g:785:4: rule__XAndExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__0();
@@ -2627,11 +2630,11 @@
 
 
     // $ANTLR start "entryRuleOpAnd"
-    // InternalCubeDSL.g:792:1: entryRuleOpAnd : ruleOpAnd EOF ;
+    // InternalCubeDSL.g:794:1: entryRuleOpAnd : ruleOpAnd EOF ;
     public final void entryRuleOpAnd() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:793:1: ( ruleOpAnd EOF )
-            // InternalCubeDSL.g:794:1: ruleOpAnd EOF
+            // InternalCubeDSL.g:795:1: ( ruleOpAnd EOF )
+            // InternalCubeDSL.g:796:1: ruleOpAnd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndRule()); 
@@ -2661,17 +2664,17 @@
 
 
     // $ANTLR start "ruleOpAnd"
-    // InternalCubeDSL.g:801:1: ruleOpAnd : ( '&&' ) ;
+    // InternalCubeDSL.g:803:1: ruleOpAnd : ( '&&' ) ;
     public final void ruleOpAnd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:805:2: ( ( '&&' ) )
-            // InternalCubeDSL.g:806:2: ( '&&' )
+            // InternalCubeDSL.g:807:2: ( ( '&&' ) )
+            // InternalCubeDSL.g:808:2: ( '&&' )
             {
-            // InternalCubeDSL.g:806:2: ( '&&' )
-            // InternalCubeDSL.g:807:3: '&&'
+            // InternalCubeDSL.g:808:2: ( '&&' )
+            // InternalCubeDSL.g:809:3: '&&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
@@ -2702,11 +2705,11 @@
 
 
     // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalCubeDSL.g:817:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+    // InternalCubeDSL.g:819:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
     public final void entryRuleXEqualityExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:818:1: ( ruleXEqualityExpression EOF )
-            // InternalCubeDSL.g:819:1: ruleXEqualityExpression EOF
+            // InternalCubeDSL.g:820:1: ( ruleXEqualityExpression EOF )
+            // InternalCubeDSL.g:821:1: ruleXEqualityExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionRule()); 
@@ -2736,23 +2739,23 @@
 
 
     // $ANTLR start "ruleXEqualityExpression"
-    // InternalCubeDSL.g:826:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:828:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
     public final void ruleXEqualityExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:830:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:831:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalCubeDSL.g:832:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:833:2: ( ( rule__XEqualityExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:831:2: ( ( rule__XEqualityExpression__Group__0 ) )
-            // InternalCubeDSL.g:832:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalCubeDSL.g:833:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalCubeDSL.g:834:3: ( rule__XEqualityExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:833:3: ( rule__XEqualityExpression__Group__0 )
-            // InternalCubeDSL.g:833:4: rule__XEqualityExpression__Group__0
+            // InternalCubeDSL.g:835:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalCubeDSL.g:835:4: rule__XEqualityExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__0();
@@ -2787,11 +2790,11 @@
 
 
     // $ANTLR start "entryRuleOpEquality"
-    // InternalCubeDSL.g:842:1: entryRuleOpEquality : ruleOpEquality EOF ;
+    // InternalCubeDSL.g:844:1: entryRuleOpEquality : ruleOpEquality EOF ;
     public final void entryRuleOpEquality() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:843:1: ( ruleOpEquality EOF )
-            // InternalCubeDSL.g:844:1: ruleOpEquality EOF
+            // InternalCubeDSL.g:845:1: ( ruleOpEquality EOF )
+            // InternalCubeDSL.g:846:1: ruleOpEquality EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityRule()); 
@@ -2821,23 +2824,23 @@
 
 
     // $ANTLR start "ruleOpEquality"
-    // InternalCubeDSL.g:851:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+    // InternalCubeDSL.g:853:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
     public final void ruleOpEquality() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:855:2: ( ( ( rule__OpEquality__Alternatives ) ) )
-            // InternalCubeDSL.g:856:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalCubeDSL.g:857:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+            // InternalCubeDSL.g:858:2: ( ( rule__OpEquality__Alternatives ) )
             {
-            // InternalCubeDSL.g:856:2: ( ( rule__OpEquality__Alternatives ) )
-            // InternalCubeDSL.g:857:3: ( rule__OpEquality__Alternatives )
+            // InternalCubeDSL.g:858:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalCubeDSL.g:859:3: ( rule__OpEquality__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:858:3: ( rule__OpEquality__Alternatives )
-            // InternalCubeDSL.g:858:4: rule__OpEquality__Alternatives
+            // InternalCubeDSL.g:860:3: ( rule__OpEquality__Alternatives )
+            // InternalCubeDSL.g:860:4: rule__OpEquality__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpEquality__Alternatives();
@@ -2872,11 +2875,11 @@
 
 
     // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalCubeDSL.g:867:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+    // InternalCubeDSL.g:869:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
     public final void entryRuleXRelationalExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:868:1: ( ruleXRelationalExpression EOF )
-            // InternalCubeDSL.g:869:1: ruleXRelationalExpression EOF
+            // InternalCubeDSL.g:870:1: ( ruleXRelationalExpression EOF )
+            // InternalCubeDSL.g:871:1: ruleXRelationalExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionRule()); 
@@ -2906,23 +2909,23 @@
 
 
     // $ANTLR start "ruleXRelationalExpression"
-    // InternalCubeDSL.g:876:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:878:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
     public final void ruleXRelationalExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:880:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:881:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalCubeDSL.g:882:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:883:2: ( ( rule__XRelationalExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:881:2: ( ( rule__XRelationalExpression__Group__0 ) )
-            // InternalCubeDSL.g:882:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalCubeDSL.g:883:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalCubeDSL.g:884:3: ( rule__XRelationalExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:883:3: ( rule__XRelationalExpression__Group__0 )
-            // InternalCubeDSL.g:883:4: rule__XRelationalExpression__Group__0
+            // InternalCubeDSL.g:885:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalCubeDSL.g:885:4: rule__XRelationalExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__0();
@@ -2957,11 +2960,11 @@
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalCubeDSL.g:892:1: entryRuleOpCompare : ruleOpCompare EOF ;
+    // InternalCubeDSL.g:894:1: entryRuleOpCompare : ruleOpCompare EOF ;
     public final void entryRuleOpCompare() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:893:1: ( ruleOpCompare EOF )
-            // InternalCubeDSL.g:894:1: ruleOpCompare EOF
+            // InternalCubeDSL.g:895:1: ( ruleOpCompare EOF )
+            // InternalCubeDSL.g:896:1: ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareRule()); 
@@ -2991,23 +2994,23 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalCubeDSL.g:901:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+    // InternalCubeDSL.g:903:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
     public final void ruleOpCompare() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:905:2: ( ( ( rule__OpCompare__Alternatives ) ) )
-            // InternalCubeDSL.g:906:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalCubeDSL.g:907:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+            // InternalCubeDSL.g:908:2: ( ( rule__OpCompare__Alternatives ) )
             {
-            // InternalCubeDSL.g:906:2: ( ( rule__OpCompare__Alternatives ) )
-            // InternalCubeDSL.g:907:3: ( rule__OpCompare__Alternatives )
+            // InternalCubeDSL.g:908:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalCubeDSL.g:909:3: ( rule__OpCompare__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:908:3: ( rule__OpCompare__Alternatives )
-            // InternalCubeDSL.g:908:4: rule__OpCompare__Alternatives
+            // InternalCubeDSL.g:910:3: ( rule__OpCompare__Alternatives )
+            // InternalCubeDSL.g:910:4: rule__OpCompare__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Alternatives();
@@ -3042,11 +3045,11 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalCubeDSL.g:917:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+    // InternalCubeDSL.g:919:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
     public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:918:1: ( ruleXOtherOperatorExpression EOF )
-            // InternalCubeDSL.g:919:1: ruleXOtherOperatorExpression EOF
+            // InternalCubeDSL.g:920:1: ( ruleXOtherOperatorExpression EOF )
+            // InternalCubeDSL.g:921:1: ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -3076,23 +3079,23 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalCubeDSL.g:926:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:928:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
     public final void ruleXOtherOperatorExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:930:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:931:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalCubeDSL.g:932:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:933:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:931:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
-            // InternalCubeDSL.g:932:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalCubeDSL.g:933:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalCubeDSL.g:934:3: ( rule__XOtherOperatorExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:933:3: ( rule__XOtherOperatorExpression__Group__0 )
-            // InternalCubeDSL.g:933:4: rule__XOtherOperatorExpression__Group__0
+            // InternalCubeDSL.g:935:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalCubeDSL.g:935:4: rule__XOtherOperatorExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__0();
@@ -3127,11 +3130,11 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalCubeDSL.g:942:1: entryRuleOpOther : ruleOpOther EOF ;
+    // InternalCubeDSL.g:944:1: entryRuleOpOther : ruleOpOther EOF ;
     public final void entryRuleOpOther() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:943:1: ( ruleOpOther EOF )
-            // InternalCubeDSL.g:944:1: ruleOpOther EOF
+            // InternalCubeDSL.g:945:1: ( ruleOpOther EOF )
+            // InternalCubeDSL.g:946:1: ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherRule()); 
@@ -3161,23 +3164,23 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalCubeDSL.g:951:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+    // InternalCubeDSL.g:953:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
     public final void ruleOpOther() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:955:2: ( ( ( rule__OpOther__Alternatives ) ) )
-            // InternalCubeDSL.g:956:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalCubeDSL.g:957:2: ( ( ( rule__OpOther__Alternatives ) ) )
+            // InternalCubeDSL.g:958:2: ( ( rule__OpOther__Alternatives ) )
             {
-            // InternalCubeDSL.g:956:2: ( ( rule__OpOther__Alternatives ) )
-            // InternalCubeDSL.g:957:3: ( rule__OpOther__Alternatives )
+            // InternalCubeDSL.g:958:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalCubeDSL.g:959:3: ( rule__OpOther__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:958:3: ( rule__OpOther__Alternatives )
-            // InternalCubeDSL.g:958:4: rule__OpOther__Alternatives
+            // InternalCubeDSL.g:960:3: ( rule__OpOther__Alternatives )
+            // InternalCubeDSL.g:960:4: rule__OpOther__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives();
@@ -3212,11 +3215,11 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalCubeDSL.g:967:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+    // InternalCubeDSL.g:969:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
     public final void entryRuleXAdditiveExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:968:1: ( ruleXAdditiveExpression EOF )
-            // InternalCubeDSL.g:969:1: ruleXAdditiveExpression EOF
+            // InternalCubeDSL.g:970:1: ( ruleXAdditiveExpression EOF )
+            // InternalCubeDSL.g:971:1: ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionRule()); 
@@ -3246,23 +3249,23 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalCubeDSL.g:976:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:978:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
     public final void ruleXAdditiveExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:980:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:981:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalCubeDSL.g:982:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:983:2: ( ( rule__XAdditiveExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:981:2: ( ( rule__XAdditiveExpression__Group__0 ) )
-            // InternalCubeDSL.g:982:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalCubeDSL.g:983:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalCubeDSL.g:984:3: ( rule__XAdditiveExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:983:3: ( rule__XAdditiveExpression__Group__0 )
-            // InternalCubeDSL.g:983:4: rule__XAdditiveExpression__Group__0
+            // InternalCubeDSL.g:985:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalCubeDSL.g:985:4: rule__XAdditiveExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__0();
@@ -3297,11 +3300,11 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalCubeDSL.g:992:1: entryRuleOpAdd : ruleOpAdd EOF ;
+    // InternalCubeDSL.g:994:1: entryRuleOpAdd : ruleOpAdd EOF ;
     public final void entryRuleOpAdd() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:993:1: ( ruleOpAdd EOF )
-            // InternalCubeDSL.g:994:1: ruleOpAdd EOF
+            // InternalCubeDSL.g:995:1: ( ruleOpAdd EOF )
+            // InternalCubeDSL.g:996:1: ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddRule()); 
@@ -3331,23 +3334,23 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalCubeDSL.g:1001:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+    // InternalCubeDSL.g:1003:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
     public final void ruleOpAdd() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1005:2: ( ( ( rule__OpAdd__Alternatives ) ) )
-            // InternalCubeDSL.g:1006:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalCubeDSL.g:1007:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+            // InternalCubeDSL.g:1008:2: ( ( rule__OpAdd__Alternatives ) )
             {
-            // InternalCubeDSL.g:1006:2: ( ( rule__OpAdd__Alternatives ) )
-            // InternalCubeDSL.g:1007:3: ( rule__OpAdd__Alternatives )
+            // InternalCubeDSL.g:1008:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalCubeDSL.g:1009:3: ( rule__OpAdd__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpAddAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1008:3: ( rule__OpAdd__Alternatives )
-            // InternalCubeDSL.g:1008:4: rule__OpAdd__Alternatives
+            // InternalCubeDSL.g:1010:3: ( rule__OpAdd__Alternatives )
+            // InternalCubeDSL.g:1010:4: rule__OpAdd__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpAdd__Alternatives();
@@ -3382,11 +3385,11 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalCubeDSL.g:1017:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+    // InternalCubeDSL.g:1019:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
     public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1018:1: ( ruleXMultiplicativeExpression EOF )
-            // InternalCubeDSL.g:1019:1: ruleXMultiplicativeExpression EOF
+            // InternalCubeDSL.g:1020:1: ( ruleXMultiplicativeExpression EOF )
+            // InternalCubeDSL.g:1021:1: ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -3416,23 +3419,23 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalCubeDSL.g:1026:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1028:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
     public final void ruleXMultiplicativeExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1030:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1031:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalCubeDSL.g:1032:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1033:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1031:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
-            // InternalCubeDSL.g:1032:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalCubeDSL.g:1033:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalCubeDSL.g:1034:3: ( rule__XMultiplicativeExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1033:3: ( rule__XMultiplicativeExpression__Group__0 )
-            // InternalCubeDSL.g:1033:4: rule__XMultiplicativeExpression__Group__0
+            // InternalCubeDSL.g:1035:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalCubeDSL.g:1035:4: rule__XMultiplicativeExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__0();
@@ -3467,11 +3470,11 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalCubeDSL.g:1042:1: entryRuleOpMulti : ruleOpMulti EOF ;
+    // InternalCubeDSL.g:1044:1: entryRuleOpMulti : ruleOpMulti EOF ;
     public final void entryRuleOpMulti() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1043:1: ( ruleOpMulti EOF )
-            // InternalCubeDSL.g:1044:1: ruleOpMulti EOF
+            // InternalCubeDSL.g:1045:1: ( ruleOpMulti EOF )
+            // InternalCubeDSL.g:1046:1: ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiRule()); 
@@ -3501,23 +3504,23 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalCubeDSL.g:1051:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+    // InternalCubeDSL.g:1053:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
     public final void ruleOpMulti() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1055:2: ( ( ( rule__OpMulti__Alternatives ) ) )
-            // InternalCubeDSL.g:1056:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalCubeDSL.g:1057:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+            // InternalCubeDSL.g:1058:2: ( ( rule__OpMulti__Alternatives ) )
             {
-            // InternalCubeDSL.g:1056:2: ( ( rule__OpMulti__Alternatives ) )
-            // InternalCubeDSL.g:1057:3: ( rule__OpMulti__Alternatives )
+            // InternalCubeDSL.g:1058:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalCubeDSL.g:1059:3: ( rule__OpMulti__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1058:3: ( rule__OpMulti__Alternatives )
-            // InternalCubeDSL.g:1058:4: rule__OpMulti__Alternatives
+            // InternalCubeDSL.g:1060:3: ( rule__OpMulti__Alternatives )
+            // InternalCubeDSL.g:1060:4: rule__OpMulti__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpMulti__Alternatives();
@@ -3552,11 +3555,11 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalCubeDSL.g:1067:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+    // InternalCubeDSL.g:1069:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
     public final void entryRuleXUnaryOperation() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1068:1: ( ruleXUnaryOperation EOF )
-            // InternalCubeDSL.g:1069:1: ruleXUnaryOperation EOF
+            // InternalCubeDSL.g:1070:1: ( ruleXUnaryOperation EOF )
+            // InternalCubeDSL.g:1071:1: ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationRule()); 
@@ -3586,23 +3589,23 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalCubeDSL.g:1076:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+    // InternalCubeDSL.g:1078:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
     public final void ruleXUnaryOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1080:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
-            // InternalCubeDSL.g:1081:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalCubeDSL.g:1082:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+            // InternalCubeDSL.g:1083:2: ( ( rule__XUnaryOperation__Alternatives ) )
             {
-            // InternalCubeDSL.g:1081:2: ( ( rule__XUnaryOperation__Alternatives ) )
-            // InternalCubeDSL.g:1082:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalCubeDSL.g:1083:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalCubeDSL.g:1084:3: ( rule__XUnaryOperation__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1083:3: ( rule__XUnaryOperation__Alternatives )
-            // InternalCubeDSL.g:1083:4: rule__XUnaryOperation__Alternatives
+            // InternalCubeDSL.g:1085:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalCubeDSL.g:1085:4: rule__XUnaryOperation__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Alternatives();
@@ -3637,11 +3640,11 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalCubeDSL.g:1092:1: entryRuleOpUnary : ruleOpUnary EOF ;
+    // InternalCubeDSL.g:1094:1: entryRuleOpUnary : ruleOpUnary EOF ;
     public final void entryRuleOpUnary() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1093:1: ( ruleOpUnary EOF )
-            // InternalCubeDSL.g:1094:1: ruleOpUnary EOF
+            // InternalCubeDSL.g:1095:1: ( ruleOpUnary EOF )
+            // InternalCubeDSL.g:1096:1: ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryRule()); 
@@ -3671,23 +3674,23 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalCubeDSL.g:1101:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+    // InternalCubeDSL.g:1103:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
     public final void ruleOpUnary() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1105:2: ( ( ( rule__OpUnary__Alternatives ) ) )
-            // InternalCubeDSL.g:1106:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalCubeDSL.g:1107:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+            // InternalCubeDSL.g:1108:2: ( ( rule__OpUnary__Alternatives ) )
             {
-            // InternalCubeDSL.g:1106:2: ( ( rule__OpUnary__Alternatives ) )
-            // InternalCubeDSL.g:1107:3: ( rule__OpUnary__Alternatives )
+            // InternalCubeDSL.g:1108:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalCubeDSL.g:1109:3: ( rule__OpUnary__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1108:3: ( rule__OpUnary__Alternatives )
-            // InternalCubeDSL.g:1108:4: rule__OpUnary__Alternatives
+            // InternalCubeDSL.g:1110:3: ( rule__OpUnary__Alternatives )
+            // InternalCubeDSL.g:1110:4: rule__OpUnary__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpUnary__Alternatives();
@@ -3722,11 +3725,11 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalCubeDSL.g:1117:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+    // InternalCubeDSL.g:1119:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
     public final void entryRuleXCastedExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1118:1: ( ruleXCastedExpression EOF )
-            // InternalCubeDSL.g:1119:1: ruleXCastedExpression EOF
+            // InternalCubeDSL.g:1120:1: ( ruleXCastedExpression EOF )
+            // InternalCubeDSL.g:1121:1: ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionRule()); 
@@ -3756,23 +3759,23 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalCubeDSL.g:1126:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1128:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
     public final void ruleXCastedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1130:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1131:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalCubeDSL.g:1132:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1133:2: ( ( rule__XCastedExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1131:2: ( ( rule__XCastedExpression__Group__0 ) )
-            // InternalCubeDSL.g:1132:3: ( rule__XCastedExpression__Group__0 )
+            // InternalCubeDSL.g:1133:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalCubeDSL.g:1134:3: ( rule__XCastedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1133:3: ( rule__XCastedExpression__Group__0 )
-            // InternalCubeDSL.g:1133:4: rule__XCastedExpression__Group__0
+            // InternalCubeDSL.g:1135:3: ( rule__XCastedExpression__Group__0 )
+            // InternalCubeDSL.g:1135:4: rule__XCastedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__0();
@@ -3807,11 +3810,11 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalCubeDSL.g:1142:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
+    // InternalCubeDSL.g:1144:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
     public final void entryRuleXPostfixOperation() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1143:1: ( ruleXPostfixOperation EOF )
-            // InternalCubeDSL.g:1144:1: ruleXPostfixOperation EOF
+            // InternalCubeDSL.g:1145:1: ( ruleXPostfixOperation EOF )
+            // InternalCubeDSL.g:1146:1: ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationRule()); 
@@ -3841,23 +3844,23 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalCubeDSL.g:1151:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
+    // InternalCubeDSL.g:1153:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
     public final void ruleXPostfixOperation() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1155:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
-            // InternalCubeDSL.g:1156:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalCubeDSL.g:1157:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
+            // InternalCubeDSL.g:1158:2: ( ( rule__XPostfixOperation__Group__0 ) )
             {
-            // InternalCubeDSL.g:1156:2: ( ( rule__XPostfixOperation__Group__0 ) )
-            // InternalCubeDSL.g:1157:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalCubeDSL.g:1158:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalCubeDSL.g:1159:3: ( rule__XPostfixOperation__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1158:3: ( rule__XPostfixOperation__Group__0 )
-            // InternalCubeDSL.g:1158:4: rule__XPostfixOperation__Group__0
+            // InternalCubeDSL.g:1160:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalCubeDSL.g:1160:4: rule__XPostfixOperation__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__0();
@@ -3892,11 +3895,11 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalCubeDSL.g:1167:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
+    // InternalCubeDSL.g:1169:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
     public final void entryRuleOpPostfix() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1168:1: ( ruleOpPostfix EOF )
-            // InternalCubeDSL.g:1169:1: ruleOpPostfix EOF
+            // InternalCubeDSL.g:1170:1: ( ruleOpPostfix EOF )
+            // InternalCubeDSL.g:1171:1: ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixRule()); 
@@ -3926,23 +3929,23 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalCubeDSL.g:1176:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
+    // InternalCubeDSL.g:1178:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
     public final void ruleOpPostfix() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1180:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
-            // InternalCubeDSL.g:1181:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalCubeDSL.g:1182:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
+            // InternalCubeDSL.g:1183:2: ( ( rule__OpPostfix__Alternatives ) )
             {
-            // InternalCubeDSL.g:1181:2: ( ( rule__OpPostfix__Alternatives ) )
-            // InternalCubeDSL.g:1182:3: ( rule__OpPostfix__Alternatives )
+            // InternalCubeDSL.g:1183:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalCubeDSL.g:1184:3: ( rule__OpPostfix__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1183:3: ( rule__OpPostfix__Alternatives )
-            // InternalCubeDSL.g:1183:4: rule__OpPostfix__Alternatives
+            // InternalCubeDSL.g:1185:3: ( rule__OpPostfix__Alternatives )
+            // InternalCubeDSL.g:1185:4: rule__OpPostfix__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__OpPostfix__Alternatives();
@@ -3977,11 +3980,11 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalCubeDSL.g:1192:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+    // InternalCubeDSL.g:1194:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
     public final void entryRuleXMemberFeatureCall() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1193:1: ( ruleXMemberFeatureCall EOF )
-            // InternalCubeDSL.g:1194:1: ruleXMemberFeatureCall EOF
+            // InternalCubeDSL.g:1195:1: ( ruleXMemberFeatureCall EOF )
+            // InternalCubeDSL.g:1196:1: ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallRule()); 
@@ -4011,23 +4014,23 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalCubeDSL.g:1201:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+    // InternalCubeDSL.g:1203:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
     public final void ruleXMemberFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1205:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
-            // InternalCubeDSL.g:1206:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalCubeDSL.g:1207:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+            // InternalCubeDSL.g:1208:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
             {
-            // InternalCubeDSL.g:1206:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
-            // InternalCubeDSL.g:1207:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalCubeDSL.g:1208:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalCubeDSL.g:1209:3: ( rule__XMemberFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1208:3: ( rule__XMemberFeatureCall__Group__0 )
-            // InternalCubeDSL.g:1208:4: rule__XMemberFeatureCall__Group__0
+            // InternalCubeDSL.g:1210:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalCubeDSL.g:1210:4: rule__XMemberFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__0();
@@ -4062,11 +4065,11 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalCubeDSL.g:1217:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+    // InternalCubeDSL.g:1219:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
     public final void entryRuleXPrimaryExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1218:1: ( ruleXPrimaryExpression EOF )
-            // InternalCubeDSL.g:1219:1: ruleXPrimaryExpression EOF
+            // InternalCubeDSL.g:1220:1: ( ruleXPrimaryExpression EOF )
+            // InternalCubeDSL.g:1221:1: ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionRule()); 
@@ -4096,23 +4099,23 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalCubeDSL.g:1226:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+    // InternalCubeDSL.g:1228:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
     public final void ruleXPrimaryExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1230:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
-            // InternalCubeDSL.g:1231:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalCubeDSL.g:1232:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+            // InternalCubeDSL.g:1233:2: ( ( rule__XPrimaryExpression__Alternatives ) )
             {
-            // InternalCubeDSL.g:1231:2: ( ( rule__XPrimaryExpression__Alternatives ) )
-            // InternalCubeDSL.g:1232:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalCubeDSL.g:1233:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalCubeDSL.g:1234:3: ( rule__XPrimaryExpression__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1233:3: ( rule__XPrimaryExpression__Alternatives )
-            // InternalCubeDSL.g:1233:4: rule__XPrimaryExpression__Alternatives
+            // InternalCubeDSL.g:1235:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalCubeDSL.g:1235:4: rule__XPrimaryExpression__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XPrimaryExpression__Alternatives();
@@ -4147,11 +4150,11 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalCubeDSL.g:1242:1: entryRuleXLiteral : ruleXLiteral EOF ;
+    // InternalCubeDSL.g:1244:1: entryRuleXLiteral : ruleXLiteral EOF ;
     public final void entryRuleXLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1243:1: ( ruleXLiteral EOF )
-            // InternalCubeDSL.g:1244:1: ruleXLiteral EOF
+            // InternalCubeDSL.g:1245:1: ( ruleXLiteral EOF )
+            // InternalCubeDSL.g:1246:1: ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralRule()); 
@@ -4181,23 +4184,23 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalCubeDSL.g:1251:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+    // InternalCubeDSL.g:1253:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
     public final void ruleXLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1255:2: ( ( ( rule__XLiteral__Alternatives ) ) )
-            // InternalCubeDSL.g:1256:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalCubeDSL.g:1257:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+            // InternalCubeDSL.g:1258:2: ( ( rule__XLiteral__Alternatives ) )
             {
-            // InternalCubeDSL.g:1256:2: ( ( rule__XLiteral__Alternatives ) )
-            // InternalCubeDSL.g:1257:3: ( rule__XLiteral__Alternatives )
+            // InternalCubeDSL.g:1258:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalCubeDSL.g:1259:3: ( rule__XLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXLiteralAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1258:3: ( rule__XLiteral__Alternatives )
-            // InternalCubeDSL.g:1258:4: rule__XLiteral__Alternatives
+            // InternalCubeDSL.g:1260:3: ( rule__XLiteral__Alternatives )
+            // InternalCubeDSL.g:1260:4: rule__XLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XLiteral__Alternatives();
@@ -4232,11 +4235,11 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalCubeDSL.g:1267:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+    // InternalCubeDSL.g:1269:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
     public final void entryRuleXCollectionLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1268:1: ( ruleXCollectionLiteral EOF )
-            // InternalCubeDSL.g:1269:1: ruleXCollectionLiteral EOF
+            // InternalCubeDSL.g:1270:1: ( ruleXCollectionLiteral EOF )
+            // InternalCubeDSL.g:1271:1: ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralRule()); 
@@ -4266,23 +4269,23 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalCubeDSL.g:1276:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+    // InternalCubeDSL.g:1278:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
     public final void ruleXCollectionLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1280:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
-            // InternalCubeDSL.g:1281:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalCubeDSL.g:1282:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+            // InternalCubeDSL.g:1283:2: ( ( rule__XCollectionLiteral__Alternatives ) )
             {
-            // InternalCubeDSL.g:1281:2: ( ( rule__XCollectionLiteral__Alternatives ) )
-            // InternalCubeDSL.g:1282:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalCubeDSL.g:1283:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalCubeDSL.g:1284:3: ( rule__XCollectionLiteral__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1283:3: ( rule__XCollectionLiteral__Alternatives )
-            // InternalCubeDSL.g:1283:4: rule__XCollectionLiteral__Alternatives
+            // InternalCubeDSL.g:1285:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalCubeDSL.g:1285:4: rule__XCollectionLiteral__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XCollectionLiteral__Alternatives();
@@ -4317,11 +4320,11 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalCubeDSL.g:1292:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+    // InternalCubeDSL.g:1294:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
     public final void entryRuleXSetLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1293:1: ( ruleXSetLiteral EOF )
-            // InternalCubeDSL.g:1294:1: ruleXSetLiteral EOF
+            // InternalCubeDSL.g:1295:1: ( ruleXSetLiteral EOF )
+            // InternalCubeDSL.g:1296:1: ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralRule()); 
@@ -4351,23 +4354,23 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalCubeDSL.g:1301:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+    // InternalCubeDSL.g:1303:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
     public final void ruleXSetLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1305:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
-            // InternalCubeDSL.g:1306:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1307:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+            // InternalCubeDSL.g:1308:2: ( ( rule__XSetLiteral__Group__0 ) )
             {
-            // InternalCubeDSL.g:1306:2: ( ( rule__XSetLiteral__Group__0 ) )
-            // InternalCubeDSL.g:1307:3: ( rule__XSetLiteral__Group__0 )
+            // InternalCubeDSL.g:1308:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1309:3: ( rule__XSetLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1308:3: ( rule__XSetLiteral__Group__0 )
-            // InternalCubeDSL.g:1308:4: rule__XSetLiteral__Group__0
+            // InternalCubeDSL.g:1310:3: ( rule__XSetLiteral__Group__0 )
+            // InternalCubeDSL.g:1310:4: rule__XSetLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__0();
@@ -4402,11 +4405,11 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalCubeDSL.g:1317:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+    // InternalCubeDSL.g:1319:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
     public final void entryRuleXListLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1318:1: ( ruleXListLiteral EOF )
-            // InternalCubeDSL.g:1319:1: ruleXListLiteral EOF
+            // InternalCubeDSL.g:1320:1: ( ruleXListLiteral EOF )
+            // InternalCubeDSL.g:1321:1: ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralRule()); 
@@ -4436,23 +4439,23 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalCubeDSL.g:1326:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+    // InternalCubeDSL.g:1328:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
     public final void ruleXListLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1330:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
-            // InternalCubeDSL.g:1331:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1332:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+            // InternalCubeDSL.g:1333:2: ( ( rule__XListLiteral__Group__0 ) )
             {
-            // InternalCubeDSL.g:1331:2: ( ( rule__XListLiteral__Group__0 ) )
-            // InternalCubeDSL.g:1332:3: ( rule__XListLiteral__Group__0 )
+            // InternalCubeDSL.g:1333:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1334:3: ( rule__XListLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1333:3: ( rule__XListLiteral__Group__0 )
-            // InternalCubeDSL.g:1333:4: rule__XListLiteral__Group__0
+            // InternalCubeDSL.g:1335:3: ( rule__XListLiteral__Group__0 )
+            // InternalCubeDSL.g:1335:4: rule__XListLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__0();
@@ -4487,11 +4490,11 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalCubeDSL.g:1342:1: entryRuleXClosure : ruleXClosure EOF ;
+    // InternalCubeDSL.g:1344:1: entryRuleXClosure : ruleXClosure EOF ;
     public final void entryRuleXClosure() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1343:1: ( ruleXClosure EOF )
-            // InternalCubeDSL.g:1344:1: ruleXClosure EOF
+            // InternalCubeDSL.g:1345:1: ( ruleXClosure EOF )
+            // InternalCubeDSL.g:1346:1: ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureRule()); 
@@ -4521,23 +4524,23 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalCubeDSL.g:1351:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+    // InternalCubeDSL.g:1353:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
     public final void ruleXClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1355:2: ( ( ( rule__XClosure__Group__0 ) ) )
-            // InternalCubeDSL.g:1356:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalCubeDSL.g:1357:2: ( ( ( rule__XClosure__Group__0 ) ) )
+            // InternalCubeDSL.g:1358:2: ( ( rule__XClosure__Group__0 ) )
             {
-            // InternalCubeDSL.g:1356:2: ( ( rule__XClosure__Group__0 ) )
-            // InternalCubeDSL.g:1357:3: ( rule__XClosure__Group__0 )
+            // InternalCubeDSL.g:1358:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalCubeDSL.g:1359:3: ( rule__XClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1358:3: ( rule__XClosure__Group__0 )
-            // InternalCubeDSL.g:1358:4: rule__XClosure__Group__0
+            // InternalCubeDSL.g:1360:3: ( rule__XClosure__Group__0 )
+            // InternalCubeDSL.g:1360:4: rule__XClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__0();
@@ -4572,11 +4575,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalCubeDSL.g:1367:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+    // InternalCubeDSL.g:1369:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
     public final void entryRuleXExpressionInClosure() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1368:1: ( ruleXExpressionInClosure EOF )
-            // InternalCubeDSL.g:1369:1: ruleXExpressionInClosure EOF
+            // InternalCubeDSL.g:1370:1: ( ruleXExpressionInClosure EOF )
+            // InternalCubeDSL.g:1371:1: ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureRule()); 
@@ -4606,23 +4609,23 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalCubeDSL.g:1376:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+    // InternalCubeDSL.g:1378:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
     public final void ruleXExpressionInClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1380:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
-            // InternalCubeDSL.g:1381:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalCubeDSL.g:1382:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+            // InternalCubeDSL.g:1383:2: ( ( rule__XExpressionInClosure__Group__0 ) )
             {
-            // InternalCubeDSL.g:1381:2: ( ( rule__XExpressionInClosure__Group__0 ) )
-            // InternalCubeDSL.g:1382:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalCubeDSL.g:1383:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalCubeDSL.g:1384:3: ( rule__XExpressionInClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1383:3: ( rule__XExpressionInClosure__Group__0 )
-            // InternalCubeDSL.g:1383:4: rule__XExpressionInClosure__Group__0
+            // InternalCubeDSL.g:1385:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalCubeDSL.g:1385:4: rule__XExpressionInClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__0();
@@ -4657,11 +4660,11 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalCubeDSL.g:1392:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+    // InternalCubeDSL.g:1394:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
     public final void entryRuleXShortClosure() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1393:1: ( ruleXShortClosure EOF )
-            // InternalCubeDSL.g:1394:1: ruleXShortClosure EOF
+            // InternalCubeDSL.g:1395:1: ( ruleXShortClosure EOF )
+            // InternalCubeDSL.g:1396:1: ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureRule()); 
@@ -4691,23 +4694,23 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalCubeDSL.g:1401:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+    // InternalCubeDSL.g:1403:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
     public final void ruleXShortClosure() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1405:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
-            // InternalCubeDSL.g:1406:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalCubeDSL.g:1407:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+            // InternalCubeDSL.g:1408:2: ( ( rule__XShortClosure__Group__0 ) )
             {
-            // InternalCubeDSL.g:1406:2: ( ( rule__XShortClosure__Group__0 ) )
-            // InternalCubeDSL.g:1407:3: ( rule__XShortClosure__Group__0 )
+            // InternalCubeDSL.g:1408:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalCubeDSL.g:1409:3: ( rule__XShortClosure__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1408:3: ( rule__XShortClosure__Group__0 )
-            // InternalCubeDSL.g:1408:4: rule__XShortClosure__Group__0
+            // InternalCubeDSL.g:1410:3: ( rule__XShortClosure__Group__0 )
+            // InternalCubeDSL.g:1410:4: rule__XShortClosure__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__0();
@@ -4742,11 +4745,11 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalCubeDSL.g:1417:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+    // InternalCubeDSL.g:1419:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
     public final void entryRuleXParenthesizedExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1418:1: ( ruleXParenthesizedExpression EOF )
-            // InternalCubeDSL.g:1419:1: ruleXParenthesizedExpression EOF
+            // InternalCubeDSL.g:1420:1: ( ruleXParenthesizedExpression EOF )
+            // InternalCubeDSL.g:1421:1: ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -4776,23 +4779,23 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalCubeDSL.g:1426:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1428:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
     public final void ruleXParenthesizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1430:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1431:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalCubeDSL.g:1432:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1433:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1431:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
-            // InternalCubeDSL.g:1432:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalCubeDSL.g:1433:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalCubeDSL.g:1434:3: ( rule__XParenthesizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1433:3: ( rule__XParenthesizedExpression__Group__0 )
-            // InternalCubeDSL.g:1433:4: rule__XParenthesizedExpression__Group__0
+            // InternalCubeDSL.g:1435:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalCubeDSL.g:1435:4: rule__XParenthesizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__0();
@@ -4827,11 +4830,11 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalCubeDSL.g:1442:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+    // InternalCubeDSL.g:1444:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
     public final void entryRuleXIfExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1443:1: ( ruleXIfExpression EOF )
-            // InternalCubeDSL.g:1444:1: ruleXIfExpression EOF
+            // InternalCubeDSL.g:1445:1: ( ruleXIfExpression EOF )
+            // InternalCubeDSL.g:1446:1: ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionRule()); 
@@ -4861,23 +4864,23 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalCubeDSL.g:1451:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1453:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
     public final void ruleXIfExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1455:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1456:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalCubeDSL.g:1457:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1458:2: ( ( rule__XIfExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1456:2: ( ( rule__XIfExpression__Group__0 ) )
-            // InternalCubeDSL.g:1457:3: ( rule__XIfExpression__Group__0 )
+            // InternalCubeDSL.g:1458:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalCubeDSL.g:1459:3: ( rule__XIfExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1458:3: ( rule__XIfExpression__Group__0 )
-            // InternalCubeDSL.g:1458:4: rule__XIfExpression__Group__0
+            // InternalCubeDSL.g:1460:3: ( rule__XIfExpression__Group__0 )
+            // InternalCubeDSL.g:1460:4: rule__XIfExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__0();
@@ -4912,11 +4915,11 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalCubeDSL.g:1467:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+    // InternalCubeDSL.g:1469:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
     public final void entryRuleXSwitchExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1468:1: ( ruleXSwitchExpression EOF )
-            // InternalCubeDSL.g:1469:1: ruleXSwitchExpression EOF
+            // InternalCubeDSL.g:1470:1: ( ruleXSwitchExpression EOF )
+            // InternalCubeDSL.g:1471:1: ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionRule()); 
@@ -4946,23 +4949,23 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalCubeDSL.g:1476:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1478:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
     public final void ruleXSwitchExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1480:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1481:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalCubeDSL.g:1482:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1483:2: ( ( rule__XSwitchExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1481:2: ( ( rule__XSwitchExpression__Group__0 ) )
-            // InternalCubeDSL.g:1482:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalCubeDSL.g:1483:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalCubeDSL.g:1484:3: ( rule__XSwitchExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1483:3: ( rule__XSwitchExpression__Group__0 )
-            // InternalCubeDSL.g:1483:4: rule__XSwitchExpression__Group__0
+            // InternalCubeDSL.g:1485:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalCubeDSL.g:1485:4: rule__XSwitchExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__0();
@@ -4997,11 +5000,11 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalCubeDSL.g:1492:1: entryRuleXCasePart : ruleXCasePart EOF ;
+    // InternalCubeDSL.g:1494:1: entryRuleXCasePart : ruleXCasePart EOF ;
     public final void entryRuleXCasePart() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1493:1: ( ruleXCasePart EOF )
-            // InternalCubeDSL.g:1494:1: ruleXCasePart EOF
+            // InternalCubeDSL.g:1495:1: ( ruleXCasePart EOF )
+            // InternalCubeDSL.g:1496:1: ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartRule()); 
@@ -5031,23 +5034,23 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalCubeDSL.g:1501:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+    // InternalCubeDSL.g:1503:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
     public final void ruleXCasePart() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1505:2: ( ( ( rule__XCasePart__Group__0 ) ) )
-            // InternalCubeDSL.g:1506:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalCubeDSL.g:1507:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+            // InternalCubeDSL.g:1508:2: ( ( rule__XCasePart__Group__0 ) )
             {
-            // InternalCubeDSL.g:1506:2: ( ( rule__XCasePart__Group__0 ) )
-            // InternalCubeDSL.g:1507:3: ( rule__XCasePart__Group__0 )
+            // InternalCubeDSL.g:1508:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalCubeDSL.g:1509:3: ( rule__XCasePart__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1508:3: ( rule__XCasePart__Group__0 )
-            // InternalCubeDSL.g:1508:4: rule__XCasePart__Group__0
+            // InternalCubeDSL.g:1510:3: ( rule__XCasePart__Group__0 )
+            // InternalCubeDSL.g:1510:4: rule__XCasePart__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__0();
@@ -5082,11 +5085,11 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalCubeDSL.g:1517:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+    // InternalCubeDSL.g:1519:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
     public final void entryRuleXForLoopExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1518:1: ( ruleXForLoopExpression EOF )
-            // InternalCubeDSL.g:1519:1: ruleXForLoopExpression EOF
+            // InternalCubeDSL.g:1520:1: ( ruleXForLoopExpression EOF )
+            // InternalCubeDSL.g:1521:1: ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionRule()); 
@@ -5116,23 +5119,23 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalCubeDSL.g:1526:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1528:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
     public final void ruleXForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1530:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1531:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalCubeDSL.g:1532:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1533:2: ( ( rule__XForLoopExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1531:2: ( ( rule__XForLoopExpression__Group__0 ) )
-            // InternalCubeDSL.g:1532:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalCubeDSL.g:1533:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalCubeDSL.g:1534:3: ( rule__XForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1533:3: ( rule__XForLoopExpression__Group__0 )
-            // InternalCubeDSL.g:1533:4: rule__XForLoopExpression__Group__0
+            // InternalCubeDSL.g:1535:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalCubeDSL.g:1535:4: rule__XForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__0();
@@ -5167,11 +5170,11 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalCubeDSL.g:1542:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
+    // InternalCubeDSL.g:1544:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
     public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1543:1: ( ruleXBasicForLoopExpression EOF )
-            // InternalCubeDSL.g:1544:1: ruleXBasicForLoopExpression EOF
+            // InternalCubeDSL.g:1545:1: ( ruleXBasicForLoopExpression EOF )
+            // InternalCubeDSL.g:1546:1: ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -5201,23 +5204,23 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalCubeDSL.g:1551:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1553:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
     public final void ruleXBasicForLoopExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1555:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1556:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalCubeDSL.g:1557:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1558:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1556:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
-            // InternalCubeDSL.g:1557:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalCubeDSL.g:1558:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalCubeDSL.g:1559:3: ( rule__XBasicForLoopExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1558:3: ( rule__XBasicForLoopExpression__Group__0 )
-            // InternalCubeDSL.g:1558:4: rule__XBasicForLoopExpression__Group__0
+            // InternalCubeDSL.g:1560:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalCubeDSL.g:1560:4: rule__XBasicForLoopExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__0();
@@ -5252,11 +5255,11 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalCubeDSL.g:1567:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+    // InternalCubeDSL.g:1569:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
     public final void entryRuleXWhileExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1568:1: ( ruleXWhileExpression EOF )
-            // InternalCubeDSL.g:1569:1: ruleXWhileExpression EOF
+            // InternalCubeDSL.g:1570:1: ( ruleXWhileExpression EOF )
+            // InternalCubeDSL.g:1571:1: ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionRule()); 
@@ -5286,23 +5289,23 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalCubeDSL.g:1576:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1578:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
     public final void ruleXWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1580:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1581:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalCubeDSL.g:1582:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1583:2: ( ( rule__XWhileExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1581:2: ( ( rule__XWhileExpression__Group__0 ) )
-            // InternalCubeDSL.g:1582:3: ( rule__XWhileExpression__Group__0 )
+            // InternalCubeDSL.g:1583:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalCubeDSL.g:1584:3: ( rule__XWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1583:3: ( rule__XWhileExpression__Group__0 )
-            // InternalCubeDSL.g:1583:4: rule__XWhileExpression__Group__0
+            // InternalCubeDSL.g:1585:3: ( rule__XWhileExpression__Group__0 )
+            // InternalCubeDSL.g:1585:4: rule__XWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__0();
@@ -5337,11 +5340,11 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalCubeDSL.g:1592:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+    // InternalCubeDSL.g:1594:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
     public final void entryRuleXDoWhileExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1593:1: ( ruleXDoWhileExpression EOF )
-            // InternalCubeDSL.g:1594:1: ruleXDoWhileExpression EOF
+            // InternalCubeDSL.g:1595:1: ( ruleXDoWhileExpression EOF )
+            // InternalCubeDSL.g:1596:1: ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionRule()); 
@@ -5371,23 +5374,23 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalCubeDSL.g:1601:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1603:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
     public final void ruleXDoWhileExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1605:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1606:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalCubeDSL.g:1607:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1608:2: ( ( rule__XDoWhileExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1606:2: ( ( rule__XDoWhileExpression__Group__0 ) )
-            // InternalCubeDSL.g:1607:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalCubeDSL.g:1608:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalCubeDSL.g:1609:3: ( rule__XDoWhileExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1608:3: ( rule__XDoWhileExpression__Group__0 )
-            // InternalCubeDSL.g:1608:4: rule__XDoWhileExpression__Group__0
+            // InternalCubeDSL.g:1610:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalCubeDSL.g:1610:4: rule__XDoWhileExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__0();
@@ -5422,11 +5425,11 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalCubeDSL.g:1617:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+    // InternalCubeDSL.g:1619:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
     public final void entryRuleXBlockExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1618:1: ( ruleXBlockExpression EOF )
-            // InternalCubeDSL.g:1619:1: ruleXBlockExpression EOF
+            // InternalCubeDSL.g:1620:1: ( ruleXBlockExpression EOF )
+            // InternalCubeDSL.g:1621:1: ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionRule()); 
@@ -5456,23 +5459,23 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalCubeDSL.g:1626:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1628:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
     public final void ruleXBlockExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1630:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1631:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalCubeDSL.g:1632:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1633:2: ( ( rule__XBlockExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1631:2: ( ( rule__XBlockExpression__Group__0 ) )
-            // InternalCubeDSL.g:1632:3: ( rule__XBlockExpression__Group__0 )
+            // InternalCubeDSL.g:1633:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalCubeDSL.g:1634:3: ( rule__XBlockExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1633:3: ( rule__XBlockExpression__Group__0 )
-            // InternalCubeDSL.g:1633:4: rule__XBlockExpression__Group__0
+            // InternalCubeDSL.g:1635:3: ( rule__XBlockExpression__Group__0 )
+            // InternalCubeDSL.g:1635:4: rule__XBlockExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__0();
@@ -5507,11 +5510,11 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalCubeDSL.g:1642:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
+    // InternalCubeDSL.g:1644:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
     public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1643:1: ( ruleXExpressionOrVarDeclaration EOF )
-            // InternalCubeDSL.g:1644:1: ruleXExpressionOrVarDeclaration EOF
+            // InternalCubeDSL.g:1645:1: ( ruleXExpressionOrVarDeclaration EOF )
+            // InternalCubeDSL.g:1646:1: ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -5541,23 +5544,23 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalCubeDSL.g:1651:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
+    // InternalCubeDSL.g:1653:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
     public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1655:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
-            // InternalCubeDSL.g:1656:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalCubeDSL.g:1657:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
+            // InternalCubeDSL.g:1658:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
             {
-            // InternalCubeDSL.g:1656:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
-            // InternalCubeDSL.g:1657:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalCubeDSL.g:1658:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalCubeDSL.g:1659:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1658:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
-            // InternalCubeDSL.g:1658:4: rule__XExpressionOrVarDeclaration__Alternatives
+            // InternalCubeDSL.g:1660:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalCubeDSL.g:1660:4: rule__XExpressionOrVarDeclaration__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionOrVarDeclaration__Alternatives();
@@ -5592,11 +5595,11 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalCubeDSL.g:1667:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+    // InternalCubeDSL.g:1669:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
     public final void entryRuleXVariableDeclaration() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1668:1: ( ruleXVariableDeclaration EOF )
-            // InternalCubeDSL.g:1669:1: ruleXVariableDeclaration EOF
+            // InternalCubeDSL.g:1670:1: ( ruleXVariableDeclaration EOF )
+            // InternalCubeDSL.g:1671:1: ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationRule()); 
@@ -5626,23 +5629,23 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalCubeDSL.g:1676:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+    // InternalCubeDSL.g:1678:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
     public final void ruleXVariableDeclaration() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1680:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
-            // InternalCubeDSL.g:1681:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalCubeDSL.g:1682:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+            // InternalCubeDSL.g:1683:2: ( ( rule__XVariableDeclaration__Group__0 ) )
             {
-            // InternalCubeDSL.g:1681:2: ( ( rule__XVariableDeclaration__Group__0 ) )
-            // InternalCubeDSL.g:1682:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalCubeDSL.g:1683:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalCubeDSL.g:1684:3: ( rule__XVariableDeclaration__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1683:3: ( rule__XVariableDeclaration__Group__0 )
-            // InternalCubeDSL.g:1683:4: rule__XVariableDeclaration__Group__0
+            // InternalCubeDSL.g:1685:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalCubeDSL.g:1685:4: rule__XVariableDeclaration__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__0();
@@ -5677,11 +5680,11 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalCubeDSL.g:1692:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+    // InternalCubeDSL.g:1694:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
     public final void entryRuleJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1693:1: ( ruleJvmFormalParameter EOF )
-            // InternalCubeDSL.g:1694:1: ruleJvmFormalParameter EOF
+            // InternalCubeDSL.g:1695:1: ( ruleJvmFormalParameter EOF )
+            // InternalCubeDSL.g:1696:1: ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterRule()); 
@@ -5711,23 +5714,23 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalCubeDSL.g:1701:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+    // InternalCubeDSL.g:1703:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
     public final void ruleJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1705:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
-            // InternalCubeDSL.g:1706:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalCubeDSL.g:1707:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+            // InternalCubeDSL.g:1708:2: ( ( rule__JvmFormalParameter__Group__0 ) )
             {
-            // InternalCubeDSL.g:1706:2: ( ( rule__JvmFormalParameter__Group__0 ) )
-            // InternalCubeDSL.g:1707:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalCubeDSL.g:1708:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalCubeDSL.g:1709:3: ( rule__JvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1708:3: ( rule__JvmFormalParameter__Group__0 )
-            // InternalCubeDSL.g:1708:4: rule__JvmFormalParameter__Group__0
+            // InternalCubeDSL.g:1710:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalCubeDSL.g:1710:4: rule__JvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__0();
@@ -5762,11 +5765,11 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalCubeDSL.g:1717:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+    // InternalCubeDSL.g:1719:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
     public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1718:1: ( ruleFullJvmFormalParameter EOF )
-            // InternalCubeDSL.g:1719:1: ruleFullJvmFormalParameter EOF
+            // InternalCubeDSL.g:1720:1: ( ruleFullJvmFormalParameter EOF )
+            // InternalCubeDSL.g:1721:1: ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -5796,23 +5799,23 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalCubeDSL.g:1726:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+    // InternalCubeDSL.g:1728:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
     public final void ruleFullJvmFormalParameter() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1730:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
-            // InternalCubeDSL.g:1731:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalCubeDSL.g:1732:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+            // InternalCubeDSL.g:1733:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
             {
-            // InternalCubeDSL.g:1731:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
-            // InternalCubeDSL.g:1732:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalCubeDSL.g:1733:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalCubeDSL.g:1734:3: ( rule__FullJvmFormalParameter__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1733:3: ( rule__FullJvmFormalParameter__Group__0 )
-            // InternalCubeDSL.g:1733:4: rule__FullJvmFormalParameter__Group__0
+            // InternalCubeDSL.g:1735:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalCubeDSL.g:1735:4: rule__FullJvmFormalParameter__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__0();
@@ -5847,11 +5850,11 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalCubeDSL.g:1742:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+    // InternalCubeDSL.g:1744:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
     public final void entryRuleXFeatureCall() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1743:1: ( ruleXFeatureCall EOF )
-            // InternalCubeDSL.g:1744:1: ruleXFeatureCall EOF
+            // InternalCubeDSL.g:1745:1: ( ruleXFeatureCall EOF )
+            // InternalCubeDSL.g:1746:1: ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallRule()); 
@@ -5881,23 +5884,23 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalCubeDSL.g:1751:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+    // InternalCubeDSL.g:1753:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
     public final void ruleXFeatureCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1755:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
-            // InternalCubeDSL.g:1756:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalCubeDSL.g:1757:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+            // InternalCubeDSL.g:1758:2: ( ( rule__XFeatureCall__Group__0 ) )
             {
-            // InternalCubeDSL.g:1756:2: ( ( rule__XFeatureCall__Group__0 ) )
-            // InternalCubeDSL.g:1757:3: ( rule__XFeatureCall__Group__0 )
+            // InternalCubeDSL.g:1758:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalCubeDSL.g:1759:3: ( rule__XFeatureCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1758:3: ( rule__XFeatureCall__Group__0 )
-            // InternalCubeDSL.g:1758:4: rule__XFeatureCall__Group__0
+            // InternalCubeDSL.g:1760:3: ( rule__XFeatureCall__Group__0 )
+            // InternalCubeDSL.g:1760:4: rule__XFeatureCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__0();
@@ -5932,11 +5935,11 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalCubeDSL.g:1767:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+    // InternalCubeDSL.g:1769:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
     public final void entryRuleFeatureCallID() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1768:1: ( ruleFeatureCallID EOF )
-            // InternalCubeDSL.g:1769:1: ruleFeatureCallID EOF
+            // InternalCubeDSL.g:1770:1: ( ruleFeatureCallID EOF )
+            // InternalCubeDSL.g:1771:1: ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDRule()); 
@@ -5966,23 +5969,23 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalCubeDSL.g:1776:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+    // InternalCubeDSL.g:1778:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
     public final void ruleFeatureCallID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1780:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
-            // InternalCubeDSL.g:1781:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalCubeDSL.g:1782:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+            // InternalCubeDSL.g:1783:2: ( ( rule__FeatureCallID__Alternatives ) )
             {
-            // InternalCubeDSL.g:1781:2: ( ( rule__FeatureCallID__Alternatives ) )
-            // InternalCubeDSL.g:1782:3: ( rule__FeatureCallID__Alternatives )
+            // InternalCubeDSL.g:1783:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalCubeDSL.g:1784:3: ( rule__FeatureCallID__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1783:3: ( rule__FeatureCallID__Alternatives )
-            // InternalCubeDSL.g:1783:4: rule__FeatureCallID__Alternatives
+            // InternalCubeDSL.g:1785:3: ( rule__FeatureCallID__Alternatives )
+            // InternalCubeDSL.g:1785:4: rule__FeatureCallID__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FeatureCallID__Alternatives();
@@ -6017,11 +6020,11 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalCubeDSL.g:1792:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+    // InternalCubeDSL.g:1794:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
     public final void entryRuleIdOrSuper() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1793:1: ( ruleIdOrSuper EOF )
-            // InternalCubeDSL.g:1794:1: ruleIdOrSuper EOF
+            // InternalCubeDSL.g:1795:1: ( ruleIdOrSuper EOF )
+            // InternalCubeDSL.g:1796:1: ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperRule()); 
@@ -6051,23 +6054,23 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalCubeDSL.g:1801:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+    // InternalCubeDSL.g:1803:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
     public final void ruleIdOrSuper() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1805:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
-            // InternalCubeDSL.g:1806:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalCubeDSL.g:1807:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+            // InternalCubeDSL.g:1808:2: ( ( rule__IdOrSuper__Alternatives ) )
             {
-            // InternalCubeDSL.g:1806:2: ( ( rule__IdOrSuper__Alternatives ) )
-            // InternalCubeDSL.g:1807:3: ( rule__IdOrSuper__Alternatives )
+            // InternalCubeDSL.g:1808:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalCubeDSL.g:1809:3: ( rule__IdOrSuper__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:1808:3: ( rule__IdOrSuper__Alternatives )
-            // InternalCubeDSL.g:1808:4: rule__IdOrSuper__Alternatives
+            // InternalCubeDSL.g:1810:3: ( rule__IdOrSuper__Alternatives )
+            // InternalCubeDSL.g:1810:4: rule__IdOrSuper__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__IdOrSuper__Alternatives();
@@ -6102,11 +6105,11 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalCubeDSL.g:1817:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+    // InternalCubeDSL.g:1819:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
     public final void entryRuleXConstructorCall() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1818:1: ( ruleXConstructorCall EOF )
-            // InternalCubeDSL.g:1819:1: ruleXConstructorCall EOF
+            // InternalCubeDSL.g:1820:1: ( ruleXConstructorCall EOF )
+            // InternalCubeDSL.g:1821:1: ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallRule()); 
@@ -6136,23 +6139,23 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalCubeDSL.g:1826:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+    // InternalCubeDSL.g:1828:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
     public final void ruleXConstructorCall() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1830:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
-            // InternalCubeDSL.g:1831:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalCubeDSL.g:1832:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+            // InternalCubeDSL.g:1833:2: ( ( rule__XConstructorCall__Group__0 ) )
             {
-            // InternalCubeDSL.g:1831:2: ( ( rule__XConstructorCall__Group__0 ) )
-            // InternalCubeDSL.g:1832:3: ( rule__XConstructorCall__Group__0 )
+            // InternalCubeDSL.g:1833:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalCubeDSL.g:1834:3: ( rule__XConstructorCall__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1833:3: ( rule__XConstructorCall__Group__0 )
-            // InternalCubeDSL.g:1833:4: rule__XConstructorCall__Group__0
+            // InternalCubeDSL.g:1835:3: ( rule__XConstructorCall__Group__0 )
+            // InternalCubeDSL.g:1835:4: rule__XConstructorCall__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__0();
@@ -6187,11 +6190,11 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalCubeDSL.g:1842:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+    // InternalCubeDSL.g:1844:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
     public final void entryRuleXBooleanLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1843:1: ( ruleXBooleanLiteral EOF )
-            // InternalCubeDSL.g:1844:1: ruleXBooleanLiteral EOF
+            // InternalCubeDSL.g:1845:1: ( ruleXBooleanLiteral EOF )
+            // InternalCubeDSL.g:1846:1: ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralRule()); 
@@ -6221,23 +6224,23 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalCubeDSL.g:1851:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+    // InternalCubeDSL.g:1853:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
     public final void ruleXBooleanLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1855:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
-            // InternalCubeDSL.g:1856:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1857:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+            // InternalCubeDSL.g:1858:2: ( ( rule__XBooleanLiteral__Group__0 ) )
             {
-            // InternalCubeDSL.g:1856:2: ( ( rule__XBooleanLiteral__Group__0 ) )
-            // InternalCubeDSL.g:1857:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalCubeDSL.g:1858:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1859:3: ( rule__XBooleanLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1858:3: ( rule__XBooleanLiteral__Group__0 )
-            // InternalCubeDSL.g:1858:4: rule__XBooleanLiteral__Group__0
+            // InternalCubeDSL.g:1860:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalCubeDSL.g:1860:4: rule__XBooleanLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__0();
@@ -6272,11 +6275,11 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalCubeDSL.g:1867:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+    // InternalCubeDSL.g:1869:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
     public final void entryRuleXNullLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1868:1: ( ruleXNullLiteral EOF )
-            // InternalCubeDSL.g:1869:1: ruleXNullLiteral EOF
+            // InternalCubeDSL.g:1870:1: ( ruleXNullLiteral EOF )
+            // InternalCubeDSL.g:1871:1: ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralRule()); 
@@ -6306,23 +6309,23 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalCubeDSL.g:1876:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+    // InternalCubeDSL.g:1878:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
     public final void ruleXNullLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1880:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
-            // InternalCubeDSL.g:1881:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1882:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+            // InternalCubeDSL.g:1883:2: ( ( rule__XNullLiteral__Group__0 ) )
             {
-            // InternalCubeDSL.g:1881:2: ( ( rule__XNullLiteral__Group__0 ) )
-            // InternalCubeDSL.g:1882:3: ( rule__XNullLiteral__Group__0 )
+            // InternalCubeDSL.g:1883:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1884:3: ( rule__XNullLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1883:3: ( rule__XNullLiteral__Group__0 )
-            // InternalCubeDSL.g:1883:4: rule__XNullLiteral__Group__0
+            // InternalCubeDSL.g:1885:3: ( rule__XNullLiteral__Group__0 )
+            // InternalCubeDSL.g:1885:4: rule__XNullLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__0();
@@ -6357,11 +6360,11 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalCubeDSL.g:1892:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+    // InternalCubeDSL.g:1894:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
     public final void entryRuleXNumberLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1893:1: ( ruleXNumberLiteral EOF )
-            // InternalCubeDSL.g:1894:1: ruleXNumberLiteral EOF
+            // InternalCubeDSL.g:1895:1: ( ruleXNumberLiteral EOF )
+            // InternalCubeDSL.g:1896:1: ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralRule()); 
@@ -6391,23 +6394,23 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalCubeDSL.g:1901:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+    // InternalCubeDSL.g:1903:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
     public final void ruleXNumberLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1905:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
-            // InternalCubeDSL.g:1906:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1907:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+            // InternalCubeDSL.g:1908:2: ( ( rule__XNumberLiteral__Group__0 ) )
             {
-            // InternalCubeDSL.g:1906:2: ( ( rule__XNumberLiteral__Group__0 ) )
-            // InternalCubeDSL.g:1907:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalCubeDSL.g:1908:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1909:3: ( rule__XNumberLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1908:3: ( rule__XNumberLiteral__Group__0 )
-            // InternalCubeDSL.g:1908:4: rule__XNumberLiteral__Group__0
+            // InternalCubeDSL.g:1910:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalCubeDSL.g:1910:4: rule__XNumberLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__0();
@@ -6442,11 +6445,11 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalCubeDSL.g:1917:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+    // InternalCubeDSL.g:1919:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
     public final void entryRuleXStringLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1918:1: ( ruleXStringLiteral EOF )
-            // InternalCubeDSL.g:1919:1: ruleXStringLiteral EOF
+            // InternalCubeDSL.g:1920:1: ( ruleXStringLiteral EOF )
+            // InternalCubeDSL.g:1921:1: ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralRule()); 
@@ -6476,23 +6479,23 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalCubeDSL.g:1926:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+    // InternalCubeDSL.g:1928:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
     public final void ruleXStringLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1930:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
-            // InternalCubeDSL.g:1931:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1932:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+            // InternalCubeDSL.g:1933:2: ( ( rule__XStringLiteral__Group__0 ) )
             {
-            // InternalCubeDSL.g:1931:2: ( ( rule__XStringLiteral__Group__0 ) )
-            // InternalCubeDSL.g:1932:3: ( rule__XStringLiteral__Group__0 )
+            // InternalCubeDSL.g:1933:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1934:3: ( rule__XStringLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1933:3: ( rule__XStringLiteral__Group__0 )
-            // InternalCubeDSL.g:1933:4: rule__XStringLiteral__Group__0
+            // InternalCubeDSL.g:1935:3: ( rule__XStringLiteral__Group__0 )
+            // InternalCubeDSL.g:1935:4: rule__XStringLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__0();
@@ -6527,11 +6530,11 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalCubeDSL.g:1942:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+    // InternalCubeDSL.g:1944:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
     public final void entryRuleXTypeLiteral() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1943:1: ( ruleXTypeLiteral EOF )
-            // InternalCubeDSL.g:1944:1: ruleXTypeLiteral EOF
+            // InternalCubeDSL.g:1945:1: ( ruleXTypeLiteral EOF )
+            // InternalCubeDSL.g:1946:1: ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralRule()); 
@@ -6561,23 +6564,23 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalCubeDSL.g:1951:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+    // InternalCubeDSL.g:1953:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
     public final void ruleXTypeLiteral() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1955:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
-            // InternalCubeDSL.g:1956:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1957:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+            // InternalCubeDSL.g:1958:2: ( ( rule__XTypeLiteral__Group__0 ) )
             {
-            // InternalCubeDSL.g:1956:2: ( ( rule__XTypeLiteral__Group__0 ) )
-            // InternalCubeDSL.g:1957:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalCubeDSL.g:1958:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalCubeDSL.g:1959:3: ( rule__XTypeLiteral__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1958:3: ( rule__XTypeLiteral__Group__0 )
-            // InternalCubeDSL.g:1958:4: rule__XTypeLiteral__Group__0
+            // InternalCubeDSL.g:1960:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalCubeDSL.g:1960:4: rule__XTypeLiteral__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__0();
@@ -6612,11 +6615,11 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalCubeDSL.g:1967:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+    // InternalCubeDSL.g:1969:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
     public final void entryRuleXThrowExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1968:1: ( ruleXThrowExpression EOF )
-            // InternalCubeDSL.g:1969:1: ruleXThrowExpression EOF
+            // InternalCubeDSL.g:1970:1: ( ruleXThrowExpression EOF )
+            // InternalCubeDSL.g:1971:1: ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionRule()); 
@@ -6646,23 +6649,23 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalCubeDSL.g:1976:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:1978:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
     public final void ruleXThrowExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:1980:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:1981:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalCubeDSL.g:1982:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:1983:2: ( ( rule__XThrowExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:1981:2: ( ( rule__XThrowExpression__Group__0 ) )
-            // InternalCubeDSL.g:1982:3: ( rule__XThrowExpression__Group__0 )
+            // InternalCubeDSL.g:1983:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalCubeDSL.g:1984:3: ( rule__XThrowExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:1983:3: ( rule__XThrowExpression__Group__0 )
-            // InternalCubeDSL.g:1983:4: rule__XThrowExpression__Group__0
+            // InternalCubeDSL.g:1985:3: ( rule__XThrowExpression__Group__0 )
+            // InternalCubeDSL.g:1985:4: rule__XThrowExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__0();
@@ -6697,11 +6700,11 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalCubeDSL.g:1992:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+    // InternalCubeDSL.g:1994:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
     public final void entryRuleXReturnExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:1993:1: ( ruleXReturnExpression EOF )
-            // InternalCubeDSL.g:1994:1: ruleXReturnExpression EOF
+            // InternalCubeDSL.g:1995:1: ( ruleXReturnExpression EOF )
+            // InternalCubeDSL.g:1996:1: ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionRule()); 
@@ -6731,23 +6734,23 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalCubeDSL.g:2001:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:2003:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
     public final void ruleXReturnExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2005:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:2006:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalCubeDSL.g:2007:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:2008:2: ( ( rule__XReturnExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:2006:2: ( ( rule__XReturnExpression__Group__0 ) )
-            // InternalCubeDSL.g:2007:3: ( rule__XReturnExpression__Group__0 )
+            // InternalCubeDSL.g:2008:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalCubeDSL.g:2009:3: ( rule__XReturnExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2008:3: ( rule__XReturnExpression__Group__0 )
-            // InternalCubeDSL.g:2008:4: rule__XReturnExpression__Group__0
+            // InternalCubeDSL.g:2010:3: ( rule__XReturnExpression__Group__0 )
+            // InternalCubeDSL.g:2010:4: rule__XReturnExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__0();
@@ -6782,11 +6785,11 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalCubeDSL.g:2017:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+    // InternalCubeDSL.g:2019:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
     public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2018:1: ( ruleXTryCatchFinallyExpression EOF )
-            // InternalCubeDSL.g:2019:1: ruleXTryCatchFinallyExpression EOF
+            // InternalCubeDSL.g:2020:1: ( ruleXTryCatchFinallyExpression EOF )
+            // InternalCubeDSL.g:2021:1: ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -6816,23 +6819,23 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalCubeDSL.g:2026:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:2028:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
     public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2030:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:2031:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalCubeDSL.g:2032:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:2033:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:2031:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
-            // InternalCubeDSL.g:2032:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalCubeDSL.g:2033:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalCubeDSL.g:2034:3: ( rule__XTryCatchFinallyExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2033:3: ( rule__XTryCatchFinallyExpression__Group__0 )
-            // InternalCubeDSL.g:2033:4: rule__XTryCatchFinallyExpression__Group__0
+            // InternalCubeDSL.g:2035:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalCubeDSL.g:2035:4: rule__XTryCatchFinallyExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__0();
@@ -6867,11 +6870,11 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalCubeDSL.g:2042:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
+    // InternalCubeDSL.g:2044:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
     public final void entryRuleXSynchronizedExpression() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2043:1: ( ruleXSynchronizedExpression EOF )
-            // InternalCubeDSL.g:2044:1: ruleXSynchronizedExpression EOF
+            // InternalCubeDSL.g:2045:1: ( ruleXSynchronizedExpression EOF )
+            // InternalCubeDSL.g:2046:1: ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -6901,23 +6904,23 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalCubeDSL.g:2051:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
+    // InternalCubeDSL.g:2053:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
     public final void ruleXSynchronizedExpression() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2055:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
-            // InternalCubeDSL.g:2056:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalCubeDSL.g:2057:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
+            // InternalCubeDSL.g:2058:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
             {
-            // InternalCubeDSL.g:2056:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
-            // InternalCubeDSL.g:2057:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalCubeDSL.g:2058:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalCubeDSL.g:2059:3: ( rule__XSynchronizedExpression__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2058:3: ( rule__XSynchronizedExpression__Group__0 )
-            // InternalCubeDSL.g:2058:4: rule__XSynchronizedExpression__Group__0
+            // InternalCubeDSL.g:2060:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalCubeDSL.g:2060:4: rule__XSynchronizedExpression__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__0();
@@ -6952,11 +6955,11 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalCubeDSL.g:2067:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+    // InternalCubeDSL.g:2069:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
     public final void entryRuleXCatchClause() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2068:1: ( ruleXCatchClause EOF )
-            // InternalCubeDSL.g:2069:1: ruleXCatchClause EOF
+            // InternalCubeDSL.g:2070:1: ( ruleXCatchClause EOF )
+            // InternalCubeDSL.g:2071:1: ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseRule()); 
@@ -6986,23 +6989,23 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalCubeDSL.g:2076:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+    // InternalCubeDSL.g:2078:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
     public final void ruleXCatchClause() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2080:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
-            // InternalCubeDSL.g:2081:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalCubeDSL.g:2082:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+            // InternalCubeDSL.g:2083:2: ( ( rule__XCatchClause__Group__0 ) )
             {
-            // InternalCubeDSL.g:2081:2: ( ( rule__XCatchClause__Group__0 ) )
-            // InternalCubeDSL.g:2082:3: ( rule__XCatchClause__Group__0 )
+            // InternalCubeDSL.g:2083:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalCubeDSL.g:2084:3: ( rule__XCatchClause__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2083:3: ( rule__XCatchClause__Group__0 )
-            // InternalCubeDSL.g:2083:4: rule__XCatchClause__Group__0
+            // InternalCubeDSL.g:2085:3: ( rule__XCatchClause__Group__0 )
+            // InternalCubeDSL.g:2085:4: rule__XCatchClause__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__0();
@@ -7037,11 +7040,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalCubeDSL.g:2092:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalCubeDSL.g:2094:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2093:1: ( ruleQualifiedName EOF )
-            // InternalCubeDSL.g:2094:1: ruleQualifiedName EOF
+            // InternalCubeDSL.g:2095:1: ( ruleQualifiedName EOF )
+            // InternalCubeDSL.g:2096:1: ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameRule()); 
@@ -7071,23 +7074,23 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalCubeDSL.g:2101:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalCubeDSL.g:2103:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2105:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalCubeDSL.g:2106:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalCubeDSL.g:2107:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalCubeDSL.g:2108:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalCubeDSL.g:2106:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalCubeDSL.g:2107:3: ( rule__QualifiedName__Group__0 )
+            // InternalCubeDSL.g:2108:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalCubeDSL.g:2109:3: ( rule__QualifiedName__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2108:3: ( rule__QualifiedName__Group__0 )
-            // InternalCubeDSL.g:2108:4: rule__QualifiedName__Group__0
+            // InternalCubeDSL.g:2110:3: ( rule__QualifiedName__Group__0 )
+            // InternalCubeDSL.g:2110:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -7122,14 +7125,14 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalCubeDSL.g:2117:1: entryRuleNumber : ruleNumber EOF ;
+    // InternalCubeDSL.g:2119:1: entryRuleNumber : ruleNumber EOF ;
     public final void entryRuleNumber() throws RecognitionException {
          
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalCubeDSL.g:2121:1: ( ruleNumber EOF )
-            // InternalCubeDSL.g:2122:1: ruleNumber EOF
+            // InternalCubeDSL.g:2123:1: ( ruleNumber EOF )
+            // InternalCubeDSL.g:2124:1: ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberRule()); 
@@ -7162,24 +7165,24 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalCubeDSL.g:2132:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+    // InternalCubeDSL.g:2134:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
     public final void ruleNumber() throws RecognitionException {
 
         		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2137:2: ( ( ( rule__Number__Alternatives ) ) )
-            // InternalCubeDSL.g:2138:2: ( ( rule__Number__Alternatives ) )
+            // InternalCubeDSL.g:2139:2: ( ( ( rule__Number__Alternatives ) ) )
+            // InternalCubeDSL.g:2140:2: ( ( rule__Number__Alternatives ) )
             {
-            // InternalCubeDSL.g:2138:2: ( ( rule__Number__Alternatives ) )
-            // InternalCubeDSL.g:2139:3: ( rule__Number__Alternatives )
+            // InternalCubeDSL.g:2140:2: ( ( rule__Number__Alternatives ) )
+            // InternalCubeDSL.g:2141:3: ( rule__Number__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:2140:3: ( rule__Number__Alternatives )
-            // InternalCubeDSL.g:2140:4: rule__Number__Alternatives
+            // InternalCubeDSL.g:2142:3: ( rule__Number__Alternatives )
+            // InternalCubeDSL.g:2142:4: rule__Number__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives();
@@ -7215,11 +7218,11 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalCubeDSL.g:2150:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+    // InternalCubeDSL.g:2152:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
     public final void entryRuleJvmTypeReference() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2151:1: ( ruleJvmTypeReference EOF )
-            // InternalCubeDSL.g:2152:1: ruleJvmTypeReference EOF
+            // InternalCubeDSL.g:2153:1: ( ruleJvmTypeReference EOF )
+            // InternalCubeDSL.g:2154:1: ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceRule()); 
@@ -7249,23 +7252,23 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalCubeDSL.g:2159:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+    // InternalCubeDSL.g:2161:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
     public final void ruleJvmTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2163:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
-            // InternalCubeDSL.g:2164:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalCubeDSL.g:2165:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+            // InternalCubeDSL.g:2166:2: ( ( rule__JvmTypeReference__Alternatives ) )
             {
-            // InternalCubeDSL.g:2164:2: ( ( rule__JvmTypeReference__Alternatives ) )
-            // InternalCubeDSL.g:2165:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalCubeDSL.g:2166:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalCubeDSL.g:2167:3: ( rule__JvmTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:2166:3: ( rule__JvmTypeReference__Alternatives )
-            // InternalCubeDSL.g:2166:4: rule__JvmTypeReference__Alternatives
+            // InternalCubeDSL.g:2168:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalCubeDSL.g:2168:4: rule__JvmTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Alternatives();
@@ -7300,11 +7303,11 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalCubeDSL.g:2175:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+    // InternalCubeDSL.g:2177:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
     public final void entryRuleArrayBrackets() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2176:1: ( ruleArrayBrackets EOF )
-            // InternalCubeDSL.g:2177:1: ruleArrayBrackets EOF
+            // InternalCubeDSL.g:2178:1: ( ruleArrayBrackets EOF )
+            // InternalCubeDSL.g:2179:1: ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsRule()); 
@@ -7334,23 +7337,23 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalCubeDSL.g:2184:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+    // InternalCubeDSL.g:2186:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
     public final void ruleArrayBrackets() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2188:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
-            // InternalCubeDSL.g:2189:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalCubeDSL.g:2190:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+            // InternalCubeDSL.g:2191:2: ( ( rule__ArrayBrackets__Group__0 ) )
             {
-            // InternalCubeDSL.g:2189:2: ( ( rule__ArrayBrackets__Group__0 ) )
-            // InternalCubeDSL.g:2190:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalCubeDSL.g:2191:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalCubeDSL.g:2192:3: ( rule__ArrayBrackets__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2191:3: ( rule__ArrayBrackets__Group__0 )
-            // InternalCubeDSL.g:2191:4: rule__ArrayBrackets__Group__0
+            // InternalCubeDSL.g:2193:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalCubeDSL.g:2193:4: rule__ArrayBrackets__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__0();
@@ -7385,11 +7388,11 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalCubeDSL.g:2200:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+    // InternalCubeDSL.g:2202:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
     public final void entryRuleXFunctionTypeRef() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2201:1: ( ruleXFunctionTypeRef EOF )
-            // InternalCubeDSL.g:2202:1: ruleXFunctionTypeRef EOF
+            // InternalCubeDSL.g:2203:1: ( ruleXFunctionTypeRef EOF )
+            // InternalCubeDSL.g:2204:1: ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefRule()); 
@@ -7419,23 +7422,23 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalCubeDSL.g:2209:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+    // InternalCubeDSL.g:2211:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
     public final void ruleXFunctionTypeRef() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2213:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
-            // InternalCubeDSL.g:2214:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalCubeDSL.g:2215:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+            // InternalCubeDSL.g:2216:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
             {
-            // InternalCubeDSL.g:2214:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
-            // InternalCubeDSL.g:2215:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalCubeDSL.g:2216:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalCubeDSL.g:2217:3: ( rule__XFunctionTypeRef__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2216:3: ( rule__XFunctionTypeRef__Group__0 )
-            // InternalCubeDSL.g:2216:4: rule__XFunctionTypeRef__Group__0
+            // InternalCubeDSL.g:2218:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalCubeDSL.g:2218:4: rule__XFunctionTypeRef__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__0();
@@ -7470,11 +7473,11 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalCubeDSL.g:2225:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+    // InternalCubeDSL.g:2227:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
     public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2226:1: ( ruleJvmParameterizedTypeReference EOF )
-            // InternalCubeDSL.g:2227:1: ruleJvmParameterizedTypeReference EOF
+            // InternalCubeDSL.g:2228:1: ( ruleJvmParameterizedTypeReference EOF )
+            // InternalCubeDSL.g:2229:1: ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -7504,23 +7507,23 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalCubeDSL.g:2234:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+    // InternalCubeDSL.g:2236:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
     public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2238:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
-            // InternalCubeDSL.g:2239:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalCubeDSL.g:2240:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+            // InternalCubeDSL.g:2241:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
             {
-            // InternalCubeDSL.g:2239:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
-            // InternalCubeDSL.g:2240:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalCubeDSL.g:2241:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalCubeDSL.g:2242:3: ( rule__JvmParameterizedTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2241:3: ( rule__JvmParameterizedTypeReference__Group__0 )
-            // InternalCubeDSL.g:2241:4: rule__JvmParameterizedTypeReference__Group__0
+            // InternalCubeDSL.g:2243:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalCubeDSL.g:2243:4: rule__JvmParameterizedTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__0();
@@ -7555,11 +7558,11 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalCubeDSL.g:2250:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+    // InternalCubeDSL.g:2252:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
     public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2251:1: ( ruleJvmArgumentTypeReference EOF )
-            // InternalCubeDSL.g:2252:1: ruleJvmArgumentTypeReference EOF
+            // InternalCubeDSL.g:2253:1: ( ruleJvmArgumentTypeReference EOF )
+            // InternalCubeDSL.g:2254:1: ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -7589,23 +7592,23 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalCubeDSL.g:2259:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+    // InternalCubeDSL.g:2261:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
     public final void ruleJvmArgumentTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2263:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
-            // InternalCubeDSL.g:2264:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalCubeDSL.g:2265:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+            // InternalCubeDSL.g:2266:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
             {
-            // InternalCubeDSL.g:2264:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
-            // InternalCubeDSL.g:2265:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalCubeDSL.g:2266:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalCubeDSL.g:2267:3: ( rule__JvmArgumentTypeReference__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:2266:3: ( rule__JvmArgumentTypeReference__Alternatives )
-            // InternalCubeDSL.g:2266:4: rule__JvmArgumentTypeReference__Alternatives
+            // InternalCubeDSL.g:2268:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalCubeDSL.g:2268:4: rule__JvmArgumentTypeReference__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__JvmArgumentTypeReference__Alternatives();
@@ -7640,11 +7643,11 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalCubeDSL.g:2275:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+    // InternalCubeDSL.g:2277:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
     public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2276:1: ( ruleJvmWildcardTypeReference EOF )
-            // InternalCubeDSL.g:2277:1: ruleJvmWildcardTypeReference EOF
+            // InternalCubeDSL.g:2278:1: ( ruleJvmWildcardTypeReference EOF )
+            // InternalCubeDSL.g:2279:1: ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -7674,23 +7677,23 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalCubeDSL.g:2284:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+    // InternalCubeDSL.g:2286:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
     public final void ruleJvmWildcardTypeReference() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2288:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
-            // InternalCubeDSL.g:2289:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalCubeDSL.g:2290:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+            // InternalCubeDSL.g:2291:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
             {
-            // InternalCubeDSL.g:2289:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
-            // InternalCubeDSL.g:2290:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalCubeDSL.g:2291:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalCubeDSL.g:2292:3: ( rule__JvmWildcardTypeReference__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2291:3: ( rule__JvmWildcardTypeReference__Group__0 )
-            // InternalCubeDSL.g:2291:4: rule__JvmWildcardTypeReference__Group__0
+            // InternalCubeDSL.g:2293:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalCubeDSL.g:2293:4: rule__JvmWildcardTypeReference__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__0();
@@ -7725,11 +7728,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalCubeDSL.g:2300:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+    // InternalCubeDSL.g:2302:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
     public final void entryRuleJvmUpperBound() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2301:1: ( ruleJvmUpperBound EOF )
-            // InternalCubeDSL.g:2302:1: ruleJvmUpperBound EOF
+            // InternalCubeDSL.g:2303:1: ( ruleJvmUpperBound EOF )
+            // InternalCubeDSL.g:2304:1: ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundRule()); 
@@ -7759,23 +7762,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalCubeDSL.g:2309:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+    // InternalCubeDSL.g:2311:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
     public final void ruleJvmUpperBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2313:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
-            // InternalCubeDSL.g:2314:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalCubeDSL.g:2315:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+            // InternalCubeDSL.g:2316:2: ( ( rule__JvmUpperBound__Group__0 ) )
             {
-            // InternalCubeDSL.g:2314:2: ( ( rule__JvmUpperBound__Group__0 ) )
-            // InternalCubeDSL.g:2315:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalCubeDSL.g:2316:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalCubeDSL.g:2317:3: ( rule__JvmUpperBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2316:3: ( rule__JvmUpperBound__Group__0 )
-            // InternalCubeDSL.g:2316:4: rule__JvmUpperBound__Group__0
+            // InternalCubeDSL.g:2318:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalCubeDSL.g:2318:4: rule__JvmUpperBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__0();
@@ -7810,11 +7813,11 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalCubeDSL.g:2325:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+    // InternalCubeDSL.g:2327:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
     public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2326:1: ( ruleJvmUpperBoundAnded EOF )
-            // InternalCubeDSL.g:2327:1: ruleJvmUpperBoundAnded EOF
+            // InternalCubeDSL.g:2328:1: ( ruleJvmUpperBoundAnded EOF )
+            // InternalCubeDSL.g:2329:1: ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -7844,23 +7847,23 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalCubeDSL.g:2334:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+    // InternalCubeDSL.g:2336:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
     public final void ruleJvmUpperBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2338:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
-            // InternalCubeDSL.g:2339:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalCubeDSL.g:2340:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+            // InternalCubeDSL.g:2341:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
             {
-            // InternalCubeDSL.g:2339:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
-            // InternalCubeDSL.g:2340:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalCubeDSL.g:2341:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalCubeDSL.g:2342:3: ( rule__JvmUpperBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2341:3: ( rule__JvmUpperBoundAnded__Group__0 )
-            // InternalCubeDSL.g:2341:4: rule__JvmUpperBoundAnded__Group__0
+            // InternalCubeDSL.g:2343:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalCubeDSL.g:2343:4: rule__JvmUpperBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__0();
@@ -7895,11 +7898,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalCubeDSL.g:2350:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+    // InternalCubeDSL.g:2352:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
     public final void entryRuleJvmLowerBound() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2351:1: ( ruleJvmLowerBound EOF )
-            // InternalCubeDSL.g:2352:1: ruleJvmLowerBound EOF
+            // InternalCubeDSL.g:2353:1: ( ruleJvmLowerBound EOF )
+            // InternalCubeDSL.g:2354:1: ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundRule()); 
@@ -7929,23 +7932,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalCubeDSL.g:2359:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+    // InternalCubeDSL.g:2361:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
     public final void ruleJvmLowerBound() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2363:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
-            // InternalCubeDSL.g:2364:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalCubeDSL.g:2365:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+            // InternalCubeDSL.g:2366:2: ( ( rule__JvmLowerBound__Group__0 ) )
             {
-            // InternalCubeDSL.g:2364:2: ( ( rule__JvmLowerBound__Group__0 ) )
-            // InternalCubeDSL.g:2365:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalCubeDSL.g:2366:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalCubeDSL.g:2367:3: ( rule__JvmLowerBound__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2366:3: ( rule__JvmLowerBound__Group__0 )
-            // InternalCubeDSL.g:2366:4: rule__JvmLowerBound__Group__0
+            // InternalCubeDSL.g:2368:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalCubeDSL.g:2368:4: rule__JvmLowerBound__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__0();
@@ -7980,11 +7983,11 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalCubeDSL.g:2375:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
+    // InternalCubeDSL.g:2377:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
     public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2376:1: ( ruleJvmLowerBoundAnded EOF )
-            // InternalCubeDSL.g:2377:1: ruleJvmLowerBoundAnded EOF
+            // InternalCubeDSL.g:2378:1: ( ruleJvmLowerBoundAnded EOF )
+            // InternalCubeDSL.g:2379:1: ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -8014,23 +8017,23 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalCubeDSL.g:2384:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
+    // InternalCubeDSL.g:2386:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
     public final void ruleJvmLowerBoundAnded() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2388:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
-            // InternalCubeDSL.g:2389:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalCubeDSL.g:2390:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
+            // InternalCubeDSL.g:2391:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
             {
-            // InternalCubeDSL.g:2389:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
-            // InternalCubeDSL.g:2390:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalCubeDSL.g:2391:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalCubeDSL.g:2392:3: ( rule__JvmLowerBoundAnded__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2391:3: ( rule__JvmLowerBoundAnded__Group__0 )
-            // InternalCubeDSL.g:2391:4: rule__JvmLowerBoundAnded__Group__0
+            // InternalCubeDSL.g:2393:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalCubeDSL.g:2393:4: rule__JvmLowerBoundAnded__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__0();
@@ -8065,11 +8068,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalCubeDSL.g:2400:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+    // InternalCubeDSL.g:2402:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
     public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2401:1: ( ruleQualifiedNameWithWildcard EOF )
-            // InternalCubeDSL.g:2402:1: ruleQualifiedNameWithWildcard EOF
+            // InternalCubeDSL.g:2403:1: ( ruleQualifiedNameWithWildcard EOF )
+            // InternalCubeDSL.g:2404:1: ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -8099,23 +8102,23 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalCubeDSL.g:2409:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+    // InternalCubeDSL.g:2411:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
     public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2413:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
-            // InternalCubeDSL.g:2414:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalCubeDSL.g:2415:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+            // InternalCubeDSL.g:2416:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
             {
-            // InternalCubeDSL.g:2414:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
-            // InternalCubeDSL.g:2415:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalCubeDSL.g:2416:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalCubeDSL.g:2417:3: ( rule__QualifiedNameWithWildcard__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2416:3: ( rule__QualifiedNameWithWildcard__Group__0 )
-            // InternalCubeDSL.g:2416:4: rule__QualifiedNameWithWildcard__Group__0
+            // InternalCubeDSL.g:2418:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalCubeDSL.g:2418:4: rule__QualifiedNameWithWildcard__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__0();
@@ -8150,11 +8153,11 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalCubeDSL.g:2425:1: entryRuleValidID : ruleValidID EOF ;
+    // InternalCubeDSL.g:2427:1: entryRuleValidID : ruleValidID EOF ;
     public final void entryRuleValidID() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2426:1: ( ruleValidID EOF )
-            // InternalCubeDSL.g:2427:1: ruleValidID EOF
+            // InternalCubeDSL.g:2428:1: ( ruleValidID EOF )
+            // InternalCubeDSL.g:2429:1: ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDRule()); 
@@ -8184,17 +8187,17 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalCubeDSL.g:2434:1: ruleValidID : ( RULE_ID ) ;
+    // InternalCubeDSL.g:2436:1: ruleValidID : ( RULE_ID ) ;
     public final void ruleValidID() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2438:2: ( ( RULE_ID ) )
-            // InternalCubeDSL.g:2439:2: ( RULE_ID )
+            // InternalCubeDSL.g:2440:2: ( ( RULE_ID ) )
+            // InternalCubeDSL.g:2441:2: ( RULE_ID )
             {
-            // InternalCubeDSL.g:2439:2: ( RULE_ID )
-            // InternalCubeDSL.g:2440:3: RULE_ID
+            // InternalCubeDSL.g:2441:2: ( RULE_ID )
+            // InternalCubeDSL.g:2442:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
@@ -8225,11 +8228,11 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalCubeDSL.g:2450:1: entryRuleXImportSection : ruleXImportSection EOF ;
+    // InternalCubeDSL.g:2452:1: entryRuleXImportSection : ruleXImportSection EOF ;
     public final void entryRuleXImportSection() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2451:1: ( ruleXImportSection EOF )
-            // InternalCubeDSL.g:2452:1: ruleXImportSection EOF
+            // InternalCubeDSL.g:2453:1: ( ruleXImportSection EOF )
+            // InternalCubeDSL.g:2454:1: ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionRule()); 
@@ -8259,26 +8262,26 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalCubeDSL.g:2459:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
+    // InternalCubeDSL.g:2461:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
     public final void ruleXImportSection() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2463:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
-            // InternalCubeDSL.g:2464:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalCubeDSL.g:2465:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
+            // InternalCubeDSL.g:2466:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
             {
-            // InternalCubeDSL.g:2464:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
-            // InternalCubeDSL.g:2465:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalCubeDSL.g:2466:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalCubeDSL.g:2467:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
             {
-            // InternalCubeDSL.g:2465:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
-            // InternalCubeDSL.g:2466:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalCubeDSL.g:2467:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
+            // InternalCubeDSL.g:2468:4: ( rule__XImportSection__ImportDeclarationsAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalCubeDSL.g:2467:4: ( rule__XImportSection__ImportDeclarationsAssignment )
-            // InternalCubeDSL.g:2467:5: rule__XImportSection__ImportDeclarationsAssignment
+            // InternalCubeDSL.g:2469:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalCubeDSL.g:2469:5: rule__XImportSection__ImportDeclarationsAssignment
             {
             pushFollow(FOLLOW_3);
             rule__XImportSection__ImportDeclarationsAssignment();
@@ -8294,13 +8297,13 @@
 
             }
 
-            // InternalCubeDSL.g:2470:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
-            // InternalCubeDSL.g:2471:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalCubeDSL.g:2472:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalCubeDSL.g:2473:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
             }
-            // InternalCubeDSL.g:2472:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            // InternalCubeDSL.g:2474:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
             loop1:
             do {
                 int alt1=2;
@@ -8313,7 +8316,7 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // InternalCubeDSL.g:2472:5: rule__XImportSection__ImportDeclarationsAssignment
+            	    // InternalCubeDSL.g:2474:5: rule__XImportSection__ImportDeclarationsAssignment
             	    {
             	    pushFollow(FOLLOW_3);
             	    rule__XImportSection__ImportDeclarationsAssignment();
@@ -8357,11 +8360,11 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalCubeDSL.g:2482:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
+    // InternalCubeDSL.g:2484:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
     public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         try {
-            // InternalCubeDSL.g:2483:1: ( ruleQualifiedNameInStaticImport EOF )
-            // InternalCubeDSL.g:2484:1: ruleQualifiedNameInStaticImport EOF
+            // InternalCubeDSL.g:2485:1: ( ruleQualifiedNameInStaticImport EOF )
+            // InternalCubeDSL.g:2486:1: ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -8391,26 +8394,26 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalCubeDSL.g:2491:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
+    // InternalCubeDSL.g:2493:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
     public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2495:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
-            // InternalCubeDSL.g:2496:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalCubeDSL.g:2497:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
+            // InternalCubeDSL.g:2498:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
             {
-            // InternalCubeDSL.g:2496:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
-            // InternalCubeDSL.g:2497:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalCubeDSL.g:2498:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalCubeDSL.g:2499:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
             {
-            // InternalCubeDSL.g:2497:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
-            // InternalCubeDSL.g:2498:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalCubeDSL.g:2499:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
+            // InternalCubeDSL.g:2500:4: ( rule__QualifiedNameInStaticImport__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2499:4: ( rule__QualifiedNameInStaticImport__Group__0 )
-            // InternalCubeDSL.g:2499:5: rule__QualifiedNameInStaticImport__Group__0
+            // InternalCubeDSL.g:2501:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalCubeDSL.g:2501:5: rule__QualifiedNameInStaticImport__Group__0
             {
             pushFollow(FOLLOW_4);
             rule__QualifiedNameInStaticImport__Group__0();
@@ -8426,13 +8429,13 @@
 
             }
 
-            // InternalCubeDSL.g:2502:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
-            // InternalCubeDSL.g:2503:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalCubeDSL.g:2504:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalCubeDSL.g:2505:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
             }
-            // InternalCubeDSL.g:2504:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            // InternalCubeDSL.g:2506:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
             loop2:
             do {
                 int alt2=2;
@@ -8451,7 +8454,7 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalCubeDSL.g:2504:5: rule__QualifiedNameInStaticImport__Group__0
+            	    // InternalCubeDSL.g:2506:5: rule__QualifiedNameInStaticImport__Group__0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__QualifiedNameInStaticImport__Group__0();
@@ -8495,23 +8498,23 @@
 
 
     // $ANTLR start "ruleCubeAggregatorEnum"
-    // InternalCubeDSL.g:2514:1: ruleCubeAggregatorEnum : ( ( rule__CubeAggregatorEnum__Alternatives ) ) ;
+    // InternalCubeDSL.g:2516:1: ruleCubeAggregatorEnum : ( ( rule__CubeAggregatorEnum__Alternatives ) ) ;
     public final void ruleCubeAggregatorEnum() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2518:1: ( ( ( rule__CubeAggregatorEnum__Alternatives ) ) )
-            // InternalCubeDSL.g:2519:2: ( ( rule__CubeAggregatorEnum__Alternatives ) )
+            // InternalCubeDSL.g:2520:1: ( ( ( rule__CubeAggregatorEnum__Alternatives ) ) )
+            // InternalCubeDSL.g:2521:2: ( ( rule__CubeAggregatorEnum__Alternatives ) )
             {
-            // InternalCubeDSL.g:2519:2: ( ( rule__CubeAggregatorEnum__Alternatives ) )
-            // InternalCubeDSL.g:2520:3: ( rule__CubeAggregatorEnum__Alternatives )
+            // InternalCubeDSL.g:2521:2: ( ( rule__CubeAggregatorEnum__Alternatives ) )
+            // InternalCubeDSL.g:2522:3: ( rule__CubeAggregatorEnum__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeAggregatorEnumAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:2521:3: ( rule__CubeAggregatorEnum__Alternatives )
-            // InternalCubeDSL.g:2521:4: rule__CubeAggregatorEnum__Alternatives
+            // InternalCubeDSL.g:2523:3: ( rule__CubeAggregatorEnum__Alternatives )
+            // InternalCubeDSL.g:2523:4: rule__CubeAggregatorEnum__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__CubeAggregatorEnum__Alternatives();
@@ -8546,23 +8549,23 @@
 
 
     // $ANTLR start "ruleCubeLevelPropType"
-    // InternalCubeDSL.g:2530:1: ruleCubeLevelPropType : ( ( rule__CubeLevelPropType__Alternatives ) ) ;
+    // InternalCubeDSL.g:2532:1: ruleCubeLevelPropType : ( ( rule__CubeLevelPropType__Alternatives ) ) ;
     public final void ruleCubeLevelPropType() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2534:1: ( ( ( rule__CubeLevelPropType__Alternatives ) ) )
-            // InternalCubeDSL.g:2535:2: ( ( rule__CubeLevelPropType__Alternatives ) )
+            // InternalCubeDSL.g:2536:1: ( ( ( rule__CubeLevelPropType__Alternatives ) ) )
+            // InternalCubeDSL.g:2537:2: ( ( rule__CubeLevelPropType__Alternatives ) )
             {
-            // InternalCubeDSL.g:2535:2: ( ( rule__CubeLevelPropType__Alternatives ) )
-            // InternalCubeDSL.g:2536:3: ( rule__CubeLevelPropType__Alternatives )
+            // InternalCubeDSL.g:2537:2: ( ( rule__CubeLevelPropType__Alternatives ) )
+            // InternalCubeDSL.g:2538:3: ( rule__CubeLevelPropType__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropTypeAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:2537:3: ( rule__CubeLevelPropType__Alternatives )
-            // InternalCubeDSL.g:2537:4: rule__CubeLevelPropType__Alternatives
+            // InternalCubeDSL.g:2539:3: ( rule__CubeLevelPropType__Alternatives )
+            // InternalCubeDSL.g:2539:4: rule__CubeLevelPropType__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelPropType__Alternatives();
@@ -8597,23 +8600,23 @@
 
 
     // $ANTLR start "ruleCubeLevelLevelType"
-    // InternalCubeDSL.g:2546:1: ruleCubeLevelLevelType : ( ( rule__CubeLevelLevelType__Alternatives ) ) ;
+    // InternalCubeDSL.g:2548:1: ruleCubeLevelLevelType : ( ( rule__CubeLevelLevelType__Alternatives ) ) ;
     public final void ruleCubeLevelLevelType() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2550:1: ( ( ( rule__CubeLevelLevelType__Alternatives ) ) )
-            // InternalCubeDSL.g:2551:2: ( ( rule__CubeLevelLevelType__Alternatives ) )
+            // InternalCubeDSL.g:2552:1: ( ( ( rule__CubeLevelLevelType__Alternatives ) ) )
+            // InternalCubeDSL.g:2553:2: ( ( rule__CubeLevelLevelType__Alternatives ) )
             {
-            // InternalCubeDSL.g:2551:2: ( ( rule__CubeLevelLevelType__Alternatives ) )
-            // InternalCubeDSL.g:2552:3: ( rule__CubeLevelLevelType__Alternatives )
+            // InternalCubeDSL.g:2553:2: ( ( rule__CubeLevelLevelType__Alternatives ) )
+            // InternalCubeDSL.g:2554:3: ( rule__CubeLevelLevelType__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelLevelTypeAccess().getAlternatives()); 
             }
-            // InternalCubeDSL.g:2553:3: ( rule__CubeLevelLevelType__Alternatives )
-            // InternalCubeDSL.g:2553:4: rule__CubeLevelLevelType__Alternatives
+            // InternalCubeDSL.g:2555:3: ( rule__CubeLevelLevelType__Alternatives )
+            // InternalCubeDSL.g:2555:4: rule__CubeLevelLevelType__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelLevelType__Alternatives();
@@ -8648,27 +8651,27 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2"
-    // InternalCubeDSL.g:2561:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );
+    // InternalCubeDSL.g:2563:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );
     public final void rule__XImportDeclaration__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2565:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
+            // InternalCubeDSL.g:2567:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
             int alt3=4;
             alt3 = dfa3.predict(input);
             switch (alt3) {
                 case 1 :
-                    // InternalCubeDSL.g:2566:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalCubeDSL.g:2568:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalCubeDSL.g:2566:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
-                    // InternalCubeDSL.g:2567:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalCubeDSL.g:2568:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalCubeDSL.g:2569:3: ( rule__XImportDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalCubeDSL.g:2568:3: ( rule__XImportDeclaration__Group_2_0__0 )
-                    // InternalCubeDSL.g:2568:4: rule__XImportDeclaration__Group_2_0__0
+                    // InternalCubeDSL.g:2570:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalCubeDSL.g:2570:4: rule__XImportDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_0__0();
@@ -8688,16 +8691,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2572:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalCubeDSL.g:2574:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
                     {
-                    // InternalCubeDSL.g:2572:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
-                    // InternalCubeDSL.g:2573:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalCubeDSL.g:2574:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalCubeDSL.g:2575:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); 
                     }
-                    // InternalCubeDSL.g:2574:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
-                    // InternalCubeDSL.g:2574:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
+                    // InternalCubeDSL.g:2576:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalCubeDSL.g:2576:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedTypeAssignment_2_1();
@@ -8717,16 +8720,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:2578:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalCubeDSL.g:2580:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
                     {
-                    // InternalCubeDSL.g:2578:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
-                    // InternalCubeDSL.g:2579:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalCubeDSL.g:2580:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalCubeDSL.g:2581:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); 
                     }
-                    // InternalCubeDSL.g:2580:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
-                    // InternalCubeDSL.g:2580:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
+                    // InternalCubeDSL.g:2582:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalCubeDSL.g:2582:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ImportedNamespaceAssignment_2_2();
@@ -8746,16 +8749,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:2584:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalCubeDSL.g:2586:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
                     {
-                    // InternalCubeDSL.g:2584:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
-                    // InternalCubeDSL.g:2585:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalCubeDSL.g:2586:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalCubeDSL.g:2587:3: ( rule__XImportDeclaration__Group_2_3__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); 
                     }
-                    // InternalCubeDSL.g:2586:3: ( rule__XImportDeclaration__Group_2_3__0 )
-                    // InternalCubeDSL.g:2586:4: rule__XImportDeclaration__Group_2_3__0
+                    // InternalCubeDSL.g:2588:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalCubeDSL.g:2588:4: rule__XImportDeclaration__Group_2_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__Group_2_3__0();
@@ -8792,13 +8795,13 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Alternatives_2_0_3"
-    // InternalCubeDSL.g:2594:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
+    // InternalCubeDSL.g:2596:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
     public final void rule__XImportDeclaration__Alternatives_2_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2598:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
+            // InternalCubeDSL.g:2600:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -8817,16 +8820,16 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalCubeDSL.g:2599:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalCubeDSL.g:2601:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
                     {
-                    // InternalCubeDSL.g:2599:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
-                    // InternalCubeDSL.g:2600:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalCubeDSL.g:2601:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalCubeDSL.g:2602:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); 
                     }
-                    // InternalCubeDSL.g:2601:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
-                    // InternalCubeDSL.g:2601:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
+                    // InternalCubeDSL.g:2603:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalCubeDSL.g:2603:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__WildcardAssignment_2_0_3_0();
@@ -8846,16 +8849,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2605:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalCubeDSL.g:2607:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
                     {
-                    // InternalCubeDSL.g:2605:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
-                    // InternalCubeDSL.g:2606:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalCubeDSL.g:2607:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalCubeDSL.g:2608:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); 
                     }
-                    // InternalCubeDSL.g:2607:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
-                    // InternalCubeDSL.g:2607:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
+                    // InternalCubeDSL.g:2609:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalCubeDSL.g:2609:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__MemberNameAssignment_2_0_3_1();
@@ -8892,27 +8895,27 @@
 
 
     // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
-    // InternalCubeDSL.g:2615:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    // InternalCubeDSL.g:2617:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
     public final void rule__XAnnotation__Alternatives_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2619:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            // InternalCubeDSL.g:2621:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
             int alt5=2;
             alt5 = dfa5.predict(input);
             switch (alt5) {
                 case 1 :
-                    // InternalCubeDSL.g:2620:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalCubeDSL.g:2622:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
                     {
-                    // InternalCubeDSL.g:2620:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-                    // InternalCubeDSL.g:2621:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalCubeDSL.g:2622:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalCubeDSL.g:2623:3: ( rule__XAnnotation__Group_3_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
                     }
-                    // InternalCubeDSL.g:2622:3: ( rule__XAnnotation__Group_3_1_0__0 )
-                    // InternalCubeDSL.g:2622:4: rule__XAnnotation__Group_3_1_0__0
+                    // InternalCubeDSL.g:2624:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalCubeDSL.g:2624:4: rule__XAnnotation__Group_3_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3_1_0__0();
@@ -8932,16 +8935,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2626:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalCubeDSL.g:2628:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
                     {
-                    // InternalCubeDSL.g:2626:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
-                    // InternalCubeDSL.g:2627:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalCubeDSL.g:2628:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalCubeDSL.g:2629:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
                     }
-                    // InternalCubeDSL.g:2628:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
-                    // InternalCubeDSL.g:2628:4: rule__XAnnotation__ValueAssignment_3_1_1
+                    // InternalCubeDSL.g:2630:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalCubeDSL.g:2630:4: rule__XAnnotation__ValueAssignment_3_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__ValueAssignment_3_1_1();
@@ -8978,27 +8981,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
-    // InternalCubeDSL.g:2636:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    // InternalCubeDSL.g:2638:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
     public final void rule__XAnnotationElementValueOrCommaList__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2640:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            // InternalCubeDSL.g:2642:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
             int alt6=2;
             alt6 = dfa6.predict(input);
             switch (alt6) {
                 case 1 :
-                    // InternalCubeDSL.g:2641:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalCubeDSL.g:2643:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
                     {
-                    // InternalCubeDSL.g:2641:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-                    // InternalCubeDSL.g:2642:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalCubeDSL.g:2643:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalCubeDSL.g:2644:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
                     }
-                    // InternalCubeDSL.g:2643:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-                    // InternalCubeDSL.g:2643:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    // InternalCubeDSL.g:2645:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalCubeDSL.g:2645:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -9018,16 +9021,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2647:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalCubeDSL.g:2649:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
                     {
-                    // InternalCubeDSL.g:2647:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
-                    // InternalCubeDSL.g:2648:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalCubeDSL.g:2649:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalCubeDSL.g:2650:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
                     }
-                    // InternalCubeDSL.g:2649:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
-                    // InternalCubeDSL.g:2649:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    // InternalCubeDSL.g:2651:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalCubeDSL.g:2651:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1__0();
@@ -9064,27 +9067,27 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
-    // InternalCubeDSL.g:2657:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    // InternalCubeDSL.g:2659:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
     public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2661:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            // InternalCubeDSL.g:2663:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalCubeDSL.g:2662:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalCubeDSL.g:2664:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
                     {
-                    // InternalCubeDSL.g:2662:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-                    // InternalCubeDSL.g:2663:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalCubeDSL.g:2664:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalCubeDSL.g:2665:3: ( rule__XAnnotationElementValue__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
                     }
-                    // InternalCubeDSL.g:2664:3: ( rule__XAnnotationElementValue__Group_0__0 )
-                    // InternalCubeDSL.g:2664:4: rule__XAnnotationElementValue__Group_0__0
+                    // InternalCubeDSL.g:2666:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalCubeDSL.g:2666:4: rule__XAnnotationElementValue__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0__0();
@@ -9104,10 +9107,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2668:2: ( ruleXAnnotationOrExpression )
+                    // InternalCubeDSL.g:2670:2: ( ruleXAnnotationOrExpression )
                     {
-                    // InternalCubeDSL.g:2668:2: ( ruleXAnnotationOrExpression )
-                    // InternalCubeDSL.g:2669:3: ruleXAnnotationOrExpression
+                    // InternalCubeDSL.g:2670:2: ( ruleXAnnotationOrExpression )
+                    // InternalCubeDSL.g:2671:3: ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
@@ -9144,20 +9147,20 @@
 
 
     // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
-    // InternalCubeDSL.g:2678:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    // InternalCubeDSL.g:2680:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
     public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2682:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            // InternalCubeDSL.g:2684:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
             int alt8=2;
             int LA8_0 = input.LA(1);
 
             if ( (LA8_0==87) ) {
                 alt8=1;
             }
-            else if ( ((LA8_0>=RULE_ID && LA8_0<=RULE_DECIMAL)||LA8_0==27||(LA8_0>=34 && LA8_0<=35)||LA8_0==40||(LA8_0>=45 && LA8_0<=50)||LA8_0==74||LA8_0==88||(LA8_0>=92 && LA8_0<=93)||LA8_0==96||LA8_0==98||(LA8_0>=102 && LA8_0<=110)||LA8_0==112||LA8_0==131) ) {
+            else if ( ((LA8_0>=RULE_ID && LA8_0<=RULE_DECIMAL)||LA8_0==27||(LA8_0>=34 && LA8_0<=35)||LA8_0==40||(LA8_0>=45 && LA8_0<=50)||LA8_0==74||LA8_0==88||(LA8_0>=92 && LA8_0<=93)||LA8_0==96||LA8_0==98||(LA8_0>=102 && LA8_0<=110)||LA8_0==112||LA8_0==134) ) {
                 alt8=2;
             }
             else {
@@ -9169,10 +9172,10 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalCubeDSL.g:2683:2: ( ruleXAnnotation )
+                    // InternalCubeDSL.g:2685:2: ( ruleXAnnotation )
                     {
-                    // InternalCubeDSL.g:2683:2: ( ruleXAnnotation )
-                    // InternalCubeDSL.g:2684:3: ruleXAnnotation
+                    // InternalCubeDSL.g:2685:2: ( ruleXAnnotation )
+                    // InternalCubeDSL.g:2686:3: ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
@@ -9192,10 +9195,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2689:2: ( ruleXExpression )
+                    // InternalCubeDSL.g:2691:2: ( ruleXExpression )
                     {
-                    // InternalCubeDSL.g:2689:2: ( ruleXExpression )
-                    // InternalCubeDSL.g:2690:3: ruleXExpression
+                    // InternalCubeDSL.g:2691:2: ( ruleXExpression )
+                    // InternalCubeDSL.g:2692:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -9232,13 +9235,13 @@
 
 
     // $ANTLR start "rule__XAssignment__Alternatives"
-    // InternalCubeDSL.g:2699:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    // InternalCubeDSL.g:2701:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
     public final void rule__XAssignment__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2703:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            // InternalCubeDSL.g:2705:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
             int alt9=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
@@ -9248,7 +9251,7 @@
                 if ( (LA9_1==13) ) {
                     alt9=1;
                 }
-                else if ( (LA9_1==EOF||(LA9_1>=RULE_ID && LA9_1<=RULE_DECIMAL)||(LA9_1>=14 && LA9_1<=50)||(LA9_1>=74 && LA9_1<=75)||LA9_1==86||(LA9_1>=88 && LA9_1<=113)||(LA9_1>=127 && LA9_1<=128)||(LA9_1>=130 && LA9_1<=131)) ) {
+                else if ( (LA9_1==EOF||(LA9_1>=RULE_ID && LA9_1<=RULE_DECIMAL)||(LA9_1>=14 && LA9_1<=50)||(LA9_1>=74 && LA9_1<=75)||LA9_1==86||(LA9_1>=88 && LA9_1<=113)||(LA9_1>=130 && LA9_1<=131)||(LA9_1>=133 && LA9_1<=134)) ) {
                     alt9=2;
                 }
                 else {
@@ -9264,7 +9267,7 @@
                 {
                 int LA9_2 = input.LA(2);
 
-                if ( (LA9_2==EOF||(LA9_2>=RULE_ID && LA9_2<=RULE_DECIMAL)||(LA9_2>=14 && LA9_2<=50)||(LA9_2>=74 && LA9_2<=75)||LA9_2==86||(LA9_2>=88 && LA9_2<=113)||(LA9_2>=127 && LA9_2<=128)||(LA9_2>=130 && LA9_2<=131)) ) {
+                if ( (LA9_2==EOF||(LA9_2>=RULE_ID && LA9_2<=RULE_DECIMAL)||(LA9_2>=14 && LA9_2<=50)||(LA9_2>=74 && LA9_2<=75)||LA9_2==86||(LA9_2>=88 && LA9_2<=113)||(LA9_2>=130 && LA9_2<=131)||(LA9_2>=133 && LA9_2<=134)) ) {
                     alt9=2;
                 }
                 else if ( (LA9_2==13) ) {
@@ -9283,12 +9286,12 @@
                 {
                 int LA9_3 = input.LA(2);
 
-                if ( (LA9_3==13) ) {
-                    alt9=1;
-                }
-                else if ( (LA9_3==EOF||(LA9_3>=RULE_ID && LA9_3<=RULE_DECIMAL)||(LA9_3>=14 && LA9_3<=50)||(LA9_3>=74 && LA9_3<=75)||LA9_3==86||(LA9_3>=88 && LA9_3<=113)||(LA9_3>=127 && LA9_3<=128)||(LA9_3>=130 && LA9_3<=131)) ) {
+                if ( (LA9_3==EOF||(LA9_3>=RULE_ID && LA9_3<=RULE_DECIMAL)||(LA9_3>=14 && LA9_3<=50)||(LA9_3>=74 && LA9_3<=75)||LA9_3==86||(LA9_3>=88 && LA9_3<=113)||(LA9_3>=130 && LA9_3<=131)||(LA9_3>=133 && LA9_3<=134)) ) {
                     alt9=2;
                 }
+                else if ( (LA9_3==13) ) {
+                    alt9=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -9302,12 +9305,12 @@
                 {
                 int LA9_4 = input.LA(2);
 
-                if ( (LA9_4==EOF||(LA9_4>=RULE_ID && LA9_4<=RULE_DECIMAL)||(LA9_4>=14 && LA9_4<=50)||(LA9_4>=74 && LA9_4<=75)||LA9_4==86||(LA9_4>=88 && LA9_4<=113)||(LA9_4>=127 && LA9_4<=128)||(LA9_4>=130 && LA9_4<=131)) ) {
-                    alt9=2;
-                }
-                else if ( (LA9_4==13) ) {
+                if ( (LA9_4==13) ) {
                     alt9=1;
                 }
+                else if ( (LA9_4==EOF||(LA9_4>=RULE_ID && LA9_4<=RULE_DECIMAL)||(LA9_4>=14 && LA9_4<=50)||(LA9_4>=74 && LA9_4<=75)||LA9_4==86||(LA9_4>=88 && LA9_4<=113)||(LA9_4>=130 && LA9_4<=131)||(LA9_4>=133 && LA9_4<=134)) ) {
+                    alt9=2;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -9321,12 +9324,12 @@
                 {
                 int LA9_5 = input.LA(2);
 
-                if ( (LA9_5==13) ) {
-                    alt9=1;
-                }
-                else if ( (LA9_5==EOF||(LA9_5>=RULE_ID && LA9_5<=RULE_DECIMAL)||(LA9_5>=14 && LA9_5<=50)||(LA9_5>=74 && LA9_5<=75)||LA9_5==86||(LA9_5>=88 && LA9_5<=113)||(LA9_5>=127 && LA9_5<=128)||(LA9_5>=130 && LA9_5<=131)) ) {
+                if ( (LA9_5==EOF||(LA9_5>=RULE_ID && LA9_5<=RULE_DECIMAL)||(LA9_5>=14 && LA9_5<=50)||(LA9_5>=74 && LA9_5<=75)||LA9_5==86||(LA9_5>=88 && LA9_5<=113)||(LA9_5>=130 && LA9_5<=131)||(LA9_5>=133 && LA9_5<=134)) ) {
                     alt9=2;
                 }
+                else if ( (LA9_5==13) ) {
+                    alt9=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -9362,7 +9365,7 @@
             case 109:
             case 110:
             case 112:
-            case 131:
+            case 134:
                 {
                 alt9=2;
                 }
@@ -9377,16 +9380,16 @@
 
             switch (alt9) {
                 case 1 :
-                    // InternalCubeDSL.g:2704:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalCubeDSL.g:2706:2: ( ( rule__XAssignment__Group_0__0 ) )
                     {
-                    // InternalCubeDSL.g:2704:2: ( ( rule__XAssignment__Group_0__0 ) )
-                    // InternalCubeDSL.g:2705:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalCubeDSL.g:2706:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalCubeDSL.g:2707:3: ( rule__XAssignment__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                     }
-                    // InternalCubeDSL.g:2706:3: ( rule__XAssignment__Group_0__0 )
-                    // InternalCubeDSL.g:2706:4: rule__XAssignment__Group_0__0
+                    // InternalCubeDSL.g:2708:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalCubeDSL.g:2708:4: rule__XAssignment__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_0__0();
@@ -9406,16 +9409,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2710:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalCubeDSL.g:2712:2: ( ( rule__XAssignment__Group_1__0 ) )
                     {
-                    // InternalCubeDSL.g:2710:2: ( ( rule__XAssignment__Group_1__0 ) )
-                    // InternalCubeDSL.g:2711:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalCubeDSL.g:2712:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalCubeDSL.g:2713:3: ( rule__XAssignment__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                     }
-                    // InternalCubeDSL.g:2712:3: ( rule__XAssignment__Group_1__0 )
-                    // InternalCubeDSL.g:2712:4: rule__XAssignment__Group_1__0
+                    // InternalCubeDSL.g:2714:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalCubeDSL.g:2714:4: rule__XAssignment__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1__0();
@@ -9452,13 +9455,13 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Alternatives"
-    // InternalCubeDSL.g:2720:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    // InternalCubeDSL.g:2722:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
     public final void rule__OpMultiAssign__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2724:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            // InternalCubeDSL.g:2726:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
             int alt10=7;
             switch ( input.LA(1) ) {
             case 16:
@@ -9506,10 +9509,10 @@
 
             switch (alt10) {
                 case 1 :
-                    // InternalCubeDSL.g:2725:2: ( '+=' )
+                    // InternalCubeDSL.g:2727:2: ( '+=' )
                     {
-                    // InternalCubeDSL.g:2725:2: ( '+=' )
-                    // InternalCubeDSL.g:2726:3: '+='
+                    // InternalCubeDSL.g:2727:2: ( '+=' )
+                    // InternalCubeDSL.g:2728:3: '+='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
@@ -9525,10 +9528,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2731:2: ( '-=' )
+                    // InternalCubeDSL.g:2733:2: ( '-=' )
                     {
-                    // InternalCubeDSL.g:2731:2: ( '-=' )
-                    // InternalCubeDSL.g:2732:3: '-='
+                    // InternalCubeDSL.g:2733:2: ( '-=' )
+                    // InternalCubeDSL.g:2734:3: '-='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
@@ -9544,10 +9547,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:2737:2: ( '*=' )
+                    // InternalCubeDSL.g:2739:2: ( '*=' )
                     {
-                    // InternalCubeDSL.g:2737:2: ( '*=' )
-                    // InternalCubeDSL.g:2738:3: '*='
+                    // InternalCubeDSL.g:2739:2: ( '*=' )
+                    // InternalCubeDSL.g:2740:3: '*='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
@@ -9563,10 +9566,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:2743:2: ( '/=' )
+                    // InternalCubeDSL.g:2745:2: ( '/=' )
                     {
-                    // InternalCubeDSL.g:2743:2: ( '/=' )
-                    // InternalCubeDSL.g:2744:3: '/='
+                    // InternalCubeDSL.g:2745:2: ( '/=' )
+                    // InternalCubeDSL.g:2746:3: '/='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
@@ -9582,10 +9585,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:2749:2: ( '%=' )
+                    // InternalCubeDSL.g:2751:2: ( '%=' )
                     {
-                    // InternalCubeDSL.g:2749:2: ( '%=' )
-                    // InternalCubeDSL.g:2750:3: '%='
+                    // InternalCubeDSL.g:2751:2: ( '%=' )
+                    // InternalCubeDSL.g:2752:3: '%='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
@@ -9601,16 +9604,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:2755:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalCubeDSL.g:2757:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
                     {
-                    // InternalCubeDSL.g:2755:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
-                    // InternalCubeDSL.g:2756:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalCubeDSL.g:2757:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalCubeDSL.g:2758:3: ( rule__OpMultiAssign__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                     }
-                    // InternalCubeDSL.g:2757:3: ( rule__OpMultiAssign__Group_5__0 )
-                    // InternalCubeDSL.g:2757:4: rule__OpMultiAssign__Group_5__0
+                    // InternalCubeDSL.g:2759:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalCubeDSL.g:2759:4: rule__OpMultiAssign__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_5__0();
@@ -9630,16 +9633,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:2761:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalCubeDSL.g:2763:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
                     {
-                    // InternalCubeDSL.g:2761:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
-                    // InternalCubeDSL.g:2762:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalCubeDSL.g:2763:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalCubeDSL.g:2764:3: ( rule__OpMultiAssign__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                     }
-                    // InternalCubeDSL.g:2763:3: ( rule__OpMultiAssign__Group_6__0 )
-                    // InternalCubeDSL.g:2763:4: rule__OpMultiAssign__Group_6__0
+                    // InternalCubeDSL.g:2765:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalCubeDSL.g:2765:4: rule__OpMultiAssign__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpMultiAssign__Group_6__0();
@@ -9676,13 +9679,13 @@
 
 
     // $ANTLR start "rule__OpEquality__Alternatives"
-    // InternalCubeDSL.g:2771:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+    // InternalCubeDSL.g:2773:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
     public final void rule__OpEquality__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2775:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+            // InternalCubeDSL.g:2777:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
             int alt11=4;
             switch ( input.LA(1) ) {
             case 21:
@@ -9715,10 +9718,10 @@
 
             switch (alt11) {
                 case 1 :
-                    // InternalCubeDSL.g:2776:2: ( '==' )
+                    // InternalCubeDSL.g:2778:2: ( '==' )
                     {
-                    // InternalCubeDSL.g:2776:2: ( '==' )
-                    // InternalCubeDSL.g:2777:3: '=='
+                    // InternalCubeDSL.g:2778:2: ( '==' )
+                    // InternalCubeDSL.g:2779:3: '=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
@@ -9734,10 +9737,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2782:2: ( '!=' )
+                    // InternalCubeDSL.g:2784:2: ( '!=' )
                     {
-                    // InternalCubeDSL.g:2782:2: ( '!=' )
-                    // InternalCubeDSL.g:2783:3: '!='
+                    // InternalCubeDSL.g:2784:2: ( '!=' )
+                    // InternalCubeDSL.g:2785:3: '!='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
@@ -9753,10 +9756,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:2788:2: ( '===' )
+                    // InternalCubeDSL.g:2790:2: ( '===' )
                     {
-                    // InternalCubeDSL.g:2788:2: ( '===' )
-                    // InternalCubeDSL.g:2789:3: '==='
+                    // InternalCubeDSL.g:2790:2: ( '===' )
+                    // InternalCubeDSL.g:2791:3: '==='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
@@ -9772,10 +9775,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:2794:2: ( '!==' )
+                    // InternalCubeDSL.g:2796:2: ( '!==' )
                     {
-                    // InternalCubeDSL.g:2794:2: ( '!==' )
-                    // InternalCubeDSL.g:2795:3: '!=='
+                    // InternalCubeDSL.g:2796:2: ( '!==' )
+                    // InternalCubeDSL.g:2797:3: '!=='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
@@ -9808,13 +9811,13 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
-    // InternalCubeDSL.g:2804:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+    // InternalCubeDSL.g:2806:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
     public final void rule__XRelationalExpression__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2808:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+            // InternalCubeDSL.g:2810:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
             int alt12=2;
             int LA12_0 = input.LA(1);
 
@@ -9833,16 +9836,16 @@
             }
             switch (alt12) {
                 case 1 :
-                    // InternalCubeDSL.g:2809:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalCubeDSL.g:2811:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                     {
-                    // InternalCubeDSL.g:2809:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
-                    // InternalCubeDSL.g:2810:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalCubeDSL.g:2811:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalCubeDSL.g:2812:3: ( rule__XRelationalExpression__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                     }
-                    // InternalCubeDSL.g:2811:3: ( rule__XRelationalExpression__Group_1_0__0 )
-                    // InternalCubeDSL.g:2811:4: rule__XRelationalExpression__Group_1_0__0
+                    // InternalCubeDSL.g:2813:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalCubeDSL.g:2813:4: rule__XRelationalExpression__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_0__0();
@@ -9862,16 +9865,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2815:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalCubeDSL.g:2817:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                     {
-                    // InternalCubeDSL.g:2815:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
-                    // InternalCubeDSL.g:2816:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalCubeDSL.g:2817:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalCubeDSL.g:2818:3: ( rule__XRelationalExpression__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                     }
-                    // InternalCubeDSL.g:2817:3: ( rule__XRelationalExpression__Group_1_1__0 )
-                    // InternalCubeDSL.g:2817:4: rule__XRelationalExpression__Group_1_1__0
+                    // InternalCubeDSL.g:2819:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalCubeDSL.g:2819:4: rule__XRelationalExpression__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XRelationalExpression__Group_1_1__0();
@@ -9908,13 +9911,13 @@
 
 
     // $ANTLR start "rule__OpCompare__Alternatives"
-    // InternalCubeDSL.g:2825:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
+    // InternalCubeDSL.g:2827:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
     public final void rule__OpCompare__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2829:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
+            // InternalCubeDSL.g:2831:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
             int alt13=4;
             switch ( input.LA(1) ) {
             case 25:
@@ -9926,12 +9929,12 @@
                 {
                 int LA13_2 = input.LA(2);
 
-                if ( (LA13_2==EOF||(LA13_2>=RULE_ID && LA13_2<=RULE_DECIMAL)||LA13_2==27||(LA13_2>=34 && LA13_2<=35)||LA13_2==40||(LA13_2>=45 && LA13_2<=50)||LA13_2==74||LA13_2==88||(LA13_2>=92 && LA13_2<=93)||LA13_2==96||LA13_2==98||(LA13_2>=102 && LA13_2<=110)||LA13_2==112||LA13_2==131) ) {
-                    alt13=4;
-                }
-                else if ( (LA13_2==13) ) {
+                if ( (LA13_2==13) ) {
                     alt13=2;
                 }
+                else if ( (LA13_2==EOF||(LA13_2>=RULE_ID && LA13_2<=RULE_DECIMAL)||LA13_2==27||(LA13_2>=34 && LA13_2<=35)||LA13_2==40||(LA13_2>=45 && LA13_2<=50)||LA13_2==74||LA13_2==88||(LA13_2>=92 && LA13_2<=93)||LA13_2==96||LA13_2==98||(LA13_2>=102 && LA13_2<=110)||LA13_2==112||LA13_2==134) ) {
+                    alt13=4;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -9956,10 +9959,10 @@
 
             switch (alt13) {
                 case 1 :
-                    // InternalCubeDSL.g:2830:2: ( '>=' )
+                    // InternalCubeDSL.g:2832:2: ( '>=' )
                     {
-                    // InternalCubeDSL.g:2830:2: ( '>=' )
-                    // InternalCubeDSL.g:2831:3: '>='
+                    // InternalCubeDSL.g:2832:2: ( '>=' )
+                    // InternalCubeDSL.g:2833:3: '>='
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
@@ -9975,16 +9978,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2836:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalCubeDSL.g:2838:2: ( ( rule__OpCompare__Group_1__0 ) )
                     {
-                    // InternalCubeDSL.g:2836:2: ( ( rule__OpCompare__Group_1__0 ) )
-                    // InternalCubeDSL.g:2837:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalCubeDSL.g:2838:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalCubeDSL.g:2839:3: ( rule__OpCompare__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGroup_1()); 
                     }
-                    // InternalCubeDSL.g:2838:3: ( rule__OpCompare__Group_1__0 )
-                    // InternalCubeDSL.g:2838:4: rule__OpCompare__Group_1__0
+                    // InternalCubeDSL.g:2840:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalCubeDSL.g:2840:4: rule__OpCompare__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpCompare__Group_1__0();
@@ -10004,10 +10007,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:2842:2: ( '>' )
+                    // InternalCubeDSL.g:2844:2: ( '>' )
                     {
-                    // InternalCubeDSL.g:2842:2: ( '>' )
-                    // InternalCubeDSL.g:2843:3: '>'
+                    // InternalCubeDSL.g:2844:2: ( '>' )
+                    // InternalCubeDSL.g:2845:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
@@ -10023,10 +10026,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:2848:2: ( '<' )
+                    // InternalCubeDSL.g:2850:2: ( '<' )
                     {
-                    // InternalCubeDSL.g:2848:2: ( '<' )
-                    // InternalCubeDSL.g:2849:3: '<'
+                    // InternalCubeDSL.g:2850:2: ( '<' )
+                    // InternalCubeDSL.g:2851:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
@@ -10059,21 +10062,21 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives"
-    // InternalCubeDSL.g:2858:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
+    // InternalCubeDSL.g:2860:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
     public final void rule__OpOther__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2862:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
+            // InternalCubeDSL.g:2864:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
             int alt14=9;
             alt14 = dfa14.predict(input);
             switch (alt14) {
                 case 1 :
-                    // InternalCubeDSL.g:2863:2: ( '->' )
+                    // InternalCubeDSL.g:2865:2: ( '->' )
                     {
-                    // InternalCubeDSL.g:2863:2: ( '->' )
-                    // InternalCubeDSL.g:2864:3: '->'
+                    // InternalCubeDSL.g:2865:2: ( '->' )
+                    // InternalCubeDSL.g:2866:3: '->'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
@@ -10089,10 +10092,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2869:2: ( '..<' )
+                    // InternalCubeDSL.g:2871:2: ( '..<' )
                     {
-                    // InternalCubeDSL.g:2869:2: ( '..<' )
-                    // InternalCubeDSL.g:2870:3: '..<'
+                    // InternalCubeDSL.g:2871:2: ( '..<' )
+                    // InternalCubeDSL.g:2872:3: '..<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
@@ -10108,16 +10111,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:2875:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalCubeDSL.g:2877:2: ( ( rule__OpOther__Group_2__0 ) )
                     {
-                    // InternalCubeDSL.g:2875:2: ( ( rule__OpOther__Group_2__0 ) )
-                    // InternalCubeDSL.g:2876:3: ( rule__OpOther__Group_2__0 )
+                    // InternalCubeDSL.g:2877:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalCubeDSL.g:2878:3: ( rule__OpOther__Group_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_2()); 
                     }
-                    // InternalCubeDSL.g:2877:3: ( rule__OpOther__Group_2__0 )
-                    // InternalCubeDSL.g:2877:4: rule__OpOther__Group_2__0
+                    // InternalCubeDSL.g:2879:3: ( rule__OpOther__Group_2__0 )
+                    // InternalCubeDSL.g:2879:4: rule__OpOther__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_2__0();
@@ -10137,10 +10140,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:2881:2: ( '..' )
+                    // InternalCubeDSL.g:2883:2: ( '..' )
                     {
-                    // InternalCubeDSL.g:2881:2: ( '..' )
-                    // InternalCubeDSL.g:2882:3: '..'
+                    // InternalCubeDSL.g:2883:2: ( '..' )
+                    // InternalCubeDSL.g:2884:3: '..'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
@@ -10156,10 +10159,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:2887:2: ( '=>' )
+                    // InternalCubeDSL.g:2889:2: ( '=>' )
                     {
-                    // InternalCubeDSL.g:2887:2: ( '=>' )
-                    // InternalCubeDSL.g:2888:3: '=>'
+                    // InternalCubeDSL.g:2889:2: ( '=>' )
+                    // InternalCubeDSL.g:2890:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
@@ -10175,16 +10178,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:2893:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalCubeDSL.g:2895:2: ( ( rule__OpOther__Group_5__0 ) )
                     {
-                    // InternalCubeDSL.g:2893:2: ( ( rule__OpOther__Group_5__0 ) )
-                    // InternalCubeDSL.g:2894:3: ( rule__OpOther__Group_5__0 )
+                    // InternalCubeDSL.g:2895:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalCubeDSL.g:2896:3: ( rule__OpOther__Group_5__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5()); 
                     }
-                    // InternalCubeDSL.g:2895:3: ( rule__OpOther__Group_5__0 )
-                    // InternalCubeDSL.g:2895:4: rule__OpOther__Group_5__0
+                    // InternalCubeDSL.g:2897:3: ( rule__OpOther__Group_5__0 )
+                    // InternalCubeDSL.g:2897:4: rule__OpOther__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5__0();
@@ -10204,16 +10207,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:2899:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalCubeDSL.g:2901:2: ( ( rule__OpOther__Group_6__0 ) )
                     {
-                    // InternalCubeDSL.g:2899:2: ( ( rule__OpOther__Group_6__0 ) )
-                    // InternalCubeDSL.g:2900:3: ( rule__OpOther__Group_6__0 )
+                    // InternalCubeDSL.g:2901:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalCubeDSL.g:2902:3: ( rule__OpOther__Group_6__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6()); 
                     }
-                    // InternalCubeDSL.g:2901:3: ( rule__OpOther__Group_6__0 )
-                    // InternalCubeDSL.g:2901:4: rule__OpOther__Group_6__0
+                    // InternalCubeDSL.g:2903:3: ( rule__OpOther__Group_6__0 )
+                    // InternalCubeDSL.g:2903:4: rule__OpOther__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6__0();
@@ -10233,10 +10236,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalCubeDSL.g:2905:2: ( '<>' )
+                    // InternalCubeDSL.g:2907:2: ( '<>' )
                     {
-                    // InternalCubeDSL.g:2905:2: ( '<>' )
-                    // InternalCubeDSL.g:2906:3: '<>'
+                    // InternalCubeDSL.g:2907:2: ( '<>' )
+                    // InternalCubeDSL.g:2908:3: '<>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
@@ -10252,10 +10255,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalCubeDSL.g:2911:2: ( '?:' )
+                    // InternalCubeDSL.g:2913:2: ( '?:' )
                     {
-                    // InternalCubeDSL.g:2911:2: ( '?:' )
-                    // InternalCubeDSL.g:2912:3: '?:'
+                    // InternalCubeDSL.g:2913:2: ( '?:' )
+                    // InternalCubeDSL.g:2914:3: '?:'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
@@ -10288,25 +10291,25 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_5_1"
-    // InternalCubeDSL.g:2921:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
+    // InternalCubeDSL.g:2923:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
     public final void rule__OpOther__Alternatives_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2925:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
+            // InternalCubeDSL.g:2927:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
             if ( (LA15_0==26) ) {
                 int LA15_1 = input.LA(2);
 
-                if ( (LA15_1==26) ) {
-                    alt15=1;
-                }
-                else if ( (LA15_1==EOF||(LA15_1>=RULE_ID && LA15_1<=RULE_DECIMAL)||LA15_1==27||(LA15_1>=34 && LA15_1<=35)||LA15_1==40||(LA15_1>=45 && LA15_1<=50)||LA15_1==74||LA15_1==88||(LA15_1>=92 && LA15_1<=93)||LA15_1==96||LA15_1==98||(LA15_1>=102 && LA15_1<=110)||LA15_1==112||LA15_1==131) ) {
+                if ( (LA15_1==EOF||(LA15_1>=RULE_ID && LA15_1<=RULE_DECIMAL)||LA15_1==27||(LA15_1>=34 && LA15_1<=35)||LA15_1==40||(LA15_1>=45 && LA15_1<=50)||LA15_1==74||LA15_1==88||(LA15_1>=92 && LA15_1<=93)||LA15_1==96||LA15_1==98||(LA15_1>=102 && LA15_1<=110)||LA15_1==112||LA15_1==134) ) {
                     alt15=2;
                 }
+                else if ( (LA15_1==26) ) {
+                    alt15=1;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -10324,16 +10327,16 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalCubeDSL.g:2926:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalCubeDSL.g:2928:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
                     {
-                    // InternalCubeDSL.g:2926:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
-                    // InternalCubeDSL.g:2927:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalCubeDSL.g:2928:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalCubeDSL.g:2929:3: ( rule__OpOther__Group_5_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                     }
-                    // InternalCubeDSL.g:2928:3: ( rule__OpOther__Group_5_1_0__0 )
-                    // InternalCubeDSL.g:2928:4: rule__OpOther__Group_5_1_0__0
+                    // InternalCubeDSL.g:2930:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalCubeDSL.g:2930:4: rule__OpOther__Group_5_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_5_1_0__0();
@@ -10353,10 +10356,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2932:2: ( '>' )
+                    // InternalCubeDSL.g:2934:2: ( '>' )
                     {
-                    // InternalCubeDSL.g:2932:2: ( '>' )
-                    // InternalCubeDSL.g:2933:3: '>'
+                    // InternalCubeDSL.g:2934:2: ( '>' )
+                    // InternalCubeDSL.g:2935:3: '>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
@@ -10389,13 +10392,13 @@
 
 
     // $ANTLR start "rule__OpOther__Alternatives_6_1"
-    // InternalCubeDSL.g:2942:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
+    // InternalCubeDSL.g:2944:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
     public final void rule__OpOther__Alternatives_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2946:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
+            // InternalCubeDSL.g:2948:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
             int alt16=3;
             int LA16_0 = input.LA(1);
 
@@ -10428,16 +10431,16 @@
             }
             switch (alt16) {
                 case 1 :
-                    // InternalCubeDSL.g:2947:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalCubeDSL.g:2949:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
                     {
-                    // InternalCubeDSL.g:2947:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-                    // InternalCubeDSL.g:2948:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalCubeDSL.g:2949:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalCubeDSL.g:2950:3: ( rule__OpOther__Group_6_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                     }
-                    // InternalCubeDSL.g:2949:3: ( rule__OpOther__Group_6_1_0__0 )
-                    // InternalCubeDSL.g:2949:4: rule__OpOther__Group_6_1_0__0
+                    // InternalCubeDSL.g:2951:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalCubeDSL.g:2951:4: rule__OpOther__Group_6_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__OpOther__Group_6_1_0__0();
@@ -10457,10 +10460,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2953:2: ( '<' )
+                    // InternalCubeDSL.g:2955:2: ( '<' )
                     {
-                    // InternalCubeDSL.g:2953:2: ( '<' )
-                    // InternalCubeDSL.g:2954:3: '<'
+                    // InternalCubeDSL.g:2955:2: ( '<' )
+                    // InternalCubeDSL.g:2956:3: '<'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -10476,10 +10479,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:2959:2: ( '=>' )
+                    // InternalCubeDSL.g:2961:2: ( '=>' )
                     {
-                    // InternalCubeDSL.g:2959:2: ( '=>' )
-                    // InternalCubeDSL.g:2960:3: '=>'
+                    // InternalCubeDSL.g:2961:2: ( '=>' )
+                    // InternalCubeDSL.g:2962:3: '=>'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
@@ -10512,13 +10515,13 @@
 
 
     // $ANTLR start "rule__OpAdd__Alternatives"
-    // InternalCubeDSL.g:2969:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
+    // InternalCubeDSL.g:2971:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
     public final void rule__OpAdd__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2973:1: ( ( '+' ) | ( '-' ) )
+            // InternalCubeDSL.g:2975:1: ( ( '+' ) | ( '-' ) )
             int alt17=2;
             int LA17_0 = input.LA(1);
 
@@ -10537,10 +10540,10 @@
             }
             switch (alt17) {
                 case 1 :
-                    // InternalCubeDSL.g:2974:2: ( '+' )
+                    // InternalCubeDSL.g:2976:2: ( '+' )
                     {
-                    // InternalCubeDSL.g:2974:2: ( '+' )
-                    // InternalCubeDSL.g:2975:3: '+'
+                    // InternalCubeDSL.g:2976:2: ( '+' )
+                    // InternalCubeDSL.g:2977:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
@@ -10556,10 +10559,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2980:2: ( '-' )
+                    // InternalCubeDSL.g:2982:2: ( '-' )
                     {
-                    // InternalCubeDSL.g:2980:2: ( '-' )
-                    // InternalCubeDSL.g:2981:3: '-'
+                    // InternalCubeDSL.g:2982:2: ( '-' )
+                    // InternalCubeDSL.g:2983:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
@@ -10592,13 +10595,13 @@
 
 
     // $ANTLR start "rule__OpMulti__Alternatives"
-    // InternalCubeDSL.g:2990:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
+    // InternalCubeDSL.g:2992:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
     public final void rule__OpMulti__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:2994:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
+            // InternalCubeDSL.g:2996:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
             int alt18=4;
             switch ( input.LA(1) ) {
             case 36:
@@ -10631,10 +10634,10 @@
 
             switch (alt18) {
                 case 1 :
-                    // InternalCubeDSL.g:2995:2: ( '*' )
+                    // InternalCubeDSL.g:2997:2: ( '*' )
                     {
-                    // InternalCubeDSL.g:2995:2: ( '*' )
-                    // InternalCubeDSL.g:2996:3: '*'
+                    // InternalCubeDSL.g:2997:2: ( '*' )
+                    // InternalCubeDSL.g:2998:3: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
@@ -10650,10 +10653,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3001:2: ( '**' )
+                    // InternalCubeDSL.g:3003:2: ( '**' )
                     {
-                    // InternalCubeDSL.g:3001:2: ( '**' )
-                    // InternalCubeDSL.g:3002:3: '**'
+                    // InternalCubeDSL.g:3003:2: ( '**' )
+                    // InternalCubeDSL.g:3004:3: '**'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
@@ -10669,10 +10672,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3007:2: ( '/' )
+                    // InternalCubeDSL.g:3009:2: ( '/' )
                     {
-                    // InternalCubeDSL.g:3007:2: ( '/' )
-                    // InternalCubeDSL.g:3008:3: '/'
+                    // InternalCubeDSL.g:3009:2: ( '/' )
+                    // InternalCubeDSL.g:3010:3: '/'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
@@ -10688,10 +10691,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3013:2: ( '%' )
+                    // InternalCubeDSL.g:3015:2: ( '%' )
                     {
-                    // InternalCubeDSL.g:3013:2: ( '%' )
-                    // InternalCubeDSL.g:3014:3: '%'
+                    // InternalCubeDSL.g:3015:2: ( '%' )
+                    // InternalCubeDSL.g:3016:3: '%'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
@@ -10724,20 +10727,20 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Alternatives"
-    // InternalCubeDSL.g:3023:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
+    // InternalCubeDSL.g:3025:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
     public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3027:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
+            // InternalCubeDSL.g:3029:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
             int alt19=2;
             int LA19_0 = input.LA(1);
 
             if ( ((LA19_0>=34 && LA19_0<=35)||LA19_0==40) ) {
                 alt19=1;
             }
-            else if ( ((LA19_0>=RULE_ID && LA19_0<=RULE_DECIMAL)||LA19_0==27||(LA19_0>=45 && LA19_0<=50)||LA19_0==74||LA19_0==88||(LA19_0>=92 && LA19_0<=93)||LA19_0==96||LA19_0==98||(LA19_0>=102 && LA19_0<=110)||LA19_0==112||LA19_0==131) ) {
+            else if ( ((LA19_0>=RULE_ID && LA19_0<=RULE_DECIMAL)||LA19_0==27||(LA19_0>=45 && LA19_0<=50)||LA19_0==74||LA19_0==88||(LA19_0>=92 && LA19_0<=93)||LA19_0==96||LA19_0==98||(LA19_0>=102 && LA19_0<=110)||LA19_0==112||LA19_0==134) ) {
                 alt19=2;
             }
             else {
@@ -10749,16 +10752,16 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalCubeDSL.g:3028:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalCubeDSL.g:3030:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
                     {
-                    // InternalCubeDSL.g:3028:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
-                    // InternalCubeDSL.g:3029:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalCubeDSL.g:3030:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalCubeDSL.g:3031:3: ( rule__XUnaryOperation__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                     }
-                    // InternalCubeDSL.g:3030:3: ( rule__XUnaryOperation__Group_0__0 )
-                    // InternalCubeDSL.g:3030:4: rule__XUnaryOperation__Group_0__0
+                    // InternalCubeDSL.g:3032:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalCubeDSL.g:3032:4: rule__XUnaryOperation__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XUnaryOperation__Group_0__0();
@@ -10778,10 +10781,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3034:2: ( ruleXCastedExpression )
+                    // InternalCubeDSL.g:3036:2: ( ruleXCastedExpression )
                     {
-                    // InternalCubeDSL.g:3034:2: ( ruleXCastedExpression )
-                    // InternalCubeDSL.g:3035:3: ruleXCastedExpression
+                    // InternalCubeDSL.g:3036:2: ( ruleXCastedExpression )
+                    // InternalCubeDSL.g:3037:3: ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
@@ -10818,13 +10821,13 @@
 
 
     // $ANTLR start "rule__OpUnary__Alternatives"
-    // InternalCubeDSL.g:3044:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
+    // InternalCubeDSL.g:3046:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
     public final void rule__OpUnary__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3048:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
+            // InternalCubeDSL.g:3050:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
             int alt20=3;
             switch ( input.LA(1) ) {
             case 40:
@@ -10852,10 +10855,10 @@
 
             switch (alt20) {
                 case 1 :
-                    // InternalCubeDSL.g:3049:2: ( '!' )
+                    // InternalCubeDSL.g:3051:2: ( '!' )
                     {
-                    // InternalCubeDSL.g:3049:2: ( '!' )
-                    // InternalCubeDSL.g:3050:3: '!'
+                    // InternalCubeDSL.g:3051:2: ( '!' )
+                    // InternalCubeDSL.g:3052:3: '!'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
@@ -10871,10 +10874,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3055:2: ( '-' )
+                    // InternalCubeDSL.g:3057:2: ( '-' )
                     {
-                    // InternalCubeDSL.g:3055:2: ( '-' )
-                    // InternalCubeDSL.g:3056:3: '-'
+                    // InternalCubeDSL.g:3057:2: ( '-' )
+                    // InternalCubeDSL.g:3058:3: '-'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
@@ -10890,10 +10893,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3061:2: ( '+' )
+                    // InternalCubeDSL.g:3063:2: ( '+' )
                     {
-                    // InternalCubeDSL.g:3061:2: ( '+' )
-                    // InternalCubeDSL.g:3062:3: '+'
+                    // InternalCubeDSL.g:3063:2: ( '+' )
+                    // InternalCubeDSL.g:3064:3: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
@@ -10926,13 +10929,13 @@
 
 
     // $ANTLR start "rule__OpPostfix__Alternatives"
-    // InternalCubeDSL.g:3071:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
+    // InternalCubeDSL.g:3073:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
     public final void rule__OpPostfix__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3075:1: ( ( '++' ) | ( '--' ) )
+            // InternalCubeDSL.g:3077:1: ( ( '++' ) | ( '--' ) )
             int alt21=2;
             int LA21_0 = input.LA(1);
 
@@ -10951,10 +10954,10 @@
             }
             switch (alt21) {
                 case 1 :
-                    // InternalCubeDSL.g:3076:2: ( '++' )
+                    // InternalCubeDSL.g:3078:2: ( '++' )
                     {
-                    // InternalCubeDSL.g:3076:2: ( '++' )
-                    // InternalCubeDSL.g:3077:3: '++'
+                    // InternalCubeDSL.g:3078:2: ( '++' )
+                    // InternalCubeDSL.g:3079:3: '++'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
@@ -10970,10 +10973,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3082:2: ( '--' )
+                    // InternalCubeDSL.g:3084:2: ( '--' )
                     {
-                    // InternalCubeDSL.g:3082:2: ( '--' )
-                    // InternalCubeDSL.g:3083:3: '--'
+                    // InternalCubeDSL.g:3084:2: ( '--' )
+                    // InternalCubeDSL.g:3085:3: '--'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
@@ -11006,27 +11009,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
-    // InternalCubeDSL.g:3092:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
+    // InternalCubeDSL.g:3094:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3096:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
+            // InternalCubeDSL.g:3098:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
             int alt22=2;
             alt22 = dfa22.predict(input);
             switch (alt22) {
                 case 1 :
-                    // InternalCubeDSL.g:3097:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalCubeDSL.g:3099:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                     {
-                    // InternalCubeDSL.g:3097:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
-                    // InternalCubeDSL.g:3098:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalCubeDSL.g:3099:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalCubeDSL.g:3100:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                     }
-                    // InternalCubeDSL.g:3099:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
-                    // InternalCubeDSL.g:3099:4: rule__XMemberFeatureCall__Group_1_0__0
+                    // InternalCubeDSL.g:3101:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalCubeDSL.g:3101:4: rule__XMemberFeatureCall__Group_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_0__0();
@@ -11046,16 +11049,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3103:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalCubeDSL.g:3105:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                     {
-                    // InternalCubeDSL.g:3103:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
-                    // InternalCubeDSL.g:3104:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalCubeDSL.g:3105:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalCubeDSL.g:3106:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                     }
-                    // InternalCubeDSL.g:3105:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
-                    // InternalCubeDSL.g:3105:4: rule__XMemberFeatureCall__Group_1_1__0
+                    // InternalCubeDSL.g:3107:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalCubeDSL.g:3107:4: rule__XMemberFeatureCall__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1__0();
@@ -11092,20 +11095,20 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
-    // InternalCubeDSL.g:3113:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
+    // InternalCubeDSL.g:3115:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_0_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3117:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
+            // InternalCubeDSL.g:3119:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
             int alt23=2;
             int LA23_0 = input.LA(1);
 
             if ( (LA23_0==43) ) {
                 alt23=1;
             }
-            else if ( (LA23_0==127) ) {
+            else if ( (LA23_0==130) ) {
                 alt23=2;
             }
             else {
@@ -11117,10 +11120,10 @@
             }
             switch (alt23) {
                 case 1 :
-                    // InternalCubeDSL.g:3118:2: ( '.' )
+                    // InternalCubeDSL.g:3120:2: ( '.' )
                     {
-                    // InternalCubeDSL.g:3118:2: ( '.' )
-                    // InternalCubeDSL.g:3119:3: '.'
+                    // InternalCubeDSL.g:3120:2: ( '.' )
+                    // InternalCubeDSL.g:3121:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
@@ -11136,16 +11139,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3124:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalCubeDSL.g:3126:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                     {
-                    // InternalCubeDSL.g:3124:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
-                    // InternalCubeDSL.g:3125:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalCubeDSL.g:3126:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalCubeDSL.g:3127:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); 
                     }
-                    // InternalCubeDSL.g:3126:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
-                    // InternalCubeDSL.g:3126:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+                    // InternalCubeDSL.g:3128:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalCubeDSL.g:3128:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();
@@ -11182,13 +11185,13 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
-    // InternalCubeDSL.g:3134:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
+    // InternalCubeDSL.g:3136:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3138:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
+            // InternalCubeDSL.g:3140:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
             int alt24=3;
             switch ( input.LA(1) ) {
             case 43:
@@ -11196,12 +11199,12 @@
                 alt24=1;
                 }
                 break;
-            case 128:
+            case 131:
                 {
                 alt24=2;
                 }
                 break;
-            case 127:
+            case 130:
                 {
                 alt24=3;
                 }
@@ -11216,10 +11219,10 @@
 
             switch (alt24) {
                 case 1 :
-                    // InternalCubeDSL.g:3139:2: ( '.' )
+                    // InternalCubeDSL.g:3141:2: ( '.' )
                     {
-                    // InternalCubeDSL.g:3139:2: ( '.' )
-                    // InternalCubeDSL.g:3140:3: '.'
+                    // InternalCubeDSL.g:3141:2: ( '.' )
+                    // InternalCubeDSL.g:3142:3: '.'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
@@ -11235,16 +11238,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3145:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalCubeDSL.g:3147:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                     {
-                    // InternalCubeDSL.g:3145:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
-                    // InternalCubeDSL.g:3146:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalCubeDSL.g:3147:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalCubeDSL.g:3148:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); 
                     }
-                    // InternalCubeDSL.g:3147:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
-                    // InternalCubeDSL.g:3147:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+                    // InternalCubeDSL.g:3149:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalCubeDSL.g:3149:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();
@@ -11264,16 +11267,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3151:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalCubeDSL.g:3153:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                     {
-                    // InternalCubeDSL.g:3151:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
-                    // InternalCubeDSL.g:3152:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalCubeDSL.g:3153:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalCubeDSL.g:3154:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); 
                     }
-                    // InternalCubeDSL.g:3153:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
-                    // InternalCubeDSL.g:3153:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+                    // InternalCubeDSL.g:3155:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalCubeDSL.g:3155:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();
@@ -11310,27 +11313,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
-    // InternalCubeDSL.g:3161:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
+    // InternalCubeDSL.g:3163:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
     public final void rule__XMemberFeatureCall__Alternatives_1_1_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3165:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
+            // InternalCubeDSL.g:3167:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
             int alt25=2;
             alt25 = dfa25.predict(input);
             switch (alt25) {
                 case 1 :
-                    // InternalCubeDSL.g:3166:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalCubeDSL.g:3168:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                     {
-                    // InternalCubeDSL.g:3166:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-                    // InternalCubeDSL.g:3167:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalCubeDSL.g:3168:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalCubeDSL.g:3169:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                     }
-                    // InternalCubeDSL.g:3168:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-                    // InternalCubeDSL.g:3168:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+                    // InternalCubeDSL.g:3170:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalCubeDSL.g:3170:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -11350,16 +11353,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3172:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalCubeDSL.g:3174:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                     {
-                    // InternalCubeDSL.g:3172:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
-                    // InternalCubeDSL.g:3173:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalCubeDSL.g:3174:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalCubeDSL.g:3175:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
                     }
-                    // InternalCubeDSL.g:3174:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
-                    // InternalCubeDSL.g:3174:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+                    // InternalCubeDSL.g:3176:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalCubeDSL.g:3176:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3_1_1__0();
@@ -11396,21 +11399,21 @@
 
 
     // $ANTLR start "rule__XPrimaryExpression__Alternatives"
-    // InternalCubeDSL.g:3182:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
+    // InternalCubeDSL.g:3184:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
     public final void rule__XPrimaryExpression__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3186:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
+            // InternalCubeDSL.g:3188:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
             int alt26=15;
             alt26 = dfa26.predict(input);
             switch (alt26) {
                 case 1 :
-                    // InternalCubeDSL.g:3187:2: ( ruleXConstructorCall )
+                    // InternalCubeDSL.g:3189:2: ( ruleXConstructorCall )
                     {
-                    // InternalCubeDSL.g:3187:2: ( ruleXConstructorCall )
-                    // InternalCubeDSL.g:3188:3: ruleXConstructorCall
+                    // InternalCubeDSL.g:3189:2: ( ruleXConstructorCall )
+                    // InternalCubeDSL.g:3190:3: ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
@@ -11430,10 +11433,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3193:2: ( ruleXBlockExpression )
+                    // InternalCubeDSL.g:3195:2: ( ruleXBlockExpression )
                     {
-                    // InternalCubeDSL.g:3193:2: ( ruleXBlockExpression )
-                    // InternalCubeDSL.g:3194:3: ruleXBlockExpression
+                    // InternalCubeDSL.g:3195:2: ( ruleXBlockExpression )
+                    // InternalCubeDSL.g:3196:3: ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
@@ -11453,10 +11456,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3199:2: ( ruleXSwitchExpression )
+                    // InternalCubeDSL.g:3201:2: ( ruleXSwitchExpression )
                     {
-                    // InternalCubeDSL.g:3199:2: ( ruleXSwitchExpression )
-                    // InternalCubeDSL.g:3200:3: ruleXSwitchExpression
+                    // InternalCubeDSL.g:3201:2: ( ruleXSwitchExpression )
+                    // InternalCubeDSL.g:3202:3: ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
@@ -11476,16 +11479,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3205:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalCubeDSL.g:3207:2: ( ( ruleXSynchronizedExpression ) )
                     {
-                    // InternalCubeDSL.g:3205:2: ( ( ruleXSynchronizedExpression ) )
-                    // InternalCubeDSL.g:3206:3: ( ruleXSynchronizedExpression )
+                    // InternalCubeDSL.g:3207:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalCubeDSL.g:3208:3: ( ruleXSynchronizedExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                     }
-                    // InternalCubeDSL.g:3207:3: ( ruleXSynchronizedExpression )
-                    // InternalCubeDSL.g:3207:4: ruleXSynchronizedExpression
+                    // InternalCubeDSL.g:3209:3: ( ruleXSynchronizedExpression )
+                    // InternalCubeDSL.g:3209:4: ruleXSynchronizedExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXSynchronizedExpression();
@@ -11505,10 +11508,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:3211:2: ( ruleXFeatureCall )
+                    // InternalCubeDSL.g:3213:2: ( ruleXFeatureCall )
                     {
-                    // InternalCubeDSL.g:3211:2: ( ruleXFeatureCall )
-                    // InternalCubeDSL.g:3212:3: ruleXFeatureCall
+                    // InternalCubeDSL.g:3213:2: ( ruleXFeatureCall )
+                    // InternalCubeDSL.g:3214:3: ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
@@ -11528,10 +11531,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:3217:2: ( ruleXLiteral )
+                    // InternalCubeDSL.g:3219:2: ( ruleXLiteral )
                     {
-                    // InternalCubeDSL.g:3217:2: ( ruleXLiteral )
-                    // InternalCubeDSL.g:3218:3: ruleXLiteral
+                    // InternalCubeDSL.g:3219:2: ( ruleXLiteral )
+                    // InternalCubeDSL.g:3220:3: ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
@@ -11551,10 +11554,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:3223:2: ( ruleXIfExpression )
+                    // InternalCubeDSL.g:3225:2: ( ruleXIfExpression )
                     {
-                    // InternalCubeDSL.g:3223:2: ( ruleXIfExpression )
-                    // InternalCubeDSL.g:3224:3: ruleXIfExpression
+                    // InternalCubeDSL.g:3225:2: ( ruleXIfExpression )
+                    // InternalCubeDSL.g:3226:3: ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
@@ -11574,16 +11577,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalCubeDSL.g:3229:2: ( ( ruleXForLoopExpression ) )
+                    // InternalCubeDSL.g:3231:2: ( ( ruleXForLoopExpression ) )
                     {
-                    // InternalCubeDSL.g:3229:2: ( ( ruleXForLoopExpression ) )
-                    // InternalCubeDSL.g:3230:3: ( ruleXForLoopExpression )
+                    // InternalCubeDSL.g:3231:2: ( ( ruleXForLoopExpression ) )
+                    // InternalCubeDSL.g:3232:3: ( ruleXForLoopExpression )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                     }
-                    // InternalCubeDSL.g:3231:3: ( ruleXForLoopExpression )
-                    // InternalCubeDSL.g:3231:4: ruleXForLoopExpression
+                    // InternalCubeDSL.g:3233:3: ( ruleXForLoopExpression )
+                    // InternalCubeDSL.g:3233:4: ruleXForLoopExpression
                     {
                     pushFollow(FOLLOW_2);
                     ruleXForLoopExpression();
@@ -11603,10 +11606,10 @@
                     }
                     break;
                 case 9 :
-                    // InternalCubeDSL.g:3235:2: ( ruleXBasicForLoopExpression )
+                    // InternalCubeDSL.g:3237:2: ( ruleXBasicForLoopExpression )
                     {
-                    // InternalCubeDSL.g:3235:2: ( ruleXBasicForLoopExpression )
-                    // InternalCubeDSL.g:3236:3: ruleXBasicForLoopExpression
+                    // InternalCubeDSL.g:3237:2: ( ruleXBasicForLoopExpression )
+                    // InternalCubeDSL.g:3238:3: ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -11626,10 +11629,10 @@
                     }
                     break;
                 case 10 :
-                    // InternalCubeDSL.g:3241:2: ( ruleXWhileExpression )
+                    // InternalCubeDSL.g:3243:2: ( ruleXWhileExpression )
                     {
-                    // InternalCubeDSL.g:3241:2: ( ruleXWhileExpression )
-                    // InternalCubeDSL.g:3242:3: ruleXWhileExpression
+                    // InternalCubeDSL.g:3243:2: ( ruleXWhileExpression )
+                    // InternalCubeDSL.g:3244:3: ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
@@ -11649,10 +11652,10 @@
                     }
                     break;
                 case 11 :
-                    // InternalCubeDSL.g:3247:2: ( ruleXDoWhileExpression )
+                    // InternalCubeDSL.g:3249:2: ( ruleXDoWhileExpression )
                     {
-                    // InternalCubeDSL.g:3247:2: ( ruleXDoWhileExpression )
-                    // InternalCubeDSL.g:3248:3: ruleXDoWhileExpression
+                    // InternalCubeDSL.g:3249:2: ( ruleXDoWhileExpression )
+                    // InternalCubeDSL.g:3250:3: ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
@@ -11672,10 +11675,10 @@
                     }
                     break;
                 case 12 :
-                    // InternalCubeDSL.g:3253:2: ( ruleXThrowExpression )
+                    // InternalCubeDSL.g:3255:2: ( ruleXThrowExpression )
                     {
-                    // InternalCubeDSL.g:3253:2: ( ruleXThrowExpression )
-                    // InternalCubeDSL.g:3254:3: ruleXThrowExpression
+                    // InternalCubeDSL.g:3255:2: ( ruleXThrowExpression )
+                    // InternalCubeDSL.g:3256:3: ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
@@ -11695,10 +11698,10 @@
                     }
                     break;
                 case 13 :
-                    // InternalCubeDSL.g:3259:2: ( ruleXReturnExpression )
+                    // InternalCubeDSL.g:3261:2: ( ruleXReturnExpression )
                     {
-                    // InternalCubeDSL.g:3259:2: ( ruleXReturnExpression )
-                    // InternalCubeDSL.g:3260:3: ruleXReturnExpression
+                    // InternalCubeDSL.g:3261:2: ( ruleXReturnExpression )
+                    // InternalCubeDSL.g:3262:3: ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
@@ -11718,10 +11721,10 @@
                     }
                     break;
                 case 14 :
-                    // InternalCubeDSL.g:3265:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalCubeDSL.g:3267:2: ( ruleXTryCatchFinallyExpression )
                     {
-                    // InternalCubeDSL.g:3265:2: ( ruleXTryCatchFinallyExpression )
-                    // InternalCubeDSL.g:3266:3: ruleXTryCatchFinallyExpression
+                    // InternalCubeDSL.g:3267:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalCubeDSL.g:3268:3: ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
@@ -11741,10 +11744,10 @@
                     }
                     break;
                 case 15 :
-                    // InternalCubeDSL.g:3271:2: ( ruleXParenthesizedExpression )
+                    // InternalCubeDSL.g:3273:2: ( ruleXParenthesizedExpression )
                     {
-                    // InternalCubeDSL.g:3271:2: ( ruleXParenthesizedExpression )
-                    // InternalCubeDSL.g:3272:3: ruleXParenthesizedExpression
+                    // InternalCubeDSL.g:3273:2: ( ruleXParenthesizedExpression )
+                    // InternalCubeDSL.g:3274:3: ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
@@ -11781,13 +11784,13 @@
 
 
     // $ANTLR start "rule__XLiteral__Alternatives"
-    // InternalCubeDSL.g:3281:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
+    // InternalCubeDSL.g:3283:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
     public final void rule__XLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3285:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
+            // InternalCubeDSL.g:3287:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
             int alt27=7;
             switch ( input.LA(1) ) {
             case 92:
@@ -11801,7 +11804,7 @@
                 }
                 break;
             case 50:
-            case 131:
+            case 134:
                 {
                 alt27=3;
                 }
@@ -11838,10 +11841,10 @@
 
             switch (alt27) {
                 case 1 :
-                    // InternalCubeDSL.g:3286:2: ( ruleXCollectionLiteral )
+                    // InternalCubeDSL.g:3288:2: ( ruleXCollectionLiteral )
                     {
-                    // InternalCubeDSL.g:3286:2: ( ruleXCollectionLiteral )
-                    // InternalCubeDSL.g:3287:3: ruleXCollectionLiteral
+                    // InternalCubeDSL.g:3288:2: ( ruleXCollectionLiteral )
+                    // InternalCubeDSL.g:3289:3: ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
@@ -11861,16 +11864,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3292:2: ( ( ruleXClosure ) )
+                    // InternalCubeDSL.g:3294:2: ( ( ruleXClosure ) )
                     {
-                    // InternalCubeDSL.g:3292:2: ( ( ruleXClosure ) )
-                    // InternalCubeDSL.g:3293:3: ( ruleXClosure )
+                    // InternalCubeDSL.g:3294:2: ( ( ruleXClosure ) )
+                    // InternalCubeDSL.g:3295:3: ( ruleXClosure )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                     }
-                    // InternalCubeDSL.g:3294:3: ( ruleXClosure )
-                    // InternalCubeDSL.g:3294:4: ruleXClosure
+                    // InternalCubeDSL.g:3296:3: ( ruleXClosure )
+                    // InternalCubeDSL.g:3296:4: ruleXClosure
                     {
                     pushFollow(FOLLOW_2);
                     ruleXClosure();
@@ -11890,10 +11893,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3298:2: ( ruleXBooleanLiteral )
+                    // InternalCubeDSL.g:3300:2: ( ruleXBooleanLiteral )
                     {
-                    // InternalCubeDSL.g:3298:2: ( ruleXBooleanLiteral )
-                    // InternalCubeDSL.g:3299:3: ruleXBooleanLiteral
+                    // InternalCubeDSL.g:3300:2: ( ruleXBooleanLiteral )
+                    // InternalCubeDSL.g:3301:3: ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
@@ -11913,10 +11916,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3304:2: ( ruleXNumberLiteral )
+                    // InternalCubeDSL.g:3306:2: ( ruleXNumberLiteral )
                     {
-                    // InternalCubeDSL.g:3304:2: ( ruleXNumberLiteral )
-                    // InternalCubeDSL.g:3305:3: ruleXNumberLiteral
+                    // InternalCubeDSL.g:3306:2: ( ruleXNumberLiteral )
+                    // InternalCubeDSL.g:3307:3: ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
@@ -11936,10 +11939,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:3310:2: ( ruleXNullLiteral )
+                    // InternalCubeDSL.g:3312:2: ( ruleXNullLiteral )
                     {
-                    // InternalCubeDSL.g:3310:2: ( ruleXNullLiteral )
-                    // InternalCubeDSL.g:3311:3: ruleXNullLiteral
+                    // InternalCubeDSL.g:3312:2: ( ruleXNullLiteral )
+                    // InternalCubeDSL.g:3313:3: ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
@@ -11959,10 +11962,10 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:3316:2: ( ruleXStringLiteral )
+                    // InternalCubeDSL.g:3318:2: ( ruleXStringLiteral )
                     {
-                    // InternalCubeDSL.g:3316:2: ( ruleXStringLiteral )
-                    // InternalCubeDSL.g:3317:3: ruleXStringLiteral
+                    // InternalCubeDSL.g:3318:2: ( ruleXStringLiteral )
+                    // InternalCubeDSL.g:3319:3: ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
@@ -11982,10 +11985,10 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:3322:2: ( ruleXTypeLiteral )
+                    // InternalCubeDSL.g:3324:2: ( ruleXTypeLiteral )
                     {
-                    // InternalCubeDSL.g:3322:2: ( ruleXTypeLiteral )
-                    // InternalCubeDSL.g:3323:3: ruleXTypeLiteral
+                    // InternalCubeDSL.g:3324:2: ( ruleXTypeLiteral )
+                    // InternalCubeDSL.g:3325:3: ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
@@ -12022,25 +12025,25 @@
 
 
     // $ANTLR start "rule__XCollectionLiteral__Alternatives"
-    // InternalCubeDSL.g:3332:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
+    // InternalCubeDSL.g:3334:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
     public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3336:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
+            // InternalCubeDSL.g:3338:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
             int alt28=2;
             int LA28_0 = input.LA(1);
 
             if ( (LA28_0==92) ) {
                 int LA28_1 = input.LA(2);
 
-                if ( (LA28_1==93) ) {
-                    alt28=2;
-                }
-                else if ( (LA28_1==74) ) {
+                if ( (LA28_1==74) ) {
                     alt28=1;
                 }
+                else if ( (LA28_1==93) ) {
+                    alt28=2;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -12058,10 +12061,10 @@
             }
             switch (alt28) {
                 case 1 :
-                    // InternalCubeDSL.g:3337:2: ( ruleXSetLiteral )
+                    // InternalCubeDSL.g:3339:2: ( ruleXSetLiteral )
                     {
-                    // InternalCubeDSL.g:3337:2: ( ruleXSetLiteral )
-                    // InternalCubeDSL.g:3338:3: ruleXSetLiteral
+                    // InternalCubeDSL.g:3339:2: ( ruleXSetLiteral )
+                    // InternalCubeDSL.g:3340:3: ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
@@ -12081,10 +12084,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3343:2: ( ruleXListLiteral )
+                    // InternalCubeDSL.g:3345:2: ( ruleXListLiteral )
                     {
-                    // InternalCubeDSL.g:3343:2: ( ruleXListLiteral )
-                    // InternalCubeDSL.g:3344:3: ruleXListLiteral
+                    // InternalCubeDSL.g:3345:2: ( ruleXListLiteral )
+                    // InternalCubeDSL.g:3346:3: ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
@@ -12121,27 +12124,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
-    // InternalCubeDSL.g:3353:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
+    // InternalCubeDSL.g:3355:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
     public final void rule__XSwitchExpression__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3357:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
+            // InternalCubeDSL.g:3359:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
             int alt29=2;
             alt29 = dfa29.predict(input);
             switch (alt29) {
                 case 1 :
-                    // InternalCubeDSL.g:3358:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalCubeDSL.g:3360:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                     {
-                    // InternalCubeDSL.g:3358:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-                    // InternalCubeDSL.g:3359:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalCubeDSL.g:3360:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalCubeDSL.g:3361:3: ( rule__XSwitchExpression__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                     }
-                    // InternalCubeDSL.g:3360:3: ( rule__XSwitchExpression__Group_2_0__0 )
-                    // InternalCubeDSL.g:3360:4: rule__XSwitchExpression__Group_2_0__0
+                    // InternalCubeDSL.g:3362:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalCubeDSL.g:3362:4: rule__XSwitchExpression__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_0__0();
@@ -12161,16 +12164,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3364:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalCubeDSL.g:3366:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                     {
-                    // InternalCubeDSL.g:3364:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
-                    // InternalCubeDSL.g:3365:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalCubeDSL.g:3366:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalCubeDSL.g:3367:3: ( rule__XSwitchExpression__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                     }
-                    // InternalCubeDSL.g:3366:3: ( rule__XSwitchExpression__Group_2_1__0 )
-                    // InternalCubeDSL.g:3366:4: rule__XSwitchExpression__Group_2_1__0
+                    // InternalCubeDSL.g:3368:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalCubeDSL.g:3368:4: rule__XSwitchExpression__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1__0();
@@ -12207,13 +12210,13 @@
 
 
     // $ANTLR start "rule__XCasePart__Alternatives_3"
-    // InternalCubeDSL.g:3374:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
+    // InternalCubeDSL.g:3376:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
     public final void rule__XCasePart__Alternatives_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3378:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
+            // InternalCubeDSL.g:3380:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
             int alt30=2;
             int LA30_0 = input.LA(1);
 
@@ -12232,16 +12235,16 @@
             }
             switch (alt30) {
                 case 1 :
-                    // InternalCubeDSL.g:3379:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalCubeDSL.g:3381:2: ( ( rule__XCasePart__Group_3_0__0 ) )
                     {
-                    // InternalCubeDSL.g:3379:2: ( ( rule__XCasePart__Group_3_0__0 ) )
-                    // InternalCubeDSL.g:3380:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalCubeDSL.g:3381:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalCubeDSL.g:3382:3: ( rule__XCasePart__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                     }
-                    // InternalCubeDSL.g:3381:3: ( rule__XCasePart__Group_3_0__0 )
-                    // InternalCubeDSL.g:3381:4: rule__XCasePart__Group_3_0__0
+                    // InternalCubeDSL.g:3383:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalCubeDSL.g:3383:4: rule__XCasePart__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_3_0__0();
@@ -12261,16 +12264,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3385:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalCubeDSL.g:3387:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                     {
-                    // InternalCubeDSL.g:3385:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
-                    // InternalCubeDSL.g:3386:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalCubeDSL.g:3387:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalCubeDSL.g:3388:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                     }
-                    // InternalCubeDSL.g:3387:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
-                    // InternalCubeDSL.g:3387:4: rule__XCasePart__FallThroughAssignment_3_1
+                    // InternalCubeDSL.g:3389:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalCubeDSL.g:3389:4: rule__XCasePart__FallThroughAssignment_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__FallThroughAssignment_3_1();
@@ -12307,20 +12310,20 @@
 
 
     // $ANTLR start "rule__XExpressionOrVarDeclaration__Alternatives"
-    // InternalCubeDSL.g:3395:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
+    // InternalCubeDSL.g:3397:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
     public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3399:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
+            // InternalCubeDSL.g:3401:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
             int alt31=2;
             int LA31_0 = input.LA(1);
 
-            if ( (LA31_0==44||LA31_0==130) ) {
+            if ( (LA31_0==44||LA31_0==133) ) {
                 alt31=1;
             }
-            else if ( ((LA31_0>=RULE_ID && LA31_0<=RULE_DECIMAL)||LA31_0==27||(LA31_0>=34 && LA31_0<=35)||LA31_0==40||(LA31_0>=45 && LA31_0<=50)||LA31_0==74||LA31_0==88||(LA31_0>=92 && LA31_0<=93)||LA31_0==96||LA31_0==98||(LA31_0>=102 && LA31_0<=110)||LA31_0==112||LA31_0==131) ) {
+            else if ( ((LA31_0>=RULE_ID && LA31_0<=RULE_DECIMAL)||LA31_0==27||(LA31_0>=34 && LA31_0<=35)||LA31_0==40||(LA31_0>=45 && LA31_0<=50)||LA31_0==74||LA31_0==88||(LA31_0>=92 && LA31_0<=93)||LA31_0==96||LA31_0==98||(LA31_0>=102 && LA31_0<=110)||LA31_0==112||LA31_0==134) ) {
                 alt31=2;
             }
             else {
@@ -12332,10 +12335,10 @@
             }
             switch (alt31) {
                 case 1 :
-                    // InternalCubeDSL.g:3400:2: ( ruleXVariableDeclaration )
+                    // InternalCubeDSL.g:3402:2: ( ruleXVariableDeclaration )
                     {
-                    // InternalCubeDSL.g:3400:2: ( ruleXVariableDeclaration )
-                    // InternalCubeDSL.g:3401:3: ruleXVariableDeclaration
+                    // InternalCubeDSL.g:3402:2: ( ruleXVariableDeclaration )
+                    // InternalCubeDSL.g:3403:3: ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
@@ -12355,10 +12358,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3406:2: ( ruleXExpression )
+                    // InternalCubeDSL.g:3408:2: ( ruleXExpression )
                     {
-                    // InternalCubeDSL.g:3406:2: ( ruleXExpression )
-                    // InternalCubeDSL.g:3407:3: ruleXExpression
+                    // InternalCubeDSL.g:3408:2: ( ruleXExpression )
+                    // InternalCubeDSL.g:3409:3: ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
@@ -12395,17 +12398,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
-    // InternalCubeDSL.g:3416:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
+    // InternalCubeDSL.g:3418:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
     public final void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3420:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
+            // InternalCubeDSL.g:3422:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
             int alt32=2;
             int LA32_0 = input.LA(1);
 
-            if ( (LA32_0==130) ) {
+            if ( (LA32_0==133) ) {
                 alt32=1;
             }
             else if ( (LA32_0==44) ) {
@@ -12420,16 +12423,16 @@
             }
             switch (alt32) {
                 case 1 :
-                    // InternalCubeDSL.g:3421:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalCubeDSL.g:3423:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                     {
-                    // InternalCubeDSL.g:3421:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
-                    // InternalCubeDSL.g:3422:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalCubeDSL.g:3423:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalCubeDSL.g:3424:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                     }
-                    // InternalCubeDSL.g:3423:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
-                    // InternalCubeDSL.g:3423:4: rule__XVariableDeclaration__WriteableAssignment_1_0
+                    // InternalCubeDSL.g:3425:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalCubeDSL.g:3425:4: rule__XVariableDeclaration__WriteableAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__WriteableAssignment_1_0();
@@ -12449,10 +12452,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3427:2: ( 'val' )
+                    // InternalCubeDSL.g:3429:2: ( 'val' )
                     {
-                    // InternalCubeDSL.g:3427:2: ( 'val' )
-                    // InternalCubeDSL.g:3428:3: 'val'
+                    // InternalCubeDSL.g:3429:2: ( 'val' )
+                    // InternalCubeDSL.g:3430:3: 'val'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
@@ -12485,13 +12488,13 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
-    // InternalCubeDSL.g:3437:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
+    // InternalCubeDSL.g:3439:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
     public final void rule__XVariableDeclaration__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3441:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
+            // InternalCubeDSL.g:3443:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
             int alt33=2;
             int LA33_0 = input.LA(1);
 
@@ -12524,16 +12527,16 @@
             }
             switch (alt33) {
                 case 1 :
-                    // InternalCubeDSL.g:3442:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalCubeDSL.g:3444:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                     {
-                    // InternalCubeDSL.g:3442:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-                    // InternalCubeDSL.g:3443:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalCubeDSL.g:3444:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalCubeDSL.g:3445:3: ( rule__XVariableDeclaration__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                     }
-                    // InternalCubeDSL.g:3444:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-                    // InternalCubeDSL.g:3444:4: rule__XVariableDeclaration__Group_2_0__0
+                    // InternalCubeDSL.g:3446:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalCubeDSL.g:3446:4: rule__XVariableDeclaration__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_2_0__0();
@@ -12553,16 +12556,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3448:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalCubeDSL.g:3450:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                     {
-                    // InternalCubeDSL.g:3448:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
-                    // InternalCubeDSL.g:3449:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalCubeDSL.g:3450:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalCubeDSL.g:3451:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                     }
-                    // InternalCubeDSL.g:3450:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
-                    // InternalCubeDSL.g:3450:4: rule__XVariableDeclaration__NameAssignment_2_1
+                    // InternalCubeDSL.g:3452:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalCubeDSL.g:3452:4: rule__XVariableDeclaration__NameAssignment_2_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__NameAssignment_2_1();
@@ -12599,27 +12602,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
-    // InternalCubeDSL.g:3458:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
+    // InternalCubeDSL.g:3460:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
     public final void rule__XFeatureCall__Alternatives_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3462:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
+            // InternalCubeDSL.g:3464:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
             int alt34=2;
             alt34 = dfa34.predict(input);
             switch (alt34) {
                 case 1 :
-                    // InternalCubeDSL.g:3463:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalCubeDSL.g:3465:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                     {
-                    // InternalCubeDSL.g:3463:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-                    // InternalCubeDSL.g:3464:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalCubeDSL.g:3465:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalCubeDSL.g:3466:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                     }
-                    // InternalCubeDSL.g:3465:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-                    // InternalCubeDSL.g:3465:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+                    // InternalCubeDSL.g:3467:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalCubeDSL.g:3467:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -12639,16 +12642,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3469:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalCubeDSL.g:3471:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                     {
-                    // InternalCubeDSL.g:3469:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
-                    // InternalCubeDSL.g:3470:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalCubeDSL.g:3471:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalCubeDSL.g:3472:3: ( rule__XFeatureCall__Group_3_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                     }
-                    // InternalCubeDSL.g:3471:3: ( rule__XFeatureCall__Group_3_1_1__0 )
-                    // InternalCubeDSL.g:3471:4: rule__XFeatureCall__Group_3_1_1__0
+                    // InternalCubeDSL.g:3473:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalCubeDSL.g:3473:4: rule__XFeatureCall__Group_3_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3_1_1__0();
@@ -12685,13 +12688,13 @@
 
 
     // $ANTLR start "rule__FeatureCallID__Alternatives"
-    // InternalCubeDSL.g:3479:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
+    // InternalCubeDSL.g:3481:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
     public final void rule__FeatureCallID__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3483:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
+            // InternalCubeDSL.g:3485:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
             int alt35=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
@@ -12729,10 +12732,10 @@
 
             switch (alt35) {
                 case 1 :
-                    // InternalCubeDSL.g:3484:2: ( ruleValidID )
+                    // InternalCubeDSL.g:3486:2: ( ruleValidID )
                     {
-                    // InternalCubeDSL.g:3484:2: ( ruleValidID )
-                    // InternalCubeDSL.g:3485:3: ruleValidID
+                    // InternalCubeDSL.g:3486:2: ( ruleValidID )
+                    // InternalCubeDSL.g:3487:3: ruleValidID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
@@ -12752,10 +12755,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3490:2: ( 'extends' )
+                    // InternalCubeDSL.g:3492:2: ( 'extends' )
                     {
-                    // InternalCubeDSL.g:3490:2: ( 'extends' )
-                    // InternalCubeDSL.g:3491:3: 'extends'
+                    // InternalCubeDSL.g:3492:2: ( 'extends' )
+                    // InternalCubeDSL.g:3493:3: 'extends'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
@@ -12771,10 +12774,10 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3496:2: ( 'static' )
+                    // InternalCubeDSL.g:3498:2: ( 'static' )
                     {
-                    // InternalCubeDSL.g:3496:2: ( 'static' )
-                    // InternalCubeDSL.g:3497:3: 'static'
+                    // InternalCubeDSL.g:3498:2: ( 'static' )
+                    // InternalCubeDSL.g:3499:3: 'static'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
@@ -12790,10 +12793,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3502:2: ( 'import' )
+                    // InternalCubeDSL.g:3504:2: ( 'import' )
                     {
-                    // InternalCubeDSL.g:3502:2: ( 'import' )
-                    // InternalCubeDSL.g:3503:3: 'import'
+                    // InternalCubeDSL.g:3504:2: ( 'import' )
+                    // InternalCubeDSL.g:3505:3: 'import'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
@@ -12809,10 +12812,10 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:3508:2: ( 'extension' )
+                    // InternalCubeDSL.g:3510:2: ( 'extension' )
                     {
-                    // InternalCubeDSL.g:3508:2: ( 'extension' )
-                    // InternalCubeDSL.g:3509:3: 'extension'
+                    // InternalCubeDSL.g:3510:2: ( 'extension' )
+                    // InternalCubeDSL.g:3511:3: 'extension'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
@@ -12845,13 +12848,13 @@
 
 
     // $ANTLR start "rule__IdOrSuper__Alternatives"
-    // InternalCubeDSL.g:3518:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
+    // InternalCubeDSL.g:3520:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
     public final void rule__IdOrSuper__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3522:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
+            // InternalCubeDSL.g:3524:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
             int alt36=2;
             int LA36_0 = input.LA(1);
 
@@ -12870,10 +12873,10 @@
             }
             switch (alt36) {
                 case 1 :
-                    // InternalCubeDSL.g:3523:2: ( ruleFeatureCallID )
+                    // InternalCubeDSL.g:3525:2: ( ruleFeatureCallID )
                     {
-                    // InternalCubeDSL.g:3523:2: ( ruleFeatureCallID )
-                    // InternalCubeDSL.g:3524:3: ruleFeatureCallID
+                    // InternalCubeDSL.g:3525:2: ( ruleFeatureCallID )
+                    // InternalCubeDSL.g:3526:3: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
@@ -12893,10 +12896,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3529:2: ( 'super' )
+                    // InternalCubeDSL.g:3531:2: ( 'super' )
                     {
-                    // InternalCubeDSL.g:3529:2: ( 'super' )
-                    // InternalCubeDSL.g:3530:3: 'super'
+                    // InternalCubeDSL.g:3531:2: ( 'super' )
+                    // InternalCubeDSL.g:3532:3: 'super'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
@@ -12929,27 +12932,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
-    // InternalCubeDSL.g:3539:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
+    // InternalCubeDSL.g:3541:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
     public final void rule__XConstructorCall__Alternatives_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3543:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
+            // InternalCubeDSL.g:3545:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
             int alt37=2;
             alt37 = dfa37.predict(input);
             switch (alt37) {
                 case 1 :
-                    // InternalCubeDSL.g:3544:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalCubeDSL.g:3546:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                     {
-                    // InternalCubeDSL.g:3544:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-                    // InternalCubeDSL.g:3545:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalCubeDSL.g:3546:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalCubeDSL.g:3547:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                     }
-                    // InternalCubeDSL.g:3546:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-                    // InternalCubeDSL.g:3546:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+                    // InternalCubeDSL.g:3548:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalCubeDSL.g:3548:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -12969,16 +12972,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3550:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalCubeDSL.g:3552:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                     {
-                    // InternalCubeDSL.g:3550:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
-                    // InternalCubeDSL.g:3551:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalCubeDSL.g:3552:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalCubeDSL.g:3553:3: ( rule__XConstructorCall__Group_4_1_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                     }
-                    // InternalCubeDSL.g:3552:3: ( rule__XConstructorCall__Group_4_1_1__0 )
-                    // InternalCubeDSL.g:3552:4: rule__XConstructorCall__Group_4_1_1__0
+                    // InternalCubeDSL.g:3554:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalCubeDSL.g:3554:4: rule__XConstructorCall__Group_4_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4_1_1__0();
@@ -13015,20 +13018,20 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
-    // InternalCubeDSL.g:3560:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
+    // InternalCubeDSL.g:3562:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
     public final void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3564:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:3566:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
             int alt38=2;
             int LA38_0 = input.LA(1);
 
             if ( (LA38_0==50) ) {
                 alt38=1;
             }
-            else if ( (LA38_0==131) ) {
+            else if ( (LA38_0==134) ) {
                 alt38=2;
             }
             else {
@@ -13040,10 +13043,10 @@
             }
             switch (alt38) {
                 case 1 :
-                    // InternalCubeDSL.g:3565:2: ( 'false' )
+                    // InternalCubeDSL.g:3567:2: ( 'false' )
                     {
-                    // InternalCubeDSL.g:3565:2: ( 'false' )
-                    // InternalCubeDSL.g:3566:3: 'false'
+                    // InternalCubeDSL.g:3567:2: ( 'false' )
+                    // InternalCubeDSL.g:3568:3: 'false'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
@@ -13059,16 +13062,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3571:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalCubeDSL.g:3573:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                     {
-                    // InternalCubeDSL.g:3571:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
-                    // InternalCubeDSL.g:3572:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalCubeDSL.g:3573:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalCubeDSL.g:3574:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                     }
-                    // InternalCubeDSL.g:3573:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
-                    // InternalCubeDSL.g:3573:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
+                    // InternalCubeDSL.g:3575:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalCubeDSL.g:3575:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBooleanLiteral__IsTrueAssignment_1_1();
@@ -13105,13 +13108,13 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
-    // InternalCubeDSL.g:3581:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
+    // InternalCubeDSL.g:3583:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
     public final void rule__XTryCatchFinallyExpression__Alternatives_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3585:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
+            // InternalCubeDSL.g:3587:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
             int alt39=2;
             int LA39_0 = input.LA(1);
 
@@ -13130,16 +13133,16 @@
             }
             switch (alt39) {
                 case 1 :
-                    // InternalCubeDSL.g:3586:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalCubeDSL.g:3588:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                     {
-                    // InternalCubeDSL.g:3586:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
-                    // InternalCubeDSL.g:3587:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalCubeDSL.g:3588:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalCubeDSL.g:3589:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                     }
-                    // InternalCubeDSL.g:3588:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
-                    // InternalCubeDSL.g:3588:4: rule__XTryCatchFinallyExpression__Group_3_0__0
+                    // InternalCubeDSL.g:3590:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalCubeDSL.g:3590:4: rule__XTryCatchFinallyExpression__Group_3_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0__0();
@@ -13159,16 +13162,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3592:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalCubeDSL.g:3594:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                     {
-                    // InternalCubeDSL.g:3592:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
-                    // InternalCubeDSL.g:3593:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalCubeDSL.g:3594:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalCubeDSL.g:3595:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                     }
-                    // InternalCubeDSL.g:3594:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
-                    // InternalCubeDSL.g:3594:4: rule__XTryCatchFinallyExpression__Group_3_1__0
+                    // InternalCubeDSL.g:3596:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalCubeDSL.g:3596:4: rule__XTryCatchFinallyExpression__Group_3_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_1__0();
@@ -13205,13 +13208,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives"
-    // InternalCubeDSL.g:3602:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
+    // InternalCubeDSL.g:3604:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
     public final void rule__Number__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3606:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
+            // InternalCubeDSL.g:3608:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
             int alt40=2;
             int LA40_0 = input.LA(1);
 
@@ -13230,10 +13233,10 @@
             }
             switch (alt40) {
                 case 1 :
-                    // InternalCubeDSL.g:3607:2: ( RULE_HEX )
+                    // InternalCubeDSL.g:3609:2: ( RULE_HEX )
                     {
-                    // InternalCubeDSL.g:3607:2: ( RULE_HEX )
-                    // InternalCubeDSL.g:3608:3: RULE_HEX
+                    // InternalCubeDSL.g:3609:2: ( RULE_HEX )
+                    // InternalCubeDSL.g:3610:3: RULE_HEX
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
@@ -13249,16 +13252,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3613:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalCubeDSL.g:3615:2: ( ( rule__Number__Group_1__0 ) )
                     {
-                    // InternalCubeDSL.g:3613:2: ( ( rule__Number__Group_1__0 ) )
-                    // InternalCubeDSL.g:3614:3: ( rule__Number__Group_1__0 )
+                    // InternalCubeDSL.g:3615:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalCubeDSL.g:3616:3: ( rule__Number__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getGroup_1()); 
                     }
-                    // InternalCubeDSL.g:3615:3: ( rule__Number__Group_1__0 )
-                    // InternalCubeDSL.g:3615:4: rule__Number__Group_1__0
+                    // InternalCubeDSL.g:3617:3: ( rule__Number__Group_1__0 )
+                    // InternalCubeDSL.g:3617:4: rule__Number__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1__0();
@@ -13295,13 +13298,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_0"
-    // InternalCubeDSL.g:3623:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalCubeDSL.g:3625:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
     public final void rule__Number__Alternatives_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3627:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            // InternalCubeDSL.g:3629:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
             int alt41=2;
             int LA41_0 = input.LA(1);
 
@@ -13320,10 +13323,10 @@
             }
             switch (alt41) {
                 case 1 :
-                    // InternalCubeDSL.g:3628:2: ( RULE_INT )
+                    // InternalCubeDSL.g:3630:2: ( RULE_INT )
                     {
-                    // InternalCubeDSL.g:3628:2: ( RULE_INT )
-                    // InternalCubeDSL.g:3629:3: RULE_INT
+                    // InternalCubeDSL.g:3630:2: ( RULE_INT )
+                    // InternalCubeDSL.g:3631:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
@@ -13339,10 +13342,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3634:2: ( RULE_DECIMAL )
+                    // InternalCubeDSL.g:3636:2: ( RULE_DECIMAL )
                     {
-                    // InternalCubeDSL.g:3634:2: ( RULE_DECIMAL )
-                    // InternalCubeDSL.g:3635:3: RULE_DECIMAL
+                    // InternalCubeDSL.g:3636:2: ( RULE_DECIMAL )
+                    // InternalCubeDSL.g:3637:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
@@ -13375,13 +13378,13 @@
 
 
     // $ANTLR start "rule__Number__Alternatives_1_1_1"
-    // InternalCubeDSL.g:3644:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    // InternalCubeDSL.g:3646:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
     public final void rule__Number__Alternatives_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3648:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            // InternalCubeDSL.g:3650:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
             int alt42=2;
             int LA42_0 = input.LA(1);
 
@@ -13400,10 +13403,10 @@
             }
             switch (alt42) {
                 case 1 :
-                    // InternalCubeDSL.g:3649:2: ( RULE_INT )
+                    // InternalCubeDSL.g:3651:2: ( RULE_INT )
                     {
-                    // InternalCubeDSL.g:3649:2: ( RULE_INT )
-                    // InternalCubeDSL.g:3650:3: RULE_INT
+                    // InternalCubeDSL.g:3651:2: ( RULE_INT )
+                    // InternalCubeDSL.g:3652:3: RULE_INT
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
@@ -13419,10 +13422,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3655:2: ( RULE_DECIMAL )
+                    // InternalCubeDSL.g:3657:2: ( RULE_DECIMAL )
                     {
-                    // InternalCubeDSL.g:3655:2: ( RULE_DECIMAL )
-                    // InternalCubeDSL.g:3656:3: RULE_DECIMAL
+                    // InternalCubeDSL.g:3657:2: ( RULE_DECIMAL )
+                    // InternalCubeDSL.g:3658:3: RULE_DECIMAL
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
@@ -13455,13 +13458,13 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Alternatives"
-    // InternalCubeDSL.g:3665:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
+    // InternalCubeDSL.g:3667:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
     public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3669:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
+            // InternalCubeDSL.g:3671:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
             int alt43=2;
             int LA43_0 = input.LA(1);
 
@@ -13480,16 +13483,16 @@
             }
             switch (alt43) {
                 case 1 :
-                    // InternalCubeDSL.g:3670:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalCubeDSL.g:3672:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
                     {
-                    // InternalCubeDSL.g:3670:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
-                    // InternalCubeDSL.g:3671:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalCubeDSL.g:3672:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalCubeDSL.g:3673:3: ( rule__JvmTypeReference__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                     }
-                    // InternalCubeDSL.g:3672:3: ( rule__JvmTypeReference__Group_0__0 )
-                    // InternalCubeDSL.g:3672:4: rule__JvmTypeReference__Group_0__0
+                    // InternalCubeDSL.g:3674:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalCubeDSL.g:3674:4: rule__JvmTypeReference__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmTypeReference__Group_0__0();
@@ -13509,10 +13512,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3676:2: ( ruleXFunctionTypeRef )
+                    // InternalCubeDSL.g:3678:2: ( ruleXFunctionTypeRef )
                     {
-                    // InternalCubeDSL.g:3676:2: ( ruleXFunctionTypeRef )
-                    // InternalCubeDSL.g:3677:3: ruleXFunctionTypeRef
+                    // InternalCubeDSL.g:3678:2: ( ruleXFunctionTypeRef )
+                    // InternalCubeDSL.g:3679:3: ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
@@ -13549,13 +13552,13 @@
 
 
     // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
-    // InternalCubeDSL.g:3686:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
+    // InternalCubeDSL.g:3688:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
     public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3690:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
+            // InternalCubeDSL.g:3692:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
             int alt44=2;
             int LA44_0 = input.LA(1);
 
@@ -13574,10 +13577,10 @@
             }
             switch (alt44) {
                 case 1 :
-                    // InternalCubeDSL.g:3691:2: ( ruleJvmTypeReference )
+                    // InternalCubeDSL.g:3693:2: ( ruleJvmTypeReference )
                     {
-                    // InternalCubeDSL.g:3691:2: ( ruleJvmTypeReference )
-                    // InternalCubeDSL.g:3692:3: ruleJvmTypeReference
+                    // InternalCubeDSL.g:3693:2: ( ruleJvmTypeReference )
+                    // InternalCubeDSL.g:3694:3: ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
@@ -13597,10 +13600,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3697:2: ( ruleJvmWildcardTypeReference )
+                    // InternalCubeDSL.g:3699:2: ( ruleJvmWildcardTypeReference )
                     {
-                    // InternalCubeDSL.g:3697:2: ( ruleJvmWildcardTypeReference )
-                    // InternalCubeDSL.g:3698:3: ruleJvmWildcardTypeReference
+                    // InternalCubeDSL.g:3699:2: ( ruleJvmWildcardTypeReference )
+                    // InternalCubeDSL.g:3700:3: ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
@@ -13637,13 +13640,13 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
-    // InternalCubeDSL.g:3707:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
+    // InternalCubeDSL.g:3709:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
     public final void rule__JvmWildcardTypeReference__Alternatives_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3711:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
+            // InternalCubeDSL.g:3713:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
             int alt45=2;
             int LA45_0 = input.LA(1);
 
@@ -13662,16 +13665,16 @@
             }
             switch (alt45) {
                 case 1 :
-                    // InternalCubeDSL.g:3712:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalCubeDSL.g:3714:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                     {
-                    // InternalCubeDSL.g:3712:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
-                    // InternalCubeDSL.g:3713:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalCubeDSL.g:3714:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalCubeDSL.g:3715:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                     }
-                    // InternalCubeDSL.g:3714:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
-                    // InternalCubeDSL.g:3714:4: rule__JvmWildcardTypeReference__Group_2_0__0
+                    // InternalCubeDSL.g:3716:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalCubeDSL.g:3716:4: rule__JvmWildcardTypeReference__Group_2_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_0__0();
@@ -13691,16 +13694,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3718:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalCubeDSL.g:3720:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                     {
-                    // InternalCubeDSL.g:3718:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
-                    // InternalCubeDSL.g:3719:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalCubeDSL.g:3720:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalCubeDSL.g:3721:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                     }
-                    // InternalCubeDSL.g:3720:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
-                    // InternalCubeDSL.g:3720:4: rule__JvmWildcardTypeReference__Group_2_1__0
+                    // InternalCubeDSL.g:3722:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalCubeDSL.g:3722:4: rule__JvmWildcardTypeReference__Group_2_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Group_2_1__0();
@@ -13737,13 +13740,13 @@
 
 
     // $ANTLR start "rule__CubeAggregatorEnum__Alternatives"
-    // InternalCubeDSL.g:3728:1: rule__CubeAggregatorEnum__Alternatives : ( ( ( 'sum' ) ) | ( ( 'count' ) ) | ( ( 'min' ) ) | ( ( 'max' ) ) | ( ( 'avg' ) ) | ( ( 'distinct-count' ) ) );
+    // InternalCubeDSL.g:3730:1: rule__CubeAggregatorEnum__Alternatives : ( ( ( 'sum' ) ) | ( ( 'count' ) ) | ( ( 'min' ) ) | ( ( 'max' ) ) | ( ( 'avg' ) ) | ( ( 'distinct-count' ) ) );
     public final void rule__CubeAggregatorEnum__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3732:1: ( ( ( 'sum' ) ) | ( ( 'count' ) ) | ( ( 'min' ) ) | ( ( 'max' ) ) | ( ( 'avg' ) ) | ( ( 'distinct-count' ) ) )
+            // InternalCubeDSL.g:3734:1: ( ( ( 'sum' ) ) | ( ( 'count' ) ) | ( ( 'min' ) ) | ( ( 'max' ) ) | ( ( 'avg' ) ) | ( ( 'distinct-count' ) ) )
             int alt46=6;
             switch ( input.LA(1) ) {
             case 51:
@@ -13786,16 +13789,16 @@
 
             switch (alt46) {
                 case 1 :
-                    // InternalCubeDSL.g:3733:2: ( ( 'sum' ) )
+                    // InternalCubeDSL.g:3735:2: ( ( 'sum' ) )
                     {
-                    // InternalCubeDSL.g:3733:2: ( ( 'sum' ) )
-                    // InternalCubeDSL.g:3734:3: ( 'sum' )
+                    // InternalCubeDSL.g:3735:2: ( ( 'sum' ) )
+                    // InternalCubeDSL.g:3736:3: ( 'sum' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeAggregatorEnumAccess().getSUMEnumLiteralDeclaration_0()); 
                     }
-                    // InternalCubeDSL.g:3735:3: ( 'sum' )
-                    // InternalCubeDSL.g:3735:4: 'sum'
+                    // InternalCubeDSL.g:3737:3: ( 'sum' )
+                    // InternalCubeDSL.g:3737:4: 'sum'
                     {
                     match(input,51,FOLLOW_2); if (state.failed) return ;
 
@@ -13811,16 +13814,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3739:2: ( ( 'count' ) )
+                    // InternalCubeDSL.g:3741:2: ( ( 'count' ) )
                     {
-                    // InternalCubeDSL.g:3739:2: ( ( 'count' ) )
-                    // InternalCubeDSL.g:3740:3: ( 'count' )
+                    // InternalCubeDSL.g:3741:2: ( ( 'count' ) )
+                    // InternalCubeDSL.g:3742:3: ( 'count' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeAggregatorEnumAccess().getCOUNTEnumLiteralDeclaration_1()); 
                     }
-                    // InternalCubeDSL.g:3741:3: ( 'count' )
-                    // InternalCubeDSL.g:3741:4: 'count'
+                    // InternalCubeDSL.g:3743:3: ( 'count' )
+                    // InternalCubeDSL.g:3743:4: 'count'
                     {
                     match(input,52,FOLLOW_2); if (state.failed) return ;
 
@@ -13836,16 +13839,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3745:2: ( ( 'min' ) )
+                    // InternalCubeDSL.g:3747:2: ( ( 'min' ) )
                     {
-                    // InternalCubeDSL.g:3745:2: ( ( 'min' ) )
-                    // InternalCubeDSL.g:3746:3: ( 'min' )
+                    // InternalCubeDSL.g:3747:2: ( ( 'min' ) )
+                    // InternalCubeDSL.g:3748:3: ( 'min' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeAggregatorEnumAccess().getMINEnumLiteralDeclaration_2()); 
                     }
-                    // InternalCubeDSL.g:3747:3: ( 'min' )
-                    // InternalCubeDSL.g:3747:4: 'min'
+                    // InternalCubeDSL.g:3749:3: ( 'min' )
+                    // InternalCubeDSL.g:3749:4: 'min'
                     {
                     match(input,53,FOLLOW_2); if (state.failed) return ;
 
@@ -13861,16 +13864,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3751:2: ( ( 'max' ) )
+                    // InternalCubeDSL.g:3753:2: ( ( 'max' ) )
                     {
-                    // InternalCubeDSL.g:3751:2: ( ( 'max' ) )
-                    // InternalCubeDSL.g:3752:3: ( 'max' )
+                    // InternalCubeDSL.g:3753:2: ( ( 'max' ) )
+                    // InternalCubeDSL.g:3754:3: ( 'max' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeAggregatorEnumAccess().getMAXEnumLiteralDeclaration_3()); 
                     }
-                    // InternalCubeDSL.g:3753:3: ( 'max' )
-                    // InternalCubeDSL.g:3753:4: 'max'
+                    // InternalCubeDSL.g:3755:3: ( 'max' )
+                    // InternalCubeDSL.g:3755:4: 'max'
                     {
                     match(input,54,FOLLOW_2); if (state.failed) return ;
 
@@ -13886,16 +13889,16 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:3757:2: ( ( 'avg' ) )
+                    // InternalCubeDSL.g:3759:2: ( ( 'avg' ) )
                     {
-                    // InternalCubeDSL.g:3757:2: ( ( 'avg' ) )
-                    // InternalCubeDSL.g:3758:3: ( 'avg' )
+                    // InternalCubeDSL.g:3759:2: ( ( 'avg' ) )
+                    // InternalCubeDSL.g:3760:3: ( 'avg' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeAggregatorEnumAccess().getAVGEnumLiteralDeclaration_4()); 
                     }
-                    // InternalCubeDSL.g:3759:3: ( 'avg' )
-                    // InternalCubeDSL.g:3759:4: 'avg'
+                    // InternalCubeDSL.g:3761:3: ( 'avg' )
+                    // InternalCubeDSL.g:3761:4: 'avg'
                     {
                     match(input,55,FOLLOW_2); if (state.failed) return ;
 
@@ -13911,16 +13914,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:3763:2: ( ( 'distinct-count' ) )
+                    // InternalCubeDSL.g:3765:2: ( ( 'distinct-count' ) )
                     {
-                    // InternalCubeDSL.g:3763:2: ( ( 'distinct-count' ) )
-                    // InternalCubeDSL.g:3764:3: ( 'distinct-count' )
+                    // InternalCubeDSL.g:3765:2: ( ( 'distinct-count' ) )
+                    // InternalCubeDSL.g:3766:3: ( 'distinct-count' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeAggregatorEnumAccess().getDSCEnumLiteralDeclaration_5()); 
                     }
-                    // InternalCubeDSL.g:3765:3: ( 'distinct-count' )
-                    // InternalCubeDSL.g:3765:4: 'distinct-count'
+                    // InternalCubeDSL.g:3767:3: ( 'distinct-count' )
+                    // InternalCubeDSL.g:3767:4: 'distinct-count'
                     {
                     match(input,56,FOLLOW_2); if (state.failed) return ;
 
@@ -13953,13 +13956,13 @@
 
 
     // $ANTLR start "rule__CubeLevelPropType__Alternatives"
-    // InternalCubeDSL.g:3773:1: rule__CubeLevelPropType__Alternatives : ( ( ( 'String' ) ) | ( ( 'Numeric' ) ) | ( ( 'Integer' ) ) | ( ( 'Boolean' ) ) | ( ( 'Date' ) ) | ( ( 'Time' ) ) | ( ( 'Timestamp' ) ) );
+    // InternalCubeDSL.g:3775:1: rule__CubeLevelPropType__Alternatives : ( ( ( 'String' ) ) | ( ( 'Numeric' ) ) | ( ( 'Integer' ) ) | ( ( 'Boolean' ) ) | ( ( 'Date' ) ) | ( ( 'Time' ) ) | ( ( 'Timestamp' ) ) );
     public final void rule__CubeLevelPropType__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3777:1: ( ( ( 'String' ) ) | ( ( 'Numeric' ) ) | ( ( 'Integer' ) ) | ( ( 'Boolean' ) ) | ( ( 'Date' ) ) | ( ( 'Time' ) ) | ( ( 'Timestamp' ) ) )
+            // InternalCubeDSL.g:3779:1: ( ( ( 'String' ) ) | ( ( 'Numeric' ) ) | ( ( 'Integer' ) ) | ( ( 'Boolean' ) ) | ( ( 'Date' ) ) | ( ( 'Time' ) ) | ( ( 'Timestamp' ) ) )
             int alt47=7;
             switch ( input.LA(1) ) {
             case 57:
@@ -14007,16 +14010,16 @@
 
             switch (alt47) {
                 case 1 :
-                    // InternalCubeDSL.g:3778:2: ( ( 'String' ) )
+                    // InternalCubeDSL.g:3780:2: ( ( 'String' ) )
                     {
-                    // InternalCubeDSL.g:3778:2: ( ( 'String' ) )
-                    // InternalCubeDSL.g:3779:3: ( 'String' )
+                    // InternalCubeDSL.g:3780:2: ( ( 'String' ) )
+                    // InternalCubeDSL.g:3781:3: ( 'String' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelPropTypeAccess().getSTRINGEnumLiteralDeclaration_0()); 
                     }
-                    // InternalCubeDSL.g:3780:3: ( 'String' )
-                    // InternalCubeDSL.g:3780:4: 'String'
+                    // InternalCubeDSL.g:3782:3: ( 'String' )
+                    // InternalCubeDSL.g:3782:4: 'String'
                     {
                     match(input,57,FOLLOW_2); if (state.failed) return ;
 
@@ -14032,16 +14035,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3784:2: ( ( 'Numeric' ) )
+                    // InternalCubeDSL.g:3786:2: ( ( 'Numeric' ) )
                     {
-                    // InternalCubeDSL.g:3784:2: ( ( 'Numeric' ) )
-                    // InternalCubeDSL.g:3785:3: ( 'Numeric' )
+                    // InternalCubeDSL.g:3786:2: ( ( 'Numeric' ) )
+                    // InternalCubeDSL.g:3787:3: ( 'Numeric' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelPropTypeAccess().getNUMERICEnumLiteralDeclaration_1()); 
                     }
-                    // InternalCubeDSL.g:3786:3: ( 'Numeric' )
-                    // InternalCubeDSL.g:3786:4: 'Numeric'
+                    // InternalCubeDSL.g:3788:3: ( 'Numeric' )
+                    // InternalCubeDSL.g:3788:4: 'Numeric'
                     {
                     match(input,58,FOLLOW_2); if (state.failed) return ;
 
@@ -14057,16 +14060,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3790:2: ( ( 'Integer' ) )
+                    // InternalCubeDSL.g:3792:2: ( ( 'Integer' ) )
                     {
-                    // InternalCubeDSL.g:3790:2: ( ( 'Integer' ) )
-                    // InternalCubeDSL.g:3791:3: ( 'Integer' )
+                    // InternalCubeDSL.g:3792:2: ( ( 'Integer' ) )
+                    // InternalCubeDSL.g:3793:3: ( 'Integer' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelPropTypeAccess().getINTEGEREnumLiteralDeclaration_2()); 
                     }
-                    // InternalCubeDSL.g:3792:3: ( 'Integer' )
-                    // InternalCubeDSL.g:3792:4: 'Integer'
+                    // InternalCubeDSL.g:3794:3: ( 'Integer' )
+                    // InternalCubeDSL.g:3794:4: 'Integer'
                     {
                     match(input,59,FOLLOW_2); if (state.failed) return ;
 
@@ -14082,16 +14085,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3796:2: ( ( 'Boolean' ) )
+                    // InternalCubeDSL.g:3798:2: ( ( 'Boolean' ) )
                     {
-                    // InternalCubeDSL.g:3796:2: ( ( 'Boolean' ) )
-                    // InternalCubeDSL.g:3797:3: ( 'Boolean' )
+                    // InternalCubeDSL.g:3798:2: ( ( 'Boolean' ) )
+                    // InternalCubeDSL.g:3799:3: ( 'Boolean' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelPropTypeAccess().getBOOLEANEnumLiteralDeclaration_3()); 
                     }
-                    // InternalCubeDSL.g:3798:3: ( 'Boolean' )
-                    // InternalCubeDSL.g:3798:4: 'Boolean'
+                    // InternalCubeDSL.g:3800:3: ( 'Boolean' )
+                    // InternalCubeDSL.g:3800:4: 'Boolean'
                     {
                     match(input,60,FOLLOW_2); if (state.failed) return ;
 
@@ -14107,16 +14110,16 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:3802:2: ( ( 'Date' ) )
+                    // InternalCubeDSL.g:3804:2: ( ( 'Date' ) )
                     {
-                    // InternalCubeDSL.g:3802:2: ( ( 'Date' ) )
-                    // InternalCubeDSL.g:3803:3: ( 'Date' )
+                    // InternalCubeDSL.g:3804:2: ( ( 'Date' ) )
+                    // InternalCubeDSL.g:3805:3: ( 'Date' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelPropTypeAccess().getDATEEnumLiteralDeclaration_4()); 
                     }
-                    // InternalCubeDSL.g:3804:3: ( 'Date' )
-                    // InternalCubeDSL.g:3804:4: 'Date'
+                    // InternalCubeDSL.g:3806:3: ( 'Date' )
+                    // InternalCubeDSL.g:3806:4: 'Date'
                     {
                     match(input,61,FOLLOW_2); if (state.failed) return ;
 
@@ -14132,16 +14135,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:3808:2: ( ( 'Time' ) )
+                    // InternalCubeDSL.g:3810:2: ( ( 'Time' ) )
                     {
-                    // InternalCubeDSL.g:3808:2: ( ( 'Time' ) )
-                    // InternalCubeDSL.g:3809:3: ( 'Time' )
+                    // InternalCubeDSL.g:3810:2: ( ( 'Time' ) )
+                    // InternalCubeDSL.g:3811:3: ( 'Time' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelPropTypeAccess().getTIMEEnumLiteralDeclaration_5()); 
                     }
-                    // InternalCubeDSL.g:3810:3: ( 'Time' )
-                    // InternalCubeDSL.g:3810:4: 'Time'
+                    // InternalCubeDSL.g:3812:3: ( 'Time' )
+                    // InternalCubeDSL.g:3812:4: 'Time'
                     {
                     match(input,62,FOLLOW_2); if (state.failed) return ;
 
@@ -14157,16 +14160,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:3814:2: ( ( 'Timestamp' ) )
+                    // InternalCubeDSL.g:3816:2: ( ( 'Timestamp' ) )
                     {
-                    // InternalCubeDSL.g:3814:2: ( ( 'Timestamp' ) )
-                    // InternalCubeDSL.g:3815:3: ( 'Timestamp' )
+                    // InternalCubeDSL.g:3816:2: ( ( 'Timestamp' ) )
+                    // InternalCubeDSL.g:3817:3: ( 'Timestamp' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelPropTypeAccess().getTIMESTAMPEnumLiteralDeclaration_6()); 
                     }
-                    // InternalCubeDSL.g:3816:3: ( 'Timestamp' )
-                    // InternalCubeDSL.g:3816:4: 'Timestamp'
+                    // InternalCubeDSL.g:3818:3: ( 'Timestamp' )
+                    // InternalCubeDSL.g:3818:4: 'Timestamp'
                     {
                     match(input,63,FOLLOW_2); if (state.failed) return ;
 
@@ -14199,13 +14202,13 @@
 
 
     // $ANTLR start "rule__CubeLevelLevelType__Alternatives"
-    // InternalCubeDSL.g:3824:1: rule__CubeLevelLevelType__Alternatives : ( ( ( 'Time' ) ) | ( ( 'TimeYears' ) ) | ( ( 'TimeHalfYears' ) ) | ( ( 'TimeQuarters' ) ) | ( ( 'TimeMonths' ) ) | ( ( 'TimeWeeks' ) ) | ( ( 'TimeDays' ) ) | ( ( 'TimeHours' ) ) | ( ( 'TimeMinutes' ) ) | ( ( 'TimeSeconds' ) ) );
+    // InternalCubeDSL.g:3826:1: rule__CubeLevelLevelType__Alternatives : ( ( ( 'Time' ) ) | ( ( 'TimeYears' ) ) | ( ( 'TimeHalfYears' ) ) | ( ( 'TimeQuarters' ) ) | ( ( 'TimeMonths' ) ) | ( ( 'TimeWeeks' ) ) | ( ( 'TimeDays' ) ) | ( ( 'TimeHours' ) ) | ( ( 'TimeMinutes' ) ) | ( ( 'TimeSeconds' ) ) );
     public final void rule__CubeLevelLevelType__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3828:1: ( ( ( 'Time' ) ) | ( ( 'TimeYears' ) ) | ( ( 'TimeHalfYears' ) ) | ( ( 'TimeQuarters' ) ) | ( ( 'TimeMonths' ) ) | ( ( 'TimeWeeks' ) ) | ( ( 'TimeDays' ) ) | ( ( 'TimeHours' ) ) | ( ( 'TimeMinutes' ) ) | ( ( 'TimeSeconds' ) ) )
+            // InternalCubeDSL.g:3830:1: ( ( ( 'Time' ) ) | ( ( 'TimeYears' ) ) | ( ( 'TimeHalfYears' ) ) | ( ( 'TimeQuarters' ) ) | ( ( 'TimeMonths' ) ) | ( ( 'TimeWeeks' ) ) | ( ( 'TimeDays' ) ) | ( ( 'TimeHours' ) ) | ( ( 'TimeMinutes' ) ) | ( ( 'TimeSeconds' ) ) )
             int alt48=10;
             switch ( input.LA(1) ) {
             case 62:
@@ -14268,16 +14271,16 @@
 
             switch (alt48) {
                 case 1 :
-                    // InternalCubeDSL.g:3829:2: ( ( 'Time' ) )
+                    // InternalCubeDSL.g:3831:2: ( ( 'Time' ) )
                     {
-                    // InternalCubeDSL.g:3829:2: ( ( 'Time' ) )
-                    // InternalCubeDSL.g:3830:3: ( 'Time' )
+                    // InternalCubeDSL.g:3831:2: ( ( 'Time' ) )
+                    // InternalCubeDSL.g:3832:3: ( 'Time' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIMEEnumLiteralDeclaration_0()); 
                     }
-                    // InternalCubeDSL.g:3831:3: ( 'Time' )
-                    // InternalCubeDSL.g:3831:4: 'Time'
+                    // InternalCubeDSL.g:3833:3: ( 'Time' )
+                    // InternalCubeDSL.g:3833:4: 'Time'
                     {
                     match(input,62,FOLLOW_2); if (state.failed) return ;
 
@@ -14293,16 +14296,16 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3835:2: ( ( 'TimeYears' ) )
+                    // InternalCubeDSL.g:3837:2: ( ( 'TimeYears' ) )
                     {
-                    // InternalCubeDSL.g:3835:2: ( ( 'TimeYears' ) )
-                    // InternalCubeDSL.g:3836:3: ( 'TimeYears' )
+                    // InternalCubeDSL.g:3837:2: ( ( 'TimeYears' ) )
+                    // InternalCubeDSL.g:3838:3: ( 'TimeYears' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_YEARSEnumLiteralDeclaration_1()); 
                     }
-                    // InternalCubeDSL.g:3837:3: ( 'TimeYears' )
-                    // InternalCubeDSL.g:3837:4: 'TimeYears'
+                    // InternalCubeDSL.g:3839:3: ( 'TimeYears' )
+                    // InternalCubeDSL.g:3839:4: 'TimeYears'
                     {
                     match(input,64,FOLLOW_2); if (state.failed) return ;
 
@@ -14318,16 +14321,16 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3841:2: ( ( 'TimeHalfYears' ) )
+                    // InternalCubeDSL.g:3843:2: ( ( 'TimeHalfYears' ) )
                     {
-                    // InternalCubeDSL.g:3841:2: ( ( 'TimeHalfYears' ) )
-                    // InternalCubeDSL.g:3842:3: ( 'TimeHalfYears' )
+                    // InternalCubeDSL.g:3843:2: ( ( 'TimeHalfYears' ) )
+                    // InternalCubeDSL.g:3844:3: ( 'TimeHalfYears' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_HALF_YEARSEnumLiteralDeclaration_2()); 
                     }
-                    // InternalCubeDSL.g:3843:3: ( 'TimeHalfYears' )
-                    // InternalCubeDSL.g:3843:4: 'TimeHalfYears'
+                    // InternalCubeDSL.g:3845:3: ( 'TimeHalfYears' )
+                    // InternalCubeDSL.g:3845:4: 'TimeHalfYears'
                     {
                     match(input,65,FOLLOW_2); if (state.failed) return ;
 
@@ -14343,16 +14346,16 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3847:2: ( ( 'TimeQuarters' ) )
+                    // InternalCubeDSL.g:3849:2: ( ( 'TimeQuarters' ) )
                     {
-                    // InternalCubeDSL.g:3847:2: ( ( 'TimeQuarters' ) )
-                    // InternalCubeDSL.g:3848:3: ( 'TimeQuarters' )
+                    // InternalCubeDSL.g:3849:2: ( ( 'TimeQuarters' ) )
+                    // InternalCubeDSL.g:3850:3: ( 'TimeQuarters' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_QUARTERSEnumLiteralDeclaration_3()); 
                     }
-                    // InternalCubeDSL.g:3849:3: ( 'TimeQuarters' )
-                    // InternalCubeDSL.g:3849:4: 'TimeQuarters'
+                    // InternalCubeDSL.g:3851:3: ( 'TimeQuarters' )
+                    // InternalCubeDSL.g:3851:4: 'TimeQuarters'
                     {
                     match(input,66,FOLLOW_2); if (state.failed) return ;
 
@@ -14368,16 +14371,16 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:3853:2: ( ( 'TimeMonths' ) )
+                    // InternalCubeDSL.g:3855:2: ( ( 'TimeMonths' ) )
                     {
-                    // InternalCubeDSL.g:3853:2: ( ( 'TimeMonths' ) )
-                    // InternalCubeDSL.g:3854:3: ( 'TimeMonths' )
+                    // InternalCubeDSL.g:3855:2: ( ( 'TimeMonths' ) )
+                    // InternalCubeDSL.g:3856:3: ( 'TimeMonths' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_MONTHSEnumLiteralDeclaration_4()); 
                     }
-                    // InternalCubeDSL.g:3855:3: ( 'TimeMonths' )
-                    // InternalCubeDSL.g:3855:4: 'TimeMonths'
+                    // InternalCubeDSL.g:3857:3: ( 'TimeMonths' )
+                    // InternalCubeDSL.g:3857:4: 'TimeMonths'
                     {
                     match(input,67,FOLLOW_2); if (state.failed) return ;
 
@@ -14393,16 +14396,16 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:3859:2: ( ( 'TimeWeeks' ) )
+                    // InternalCubeDSL.g:3861:2: ( ( 'TimeWeeks' ) )
                     {
-                    // InternalCubeDSL.g:3859:2: ( ( 'TimeWeeks' ) )
-                    // InternalCubeDSL.g:3860:3: ( 'TimeWeeks' )
+                    // InternalCubeDSL.g:3861:2: ( ( 'TimeWeeks' ) )
+                    // InternalCubeDSL.g:3862:3: ( 'TimeWeeks' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_WEEKSEnumLiteralDeclaration_5()); 
                     }
-                    // InternalCubeDSL.g:3861:3: ( 'TimeWeeks' )
-                    // InternalCubeDSL.g:3861:4: 'TimeWeeks'
+                    // InternalCubeDSL.g:3863:3: ( 'TimeWeeks' )
+                    // InternalCubeDSL.g:3863:4: 'TimeWeeks'
                     {
                     match(input,68,FOLLOW_2); if (state.failed) return ;
 
@@ -14418,16 +14421,16 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:3865:2: ( ( 'TimeDays' ) )
+                    // InternalCubeDSL.g:3867:2: ( ( 'TimeDays' ) )
                     {
-                    // InternalCubeDSL.g:3865:2: ( ( 'TimeDays' ) )
-                    // InternalCubeDSL.g:3866:3: ( 'TimeDays' )
+                    // InternalCubeDSL.g:3867:2: ( ( 'TimeDays' ) )
+                    // InternalCubeDSL.g:3868:3: ( 'TimeDays' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_DAYSEnumLiteralDeclaration_6()); 
                     }
-                    // InternalCubeDSL.g:3867:3: ( 'TimeDays' )
-                    // InternalCubeDSL.g:3867:4: 'TimeDays'
+                    // InternalCubeDSL.g:3869:3: ( 'TimeDays' )
+                    // InternalCubeDSL.g:3869:4: 'TimeDays'
                     {
                     match(input,69,FOLLOW_2); if (state.failed) return ;
 
@@ -14443,16 +14446,16 @@
                     }
                     break;
                 case 8 :
-                    // InternalCubeDSL.g:3871:2: ( ( 'TimeHours' ) )
+                    // InternalCubeDSL.g:3873:2: ( ( 'TimeHours' ) )
                     {
-                    // InternalCubeDSL.g:3871:2: ( ( 'TimeHours' ) )
-                    // InternalCubeDSL.g:3872:3: ( 'TimeHours' )
+                    // InternalCubeDSL.g:3873:2: ( ( 'TimeHours' ) )
+                    // InternalCubeDSL.g:3874:3: ( 'TimeHours' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_HOURSEnumLiteralDeclaration_7()); 
                     }
-                    // InternalCubeDSL.g:3873:3: ( 'TimeHours' )
-                    // InternalCubeDSL.g:3873:4: 'TimeHours'
+                    // InternalCubeDSL.g:3875:3: ( 'TimeHours' )
+                    // InternalCubeDSL.g:3875:4: 'TimeHours'
                     {
                     match(input,70,FOLLOW_2); if (state.failed) return ;
 
@@ -14468,16 +14471,16 @@
                     }
                     break;
                 case 9 :
-                    // InternalCubeDSL.g:3877:2: ( ( 'TimeMinutes' ) )
+                    // InternalCubeDSL.g:3879:2: ( ( 'TimeMinutes' ) )
                     {
-                    // InternalCubeDSL.g:3877:2: ( ( 'TimeMinutes' ) )
-                    // InternalCubeDSL.g:3878:3: ( 'TimeMinutes' )
+                    // InternalCubeDSL.g:3879:2: ( ( 'TimeMinutes' ) )
+                    // InternalCubeDSL.g:3880:3: ( 'TimeMinutes' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_MINUTESEnumLiteralDeclaration_8()); 
                     }
-                    // InternalCubeDSL.g:3879:3: ( 'TimeMinutes' )
-                    // InternalCubeDSL.g:3879:4: 'TimeMinutes'
+                    // InternalCubeDSL.g:3881:3: ( 'TimeMinutes' )
+                    // InternalCubeDSL.g:3881:4: 'TimeMinutes'
                     {
                     match(input,71,FOLLOW_2); if (state.failed) return ;
 
@@ -14493,16 +14496,16 @@
                     }
                     break;
                 case 10 :
-                    // InternalCubeDSL.g:3883:2: ( ( 'TimeSeconds' ) )
+                    // InternalCubeDSL.g:3885:2: ( ( 'TimeSeconds' ) )
                     {
-                    // InternalCubeDSL.g:3883:2: ( ( 'TimeSeconds' ) )
-                    // InternalCubeDSL.g:3884:3: ( 'TimeSeconds' )
+                    // InternalCubeDSL.g:3885:2: ( ( 'TimeSeconds' ) )
+                    // InternalCubeDSL.g:3886:3: ( 'TimeSeconds' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_SECONDSEnumLiteralDeclaration_9()); 
                     }
-                    // InternalCubeDSL.g:3885:3: ( 'TimeSeconds' )
-                    // InternalCubeDSL.g:3885:4: 'TimeSeconds'
+                    // InternalCubeDSL.g:3887:3: ( 'TimeSeconds' )
+                    // InternalCubeDSL.g:3887:4: 'TimeSeconds'
                     {
                     match(input,72,FOLLOW_2); if (state.failed) return ;
 
@@ -14535,14 +14538,14 @@
 
 
     // $ANTLR start "rule__CubeModel__Group__0"
-    // InternalCubeDSL.g:3893:1: rule__CubeModel__Group__0 : rule__CubeModel__Group__0__Impl rule__CubeModel__Group__1 ;
+    // InternalCubeDSL.g:3895:1: rule__CubeModel__Group__0 : rule__CubeModel__Group__0__Impl rule__CubeModel__Group__1 ;
     public final void rule__CubeModel__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3897:1: ( rule__CubeModel__Group__0__Impl rule__CubeModel__Group__1 )
-            // InternalCubeDSL.g:3898:2: rule__CubeModel__Group__0__Impl rule__CubeModel__Group__1
+            // InternalCubeDSL.g:3899:1: ( rule__CubeModel__Group__0__Impl rule__CubeModel__Group__1 )
+            // InternalCubeDSL.g:3900:2: rule__CubeModel__Group__0__Impl rule__CubeModel__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__CubeModel__Group__0__Impl();
@@ -14573,23 +14576,23 @@
 
 
     // $ANTLR start "rule__CubeModel__Group__0__Impl"
-    // InternalCubeDSL.g:3905:1: rule__CubeModel__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:3907:1: rule__CubeModel__Group__0__Impl : ( () ) ;
     public final void rule__CubeModel__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3909:1: ( ( () ) )
-            // InternalCubeDSL.g:3910:1: ( () )
+            // InternalCubeDSL.g:3911:1: ( ( () ) )
+            // InternalCubeDSL.g:3912:1: ( () )
             {
-            // InternalCubeDSL.g:3910:1: ( () )
-            // InternalCubeDSL.g:3911:2: ()
+            // InternalCubeDSL.g:3912:1: ( () )
+            // InternalCubeDSL.g:3913:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeModelAccess().getCubeModelAction_0()); 
             }
-            // InternalCubeDSL.g:3912:2: ()
-            // InternalCubeDSL.g:3912:3: 
+            // InternalCubeDSL.g:3914:2: ()
+            // InternalCubeDSL.g:3914:3: 
             {
             }
 
@@ -14614,14 +14617,14 @@
 
 
     // $ANTLR start "rule__CubeModel__Group__1"
-    // InternalCubeDSL.g:3920:1: rule__CubeModel__Group__1 : rule__CubeModel__Group__1__Impl rule__CubeModel__Group__2 ;
+    // InternalCubeDSL.g:3922:1: rule__CubeModel__Group__1 : rule__CubeModel__Group__1__Impl rule__CubeModel__Group__2 ;
     public final void rule__CubeModel__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3924:1: ( rule__CubeModel__Group__1__Impl rule__CubeModel__Group__2 )
-            // InternalCubeDSL.g:3925:2: rule__CubeModel__Group__1__Impl rule__CubeModel__Group__2
+            // InternalCubeDSL.g:3926:1: ( rule__CubeModel__Group__1__Impl rule__CubeModel__Group__2 )
+            // InternalCubeDSL.g:3927:2: rule__CubeModel__Group__1__Impl rule__CubeModel__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__CubeModel__Group__1__Impl();
@@ -14652,22 +14655,22 @@
 
 
     // $ANTLR start "rule__CubeModel__Group__1__Impl"
-    // InternalCubeDSL.g:3932:1: rule__CubeModel__Group__1__Impl : ( ( rule__CubeModel__ImportSectionAssignment_1 )? ) ;
+    // InternalCubeDSL.g:3934:1: rule__CubeModel__Group__1__Impl : ( ( rule__CubeModel__ImportSectionAssignment_1 )? ) ;
     public final void rule__CubeModel__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3936:1: ( ( ( rule__CubeModel__ImportSectionAssignment_1 )? ) )
-            // InternalCubeDSL.g:3937:1: ( ( rule__CubeModel__ImportSectionAssignment_1 )? )
+            // InternalCubeDSL.g:3938:1: ( ( ( rule__CubeModel__ImportSectionAssignment_1 )? ) )
+            // InternalCubeDSL.g:3939:1: ( ( rule__CubeModel__ImportSectionAssignment_1 )? )
             {
-            // InternalCubeDSL.g:3937:1: ( ( rule__CubeModel__ImportSectionAssignment_1 )? )
-            // InternalCubeDSL.g:3938:2: ( rule__CubeModel__ImportSectionAssignment_1 )?
+            // InternalCubeDSL.g:3939:1: ( ( rule__CubeModel__ImportSectionAssignment_1 )? )
+            // InternalCubeDSL.g:3940:2: ( rule__CubeModel__ImportSectionAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeModelAccess().getImportSectionAssignment_1()); 
             }
-            // InternalCubeDSL.g:3939:2: ( rule__CubeModel__ImportSectionAssignment_1 )?
+            // InternalCubeDSL.g:3941:2: ( rule__CubeModel__ImportSectionAssignment_1 )?
             int alt49=2;
             int LA49_0 = input.LA(1);
 
@@ -14676,7 +14679,7 @@
             }
             switch (alt49) {
                 case 1 :
-                    // InternalCubeDSL.g:3939:3: rule__CubeModel__ImportSectionAssignment_1
+                    // InternalCubeDSL.g:3941:3: rule__CubeModel__ImportSectionAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeModel__ImportSectionAssignment_1();
@@ -14714,14 +14717,14 @@
 
 
     // $ANTLR start "rule__CubeModel__Group__2"
-    // InternalCubeDSL.g:3947:1: rule__CubeModel__Group__2 : rule__CubeModel__Group__2__Impl ;
+    // InternalCubeDSL.g:3949:1: rule__CubeModel__Group__2 : rule__CubeModel__Group__2__Impl ;
     public final void rule__CubeModel__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3951:1: ( rule__CubeModel__Group__2__Impl )
-            // InternalCubeDSL.g:3952:2: rule__CubeModel__Group__2__Impl
+            // InternalCubeDSL.g:3953:1: ( rule__CubeModel__Group__2__Impl )
+            // InternalCubeDSL.g:3954:2: rule__CubeModel__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeModel__Group__2__Impl();
@@ -14747,23 +14750,23 @@
 
 
     // $ANTLR start "rule__CubeModel__Group__2__Impl"
-    // InternalCubeDSL.g:3958:1: rule__CubeModel__Group__2__Impl : ( ( rule__CubeModel__PckgAssignment_2 ) ) ;
+    // InternalCubeDSL.g:3960:1: rule__CubeModel__Group__2__Impl : ( ( rule__CubeModel__PckgAssignment_2 ) ) ;
     public final void rule__CubeModel__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3962:1: ( ( ( rule__CubeModel__PckgAssignment_2 ) ) )
-            // InternalCubeDSL.g:3963:1: ( ( rule__CubeModel__PckgAssignment_2 ) )
+            // InternalCubeDSL.g:3964:1: ( ( ( rule__CubeModel__PckgAssignment_2 ) ) )
+            // InternalCubeDSL.g:3965:1: ( ( rule__CubeModel__PckgAssignment_2 ) )
             {
-            // InternalCubeDSL.g:3963:1: ( ( rule__CubeModel__PckgAssignment_2 ) )
-            // InternalCubeDSL.g:3964:2: ( rule__CubeModel__PckgAssignment_2 )
+            // InternalCubeDSL.g:3965:1: ( ( rule__CubeModel__PckgAssignment_2 ) )
+            // InternalCubeDSL.g:3966:2: ( rule__CubeModel__PckgAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeModelAccess().getPckgAssignment_2()); 
             }
-            // InternalCubeDSL.g:3965:2: ( rule__CubeModel__PckgAssignment_2 )
-            // InternalCubeDSL.g:3965:3: rule__CubeModel__PckgAssignment_2
+            // InternalCubeDSL.g:3967:2: ( rule__CubeModel__PckgAssignment_2 )
+            // InternalCubeDSL.g:3967:3: rule__CubeModel__PckgAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__CubeModel__PckgAssignment_2();
@@ -14798,14 +14801,14 @@
 
 
     // $ANTLR start "rule__CubePackage__Group__0"
-    // InternalCubeDSL.g:3974:1: rule__CubePackage__Group__0 : rule__CubePackage__Group__0__Impl rule__CubePackage__Group__1 ;
+    // InternalCubeDSL.g:3976:1: rule__CubePackage__Group__0 : rule__CubePackage__Group__0__Impl rule__CubePackage__Group__1 ;
     public final void rule__CubePackage__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3978:1: ( rule__CubePackage__Group__0__Impl rule__CubePackage__Group__1 )
-            // InternalCubeDSL.g:3979:2: rule__CubePackage__Group__0__Impl rule__CubePackage__Group__1
+            // InternalCubeDSL.g:3980:1: ( rule__CubePackage__Group__0__Impl rule__CubePackage__Group__1 )
+            // InternalCubeDSL.g:3981:2: rule__CubePackage__Group__0__Impl rule__CubePackage__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__CubePackage__Group__0__Impl();
@@ -14836,17 +14839,17 @@
 
 
     // $ANTLR start "rule__CubePackage__Group__0__Impl"
-    // InternalCubeDSL.g:3986:1: rule__CubePackage__Group__0__Impl : ( 'package' ) ;
+    // InternalCubeDSL.g:3988:1: rule__CubePackage__Group__0__Impl : ( 'package' ) ;
     public final void rule__CubePackage__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:3990:1: ( ( 'package' ) )
-            // InternalCubeDSL.g:3991:1: ( 'package' )
+            // InternalCubeDSL.g:3992:1: ( ( 'package' ) )
+            // InternalCubeDSL.g:3993:1: ( 'package' )
             {
-            // InternalCubeDSL.g:3991:1: ( 'package' )
-            // InternalCubeDSL.g:3992:2: 'package'
+            // InternalCubeDSL.g:3993:1: ( 'package' )
+            // InternalCubeDSL.g:3994:2: 'package'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getPackageKeyword_0()); 
@@ -14877,14 +14880,14 @@
 
 
     // $ANTLR start "rule__CubePackage__Group__1"
-    // InternalCubeDSL.g:4001:1: rule__CubePackage__Group__1 : rule__CubePackage__Group__1__Impl rule__CubePackage__Group__2 ;
+    // InternalCubeDSL.g:4003:1: rule__CubePackage__Group__1 : rule__CubePackage__Group__1__Impl rule__CubePackage__Group__2 ;
     public final void rule__CubePackage__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4005:1: ( rule__CubePackage__Group__1__Impl rule__CubePackage__Group__2 )
-            // InternalCubeDSL.g:4006:2: rule__CubePackage__Group__1__Impl rule__CubePackage__Group__2
+            // InternalCubeDSL.g:4007:1: ( rule__CubePackage__Group__1__Impl rule__CubePackage__Group__2 )
+            // InternalCubeDSL.g:4008:2: rule__CubePackage__Group__1__Impl rule__CubePackage__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__CubePackage__Group__1__Impl();
@@ -14915,23 +14918,23 @@
 
 
     // $ANTLR start "rule__CubePackage__Group__1__Impl"
-    // InternalCubeDSL.g:4013:1: rule__CubePackage__Group__1__Impl : ( ( rule__CubePackage__NameAssignment_1 ) ) ;
+    // InternalCubeDSL.g:4015:1: rule__CubePackage__Group__1__Impl : ( ( rule__CubePackage__NameAssignment_1 ) ) ;
     public final void rule__CubePackage__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4017:1: ( ( ( rule__CubePackage__NameAssignment_1 ) ) )
-            // InternalCubeDSL.g:4018:1: ( ( rule__CubePackage__NameAssignment_1 ) )
+            // InternalCubeDSL.g:4019:1: ( ( ( rule__CubePackage__NameAssignment_1 ) ) )
+            // InternalCubeDSL.g:4020:1: ( ( rule__CubePackage__NameAssignment_1 ) )
             {
-            // InternalCubeDSL.g:4018:1: ( ( rule__CubePackage__NameAssignment_1 ) )
-            // InternalCubeDSL.g:4019:2: ( rule__CubePackage__NameAssignment_1 )
+            // InternalCubeDSL.g:4020:1: ( ( rule__CubePackage__NameAssignment_1 ) )
+            // InternalCubeDSL.g:4021:2: ( rule__CubePackage__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getNameAssignment_1()); 
             }
-            // InternalCubeDSL.g:4020:2: ( rule__CubePackage__NameAssignment_1 )
-            // InternalCubeDSL.g:4020:3: rule__CubePackage__NameAssignment_1
+            // InternalCubeDSL.g:4022:2: ( rule__CubePackage__NameAssignment_1 )
+            // InternalCubeDSL.g:4022:3: rule__CubePackage__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubePackage__NameAssignment_1();
@@ -14966,14 +14969,14 @@
 
 
     // $ANTLR start "rule__CubePackage__Group__2"
-    // InternalCubeDSL.g:4028:1: rule__CubePackage__Group__2 : rule__CubePackage__Group__2__Impl ;
+    // InternalCubeDSL.g:4030:1: rule__CubePackage__Group__2 : rule__CubePackage__Group__2__Impl ;
     public final void rule__CubePackage__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4032:1: ( rule__CubePackage__Group__2__Impl )
-            // InternalCubeDSL.g:4033:2: rule__CubePackage__Group__2__Impl
+            // InternalCubeDSL.g:4034:1: ( rule__CubePackage__Group__2__Impl )
+            // InternalCubeDSL.g:4035:2: rule__CubePackage__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubePackage__Group__2__Impl();
@@ -14999,22 +15002,22 @@
 
 
     // $ANTLR start "rule__CubePackage__Group__2__Impl"
-    // InternalCubeDSL.g:4039:1: rule__CubePackage__Group__2__Impl : ( ( rule__CubePackage__Group_2__0 )? ) ;
+    // InternalCubeDSL.g:4041:1: rule__CubePackage__Group__2__Impl : ( ( rule__CubePackage__Group_2__0 )? ) ;
     public final void rule__CubePackage__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4043:1: ( ( ( rule__CubePackage__Group_2__0 )? ) )
-            // InternalCubeDSL.g:4044:1: ( ( rule__CubePackage__Group_2__0 )? )
+            // InternalCubeDSL.g:4045:1: ( ( ( rule__CubePackage__Group_2__0 )? ) )
+            // InternalCubeDSL.g:4046:1: ( ( rule__CubePackage__Group_2__0 )? )
             {
-            // InternalCubeDSL.g:4044:1: ( ( rule__CubePackage__Group_2__0 )? )
-            // InternalCubeDSL.g:4045:2: ( rule__CubePackage__Group_2__0 )?
+            // InternalCubeDSL.g:4046:1: ( ( rule__CubePackage__Group_2__0 )? )
+            // InternalCubeDSL.g:4047:2: ( rule__CubePackage__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getGroup_2()); 
             }
-            // InternalCubeDSL.g:4046:2: ( rule__CubePackage__Group_2__0 )?
+            // InternalCubeDSL.g:4048:2: ( rule__CubePackage__Group_2__0 )?
             int alt50=2;
             int LA50_0 = input.LA(1);
 
@@ -15023,7 +15026,7 @@
             }
             switch (alt50) {
                 case 1 :
-                    // InternalCubeDSL.g:4046:3: rule__CubePackage__Group_2__0
+                    // InternalCubeDSL.g:4048:3: rule__CubePackage__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubePackage__Group_2__0();
@@ -15061,14 +15064,14 @@
 
 
     // $ANTLR start "rule__CubePackage__Group_2__0"
-    // InternalCubeDSL.g:4055:1: rule__CubePackage__Group_2__0 : rule__CubePackage__Group_2__0__Impl rule__CubePackage__Group_2__1 ;
+    // InternalCubeDSL.g:4057:1: rule__CubePackage__Group_2__0 : rule__CubePackage__Group_2__0__Impl rule__CubePackage__Group_2__1 ;
     public final void rule__CubePackage__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4059:1: ( rule__CubePackage__Group_2__0__Impl rule__CubePackage__Group_2__1 )
-            // InternalCubeDSL.g:4060:2: rule__CubePackage__Group_2__0__Impl rule__CubePackage__Group_2__1
+            // InternalCubeDSL.g:4061:1: ( rule__CubePackage__Group_2__0__Impl rule__CubePackage__Group_2__1 )
+            // InternalCubeDSL.g:4062:2: rule__CubePackage__Group_2__0__Impl rule__CubePackage__Group_2__1
             {
             pushFollow(FOLLOW_8);
             rule__CubePackage__Group_2__0__Impl();
@@ -15099,17 +15102,17 @@
 
 
     // $ANTLR start "rule__CubePackage__Group_2__0__Impl"
-    // InternalCubeDSL.g:4067:1: rule__CubePackage__Group_2__0__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:4069:1: rule__CubePackage__Group_2__0__Impl : ( '{' ) ;
     public final void rule__CubePackage__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4071:1: ( ( '{' ) )
-            // InternalCubeDSL.g:4072:1: ( '{' )
+            // InternalCubeDSL.g:4073:1: ( ( '{' ) )
+            // InternalCubeDSL.g:4074:1: ( '{' )
             {
-            // InternalCubeDSL.g:4072:1: ( '{' )
-            // InternalCubeDSL.g:4073:2: '{'
+            // InternalCubeDSL.g:4074:1: ( '{' )
+            // InternalCubeDSL.g:4075:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getLeftCurlyBracketKeyword_2_0()); 
@@ -15140,14 +15143,14 @@
 
 
     // $ANTLR start "rule__CubePackage__Group_2__1"
-    // InternalCubeDSL.g:4082:1: rule__CubePackage__Group_2__1 : rule__CubePackage__Group_2__1__Impl rule__CubePackage__Group_2__2 ;
+    // InternalCubeDSL.g:4084:1: rule__CubePackage__Group_2__1 : rule__CubePackage__Group_2__1__Impl rule__CubePackage__Group_2__2 ;
     public final void rule__CubePackage__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4086:1: ( rule__CubePackage__Group_2__1__Impl rule__CubePackage__Group_2__2 )
-            // InternalCubeDSL.g:4087:2: rule__CubePackage__Group_2__1__Impl rule__CubePackage__Group_2__2
+            // InternalCubeDSL.g:4088:1: ( rule__CubePackage__Group_2__1__Impl rule__CubePackage__Group_2__2 )
+            // InternalCubeDSL.g:4089:2: rule__CubePackage__Group_2__1__Impl rule__CubePackage__Group_2__2
             {
             pushFollow(FOLLOW_8);
             rule__CubePackage__Group_2__1__Impl();
@@ -15178,22 +15181,22 @@
 
 
     // $ANTLR start "rule__CubePackage__Group_2__1__Impl"
-    // InternalCubeDSL.g:4094:1: rule__CubePackage__Group_2__1__Impl : ( ( rule__CubePackage__DimensionsAssignment_2_1 )* ) ;
+    // InternalCubeDSL.g:4096:1: rule__CubePackage__Group_2__1__Impl : ( ( rule__CubePackage__DimensionsAssignment_2_1 )* ) ;
     public final void rule__CubePackage__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4098:1: ( ( ( rule__CubePackage__DimensionsAssignment_2_1 )* ) )
-            // InternalCubeDSL.g:4099:1: ( ( rule__CubePackage__DimensionsAssignment_2_1 )* )
+            // InternalCubeDSL.g:4100:1: ( ( ( rule__CubePackage__DimensionsAssignment_2_1 )* ) )
+            // InternalCubeDSL.g:4101:1: ( ( rule__CubePackage__DimensionsAssignment_2_1 )* )
             {
-            // InternalCubeDSL.g:4099:1: ( ( rule__CubePackage__DimensionsAssignment_2_1 )* )
-            // InternalCubeDSL.g:4100:2: ( rule__CubePackage__DimensionsAssignment_2_1 )*
+            // InternalCubeDSL.g:4101:1: ( ( rule__CubePackage__DimensionsAssignment_2_1 )* )
+            // InternalCubeDSL.g:4102:2: ( rule__CubePackage__DimensionsAssignment_2_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getDimensionsAssignment_2_1()); 
             }
-            // InternalCubeDSL.g:4101:2: ( rule__CubePackage__DimensionsAssignment_2_1 )*
+            // InternalCubeDSL.g:4103:2: ( rule__CubePackage__DimensionsAssignment_2_1 )*
             loop51:
             do {
                 int alt51=2;
@@ -15206,7 +15209,7 @@
 
                 switch (alt51) {
             	case 1 :
-            	    // InternalCubeDSL.g:4101:3: rule__CubePackage__DimensionsAssignment_2_1
+            	    // InternalCubeDSL.g:4103:3: rule__CubePackage__DimensionsAssignment_2_1
             	    {
             	    pushFollow(FOLLOW_9);
             	    rule__CubePackage__DimensionsAssignment_2_1();
@@ -15247,14 +15250,14 @@
 
 
     // $ANTLR start "rule__CubePackage__Group_2__2"
-    // InternalCubeDSL.g:4109:1: rule__CubePackage__Group_2__2 : rule__CubePackage__Group_2__2__Impl rule__CubePackage__Group_2__3 ;
+    // InternalCubeDSL.g:4111:1: rule__CubePackage__Group_2__2 : rule__CubePackage__Group_2__2__Impl rule__CubePackage__Group_2__3 ;
     public final void rule__CubePackage__Group_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4113:1: ( rule__CubePackage__Group_2__2__Impl rule__CubePackage__Group_2__3 )
-            // InternalCubeDSL.g:4114:2: rule__CubePackage__Group_2__2__Impl rule__CubePackage__Group_2__3
+            // InternalCubeDSL.g:4115:1: ( rule__CubePackage__Group_2__2__Impl rule__CubePackage__Group_2__3 )
+            // InternalCubeDSL.g:4116:2: rule__CubePackage__Group_2__2__Impl rule__CubePackage__Group_2__3
             {
             pushFollow(FOLLOW_8);
             rule__CubePackage__Group_2__2__Impl();
@@ -15285,22 +15288,22 @@
 
 
     // $ANTLR start "rule__CubePackage__Group_2__2__Impl"
-    // InternalCubeDSL.g:4121:1: rule__CubePackage__Group_2__2__Impl : ( ( rule__CubePackage__CubesAssignment_2_2 )* ) ;
+    // InternalCubeDSL.g:4123:1: rule__CubePackage__Group_2__2__Impl : ( ( rule__CubePackage__CubesAssignment_2_2 )* ) ;
     public final void rule__CubePackage__Group_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4125:1: ( ( ( rule__CubePackage__CubesAssignment_2_2 )* ) )
-            // InternalCubeDSL.g:4126:1: ( ( rule__CubePackage__CubesAssignment_2_2 )* )
+            // InternalCubeDSL.g:4127:1: ( ( ( rule__CubePackage__CubesAssignment_2_2 )* ) )
+            // InternalCubeDSL.g:4128:1: ( ( rule__CubePackage__CubesAssignment_2_2 )* )
             {
-            // InternalCubeDSL.g:4126:1: ( ( rule__CubePackage__CubesAssignment_2_2 )* )
-            // InternalCubeDSL.g:4127:2: ( rule__CubePackage__CubesAssignment_2_2 )*
+            // InternalCubeDSL.g:4128:1: ( ( rule__CubePackage__CubesAssignment_2_2 )* )
+            // InternalCubeDSL.g:4129:2: ( rule__CubePackage__CubesAssignment_2_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getCubesAssignment_2_2()); 
             }
-            // InternalCubeDSL.g:4128:2: ( rule__CubePackage__CubesAssignment_2_2 )*
+            // InternalCubeDSL.g:4130:2: ( rule__CubePackage__CubesAssignment_2_2 )*
             loop52:
             do {
                 int alt52=2;
@@ -15313,7 +15316,7 @@
 
                 switch (alt52) {
             	case 1 :
-            	    // InternalCubeDSL.g:4128:3: rule__CubePackage__CubesAssignment_2_2
+            	    // InternalCubeDSL.g:4130:3: rule__CubePackage__CubesAssignment_2_2
             	    {
             	    pushFollow(FOLLOW_10);
             	    rule__CubePackage__CubesAssignment_2_2();
@@ -15354,14 +15357,14 @@
 
 
     // $ANTLR start "rule__CubePackage__Group_2__3"
-    // InternalCubeDSL.g:4136:1: rule__CubePackage__Group_2__3 : rule__CubePackage__Group_2__3__Impl ;
+    // InternalCubeDSL.g:4138:1: rule__CubePackage__Group_2__3 : rule__CubePackage__Group_2__3__Impl ;
     public final void rule__CubePackage__Group_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4140:1: ( rule__CubePackage__Group_2__3__Impl )
-            // InternalCubeDSL.g:4141:2: rule__CubePackage__Group_2__3__Impl
+            // InternalCubeDSL.g:4142:1: ( rule__CubePackage__Group_2__3__Impl )
+            // InternalCubeDSL.g:4143:2: rule__CubePackage__Group_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubePackage__Group_2__3__Impl();
@@ -15387,17 +15390,17 @@
 
 
     // $ANTLR start "rule__CubePackage__Group_2__3__Impl"
-    // InternalCubeDSL.g:4147:1: rule__CubePackage__Group_2__3__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:4149:1: rule__CubePackage__Group_2__3__Impl : ( '}' ) ;
     public final void rule__CubePackage__Group_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4151:1: ( ( '}' ) )
-            // InternalCubeDSL.g:4152:1: ( '}' )
+            // InternalCubeDSL.g:4153:1: ( ( '}' ) )
+            // InternalCubeDSL.g:4154:1: ( '}' )
             {
-            // InternalCubeDSL.g:4152:1: ( '}' )
-            // InternalCubeDSL.g:4153:2: '}'
+            // InternalCubeDSL.g:4154:1: ( '}' )
+            // InternalCubeDSL.g:4155:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getRightCurlyBracketKeyword_2_3()); 
@@ -15428,14 +15431,14 @@
 
 
     // $ANTLR start "rule__CubeType__Group__0"
-    // InternalCubeDSL.g:4163:1: rule__CubeType__Group__0 : rule__CubeType__Group__0__Impl rule__CubeType__Group__1 ;
+    // InternalCubeDSL.g:4165:1: rule__CubeType__Group__0 : rule__CubeType__Group__0__Impl rule__CubeType__Group__1 ;
     public final void rule__CubeType__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4167:1: ( rule__CubeType__Group__0__Impl rule__CubeType__Group__1 )
-            // InternalCubeDSL.g:4168:2: rule__CubeType__Group__0__Impl rule__CubeType__Group__1
+            // InternalCubeDSL.g:4169:1: ( rule__CubeType__Group__0__Impl rule__CubeType__Group__1 )
+            // InternalCubeDSL.g:4170:2: rule__CubeType__Group__0__Impl rule__CubeType__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__CubeType__Group__0__Impl();
@@ -15466,17 +15469,17 @@
 
 
     // $ANTLR start "rule__CubeType__Group__0__Impl"
-    // InternalCubeDSL.g:4175:1: rule__CubeType__Group__0__Impl : ( 'cube' ) ;
+    // InternalCubeDSL.g:4177:1: rule__CubeType__Group__0__Impl : ( 'cube' ) ;
     public final void rule__CubeType__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4179:1: ( ( 'cube' ) )
-            // InternalCubeDSL.g:4180:1: ( 'cube' )
+            // InternalCubeDSL.g:4181:1: ( ( 'cube' ) )
+            // InternalCubeDSL.g:4182:1: ( 'cube' )
             {
-            // InternalCubeDSL.g:4180:1: ( 'cube' )
-            // InternalCubeDSL.g:4181:2: 'cube'
+            // InternalCubeDSL.g:4182:1: ( 'cube' )
+            // InternalCubeDSL.g:4183:2: 'cube'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getCubeKeyword_0()); 
@@ -15507,14 +15510,14 @@
 
 
     // $ANTLR start "rule__CubeType__Group__1"
-    // InternalCubeDSL.g:4190:1: rule__CubeType__Group__1 : rule__CubeType__Group__1__Impl rule__CubeType__Group__2 ;
+    // InternalCubeDSL.g:4192:1: rule__CubeType__Group__1 : rule__CubeType__Group__1__Impl rule__CubeType__Group__2 ;
     public final void rule__CubeType__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4194:1: ( rule__CubeType__Group__1__Impl rule__CubeType__Group__2 )
-            // InternalCubeDSL.g:4195:2: rule__CubeType__Group__1__Impl rule__CubeType__Group__2
+            // InternalCubeDSL.g:4196:1: ( rule__CubeType__Group__1__Impl rule__CubeType__Group__2 )
+            // InternalCubeDSL.g:4197:2: rule__CubeType__Group__1__Impl rule__CubeType__Group__2
             {
             pushFollow(FOLLOW_11);
             rule__CubeType__Group__1__Impl();
@@ -15545,23 +15548,23 @@
 
 
     // $ANTLR start "rule__CubeType__Group__1__Impl"
-    // InternalCubeDSL.g:4202:1: rule__CubeType__Group__1__Impl : ( ( rule__CubeType__NameAssignment_1 ) ) ;
+    // InternalCubeDSL.g:4204:1: rule__CubeType__Group__1__Impl : ( ( rule__CubeType__NameAssignment_1 ) ) ;
     public final void rule__CubeType__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4206:1: ( ( ( rule__CubeType__NameAssignment_1 ) ) )
-            // InternalCubeDSL.g:4207:1: ( ( rule__CubeType__NameAssignment_1 ) )
+            // InternalCubeDSL.g:4208:1: ( ( ( rule__CubeType__NameAssignment_1 ) ) )
+            // InternalCubeDSL.g:4209:1: ( ( rule__CubeType__NameAssignment_1 ) )
             {
-            // InternalCubeDSL.g:4207:1: ( ( rule__CubeType__NameAssignment_1 ) )
-            // InternalCubeDSL.g:4208:2: ( rule__CubeType__NameAssignment_1 )
+            // InternalCubeDSL.g:4209:1: ( ( rule__CubeType__NameAssignment_1 ) )
+            // InternalCubeDSL.g:4210:2: ( rule__CubeType__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getNameAssignment_1()); 
             }
-            // InternalCubeDSL.g:4209:2: ( rule__CubeType__NameAssignment_1 )
-            // InternalCubeDSL.g:4209:3: rule__CubeType__NameAssignment_1
+            // InternalCubeDSL.g:4211:2: ( rule__CubeType__NameAssignment_1 )
+            // InternalCubeDSL.g:4211:3: rule__CubeType__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeType__NameAssignment_1();
@@ -15596,14 +15599,14 @@
 
 
     // $ANTLR start "rule__CubeType__Group__2"
-    // InternalCubeDSL.g:4217:1: rule__CubeType__Group__2 : rule__CubeType__Group__2__Impl rule__CubeType__Group__3 ;
+    // InternalCubeDSL.g:4219:1: rule__CubeType__Group__2 : rule__CubeType__Group__2__Impl rule__CubeType__Group__3 ;
     public final void rule__CubeType__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4221:1: ( rule__CubeType__Group__2__Impl rule__CubeType__Group__3 )
-            // InternalCubeDSL.g:4222:2: rule__CubeType__Group__2__Impl rule__CubeType__Group__3
+            // InternalCubeDSL.g:4223:1: ( rule__CubeType__Group__2__Impl rule__CubeType__Group__3 )
+            // InternalCubeDSL.g:4224:2: rule__CubeType__Group__2__Impl rule__CubeType__Group__3
             {
             pushFollow(FOLLOW_11);
             rule__CubeType__Group__2__Impl();
@@ -15634,22 +15637,22 @@
 
 
     // $ANTLR start "rule__CubeType__Group__2__Impl"
-    // InternalCubeDSL.g:4229:1: rule__CubeType__Group__2__Impl : ( ( rule__CubeType__Group_2__0 )? ) ;
+    // InternalCubeDSL.g:4231:1: rule__CubeType__Group__2__Impl : ( ( rule__CubeType__Group_2__0 )? ) ;
     public final void rule__CubeType__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4233:1: ( ( ( rule__CubeType__Group_2__0 )? ) )
-            // InternalCubeDSL.g:4234:1: ( ( rule__CubeType__Group_2__0 )? )
+            // InternalCubeDSL.g:4235:1: ( ( ( rule__CubeType__Group_2__0 )? ) )
+            // InternalCubeDSL.g:4236:1: ( ( rule__CubeType__Group_2__0 )? )
             {
-            // InternalCubeDSL.g:4234:1: ( ( rule__CubeType__Group_2__0 )? )
-            // InternalCubeDSL.g:4235:2: ( rule__CubeType__Group_2__0 )?
+            // InternalCubeDSL.g:4236:1: ( ( rule__CubeType__Group_2__0 )? )
+            // InternalCubeDSL.g:4237:2: ( rule__CubeType__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getGroup_2()); 
             }
-            // InternalCubeDSL.g:4236:2: ( rule__CubeType__Group_2__0 )?
+            // InternalCubeDSL.g:4238:2: ( rule__CubeType__Group_2__0 )?
             int alt53=2;
             int LA53_0 = input.LA(1);
 
@@ -15658,7 +15661,7 @@
             }
             switch (alt53) {
                 case 1 :
-                    // InternalCubeDSL.g:4236:3: rule__CubeType__Group_2__0
+                    // InternalCubeDSL.g:4238:3: rule__CubeType__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeType__Group_2__0();
@@ -15696,14 +15699,14 @@
 
 
     // $ANTLR start "rule__CubeType__Group__3"
-    // InternalCubeDSL.g:4244:1: rule__CubeType__Group__3 : rule__CubeType__Group__3__Impl rule__CubeType__Group__4 ;
+    // InternalCubeDSL.g:4246:1: rule__CubeType__Group__3 : rule__CubeType__Group__3__Impl rule__CubeType__Group__4 ;
     public final void rule__CubeType__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4248:1: ( rule__CubeType__Group__3__Impl rule__CubeType__Group__4 )
-            // InternalCubeDSL.g:4249:2: rule__CubeType__Group__3__Impl rule__CubeType__Group__4
+            // InternalCubeDSL.g:4250:1: ( rule__CubeType__Group__3__Impl rule__CubeType__Group__4 )
+            // InternalCubeDSL.g:4251:2: rule__CubeType__Group__3__Impl rule__CubeType__Group__4
             {
             pushFollow(FOLLOW_12);
             rule__CubeType__Group__3__Impl();
@@ -15734,17 +15737,17 @@
 
 
     // $ANTLR start "rule__CubeType__Group__3__Impl"
-    // InternalCubeDSL.g:4256:1: rule__CubeType__Group__3__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:4258:1: rule__CubeType__Group__3__Impl : ( '{' ) ;
     public final void rule__CubeType__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4260:1: ( ( '{' ) )
-            // InternalCubeDSL.g:4261:1: ( '{' )
+            // InternalCubeDSL.g:4262:1: ( ( '{' ) )
+            // InternalCubeDSL.g:4263:1: ( '{' )
             {
-            // InternalCubeDSL.g:4261:1: ( '{' )
-            // InternalCubeDSL.g:4262:2: '{'
+            // InternalCubeDSL.g:4263:1: ( '{' )
+            // InternalCubeDSL.g:4264:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getLeftCurlyBracketKeyword_3()); 
@@ -15775,14 +15778,14 @@
 
 
     // $ANTLR start "rule__CubeType__Group__4"
-    // InternalCubeDSL.g:4271:1: rule__CubeType__Group__4 : rule__CubeType__Group__4__Impl rule__CubeType__Group__5 ;
+    // InternalCubeDSL.g:4273:1: rule__CubeType__Group__4 : rule__CubeType__Group__4__Impl rule__CubeType__Group__5 ;
     public final void rule__CubeType__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4275:1: ( rule__CubeType__Group__4__Impl rule__CubeType__Group__5 )
-            // InternalCubeDSL.g:4276:2: rule__CubeType__Group__4__Impl rule__CubeType__Group__5
+            // InternalCubeDSL.g:4277:1: ( rule__CubeType__Group__4__Impl rule__CubeType__Group__5 )
+            // InternalCubeDSL.g:4278:2: rule__CubeType__Group__4__Impl rule__CubeType__Group__5
             {
             pushFollow(FOLLOW_13);
             rule__CubeType__Group__4__Impl();
@@ -15813,23 +15816,23 @@
 
 
     // $ANTLR start "rule__CubeType__Group__4__Impl"
-    // InternalCubeDSL.g:4283:1: rule__CubeType__Group__4__Impl : ( ( rule__CubeType__CubeTypeEntityAssignment_4 ) ) ;
+    // InternalCubeDSL.g:4285:1: rule__CubeType__Group__4__Impl : ( ( rule__CubeType__CubeTypeEntityAssignment_4 ) ) ;
     public final void rule__CubeType__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4287:1: ( ( ( rule__CubeType__CubeTypeEntityAssignment_4 ) ) )
-            // InternalCubeDSL.g:4288:1: ( ( rule__CubeType__CubeTypeEntityAssignment_4 ) )
+            // InternalCubeDSL.g:4289:1: ( ( ( rule__CubeType__CubeTypeEntityAssignment_4 ) ) )
+            // InternalCubeDSL.g:4290:1: ( ( rule__CubeType__CubeTypeEntityAssignment_4 ) )
             {
-            // InternalCubeDSL.g:4288:1: ( ( rule__CubeType__CubeTypeEntityAssignment_4 ) )
-            // InternalCubeDSL.g:4289:2: ( rule__CubeType__CubeTypeEntityAssignment_4 )
+            // InternalCubeDSL.g:4290:1: ( ( rule__CubeType__CubeTypeEntityAssignment_4 ) )
+            // InternalCubeDSL.g:4291:2: ( rule__CubeType__CubeTypeEntityAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getCubeTypeEntityAssignment_4()); 
             }
-            // InternalCubeDSL.g:4290:2: ( rule__CubeType__CubeTypeEntityAssignment_4 )
-            // InternalCubeDSL.g:4290:3: rule__CubeType__CubeTypeEntityAssignment_4
+            // InternalCubeDSL.g:4292:2: ( rule__CubeType__CubeTypeEntityAssignment_4 )
+            // InternalCubeDSL.g:4292:3: rule__CubeType__CubeTypeEntityAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__CubeType__CubeTypeEntityAssignment_4();
@@ -15864,14 +15867,14 @@
 
 
     // $ANTLR start "rule__CubeType__Group__5"
-    // InternalCubeDSL.g:4298:1: rule__CubeType__Group__5 : rule__CubeType__Group__5__Impl ;
+    // InternalCubeDSL.g:4300:1: rule__CubeType__Group__5 : rule__CubeType__Group__5__Impl ;
     public final void rule__CubeType__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4302:1: ( rule__CubeType__Group__5__Impl )
-            // InternalCubeDSL.g:4303:2: rule__CubeType__Group__5__Impl
+            // InternalCubeDSL.g:4304:1: ( rule__CubeType__Group__5__Impl )
+            // InternalCubeDSL.g:4305:2: rule__CubeType__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeType__Group__5__Impl();
@@ -15897,17 +15900,17 @@
 
 
     // $ANTLR start "rule__CubeType__Group__5__Impl"
-    // InternalCubeDSL.g:4309:1: rule__CubeType__Group__5__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:4311:1: rule__CubeType__Group__5__Impl : ( '}' ) ;
     public final void rule__CubeType__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4313:1: ( ( '}' ) )
-            // InternalCubeDSL.g:4314:1: ( '}' )
+            // InternalCubeDSL.g:4315:1: ( ( '}' ) )
+            // InternalCubeDSL.g:4316:1: ( '}' )
             {
-            // InternalCubeDSL.g:4314:1: ( '}' )
-            // InternalCubeDSL.g:4315:2: '}'
+            // InternalCubeDSL.g:4316:1: ( '}' )
+            // InternalCubeDSL.g:4317:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getRightCurlyBracketKeyword_5()); 
@@ -15938,14 +15941,14 @@
 
 
     // $ANTLR start "rule__CubeType__Group_2__0"
-    // InternalCubeDSL.g:4325:1: rule__CubeType__Group_2__0 : rule__CubeType__Group_2__0__Impl rule__CubeType__Group_2__1 ;
+    // InternalCubeDSL.g:4327:1: rule__CubeType__Group_2__0 : rule__CubeType__Group_2__0__Impl rule__CubeType__Group_2__1 ;
     public final void rule__CubeType__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4329:1: ( rule__CubeType__Group_2__0__Impl rule__CubeType__Group_2__1 )
-            // InternalCubeDSL.g:4330:2: rule__CubeType__Group_2__0__Impl rule__CubeType__Group_2__1
+            // InternalCubeDSL.g:4331:1: ( rule__CubeType__Group_2__0__Impl rule__CubeType__Group_2__1 )
+            // InternalCubeDSL.g:4332:2: rule__CubeType__Group_2__0__Impl rule__CubeType__Group_2__1
             {
             pushFollow(FOLLOW_14);
             rule__CubeType__Group_2__0__Impl();
@@ -15976,23 +15979,23 @@
 
 
     // $ANTLR start "rule__CubeType__Group_2__0__Impl"
-    // InternalCubeDSL.g:4337:1: rule__CubeType__Group_2__0__Impl : ( ( rule__CubeType__DefaultMeasureAssignment_2_0 ) ) ;
+    // InternalCubeDSL.g:4339:1: rule__CubeType__Group_2__0__Impl : ( ( rule__CubeType__DefaultMeasureAssignment_2_0 ) ) ;
     public final void rule__CubeType__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4341:1: ( ( ( rule__CubeType__DefaultMeasureAssignment_2_0 ) ) )
-            // InternalCubeDSL.g:4342:1: ( ( rule__CubeType__DefaultMeasureAssignment_2_0 ) )
+            // InternalCubeDSL.g:4343:1: ( ( ( rule__CubeType__DefaultMeasureAssignment_2_0 ) ) )
+            // InternalCubeDSL.g:4344:1: ( ( rule__CubeType__DefaultMeasureAssignment_2_0 ) )
             {
-            // InternalCubeDSL.g:4342:1: ( ( rule__CubeType__DefaultMeasureAssignment_2_0 ) )
-            // InternalCubeDSL.g:4343:2: ( rule__CubeType__DefaultMeasureAssignment_2_0 )
+            // InternalCubeDSL.g:4344:1: ( ( rule__CubeType__DefaultMeasureAssignment_2_0 ) )
+            // InternalCubeDSL.g:4345:2: ( rule__CubeType__DefaultMeasureAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getDefaultMeasureAssignment_2_0()); 
             }
-            // InternalCubeDSL.g:4344:2: ( rule__CubeType__DefaultMeasureAssignment_2_0 )
-            // InternalCubeDSL.g:4344:3: rule__CubeType__DefaultMeasureAssignment_2_0
+            // InternalCubeDSL.g:4346:2: ( rule__CubeType__DefaultMeasureAssignment_2_0 )
+            // InternalCubeDSL.g:4346:3: rule__CubeType__DefaultMeasureAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__CubeType__DefaultMeasureAssignment_2_0();
@@ -16027,14 +16030,14 @@
 
 
     // $ANTLR start "rule__CubeType__Group_2__1"
-    // InternalCubeDSL.g:4352:1: rule__CubeType__Group_2__1 : rule__CubeType__Group_2__1__Impl ;
+    // InternalCubeDSL.g:4354:1: rule__CubeType__Group_2__1 : rule__CubeType__Group_2__1__Impl ;
     public final void rule__CubeType__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4356:1: ( rule__CubeType__Group_2__1__Impl )
-            // InternalCubeDSL.g:4357:2: rule__CubeType__Group_2__1__Impl
+            // InternalCubeDSL.g:4358:1: ( rule__CubeType__Group_2__1__Impl )
+            // InternalCubeDSL.g:4359:2: rule__CubeType__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeType__Group_2__1__Impl();
@@ -16060,23 +16063,23 @@
 
 
     // $ANTLR start "rule__CubeType__Group_2__1__Impl"
-    // InternalCubeDSL.g:4363:1: rule__CubeType__Group_2__1__Impl : ( ( rule__CubeType__DefaultMeasureValueAssignment_2_1 ) ) ;
+    // InternalCubeDSL.g:4365:1: rule__CubeType__Group_2__1__Impl : ( ( rule__CubeType__DefaultMeasureValueAssignment_2_1 ) ) ;
     public final void rule__CubeType__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4367:1: ( ( ( rule__CubeType__DefaultMeasureValueAssignment_2_1 ) ) )
-            // InternalCubeDSL.g:4368:1: ( ( rule__CubeType__DefaultMeasureValueAssignment_2_1 ) )
+            // InternalCubeDSL.g:4369:1: ( ( ( rule__CubeType__DefaultMeasureValueAssignment_2_1 ) ) )
+            // InternalCubeDSL.g:4370:1: ( ( rule__CubeType__DefaultMeasureValueAssignment_2_1 ) )
             {
-            // InternalCubeDSL.g:4368:1: ( ( rule__CubeType__DefaultMeasureValueAssignment_2_1 ) )
-            // InternalCubeDSL.g:4369:2: ( rule__CubeType__DefaultMeasureValueAssignment_2_1 )
+            // InternalCubeDSL.g:4370:1: ( ( rule__CubeType__DefaultMeasureValueAssignment_2_1 ) )
+            // InternalCubeDSL.g:4371:2: ( rule__CubeType__DefaultMeasureValueAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getDefaultMeasureValueAssignment_2_1()); 
             }
-            // InternalCubeDSL.g:4370:2: ( rule__CubeType__DefaultMeasureValueAssignment_2_1 )
-            // InternalCubeDSL.g:4370:3: rule__CubeType__DefaultMeasureValueAssignment_2_1
+            // InternalCubeDSL.g:4372:2: ( rule__CubeType__DefaultMeasureValueAssignment_2_1 )
+            // InternalCubeDSL.g:4372:3: rule__CubeType__DefaultMeasureValueAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeType__DefaultMeasureValueAssignment_2_1();
@@ -16111,14 +16114,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__Group__0"
-    // InternalCubeDSL.g:4379:1: rule__CubeDimensionUsage__Group__0 : rule__CubeDimensionUsage__Group__0__Impl rule__CubeDimensionUsage__Group__1 ;
+    // InternalCubeDSL.g:4381:1: rule__CubeDimensionUsage__Group__0 : rule__CubeDimensionUsage__Group__0__Impl rule__CubeDimensionUsage__Group__1 ;
     public final void rule__CubeDimensionUsage__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4383:1: ( rule__CubeDimensionUsage__Group__0__Impl rule__CubeDimensionUsage__Group__1 )
-            // InternalCubeDSL.g:4384:2: rule__CubeDimensionUsage__Group__0__Impl rule__CubeDimensionUsage__Group__1
+            // InternalCubeDSL.g:4385:1: ( rule__CubeDimensionUsage__Group__0__Impl rule__CubeDimensionUsage__Group__1 )
+            // InternalCubeDSL.g:4386:2: rule__CubeDimensionUsage__Group__0__Impl rule__CubeDimensionUsage__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__CubeDimensionUsage__Group__0__Impl();
@@ -16149,17 +16152,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__Group__0__Impl"
-    // InternalCubeDSL.g:4391:1: rule__CubeDimensionUsage__Group__0__Impl : ( 'dimensionUsage' ) ;
+    // InternalCubeDSL.g:4393:1: rule__CubeDimensionUsage__Group__0__Impl : ( 'dimensionUsage' ) ;
     public final void rule__CubeDimensionUsage__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4395:1: ( ( 'dimensionUsage' ) )
-            // InternalCubeDSL.g:4396:1: ( 'dimensionUsage' )
+            // InternalCubeDSL.g:4397:1: ( ( 'dimensionUsage' ) )
+            // InternalCubeDSL.g:4398:1: ( 'dimensionUsage' )
             {
-            // InternalCubeDSL.g:4396:1: ( 'dimensionUsage' )
-            // InternalCubeDSL.g:4397:2: 'dimensionUsage'
+            // InternalCubeDSL.g:4398:1: ( 'dimensionUsage' )
+            // InternalCubeDSL.g:4399:2: 'dimensionUsage'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getDimensionUsageKeyword_0()); 
@@ -16190,14 +16193,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__Group__1"
-    // InternalCubeDSL.g:4406:1: rule__CubeDimensionUsage__Group__1 : rule__CubeDimensionUsage__Group__1__Impl rule__CubeDimensionUsage__Group__2 ;
+    // InternalCubeDSL.g:4408:1: rule__CubeDimensionUsage__Group__1 : rule__CubeDimensionUsage__Group__1__Impl rule__CubeDimensionUsage__Group__2 ;
     public final void rule__CubeDimensionUsage__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4410:1: ( rule__CubeDimensionUsage__Group__1__Impl rule__CubeDimensionUsage__Group__2 )
-            // InternalCubeDSL.g:4411:2: rule__CubeDimensionUsage__Group__1__Impl rule__CubeDimensionUsage__Group__2
+            // InternalCubeDSL.g:4412:1: ( rule__CubeDimensionUsage__Group__1__Impl rule__CubeDimensionUsage__Group__2 )
+            // InternalCubeDSL.g:4413:2: rule__CubeDimensionUsage__Group__1__Impl rule__CubeDimensionUsage__Group__2
             {
             pushFollow(FOLLOW_15);
             rule__CubeDimensionUsage__Group__1__Impl();
@@ -16228,23 +16231,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__Group__1__Impl"
-    // InternalCubeDSL.g:4418:1: rule__CubeDimensionUsage__Group__1__Impl : ( ( rule__CubeDimensionUsage__SourceValueAssignment_1 ) ) ;
+    // InternalCubeDSL.g:4420:1: rule__CubeDimensionUsage__Group__1__Impl : ( ( rule__CubeDimensionUsage__SourceValueAssignment_1 ) ) ;
     public final void rule__CubeDimensionUsage__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4422:1: ( ( ( rule__CubeDimensionUsage__SourceValueAssignment_1 ) ) )
-            // InternalCubeDSL.g:4423:1: ( ( rule__CubeDimensionUsage__SourceValueAssignment_1 ) )
+            // InternalCubeDSL.g:4424:1: ( ( ( rule__CubeDimensionUsage__SourceValueAssignment_1 ) ) )
+            // InternalCubeDSL.g:4425:1: ( ( rule__CubeDimensionUsage__SourceValueAssignment_1 ) )
             {
-            // InternalCubeDSL.g:4423:1: ( ( rule__CubeDimensionUsage__SourceValueAssignment_1 ) )
-            // InternalCubeDSL.g:4424:2: ( rule__CubeDimensionUsage__SourceValueAssignment_1 )
+            // InternalCubeDSL.g:4425:1: ( ( rule__CubeDimensionUsage__SourceValueAssignment_1 ) )
+            // InternalCubeDSL.g:4426:2: ( rule__CubeDimensionUsage__SourceValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getSourceValueAssignment_1()); 
             }
-            // InternalCubeDSL.g:4425:2: ( rule__CubeDimensionUsage__SourceValueAssignment_1 )
-            // InternalCubeDSL.g:4425:3: rule__CubeDimensionUsage__SourceValueAssignment_1
+            // InternalCubeDSL.g:4427:2: ( rule__CubeDimensionUsage__SourceValueAssignment_1 )
+            // InternalCubeDSL.g:4427:3: rule__CubeDimensionUsage__SourceValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionUsage__SourceValueAssignment_1();
@@ -16279,14 +16282,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__Group__2"
-    // InternalCubeDSL.g:4433:1: rule__CubeDimensionUsage__Group__2 : rule__CubeDimensionUsage__Group__2__Impl rule__CubeDimensionUsage__Group__3 ;
+    // InternalCubeDSL.g:4435:1: rule__CubeDimensionUsage__Group__2 : rule__CubeDimensionUsage__Group__2__Impl rule__CubeDimensionUsage__Group__3 ;
     public final void rule__CubeDimensionUsage__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4437:1: ( rule__CubeDimensionUsage__Group__2__Impl rule__CubeDimensionUsage__Group__3 )
-            // InternalCubeDSL.g:4438:2: rule__CubeDimensionUsage__Group__2__Impl rule__CubeDimensionUsage__Group__3
+            // InternalCubeDSL.g:4439:1: ( rule__CubeDimensionUsage__Group__2__Impl rule__CubeDimensionUsage__Group__3 )
+            // InternalCubeDSL.g:4440:2: rule__CubeDimensionUsage__Group__2__Impl rule__CubeDimensionUsage__Group__3
             {
             pushFollow(FOLLOW_6);
             rule__CubeDimensionUsage__Group__2__Impl();
@@ -16317,17 +16320,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__Group__2__Impl"
-    // InternalCubeDSL.g:4445:1: rule__CubeDimensionUsage__Group__2__Impl : ( 'over' ) ;
+    // InternalCubeDSL.g:4447:1: rule__CubeDimensionUsage__Group__2__Impl : ( 'over' ) ;
     public final void rule__CubeDimensionUsage__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4449:1: ( ( 'over' ) )
-            // InternalCubeDSL.g:4450:1: ( 'over' )
+            // InternalCubeDSL.g:4451:1: ( ( 'over' ) )
+            // InternalCubeDSL.g:4452:1: ( 'over' )
             {
-            // InternalCubeDSL.g:4450:1: ( 'over' )
-            // InternalCubeDSL.g:4451:2: 'over'
+            // InternalCubeDSL.g:4452:1: ( 'over' )
+            // InternalCubeDSL.g:4453:2: 'over'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getOverKeyword_2()); 
@@ -16358,14 +16361,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__Group__3"
-    // InternalCubeDSL.g:4460:1: rule__CubeDimensionUsage__Group__3 : rule__CubeDimensionUsage__Group__3__Impl ;
+    // InternalCubeDSL.g:4462:1: rule__CubeDimensionUsage__Group__3 : rule__CubeDimensionUsage__Group__3__Impl ;
     public final void rule__CubeDimensionUsage__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4464:1: ( rule__CubeDimensionUsage__Group__3__Impl )
-            // InternalCubeDSL.g:4465:2: rule__CubeDimensionUsage__Group__3__Impl
+            // InternalCubeDSL.g:4466:1: ( rule__CubeDimensionUsage__Group__3__Impl )
+            // InternalCubeDSL.g:4467:2: rule__CubeDimensionUsage__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionUsage__Group__3__Impl();
@@ -16391,23 +16394,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__Group__3__Impl"
-    // InternalCubeDSL.g:4471:1: rule__CubeDimensionUsage__Group__3__Impl : ( ( rule__CubeDimensionUsage__OverValueAssignment_3 ) ) ;
+    // InternalCubeDSL.g:4473:1: rule__CubeDimensionUsage__Group__3__Impl : ( ( rule__CubeDimensionUsage__OverValueAssignment_3 ) ) ;
     public final void rule__CubeDimensionUsage__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4475:1: ( ( ( rule__CubeDimensionUsage__OverValueAssignment_3 ) ) )
-            // InternalCubeDSL.g:4476:1: ( ( rule__CubeDimensionUsage__OverValueAssignment_3 ) )
+            // InternalCubeDSL.g:4477:1: ( ( ( rule__CubeDimensionUsage__OverValueAssignment_3 ) ) )
+            // InternalCubeDSL.g:4478:1: ( ( rule__CubeDimensionUsage__OverValueAssignment_3 ) )
             {
-            // InternalCubeDSL.g:4476:1: ( ( rule__CubeDimensionUsage__OverValueAssignment_3 ) )
-            // InternalCubeDSL.g:4477:2: ( rule__CubeDimensionUsage__OverValueAssignment_3 )
+            // InternalCubeDSL.g:4478:1: ( ( rule__CubeDimensionUsage__OverValueAssignment_3 ) )
+            // InternalCubeDSL.g:4479:2: ( rule__CubeDimensionUsage__OverValueAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getOverValueAssignment_3()); 
             }
-            // InternalCubeDSL.g:4478:2: ( rule__CubeDimensionUsage__OverValueAssignment_3 )
-            // InternalCubeDSL.g:4478:3: rule__CubeDimensionUsage__OverValueAssignment_3
+            // InternalCubeDSL.g:4480:2: ( rule__CubeDimensionUsage__OverValueAssignment_3 )
+            // InternalCubeDSL.g:4480:3: rule__CubeDimensionUsage__OverValueAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionUsage__OverValueAssignment_3();
@@ -16442,14 +16445,14 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__0"
-    // InternalCubeDSL.g:4487:1: rule__CubeDimension__Group__0 : rule__CubeDimension__Group__0__Impl rule__CubeDimension__Group__1 ;
+    // InternalCubeDSL.g:4489:1: rule__CubeDimension__Group__0 : rule__CubeDimension__Group__0__Impl rule__CubeDimension__Group__1 ;
     public final void rule__CubeDimension__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4491:1: ( rule__CubeDimension__Group__0__Impl rule__CubeDimension__Group__1 )
-            // InternalCubeDSL.g:4492:2: rule__CubeDimension__Group__0__Impl rule__CubeDimension__Group__1
+            // InternalCubeDSL.g:4493:1: ( rule__CubeDimension__Group__0__Impl rule__CubeDimension__Group__1 )
+            // InternalCubeDSL.g:4494:2: rule__CubeDimension__Group__0__Impl rule__CubeDimension__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__CubeDimension__Group__0__Impl();
@@ -16480,17 +16483,17 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__0__Impl"
-    // InternalCubeDSL.g:4499:1: rule__CubeDimension__Group__0__Impl : ( 'dimension' ) ;
+    // InternalCubeDSL.g:4501:1: rule__CubeDimension__Group__0__Impl : ( 'dimension' ) ;
     public final void rule__CubeDimension__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4503:1: ( ( 'dimension' ) )
-            // InternalCubeDSL.g:4504:1: ( 'dimension' )
+            // InternalCubeDSL.g:4505:1: ( ( 'dimension' ) )
+            // InternalCubeDSL.g:4506:1: ( 'dimension' )
             {
-            // InternalCubeDSL.g:4504:1: ( 'dimension' )
-            // InternalCubeDSL.g:4505:2: 'dimension'
+            // InternalCubeDSL.g:4506:1: ( 'dimension' )
+            // InternalCubeDSL.g:4507:2: 'dimension'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getDimensionKeyword_0()); 
@@ -16521,14 +16524,14 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__1"
-    // InternalCubeDSL.g:4514:1: rule__CubeDimension__Group__1 : rule__CubeDimension__Group__1__Impl rule__CubeDimension__Group__2 ;
+    // InternalCubeDSL.g:4516:1: rule__CubeDimension__Group__1 : rule__CubeDimension__Group__1__Impl rule__CubeDimension__Group__2 ;
     public final void rule__CubeDimension__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4518:1: ( rule__CubeDimension__Group__1__Impl rule__CubeDimension__Group__2 )
-            // InternalCubeDSL.g:4519:2: rule__CubeDimension__Group__1__Impl rule__CubeDimension__Group__2
+            // InternalCubeDSL.g:4520:1: ( rule__CubeDimension__Group__1__Impl rule__CubeDimension__Group__2 )
+            // InternalCubeDSL.g:4521:2: rule__CubeDimension__Group__1__Impl rule__CubeDimension__Group__2
             {
             pushFollow(FOLLOW_16);
             rule__CubeDimension__Group__1__Impl();
@@ -16559,23 +16562,23 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__1__Impl"
-    // InternalCubeDSL.g:4526:1: rule__CubeDimension__Group__1__Impl : ( ( rule__CubeDimension__NameAssignment_1 ) ) ;
+    // InternalCubeDSL.g:4528:1: rule__CubeDimension__Group__1__Impl : ( ( rule__CubeDimension__NameAssignment_1 ) ) ;
     public final void rule__CubeDimension__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4530:1: ( ( ( rule__CubeDimension__NameAssignment_1 ) ) )
-            // InternalCubeDSL.g:4531:1: ( ( rule__CubeDimension__NameAssignment_1 ) )
+            // InternalCubeDSL.g:4532:1: ( ( ( rule__CubeDimension__NameAssignment_1 ) ) )
+            // InternalCubeDSL.g:4533:1: ( ( rule__CubeDimension__NameAssignment_1 ) )
             {
-            // InternalCubeDSL.g:4531:1: ( ( rule__CubeDimension__NameAssignment_1 ) )
-            // InternalCubeDSL.g:4532:2: ( rule__CubeDimension__NameAssignment_1 )
+            // InternalCubeDSL.g:4533:1: ( ( rule__CubeDimension__NameAssignment_1 ) )
+            // InternalCubeDSL.g:4534:2: ( rule__CubeDimension__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getNameAssignment_1()); 
             }
-            // InternalCubeDSL.g:4533:2: ( rule__CubeDimension__NameAssignment_1 )
-            // InternalCubeDSL.g:4533:3: rule__CubeDimension__NameAssignment_1
+            // InternalCubeDSL.g:4535:2: ( rule__CubeDimension__NameAssignment_1 )
+            // InternalCubeDSL.g:4535:3: rule__CubeDimension__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimension__NameAssignment_1();
@@ -16610,14 +16613,14 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__2"
-    // InternalCubeDSL.g:4541:1: rule__CubeDimension__Group__2 : rule__CubeDimension__Group__2__Impl rule__CubeDimension__Group__3 ;
+    // InternalCubeDSL.g:4543:1: rule__CubeDimension__Group__2 : rule__CubeDimension__Group__2__Impl rule__CubeDimension__Group__3 ;
     public final void rule__CubeDimension__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4545:1: ( rule__CubeDimension__Group__2__Impl rule__CubeDimension__Group__3 )
-            // InternalCubeDSL.g:4546:2: rule__CubeDimension__Group__2__Impl rule__CubeDimension__Group__3
+            // InternalCubeDSL.g:4547:1: ( rule__CubeDimension__Group__2__Impl rule__CubeDimension__Group__3 )
+            // InternalCubeDSL.g:4548:2: rule__CubeDimension__Group__2__Impl rule__CubeDimension__Group__3
             {
             pushFollow(FOLLOW_16);
             rule__CubeDimension__Group__2__Impl();
@@ -16648,22 +16651,22 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__2__Impl"
-    // InternalCubeDSL.g:4553:1: rule__CubeDimension__Group__2__Impl : ( ( rule__CubeDimension__TypeTimeAssignment_2 )? ) ;
+    // InternalCubeDSL.g:4555:1: rule__CubeDimension__Group__2__Impl : ( ( rule__CubeDimension__TypeTimeAssignment_2 )? ) ;
     public final void rule__CubeDimension__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4557:1: ( ( ( rule__CubeDimension__TypeTimeAssignment_2 )? ) )
-            // InternalCubeDSL.g:4558:1: ( ( rule__CubeDimension__TypeTimeAssignment_2 )? )
+            // InternalCubeDSL.g:4559:1: ( ( ( rule__CubeDimension__TypeTimeAssignment_2 )? ) )
+            // InternalCubeDSL.g:4560:1: ( ( rule__CubeDimension__TypeTimeAssignment_2 )? )
             {
-            // InternalCubeDSL.g:4558:1: ( ( rule__CubeDimension__TypeTimeAssignment_2 )? )
-            // InternalCubeDSL.g:4559:2: ( rule__CubeDimension__TypeTimeAssignment_2 )?
+            // InternalCubeDSL.g:4560:1: ( ( rule__CubeDimension__TypeTimeAssignment_2 )? )
+            // InternalCubeDSL.g:4561:2: ( rule__CubeDimension__TypeTimeAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getTypeTimeAssignment_2()); 
             }
-            // InternalCubeDSL.g:4560:2: ( rule__CubeDimension__TypeTimeAssignment_2 )?
+            // InternalCubeDSL.g:4562:2: ( rule__CubeDimension__TypeTimeAssignment_2 )?
             int alt54=2;
             int LA54_0 = input.LA(1);
 
@@ -16672,7 +16675,7 @@
             }
             switch (alt54) {
                 case 1 :
-                    // InternalCubeDSL.g:4560:3: rule__CubeDimension__TypeTimeAssignment_2
+                    // InternalCubeDSL.g:4562:3: rule__CubeDimension__TypeTimeAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeDimension__TypeTimeAssignment_2();
@@ -16710,14 +16713,14 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__3"
-    // InternalCubeDSL.g:4568:1: rule__CubeDimension__Group__3 : rule__CubeDimension__Group__3__Impl rule__CubeDimension__Group__4 ;
+    // InternalCubeDSL.g:4570:1: rule__CubeDimension__Group__3 : rule__CubeDimension__Group__3__Impl rule__CubeDimension__Group__4 ;
     public final void rule__CubeDimension__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4572:1: ( rule__CubeDimension__Group__3__Impl rule__CubeDimension__Group__4 )
-            // InternalCubeDSL.g:4573:2: rule__CubeDimension__Group__3__Impl rule__CubeDimension__Group__4
+            // InternalCubeDSL.g:4574:1: ( rule__CubeDimension__Group__3__Impl rule__CubeDimension__Group__4 )
+            // InternalCubeDSL.g:4575:2: rule__CubeDimension__Group__3__Impl rule__CubeDimension__Group__4
             {
             pushFollow(FOLLOW_17);
             rule__CubeDimension__Group__3__Impl();
@@ -16748,17 +16751,17 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__3__Impl"
-    // InternalCubeDSL.g:4580:1: rule__CubeDimension__Group__3__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:4582:1: rule__CubeDimension__Group__3__Impl : ( '{' ) ;
     public final void rule__CubeDimension__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4584:1: ( ( '{' ) )
-            // InternalCubeDSL.g:4585:1: ( '{' )
+            // InternalCubeDSL.g:4586:1: ( ( '{' ) )
+            // InternalCubeDSL.g:4587:1: ( '{' )
             {
-            // InternalCubeDSL.g:4585:1: ( '{' )
-            // InternalCubeDSL.g:4586:2: '{'
+            // InternalCubeDSL.g:4587:1: ( '{' )
+            // InternalCubeDSL.g:4588:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getLeftCurlyBracketKeyword_3()); 
@@ -16789,14 +16792,14 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__4"
-    // InternalCubeDSL.g:4595:1: rule__CubeDimension__Group__4 : rule__CubeDimension__Group__4__Impl rule__CubeDimension__Group__5 ;
+    // InternalCubeDSL.g:4597:1: rule__CubeDimension__Group__4 : rule__CubeDimension__Group__4__Impl rule__CubeDimension__Group__5 ;
     public final void rule__CubeDimension__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4599:1: ( rule__CubeDimension__Group__4__Impl rule__CubeDimension__Group__5 )
-            // InternalCubeDSL.g:4600:2: rule__CubeDimension__Group__4__Impl rule__CubeDimension__Group__5
+            // InternalCubeDSL.g:4601:1: ( rule__CubeDimension__Group__4__Impl rule__CubeDimension__Group__5 )
+            // InternalCubeDSL.g:4602:2: rule__CubeDimension__Group__4__Impl rule__CubeDimension__Group__5
             {
             pushFollow(FOLLOW_17);
             rule__CubeDimension__Group__4__Impl();
@@ -16827,22 +16830,22 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__4__Impl"
-    // InternalCubeDSL.g:4607:1: rule__CubeDimension__Group__4__Impl : ( ( rule__CubeDimension__HierarchiesAssignment_4 )* ) ;
+    // InternalCubeDSL.g:4609:1: rule__CubeDimension__Group__4__Impl : ( ( rule__CubeDimension__HierarchiesAssignment_4 )* ) ;
     public final void rule__CubeDimension__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4611:1: ( ( ( rule__CubeDimension__HierarchiesAssignment_4 )* ) )
-            // InternalCubeDSL.g:4612:1: ( ( rule__CubeDimension__HierarchiesAssignment_4 )* )
+            // InternalCubeDSL.g:4613:1: ( ( ( rule__CubeDimension__HierarchiesAssignment_4 )* ) )
+            // InternalCubeDSL.g:4614:1: ( ( rule__CubeDimension__HierarchiesAssignment_4 )* )
             {
-            // InternalCubeDSL.g:4612:1: ( ( rule__CubeDimension__HierarchiesAssignment_4 )* )
-            // InternalCubeDSL.g:4613:2: ( rule__CubeDimension__HierarchiesAssignment_4 )*
+            // InternalCubeDSL.g:4614:1: ( ( rule__CubeDimension__HierarchiesAssignment_4 )* )
+            // InternalCubeDSL.g:4615:2: ( rule__CubeDimension__HierarchiesAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getHierarchiesAssignment_4()); 
             }
-            // InternalCubeDSL.g:4614:2: ( rule__CubeDimension__HierarchiesAssignment_4 )*
+            // InternalCubeDSL.g:4616:2: ( rule__CubeDimension__HierarchiesAssignment_4 )*
             loop55:
             do {
                 int alt55=2;
@@ -16855,7 +16858,7 @@
 
                 switch (alt55) {
             	case 1 :
-            	    // InternalCubeDSL.g:4614:3: rule__CubeDimension__HierarchiesAssignment_4
+            	    // InternalCubeDSL.g:4616:3: rule__CubeDimension__HierarchiesAssignment_4
             	    {
             	    pushFollow(FOLLOW_18);
             	    rule__CubeDimension__HierarchiesAssignment_4();
@@ -16896,14 +16899,14 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__5"
-    // InternalCubeDSL.g:4622:1: rule__CubeDimension__Group__5 : rule__CubeDimension__Group__5__Impl ;
+    // InternalCubeDSL.g:4624:1: rule__CubeDimension__Group__5 : rule__CubeDimension__Group__5__Impl ;
     public final void rule__CubeDimension__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4626:1: ( rule__CubeDimension__Group__5__Impl )
-            // InternalCubeDSL.g:4627:2: rule__CubeDimension__Group__5__Impl
+            // InternalCubeDSL.g:4628:1: ( rule__CubeDimension__Group__5__Impl )
+            // InternalCubeDSL.g:4629:2: rule__CubeDimension__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimension__Group__5__Impl();
@@ -16929,17 +16932,17 @@
 
 
     // $ANTLR start "rule__CubeDimension__Group__5__Impl"
-    // InternalCubeDSL.g:4633:1: rule__CubeDimension__Group__5__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:4635:1: rule__CubeDimension__Group__5__Impl : ( '}' ) ;
     public final void rule__CubeDimension__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4637:1: ( ( '}' ) )
-            // InternalCubeDSL.g:4638:1: ( '}' )
+            // InternalCubeDSL.g:4639:1: ( ( '}' ) )
+            // InternalCubeDSL.g:4640:1: ( '}' )
             {
-            // InternalCubeDSL.g:4638:1: ( '}' )
-            // InternalCubeDSL.g:4639:2: '}'
+            // InternalCubeDSL.g:4640:1: ( '}' )
+            // InternalCubeDSL.g:4641:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getRightCurlyBracketKeyword_5()); 
@@ -16970,14 +16973,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__0"
-    // InternalCubeDSL.g:4649:1: rule__CubeHierarchy__Group__0 : rule__CubeHierarchy__Group__0__Impl rule__CubeHierarchy__Group__1 ;
+    // InternalCubeDSL.g:4651:1: rule__CubeHierarchy__Group__0 : rule__CubeHierarchy__Group__0__Impl rule__CubeHierarchy__Group__1 ;
     public final void rule__CubeHierarchy__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4653:1: ( rule__CubeHierarchy__Group__0__Impl rule__CubeHierarchy__Group__1 )
-            // InternalCubeDSL.g:4654:2: rule__CubeHierarchy__Group__0__Impl rule__CubeHierarchy__Group__1
+            // InternalCubeDSL.g:4655:1: ( rule__CubeHierarchy__Group__0__Impl rule__CubeHierarchy__Group__1 )
+            // InternalCubeDSL.g:4656:2: rule__CubeHierarchy__Group__0__Impl rule__CubeHierarchy__Group__1
             {
             pushFollow(FOLLOW_19);
             rule__CubeHierarchy__Group__0__Impl();
@@ -17008,23 +17011,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__0__Impl"
-    // InternalCubeDSL.g:4661:1: rule__CubeHierarchy__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:4663:1: rule__CubeHierarchy__Group__0__Impl : ( () ) ;
     public final void rule__CubeHierarchy__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4665:1: ( ( () ) )
-            // InternalCubeDSL.g:4666:1: ( () )
+            // InternalCubeDSL.g:4667:1: ( ( () ) )
+            // InternalCubeDSL.g:4668:1: ( () )
             {
-            // InternalCubeDSL.g:4666:1: ( () )
-            // InternalCubeDSL.g:4667:2: ()
+            // InternalCubeDSL.g:4668:1: ( () )
+            // InternalCubeDSL.g:4669:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getCubeHierarchyAction_0()); 
             }
-            // InternalCubeDSL.g:4668:2: ()
-            // InternalCubeDSL.g:4668:3: 
+            // InternalCubeDSL.g:4670:2: ()
+            // InternalCubeDSL.g:4670:3: 
             {
             }
 
@@ -17049,14 +17052,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__1"
-    // InternalCubeDSL.g:4676:1: rule__CubeHierarchy__Group__1 : rule__CubeHierarchy__Group__1__Impl rule__CubeHierarchy__Group__2 ;
+    // InternalCubeDSL.g:4678:1: rule__CubeHierarchy__Group__1 : rule__CubeHierarchy__Group__1__Impl rule__CubeHierarchy__Group__2 ;
     public final void rule__CubeHierarchy__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4680:1: ( rule__CubeHierarchy__Group__1__Impl rule__CubeHierarchy__Group__2 )
-            // InternalCubeDSL.g:4681:2: rule__CubeHierarchy__Group__1__Impl rule__CubeHierarchy__Group__2
+            // InternalCubeDSL.g:4682:1: ( rule__CubeHierarchy__Group__1__Impl rule__CubeHierarchy__Group__2 )
+            // InternalCubeDSL.g:4683:2: rule__CubeHierarchy__Group__1__Impl rule__CubeHierarchy__Group__2
             {
             pushFollow(FOLLOW_20);
             rule__CubeHierarchy__Group__1__Impl();
@@ -17087,17 +17090,17 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__1__Impl"
-    // InternalCubeDSL.g:4688:1: rule__CubeHierarchy__Group__1__Impl : ( 'hierarchy' ) ;
+    // InternalCubeDSL.g:4690:1: rule__CubeHierarchy__Group__1__Impl : ( 'hierarchy' ) ;
     public final void rule__CubeHierarchy__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4692:1: ( ( 'hierarchy' ) )
-            // InternalCubeDSL.g:4693:1: ( 'hierarchy' )
+            // InternalCubeDSL.g:4694:1: ( ( 'hierarchy' ) )
+            // InternalCubeDSL.g:4695:1: ( 'hierarchy' )
             {
-            // InternalCubeDSL.g:4693:1: ( 'hierarchy' )
-            // InternalCubeDSL.g:4694:2: 'hierarchy'
+            // InternalCubeDSL.g:4695:1: ( 'hierarchy' )
+            // InternalCubeDSL.g:4696:2: 'hierarchy'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getHierarchyKeyword_1()); 
@@ -17128,14 +17131,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__2"
-    // InternalCubeDSL.g:4703:1: rule__CubeHierarchy__Group__2 : rule__CubeHierarchy__Group__2__Impl rule__CubeHierarchy__Group__3 ;
+    // InternalCubeDSL.g:4705:1: rule__CubeHierarchy__Group__2 : rule__CubeHierarchy__Group__2__Impl rule__CubeHierarchy__Group__3 ;
     public final void rule__CubeHierarchy__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4707:1: ( rule__CubeHierarchy__Group__2__Impl rule__CubeHierarchy__Group__3 )
-            // InternalCubeDSL.g:4708:2: rule__CubeHierarchy__Group__2__Impl rule__CubeHierarchy__Group__3
+            // InternalCubeDSL.g:4709:1: ( rule__CubeHierarchy__Group__2__Impl rule__CubeHierarchy__Group__3 )
+            // InternalCubeDSL.g:4710:2: rule__CubeHierarchy__Group__2__Impl rule__CubeHierarchy__Group__3
             {
             pushFollow(FOLLOW_20);
             rule__CubeHierarchy__Group__2__Impl();
@@ -17166,22 +17169,22 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__2__Impl"
-    // InternalCubeDSL.g:4715:1: rule__CubeHierarchy__Group__2__Impl : ( ( rule__CubeHierarchy__NameAssignment_2 )? ) ;
+    // InternalCubeDSL.g:4717:1: rule__CubeHierarchy__Group__2__Impl : ( ( rule__CubeHierarchy__NameAssignment_2 )? ) ;
     public final void rule__CubeHierarchy__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4719:1: ( ( ( rule__CubeHierarchy__NameAssignment_2 )? ) )
-            // InternalCubeDSL.g:4720:1: ( ( rule__CubeHierarchy__NameAssignment_2 )? )
+            // InternalCubeDSL.g:4721:1: ( ( ( rule__CubeHierarchy__NameAssignment_2 )? ) )
+            // InternalCubeDSL.g:4722:1: ( ( rule__CubeHierarchy__NameAssignment_2 )? )
             {
-            // InternalCubeDSL.g:4720:1: ( ( rule__CubeHierarchy__NameAssignment_2 )? )
-            // InternalCubeDSL.g:4721:2: ( rule__CubeHierarchy__NameAssignment_2 )?
+            // InternalCubeDSL.g:4722:1: ( ( rule__CubeHierarchy__NameAssignment_2 )? )
+            // InternalCubeDSL.g:4723:2: ( rule__CubeHierarchy__NameAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getNameAssignment_2()); 
             }
-            // InternalCubeDSL.g:4722:2: ( rule__CubeHierarchy__NameAssignment_2 )?
+            // InternalCubeDSL.g:4724:2: ( rule__CubeHierarchy__NameAssignment_2 )?
             int alt56=2;
             int LA56_0 = input.LA(1);
 
@@ -17190,7 +17193,7 @@
             }
             switch (alt56) {
                 case 1 :
-                    // InternalCubeDSL.g:4722:3: rule__CubeHierarchy__NameAssignment_2
+                    // InternalCubeDSL.g:4724:3: rule__CubeHierarchy__NameAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeHierarchy__NameAssignment_2();
@@ -17228,14 +17231,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__3"
-    // InternalCubeDSL.g:4730:1: rule__CubeHierarchy__Group__3 : rule__CubeHierarchy__Group__3__Impl rule__CubeHierarchy__Group__4 ;
+    // InternalCubeDSL.g:4732:1: rule__CubeHierarchy__Group__3 : rule__CubeHierarchy__Group__3__Impl rule__CubeHierarchy__Group__4 ;
     public final void rule__CubeHierarchy__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4734:1: ( rule__CubeHierarchy__Group__3__Impl rule__CubeHierarchy__Group__4 )
-            // InternalCubeDSL.g:4735:2: rule__CubeHierarchy__Group__3__Impl rule__CubeHierarchy__Group__4
+            // InternalCubeDSL.g:4736:1: ( rule__CubeHierarchy__Group__3__Impl rule__CubeHierarchy__Group__4 )
+            // InternalCubeDSL.g:4737:2: rule__CubeHierarchy__Group__3__Impl rule__CubeHierarchy__Group__4
             {
             pushFollow(FOLLOW_20);
             rule__CubeHierarchy__Group__3__Impl();
@@ -17266,22 +17269,22 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__3__Impl"
-    // InternalCubeDSL.g:4742:1: rule__CubeHierarchy__Group__3__Impl : ( ( rule__CubeHierarchy__HasAllAssignment_3 )? ) ;
+    // InternalCubeDSL.g:4744:1: rule__CubeHierarchy__Group__3__Impl : ( ( rule__CubeHierarchy__HasAllAssignment_3 )? ) ;
     public final void rule__CubeHierarchy__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4746:1: ( ( ( rule__CubeHierarchy__HasAllAssignment_3 )? ) )
-            // InternalCubeDSL.g:4747:1: ( ( rule__CubeHierarchy__HasAllAssignment_3 )? )
+            // InternalCubeDSL.g:4748:1: ( ( ( rule__CubeHierarchy__HasAllAssignment_3 )? ) )
+            // InternalCubeDSL.g:4749:1: ( ( rule__CubeHierarchy__HasAllAssignment_3 )? )
             {
-            // InternalCubeDSL.g:4747:1: ( ( rule__CubeHierarchy__HasAllAssignment_3 )? )
-            // InternalCubeDSL.g:4748:2: ( rule__CubeHierarchy__HasAllAssignment_3 )?
+            // InternalCubeDSL.g:4749:1: ( ( rule__CubeHierarchy__HasAllAssignment_3 )? )
+            // InternalCubeDSL.g:4750:2: ( rule__CubeHierarchy__HasAllAssignment_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getHasAllAssignment_3()); 
             }
-            // InternalCubeDSL.g:4749:2: ( rule__CubeHierarchy__HasAllAssignment_3 )?
+            // InternalCubeDSL.g:4751:2: ( rule__CubeHierarchy__HasAllAssignment_3 )?
             int alt57=2;
             int LA57_0 = input.LA(1);
 
@@ -17290,7 +17293,7 @@
             }
             switch (alt57) {
                 case 1 :
-                    // InternalCubeDSL.g:4749:3: rule__CubeHierarchy__HasAllAssignment_3
+                    // InternalCubeDSL.g:4751:3: rule__CubeHierarchy__HasAllAssignment_3
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeHierarchy__HasAllAssignment_3();
@@ -17328,14 +17331,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__4"
-    // InternalCubeDSL.g:4757:1: rule__CubeHierarchy__Group__4 : rule__CubeHierarchy__Group__4__Impl rule__CubeHierarchy__Group__5 ;
+    // InternalCubeDSL.g:4759:1: rule__CubeHierarchy__Group__4 : rule__CubeHierarchy__Group__4__Impl rule__CubeHierarchy__Group__5 ;
     public final void rule__CubeHierarchy__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4761:1: ( rule__CubeHierarchy__Group__4__Impl rule__CubeHierarchy__Group__5 )
-            // InternalCubeDSL.g:4762:2: rule__CubeHierarchy__Group__4__Impl rule__CubeHierarchy__Group__5
+            // InternalCubeDSL.g:4763:1: ( rule__CubeHierarchy__Group__4__Impl rule__CubeHierarchy__Group__5 )
+            // InternalCubeDSL.g:4764:2: rule__CubeHierarchy__Group__4__Impl rule__CubeHierarchy__Group__5
             {
             pushFollow(FOLLOW_20);
             rule__CubeHierarchy__Group__4__Impl();
@@ -17366,22 +17369,22 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__4__Impl"
-    // InternalCubeDSL.g:4769:1: rule__CubeHierarchy__Group__4__Impl : ( ( rule__CubeHierarchy__Group_4__0 )? ) ;
+    // InternalCubeDSL.g:4771:1: rule__CubeHierarchy__Group__4__Impl : ( ( rule__CubeHierarchy__Group_4__0 )? ) ;
     public final void rule__CubeHierarchy__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4773:1: ( ( ( rule__CubeHierarchy__Group_4__0 )? ) )
-            // InternalCubeDSL.g:4774:1: ( ( rule__CubeHierarchy__Group_4__0 )? )
+            // InternalCubeDSL.g:4775:1: ( ( ( rule__CubeHierarchy__Group_4__0 )? ) )
+            // InternalCubeDSL.g:4776:1: ( ( rule__CubeHierarchy__Group_4__0 )? )
             {
-            // InternalCubeDSL.g:4774:1: ( ( rule__CubeHierarchy__Group_4__0 )? )
-            // InternalCubeDSL.g:4775:2: ( rule__CubeHierarchy__Group_4__0 )?
+            // InternalCubeDSL.g:4776:1: ( ( rule__CubeHierarchy__Group_4__0 )? )
+            // InternalCubeDSL.g:4777:2: ( rule__CubeHierarchy__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getGroup_4()); 
             }
-            // InternalCubeDSL.g:4776:2: ( rule__CubeHierarchy__Group_4__0 )?
+            // InternalCubeDSL.g:4778:2: ( rule__CubeHierarchy__Group_4__0 )?
             int alt58=2;
             int LA58_0 = input.LA(1);
 
@@ -17390,7 +17393,7 @@
             }
             switch (alt58) {
                 case 1 :
-                    // InternalCubeDSL.g:4776:3: rule__CubeHierarchy__Group_4__0
+                    // InternalCubeDSL.g:4778:3: rule__CubeHierarchy__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeHierarchy__Group_4__0();
@@ -17428,14 +17431,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__5"
-    // InternalCubeDSL.g:4784:1: rule__CubeHierarchy__Group__5 : rule__CubeHierarchy__Group__5__Impl rule__CubeHierarchy__Group__6 ;
+    // InternalCubeDSL.g:4786:1: rule__CubeHierarchy__Group__5 : rule__CubeHierarchy__Group__5__Impl rule__CubeHierarchy__Group__6 ;
     public final void rule__CubeHierarchy__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4788:1: ( rule__CubeHierarchy__Group__5__Impl rule__CubeHierarchy__Group__6 )
-            // InternalCubeDSL.g:4789:2: rule__CubeHierarchy__Group__5__Impl rule__CubeHierarchy__Group__6
+            // InternalCubeDSL.g:4790:1: ( rule__CubeHierarchy__Group__5__Impl rule__CubeHierarchy__Group__6 )
+            // InternalCubeDSL.g:4791:2: rule__CubeHierarchy__Group__5__Impl rule__CubeHierarchy__Group__6
             {
             pushFollow(FOLLOW_20);
             rule__CubeHierarchy__Group__5__Impl();
@@ -17466,22 +17469,22 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__5__Impl"
-    // InternalCubeDSL.g:4796:1: rule__CubeHierarchy__Group__5__Impl : ( ( rule__CubeHierarchy__Group_5__0 )? ) ;
+    // InternalCubeDSL.g:4798:1: rule__CubeHierarchy__Group__5__Impl : ( ( rule__CubeHierarchy__Group_5__0 )? ) ;
     public final void rule__CubeHierarchy__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4800:1: ( ( ( rule__CubeHierarchy__Group_5__0 )? ) )
-            // InternalCubeDSL.g:4801:1: ( ( rule__CubeHierarchy__Group_5__0 )? )
+            // InternalCubeDSL.g:4802:1: ( ( ( rule__CubeHierarchy__Group_5__0 )? ) )
+            // InternalCubeDSL.g:4803:1: ( ( rule__CubeHierarchy__Group_5__0 )? )
             {
-            // InternalCubeDSL.g:4801:1: ( ( rule__CubeHierarchy__Group_5__0 )? )
-            // InternalCubeDSL.g:4802:2: ( rule__CubeHierarchy__Group_5__0 )?
+            // InternalCubeDSL.g:4803:1: ( ( rule__CubeHierarchy__Group_5__0 )? )
+            // InternalCubeDSL.g:4804:2: ( rule__CubeHierarchy__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getGroup_5()); 
             }
-            // InternalCubeDSL.g:4803:2: ( rule__CubeHierarchy__Group_5__0 )?
+            // InternalCubeDSL.g:4805:2: ( rule__CubeHierarchy__Group_5__0 )?
             int alt59=2;
             int LA59_0 = input.LA(1);
 
@@ -17490,7 +17493,7 @@
             }
             switch (alt59) {
                 case 1 :
-                    // InternalCubeDSL.g:4803:3: rule__CubeHierarchy__Group_5__0
+                    // InternalCubeDSL.g:4805:3: rule__CubeHierarchy__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeHierarchy__Group_5__0();
@@ -17528,14 +17531,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__6"
-    // InternalCubeDSL.g:4811:1: rule__CubeHierarchy__Group__6 : rule__CubeHierarchy__Group__6__Impl rule__CubeHierarchy__Group__7 ;
+    // InternalCubeDSL.g:4813:1: rule__CubeHierarchy__Group__6 : rule__CubeHierarchy__Group__6__Impl rule__CubeHierarchy__Group__7 ;
     public final void rule__CubeHierarchy__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4815:1: ( rule__CubeHierarchy__Group__6__Impl rule__CubeHierarchy__Group__7 )
-            // InternalCubeDSL.g:4816:2: rule__CubeHierarchy__Group__6__Impl rule__CubeHierarchy__Group__7
+            // InternalCubeDSL.g:4817:1: ( rule__CubeHierarchy__Group__6__Impl rule__CubeHierarchy__Group__7 )
+            // InternalCubeDSL.g:4818:2: rule__CubeHierarchy__Group__6__Impl rule__CubeHierarchy__Group__7
             {
             pushFollow(FOLLOW_12);
             rule__CubeHierarchy__Group__6__Impl();
@@ -17566,17 +17569,17 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__6__Impl"
-    // InternalCubeDSL.g:4823:1: rule__CubeHierarchy__Group__6__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:4825:1: rule__CubeHierarchy__Group__6__Impl : ( '{' ) ;
     public final void rule__CubeHierarchy__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4827:1: ( ( '{' ) )
-            // InternalCubeDSL.g:4828:1: ( '{' )
+            // InternalCubeDSL.g:4829:1: ( ( '{' ) )
+            // InternalCubeDSL.g:4830:1: ( '{' )
             {
-            // InternalCubeDSL.g:4828:1: ( '{' )
-            // InternalCubeDSL.g:4829:2: '{'
+            // InternalCubeDSL.g:4830:1: ( '{' )
+            // InternalCubeDSL.g:4831:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getLeftCurlyBracketKeyword_6()); 
@@ -17607,14 +17610,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__7"
-    // InternalCubeDSL.g:4838:1: rule__CubeHierarchy__Group__7 : rule__CubeHierarchy__Group__7__Impl rule__CubeHierarchy__Group__8 ;
+    // InternalCubeDSL.g:4840:1: rule__CubeHierarchy__Group__7 : rule__CubeHierarchy__Group__7__Impl rule__CubeHierarchy__Group__8 ;
     public final void rule__CubeHierarchy__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4842:1: ( rule__CubeHierarchy__Group__7__Impl rule__CubeHierarchy__Group__8 )
-            // InternalCubeDSL.g:4843:2: rule__CubeHierarchy__Group__7__Impl rule__CubeHierarchy__Group__8
+            // InternalCubeDSL.g:4844:1: ( rule__CubeHierarchy__Group__7__Impl rule__CubeHierarchy__Group__8 )
+            // InternalCubeDSL.g:4845:2: rule__CubeHierarchy__Group__7__Impl rule__CubeHierarchy__Group__8
             {
             pushFollow(FOLLOW_13);
             rule__CubeHierarchy__Group__7__Impl();
@@ -17645,23 +17648,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__7__Impl"
-    // InternalCubeDSL.g:4850:1: rule__CubeHierarchy__Group__7__Impl : ( ( rule__CubeHierarchy__CubeDimEntityAssignment_7 ) ) ;
+    // InternalCubeDSL.g:4852:1: rule__CubeHierarchy__Group__7__Impl : ( ( rule__CubeHierarchy__CubeDimEntityAssignment_7 ) ) ;
     public final void rule__CubeHierarchy__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4854:1: ( ( ( rule__CubeHierarchy__CubeDimEntityAssignment_7 ) ) )
-            // InternalCubeDSL.g:4855:1: ( ( rule__CubeHierarchy__CubeDimEntityAssignment_7 ) )
+            // InternalCubeDSL.g:4856:1: ( ( ( rule__CubeHierarchy__CubeDimEntityAssignment_7 ) ) )
+            // InternalCubeDSL.g:4857:1: ( ( rule__CubeHierarchy__CubeDimEntityAssignment_7 ) )
             {
-            // InternalCubeDSL.g:4855:1: ( ( rule__CubeHierarchy__CubeDimEntityAssignment_7 ) )
-            // InternalCubeDSL.g:4856:2: ( rule__CubeHierarchy__CubeDimEntityAssignment_7 )
+            // InternalCubeDSL.g:4857:1: ( ( rule__CubeHierarchy__CubeDimEntityAssignment_7 ) )
+            // InternalCubeDSL.g:4858:2: ( rule__CubeHierarchy__CubeDimEntityAssignment_7 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getCubeDimEntityAssignment_7()); 
             }
-            // InternalCubeDSL.g:4857:2: ( rule__CubeHierarchy__CubeDimEntityAssignment_7 )
-            // InternalCubeDSL.g:4857:3: rule__CubeHierarchy__CubeDimEntityAssignment_7
+            // InternalCubeDSL.g:4859:2: ( rule__CubeHierarchy__CubeDimEntityAssignment_7 )
+            // InternalCubeDSL.g:4859:3: rule__CubeHierarchy__CubeDimEntityAssignment_7
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__CubeDimEntityAssignment_7();
@@ -17696,14 +17699,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__8"
-    // InternalCubeDSL.g:4865:1: rule__CubeHierarchy__Group__8 : rule__CubeHierarchy__Group__8__Impl ;
+    // InternalCubeDSL.g:4867:1: rule__CubeHierarchy__Group__8 : rule__CubeHierarchy__Group__8__Impl ;
     public final void rule__CubeHierarchy__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4869:1: ( rule__CubeHierarchy__Group__8__Impl )
-            // InternalCubeDSL.g:4870:2: rule__CubeHierarchy__Group__8__Impl
+            // InternalCubeDSL.g:4871:1: ( rule__CubeHierarchy__Group__8__Impl )
+            // InternalCubeDSL.g:4872:2: rule__CubeHierarchy__Group__8__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__Group__8__Impl();
@@ -17729,17 +17732,17 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group__8__Impl"
-    // InternalCubeDSL.g:4876:1: rule__CubeHierarchy__Group__8__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:4878:1: rule__CubeHierarchy__Group__8__Impl : ( '}' ) ;
     public final void rule__CubeHierarchy__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4880:1: ( ( '}' ) )
-            // InternalCubeDSL.g:4881:1: ( '}' )
+            // InternalCubeDSL.g:4882:1: ( ( '}' ) )
+            // InternalCubeDSL.g:4883:1: ( '}' )
             {
-            // InternalCubeDSL.g:4881:1: ( '}' )
-            // InternalCubeDSL.g:4882:2: '}'
+            // InternalCubeDSL.g:4883:1: ( '}' )
+            // InternalCubeDSL.g:4884:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getRightCurlyBracketKeyword_8()); 
@@ -17770,14 +17773,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group_4__0"
-    // InternalCubeDSL.g:4892:1: rule__CubeHierarchy__Group_4__0 : rule__CubeHierarchy__Group_4__0__Impl rule__CubeHierarchy__Group_4__1 ;
+    // InternalCubeDSL.g:4894:1: rule__CubeHierarchy__Group_4__0 : rule__CubeHierarchy__Group_4__0__Impl rule__CubeHierarchy__Group_4__1 ;
     public final void rule__CubeHierarchy__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4896:1: ( rule__CubeHierarchy__Group_4__0__Impl rule__CubeHierarchy__Group_4__1 )
-            // InternalCubeDSL.g:4897:2: rule__CubeHierarchy__Group_4__0__Impl rule__CubeHierarchy__Group_4__1
+            // InternalCubeDSL.g:4898:1: ( rule__CubeHierarchy__Group_4__0__Impl rule__CubeHierarchy__Group_4__1 )
+            // InternalCubeDSL.g:4899:2: rule__CubeHierarchy__Group_4__0__Impl rule__CubeHierarchy__Group_4__1
             {
             pushFollow(FOLLOW_14);
             rule__CubeHierarchy__Group_4__0__Impl();
@@ -17808,23 +17811,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group_4__0__Impl"
-    // InternalCubeDSL.g:4904:1: rule__CubeHierarchy__Group_4__0__Impl : ( ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 ) ) ;
+    // InternalCubeDSL.g:4906:1: rule__CubeHierarchy__Group_4__0__Impl : ( ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 ) ) ;
     public final void rule__CubeHierarchy__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4908:1: ( ( ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 ) ) )
-            // InternalCubeDSL.g:4909:1: ( ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 ) )
+            // InternalCubeDSL.g:4910:1: ( ( ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 ) ) )
+            // InternalCubeDSL.g:4911:1: ( ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 ) )
             {
-            // InternalCubeDSL.g:4909:1: ( ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 ) )
-            // InternalCubeDSL.g:4910:2: ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 )
+            // InternalCubeDSL.g:4911:1: ( ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 ) )
+            // InternalCubeDSL.g:4912:2: ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getAllMemberNameAssignment_4_0()); 
             }
-            // InternalCubeDSL.g:4911:2: ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 )
-            // InternalCubeDSL.g:4911:3: rule__CubeHierarchy__AllMemberNameAssignment_4_0
+            // InternalCubeDSL.g:4913:2: ( rule__CubeHierarchy__AllMemberNameAssignment_4_0 )
+            // InternalCubeDSL.g:4913:3: rule__CubeHierarchy__AllMemberNameAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__AllMemberNameAssignment_4_0();
@@ -17859,14 +17862,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group_4__1"
-    // InternalCubeDSL.g:4919:1: rule__CubeHierarchy__Group_4__1 : rule__CubeHierarchy__Group_4__1__Impl ;
+    // InternalCubeDSL.g:4921:1: rule__CubeHierarchy__Group_4__1 : rule__CubeHierarchy__Group_4__1__Impl ;
     public final void rule__CubeHierarchy__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4923:1: ( rule__CubeHierarchy__Group_4__1__Impl )
-            // InternalCubeDSL.g:4924:2: rule__CubeHierarchy__Group_4__1__Impl
+            // InternalCubeDSL.g:4925:1: ( rule__CubeHierarchy__Group_4__1__Impl )
+            // InternalCubeDSL.g:4926:2: rule__CubeHierarchy__Group_4__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__Group_4__1__Impl();
@@ -17892,23 +17895,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group_4__1__Impl"
-    // InternalCubeDSL.g:4930:1: rule__CubeHierarchy__Group_4__1__Impl : ( ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 ) ) ;
+    // InternalCubeDSL.g:4932:1: rule__CubeHierarchy__Group_4__1__Impl : ( ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 ) ) ;
     public final void rule__CubeHierarchy__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4934:1: ( ( ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 ) ) )
-            // InternalCubeDSL.g:4935:1: ( ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 ) )
+            // InternalCubeDSL.g:4936:1: ( ( ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 ) ) )
+            // InternalCubeDSL.g:4937:1: ( ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 ) )
             {
-            // InternalCubeDSL.g:4935:1: ( ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 ) )
-            // InternalCubeDSL.g:4936:2: ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 )
+            // InternalCubeDSL.g:4937:1: ( ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 ) )
+            // InternalCubeDSL.g:4938:2: ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getAllMemberNameValueAssignment_4_1()); 
             }
-            // InternalCubeDSL.g:4937:2: ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 )
-            // InternalCubeDSL.g:4937:3: rule__CubeHierarchy__AllMemberNameValueAssignment_4_1
+            // InternalCubeDSL.g:4939:2: ( rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 )
+            // InternalCubeDSL.g:4939:3: rule__CubeHierarchy__AllMemberNameValueAssignment_4_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__AllMemberNameValueAssignment_4_1();
@@ -17943,14 +17946,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group_5__0"
-    // InternalCubeDSL.g:4946:1: rule__CubeHierarchy__Group_5__0 : rule__CubeHierarchy__Group_5__0__Impl rule__CubeHierarchy__Group_5__1 ;
+    // InternalCubeDSL.g:4948:1: rule__CubeHierarchy__Group_5__0 : rule__CubeHierarchy__Group_5__0__Impl rule__CubeHierarchy__Group_5__1 ;
     public final void rule__CubeHierarchy__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4950:1: ( rule__CubeHierarchy__Group_5__0__Impl rule__CubeHierarchy__Group_5__1 )
-            // InternalCubeDSL.g:4951:2: rule__CubeHierarchy__Group_5__0__Impl rule__CubeHierarchy__Group_5__1
+            // InternalCubeDSL.g:4952:1: ( rule__CubeHierarchy__Group_5__0__Impl rule__CubeHierarchy__Group_5__1 )
+            // InternalCubeDSL.g:4953:2: rule__CubeHierarchy__Group_5__0__Impl rule__CubeHierarchy__Group_5__1
             {
             pushFollow(FOLLOW_14);
             rule__CubeHierarchy__Group_5__0__Impl();
@@ -17981,23 +17984,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group_5__0__Impl"
-    // InternalCubeDSL.g:4958:1: rule__CubeHierarchy__Group_5__0__Impl : ( ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 ) ) ;
+    // InternalCubeDSL.g:4960:1: rule__CubeHierarchy__Group_5__0__Impl : ( ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 ) ) ;
     public final void rule__CubeHierarchy__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4962:1: ( ( ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 ) ) )
-            // InternalCubeDSL.g:4963:1: ( ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 ) )
+            // InternalCubeDSL.g:4964:1: ( ( ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 ) ) )
+            // InternalCubeDSL.g:4965:1: ( ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 ) )
             {
-            // InternalCubeDSL.g:4963:1: ( ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 ) )
-            // InternalCubeDSL.g:4964:2: ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 )
+            // InternalCubeDSL.g:4965:1: ( ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 ) )
+            // InternalCubeDSL.g:4966:2: ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getDefaultMemberAssignment_5_0()); 
             }
-            // InternalCubeDSL.g:4965:2: ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 )
-            // InternalCubeDSL.g:4965:3: rule__CubeHierarchy__DefaultMemberAssignment_5_0
+            // InternalCubeDSL.g:4967:2: ( rule__CubeHierarchy__DefaultMemberAssignment_5_0 )
+            // InternalCubeDSL.g:4967:3: rule__CubeHierarchy__DefaultMemberAssignment_5_0
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__DefaultMemberAssignment_5_0();
@@ -18032,14 +18035,14 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group_5__1"
-    // InternalCubeDSL.g:4973:1: rule__CubeHierarchy__Group_5__1 : rule__CubeHierarchy__Group_5__1__Impl ;
+    // InternalCubeDSL.g:4975:1: rule__CubeHierarchy__Group_5__1 : rule__CubeHierarchy__Group_5__1__Impl ;
     public final void rule__CubeHierarchy__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4977:1: ( rule__CubeHierarchy__Group_5__1__Impl )
-            // InternalCubeDSL.g:4978:2: rule__CubeHierarchy__Group_5__1__Impl
+            // InternalCubeDSL.g:4979:1: ( rule__CubeHierarchy__Group_5__1__Impl )
+            // InternalCubeDSL.g:4980:2: rule__CubeHierarchy__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__Group_5__1__Impl();
@@ -18065,23 +18068,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__Group_5__1__Impl"
-    // InternalCubeDSL.g:4984:1: rule__CubeHierarchy__Group_5__1__Impl : ( ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 ) ) ;
+    // InternalCubeDSL.g:4986:1: rule__CubeHierarchy__Group_5__1__Impl : ( ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 ) ) ;
     public final void rule__CubeHierarchy__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:4988:1: ( ( ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 ) ) )
-            // InternalCubeDSL.g:4989:1: ( ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 ) )
+            // InternalCubeDSL.g:4990:1: ( ( ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 ) ) )
+            // InternalCubeDSL.g:4991:1: ( ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 ) )
             {
-            // InternalCubeDSL.g:4989:1: ( ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 ) )
-            // InternalCubeDSL.g:4990:2: ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 )
+            // InternalCubeDSL.g:4991:1: ( ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 ) )
+            // InternalCubeDSL.g:4992:2: ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getDefaultMemberValueAssignment_5_1()); 
             }
-            // InternalCubeDSL.g:4991:2: ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 )
-            // InternalCubeDSL.g:4991:3: rule__CubeHierarchy__DefaultMemberValueAssignment_5_1
+            // InternalCubeDSL.g:4993:2: ( rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 )
+            // InternalCubeDSL.g:4993:3: rule__CubeHierarchy__DefaultMemberValueAssignment_5_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeHierarchy__DefaultMemberValueAssignment_5_1();
@@ -18116,14 +18119,14 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group__0"
-    // InternalCubeDSL.g:5000:1: rule__CubeEntity__Group__0 : rule__CubeEntity__Group__0__Impl rule__CubeEntity__Group__1 ;
+    // InternalCubeDSL.g:5002:1: rule__CubeEntity__Group__0 : rule__CubeEntity__Group__0__Impl rule__CubeEntity__Group__1 ;
     public final void rule__CubeEntity__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5004:1: ( rule__CubeEntity__Group__0__Impl rule__CubeEntity__Group__1 )
-            // InternalCubeDSL.g:5005:2: rule__CubeEntity__Group__0__Impl rule__CubeEntity__Group__1
+            // InternalCubeDSL.g:5006:1: ( rule__CubeEntity__Group__0__Impl rule__CubeEntity__Group__1 )
+            // InternalCubeDSL.g:5007:2: rule__CubeEntity__Group__0__Impl rule__CubeEntity__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__CubeEntity__Group__0__Impl();
@@ -18154,17 +18157,17 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group__0__Impl"
-    // InternalCubeDSL.g:5012:1: rule__CubeEntity__Group__0__Impl : ( 'entity' ) ;
+    // InternalCubeDSL.g:5014:1: rule__CubeEntity__Group__0__Impl : ( 'entity' ) ;
     public final void rule__CubeEntity__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5016:1: ( ( 'entity' ) )
-            // InternalCubeDSL.g:5017:1: ( 'entity' )
+            // InternalCubeDSL.g:5018:1: ( ( 'entity' ) )
+            // InternalCubeDSL.g:5019:1: ( 'entity' )
             {
-            // InternalCubeDSL.g:5017:1: ( 'entity' )
-            // InternalCubeDSL.g:5018:2: 'entity'
+            // InternalCubeDSL.g:5019:1: ( 'entity' )
+            // InternalCubeDSL.g:5020:2: 'entity'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getEntityKeyword_0()); 
@@ -18195,14 +18198,14 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group__1"
-    // InternalCubeDSL.g:5027:1: rule__CubeEntity__Group__1 : rule__CubeEntity__Group__1__Impl rule__CubeEntity__Group__2 ;
+    // InternalCubeDSL.g:5029:1: rule__CubeEntity__Group__1 : rule__CubeEntity__Group__1__Impl rule__CubeEntity__Group__2 ;
     public final void rule__CubeEntity__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5031:1: ( rule__CubeEntity__Group__1__Impl rule__CubeEntity__Group__2 )
-            // InternalCubeDSL.g:5032:2: rule__CubeEntity__Group__1__Impl rule__CubeEntity__Group__2
+            // InternalCubeDSL.g:5033:1: ( rule__CubeEntity__Group__1__Impl rule__CubeEntity__Group__2 )
+            // InternalCubeDSL.g:5034:2: rule__CubeEntity__Group__1__Impl rule__CubeEntity__Group__2
             {
             pushFollow(FOLLOW_21);
             rule__CubeEntity__Group__1__Impl();
@@ -18233,23 +18236,23 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group__1__Impl"
-    // InternalCubeDSL.g:5039:1: rule__CubeEntity__Group__1__Impl : ( ( rule__CubeEntity__EntityValueAssignment_1 ) ) ;
+    // InternalCubeDSL.g:5041:1: rule__CubeEntity__Group__1__Impl : ( ( rule__CubeEntity__EntityValueAssignment_1 ) ) ;
     public final void rule__CubeEntity__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5043:1: ( ( ( rule__CubeEntity__EntityValueAssignment_1 ) ) )
-            // InternalCubeDSL.g:5044:1: ( ( rule__CubeEntity__EntityValueAssignment_1 ) )
+            // InternalCubeDSL.g:5045:1: ( ( ( rule__CubeEntity__EntityValueAssignment_1 ) ) )
+            // InternalCubeDSL.g:5046:1: ( ( rule__CubeEntity__EntityValueAssignment_1 ) )
             {
-            // InternalCubeDSL.g:5044:1: ( ( rule__CubeEntity__EntityValueAssignment_1 ) )
-            // InternalCubeDSL.g:5045:2: ( rule__CubeEntity__EntityValueAssignment_1 )
+            // InternalCubeDSL.g:5046:1: ( ( rule__CubeEntity__EntityValueAssignment_1 ) )
+            // InternalCubeDSL.g:5047:2: ( rule__CubeEntity__EntityValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getEntityValueAssignment_1()); 
             }
-            // InternalCubeDSL.g:5046:2: ( rule__CubeEntity__EntityValueAssignment_1 )
-            // InternalCubeDSL.g:5046:3: rule__CubeEntity__EntityValueAssignment_1
+            // InternalCubeDSL.g:5048:2: ( rule__CubeEntity__EntityValueAssignment_1 )
+            // InternalCubeDSL.g:5048:3: rule__CubeEntity__EntityValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeEntity__EntityValueAssignment_1();
@@ -18284,14 +18287,14 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group__2"
-    // InternalCubeDSL.g:5054:1: rule__CubeEntity__Group__2 : rule__CubeEntity__Group__2__Impl ;
+    // InternalCubeDSL.g:5056:1: rule__CubeEntity__Group__2 : rule__CubeEntity__Group__2__Impl ;
     public final void rule__CubeEntity__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5058:1: ( rule__CubeEntity__Group__2__Impl )
-            // InternalCubeDSL.g:5059:2: rule__CubeEntity__Group__2__Impl
+            // InternalCubeDSL.g:5060:1: ( rule__CubeEntity__Group__2__Impl )
+            // InternalCubeDSL.g:5061:2: rule__CubeEntity__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeEntity__Group__2__Impl();
@@ -18317,22 +18320,22 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group__2__Impl"
-    // InternalCubeDSL.g:5065:1: rule__CubeEntity__Group__2__Impl : ( ( rule__CubeEntity__Group_2__0 )? ) ;
+    // InternalCubeDSL.g:5067:1: rule__CubeEntity__Group__2__Impl : ( ( rule__CubeEntity__Group_2__0 )? ) ;
     public final void rule__CubeEntity__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5069:1: ( ( ( rule__CubeEntity__Group_2__0 )? ) )
-            // InternalCubeDSL.g:5070:1: ( ( rule__CubeEntity__Group_2__0 )? )
+            // InternalCubeDSL.g:5071:1: ( ( ( rule__CubeEntity__Group_2__0 )? ) )
+            // InternalCubeDSL.g:5072:1: ( ( rule__CubeEntity__Group_2__0 )? )
             {
-            // InternalCubeDSL.g:5070:1: ( ( rule__CubeEntity__Group_2__0 )? )
-            // InternalCubeDSL.g:5071:2: ( rule__CubeEntity__Group_2__0 )?
+            // InternalCubeDSL.g:5072:1: ( ( rule__CubeEntity__Group_2__0 )? )
+            // InternalCubeDSL.g:5073:2: ( rule__CubeEntity__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getGroup_2()); 
             }
-            // InternalCubeDSL.g:5072:2: ( rule__CubeEntity__Group_2__0 )?
+            // InternalCubeDSL.g:5074:2: ( rule__CubeEntity__Group_2__0 )?
             int alt60=2;
             int LA60_0 = input.LA(1);
 
@@ -18341,7 +18344,7 @@
             }
             switch (alt60) {
                 case 1 :
-                    // InternalCubeDSL.g:5072:3: rule__CubeEntity__Group_2__0
+                    // InternalCubeDSL.g:5074:3: rule__CubeEntity__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeEntity__Group_2__0();
@@ -18379,14 +18382,14 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group_2__0"
-    // InternalCubeDSL.g:5081:1: rule__CubeEntity__Group_2__0 : rule__CubeEntity__Group_2__0__Impl rule__CubeEntity__Group_2__1 ;
+    // InternalCubeDSL.g:5083:1: rule__CubeEntity__Group_2__0 : rule__CubeEntity__Group_2__0__Impl rule__CubeEntity__Group_2__1 ;
     public final void rule__CubeEntity__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5085:1: ( rule__CubeEntity__Group_2__0__Impl rule__CubeEntity__Group_2__1 )
-            // InternalCubeDSL.g:5086:2: rule__CubeEntity__Group_2__0__Impl rule__CubeEntity__Group_2__1
+            // InternalCubeDSL.g:5087:1: ( rule__CubeEntity__Group_2__0__Impl rule__CubeEntity__Group_2__1 )
+            // InternalCubeDSL.g:5088:2: rule__CubeEntity__Group_2__0__Impl rule__CubeEntity__Group_2__1
             {
             pushFollow(FOLLOW_6);
             rule__CubeEntity__Group_2__0__Impl();
@@ -18417,23 +18420,23 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group_2__0__Impl"
-    // InternalCubeDSL.g:5093:1: rule__CubeEntity__Group_2__0__Impl : ( ( rule__CubeEntity__KeyAssignment_2_0 ) ) ;
+    // InternalCubeDSL.g:5095:1: rule__CubeEntity__Group_2__0__Impl : ( ( rule__CubeEntity__KeyAssignment_2_0 ) ) ;
     public final void rule__CubeEntity__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5097:1: ( ( ( rule__CubeEntity__KeyAssignment_2_0 ) ) )
-            // InternalCubeDSL.g:5098:1: ( ( rule__CubeEntity__KeyAssignment_2_0 ) )
+            // InternalCubeDSL.g:5099:1: ( ( ( rule__CubeEntity__KeyAssignment_2_0 ) ) )
+            // InternalCubeDSL.g:5100:1: ( ( rule__CubeEntity__KeyAssignment_2_0 ) )
             {
-            // InternalCubeDSL.g:5098:1: ( ( rule__CubeEntity__KeyAssignment_2_0 ) )
-            // InternalCubeDSL.g:5099:2: ( rule__CubeEntity__KeyAssignment_2_0 )
+            // InternalCubeDSL.g:5100:1: ( ( rule__CubeEntity__KeyAssignment_2_0 ) )
+            // InternalCubeDSL.g:5101:2: ( rule__CubeEntity__KeyAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getKeyAssignment_2_0()); 
             }
-            // InternalCubeDSL.g:5100:2: ( rule__CubeEntity__KeyAssignment_2_0 )
-            // InternalCubeDSL.g:5100:3: rule__CubeEntity__KeyAssignment_2_0
+            // InternalCubeDSL.g:5102:2: ( rule__CubeEntity__KeyAssignment_2_0 )
+            // InternalCubeDSL.g:5102:3: rule__CubeEntity__KeyAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__CubeEntity__KeyAssignment_2_0();
@@ -18468,14 +18471,14 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group_2__1"
-    // InternalCubeDSL.g:5108:1: rule__CubeEntity__Group_2__1 : rule__CubeEntity__Group_2__1__Impl ;
+    // InternalCubeDSL.g:5110:1: rule__CubeEntity__Group_2__1 : rule__CubeEntity__Group_2__1__Impl ;
     public final void rule__CubeEntity__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5112:1: ( rule__CubeEntity__Group_2__1__Impl )
-            // InternalCubeDSL.g:5113:2: rule__CubeEntity__Group_2__1__Impl
+            // InternalCubeDSL.g:5114:1: ( rule__CubeEntity__Group_2__1__Impl )
+            // InternalCubeDSL.g:5115:2: rule__CubeEntity__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeEntity__Group_2__1__Impl();
@@ -18501,23 +18504,23 @@
 
 
     // $ANTLR start "rule__CubeEntity__Group_2__1__Impl"
-    // InternalCubeDSL.g:5119:1: rule__CubeEntity__Group_2__1__Impl : ( ( rule__CubeEntity__KeyValueAssignment_2_1 ) ) ;
+    // InternalCubeDSL.g:5121:1: rule__CubeEntity__Group_2__1__Impl : ( ( rule__CubeEntity__KeyValueAssignment_2_1 ) ) ;
     public final void rule__CubeEntity__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5123:1: ( ( ( rule__CubeEntity__KeyValueAssignment_2_1 ) ) )
-            // InternalCubeDSL.g:5124:1: ( ( rule__CubeEntity__KeyValueAssignment_2_1 ) )
+            // InternalCubeDSL.g:5125:1: ( ( ( rule__CubeEntity__KeyValueAssignment_2_1 ) ) )
+            // InternalCubeDSL.g:5126:1: ( ( rule__CubeEntity__KeyValueAssignment_2_1 ) )
             {
-            // InternalCubeDSL.g:5124:1: ( ( rule__CubeEntity__KeyValueAssignment_2_1 ) )
-            // InternalCubeDSL.g:5125:2: ( rule__CubeEntity__KeyValueAssignment_2_1 )
+            // InternalCubeDSL.g:5126:1: ( ( rule__CubeEntity__KeyValueAssignment_2_1 ) )
+            // InternalCubeDSL.g:5127:2: ( rule__CubeEntity__KeyValueAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getKeyValueAssignment_2_1()); 
             }
-            // InternalCubeDSL.g:5126:2: ( rule__CubeEntity__KeyValueAssignment_2_1 )
-            // InternalCubeDSL.g:5126:3: rule__CubeEntity__KeyValueAssignment_2_1
+            // InternalCubeDSL.g:5128:2: ( rule__CubeEntity__KeyValueAssignment_2_1 )
+            // InternalCubeDSL.g:5128:3: rule__CubeEntity__KeyValueAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeEntity__KeyValueAssignment_2_1();
@@ -18552,14 +18555,14 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__0"
-    // InternalCubeDSL.g:5135:1: rule__CubeTypeEntity__Group__0 : rule__CubeTypeEntity__Group__0__Impl rule__CubeTypeEntity__Group__1 ;
+    // InternalCubeDSL.g:5137:1: rule__CubeTypeEntity__Group__0 : rule__CubeTypeEntity__Group__0__Impl rule__CubeTypeEntity__Group__1 ;
     public final void rule__CubeTypeEntity__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5139:1: ( rule__CubeTypeEntity__Group__0__Impl rule__CubeTypeEntity__Group__1 )
-            // InternalCubeDSL.g:5140:2: rule__CubeTypeEntity__Group__0__Impl rule__CubeTypeEntity__Group__1
+            // InternalCubeDSL.g:5141:1: ( rule__CubeTypeEntity__Group__0__Impl rule__CubeTypeEntity__Group__1 )
+            // InternalCubeDSL.g:5142:2: rule__CubeTypeEntity__Group__0__Impl rule__CubeTypeEntity__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__CubeTypeEntity__Group__0__Impl();
@@ -18590,23 +18593,23 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__0__Impl"
-    // InternalCubeDSL.g:5147:1: rule__CubeTypeEntity__Group__0__Impl : ( ( rule__CubeTypeEntity__EntityRefAssignment_0 ) ) ;
+    // InternalCubeDSL.g:5149:1: rule__CubeTypeEntity__Group__0__Impl : ( ( rule__CubeTypeEntity__EntityRefAssignment_0 ) ) ;
     public final void rule__CubeTypeEntity__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5151:1: ( ( ( rule__CubeTypeEntity__EntityRefAssignment_0 ) ) )
-            // InternalCubeDSL.g:5152:1: ( ( rule__CubeTypeEntity__EntityRefAssignment_0 ) )
+            // InternalCubeDSL.g:5153:1: ( ( ( rule__CubeTypeEntity__EntityRefAssignment_0 ) ) )
+            // InternalCubeDSL.g:5154:1: ( ( rule__CubeTypeEntity__EntityRefAssignment_0 ) )
             {
-            // InternalCubeDSL.g:5152:1: ( ( rule__CubeTypeEntity__EntityRefAssignment_0 ) )
-            // InternalCubeDSL.g:5153:2: ( rule__CubeTypeEntity__EntityRefAssignment_0 )
+            // InternalCubeDSL.g:5154:1: ( ( rule__CubeTypeEntity__EntityRefAssignment_0 ) )
+            // InternalCubeDSL.g:5155:2: ( rule__CubeTypeEntity__EntityRefAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getEntityRefAssignment_0()); 
             }
-            // InternalCubeDSL.g:5154:2: ( rule__CubeTypeEntity__EntityRefAssignment_0 )
-            // InternalCubeDSL.g:5154:3: rule__CubeTypeEntity__EntityRefAssignment_0
+            // InternalCubeDSL.g:5156:2: ( rule__CubeTypeEntity__EntityRefAssignment_0 )
+            // InternalCubeDSL.g:5156:3: rule__CubeTypeEntity__EntityRefAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__CubeTypeEntity__EntityRefAssignment_0();
@@ -18641,14 +18644,14 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__1"
-    // InternalCubeDSL.g:5162:1: rule__CubeTypeEntity__Group__1 : rule__CubeTypeEntity__Group__1__Impl rule__CubeTypeEntity__Group__2 ;
+    // InternalCubeDSL.g:5164:1: rule__CubeTypeEntity__Group__1 : rule__CubeTypeEntity__Group__1__Impl rule__CubeTypeEntity__Group__2 ;
     public final void rule__CubeTypeEntity__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5166:1: ( rule__CubeTypeEntity__Group__1__Impl rule__CubeTypeEntity__Group__2 )
-            // InternalCubeDSL.g:5167:2: rule__CubeTypeEntity__Group__1__Impl rule__CubeTypeEntity__Group__2
+            // InternalCubeDSL.g:5168:1: ( rule__CubeTypeEntity__Group__1__Impl rule__CubeTypeEntity__Group__2 )
+            // InternalCubeDSL.g:5169:2: rule__CubeTypeEntity__Group__1__Impl rule__CubeTypeEntity__Group__2
             {
             pushFollow(FOLLOW_22);
             rule__CubeTypeEntity__Group__1__Impl();
@@ -18679,17 +18682,17 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__1__Impl"
-    // InternalCubeDSL.g:5174:1: rule__CubeTypeEntity__Group__1__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:5176:1: rule__CubeTypeEntity__Group__1__Impl : ( '{' ) ;
     public final void rule__CubeTypeEntity__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5178:1: ( ( '{' ) )
-            // InternalCubeDSL.g:5179:1: ( '{' )
+            // InternalCubeDSL.g:5180:1: ( ( '{' ) )
+            // InternalCubeDSL.g:5181:1: ( '{' )
             {
-            // InternalCubeDSL.g:5179:1: ( '{' )
-            // InternalCubeDSL.g:5180:2: '{'
+            // InternalCubeDSL.g:5181:1: ( '{' )
+            // InternalCubeDSL.g:5182:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getLeftCurlyBracketKeyword_1()); 
@@ -18720,14 +18723,14 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__2"
-    // InternalCubeDSL.g:5189:1: rule__CubeTypeEntity__Group__2 : rule__CubeTypeEntity__Group__2__Impl rule__CubeTypeEntity__Group__3 ;
+    // InternalCubeDSL.g:5191:1: rule__CubeTypeEntity__Group__2 : rule__CubeTypeEntity__Group__2__Impl rule__CubeTypeEntity__Group__3 ;
     public final void rule__CubeTypeEntity__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5193:1: ( rule__CubeTypeEntity__Group__2__Impl rule__CubeTypeEntity__Group__3 )
-            // InternalCubeDSL.g:5194:2: rule__CubeTypeEntity__Group__2__Impl rule__CubeTypeEntity__Group__3
+            // InternalCubeDSL.g:5195:1: ( rule__CubeTypeEntity__Group__2__Impl rule__CubeTypeEntity__Group__3 )
+            // InternalCubeDSL.g:5196:2: rule__CubeTypeEntity__Group__2__Impl rule__CubeTypeEntity__Group__3
             {
             pushFollow(FOLLOW_22);
             rule__CubeTypeEntity__Group__2__Impl();
@@ -18758,22 +18761,22 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__2__Impl"
-    // InternalCubeDSL.g:5201:1: rule__CubeTypeEntity__Group__2__Impl : ( ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )* ) ;
+    // InternalCubeDSL.g:5203:1: rule__CubeTypeEntity__Group__2__Impl : ( ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )* ) ;
     public final void rule__CubeTypeEntity__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5205:1: ( ( ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )* ) )
-            // InternalCubeDSL.g:5206:1: ( ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )* )
+            // InternalCubeDSL.g:5207:1: ( ( ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )* ) )
+            // InternalCubeDSL.g:5208:1: ( ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )* )
             {
-            // InternalCubeDSL.g:5206:1: ( ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )* )
-            // InternalCubeDSL.g:5207:2: ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )*
+            // InternalCubeDSL.g:5208:1: ( ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )* )
+            // InternalCubeDSL.g:5209:2: ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getDimensionUsagesAssignment_2()); 
             }
-            // InternalCubeDSL.g:5208:2: ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )*
+            // InternalCubeDSL.g:5210:2: ( rule__CubeTypeEntity__DimensionUsagesAssignment_2 )*
             loop61:
             do {
                 int alt61=2;
@@ -18786,7 +18789,7 @@
 
                 switch (alt61) {
             	case 1 :
-            	    // InternalCubeDSL.g:5208:3: rule__CubeTypeEntity__DimensionUsagesAssignment_2
+            	    // InternalCubeDSL.g:5210:3: rule__CubeTypeEntity__DimensionUsagesAssignment_2
             	    {
             	    pushFollow(FOLLOW_23);
             	    rule__CubeTypeEntity__DimensionUsagesAssignment_2();
@@ -18827,14 +18830,14 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__3"
-    // InternalCubeDSL.g:5216:1: rule__CubeTypeEntity__Group__3 : rule__CubeTypeEntity__Group__3__Impl rule__CubeTypeEntity__Group__4 ;
+    // InternalCubeDSL.g:5218:1: rule__CubeTypeEntity__Group__3 : rule__CubeTypeEntity__Group__3__Impl rule__CubeTypeEntity__Group__4 ;
     public final void rule__CubeTypeEntity__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5220:1: ( rule__CubeTypeEntity__Group__3__Impl rule__CubeTypeEntity__Group__4 )
-            // InternalCubeDSL.g:5221:2: rule__CubeTypeEntity__Group__3__Impl rule__CubeTypeEntity__Group__4
+            // InternalCubeDSL.g:5222:1: ( rule__CubeTypeEntity__Group__3__Impl rule__CubeTypeEntity__Group__4 )
+            // InternalCubeDSL.g:5223:2: rule__CubeTypeEntity__Group__3__Impl rule__CubeTypeEntity__Group__4
             {
             pushFollow(FOLLOW_22);
             rule__CubeTypeEntity__Group__3__Impl();
@@ -18865,22 +18868,22 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__3__Impl"
-    // InternalCubeDSL.g:5228:1: rule__CubeTypeEntity__Group__3__Impl : ( ( rule__CubeTypeEntity__MeasuresAssignment_3 )* ) ;
+    // InternalCubeDSL.g:5230:1: rule__CubeTypeEntity__Group__3__Impl : ( ( rule__CubeTypeEntity__MeasuresAssignment_3 )* ) ;
     public final void rule__CubeTypeEntity__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5232:1: ( ( ( rule__CubeTypeEntity__MeasuresAssignment_3 )* ) )
-            // InternalCubeDSL.g:5233:1: ( ( rule__CubeTypeEntity__MeasuresAssignment_3 )* )
+            // InternalCubeDSL.g:5234:1: ( ( ( rule__CubeTypeEntity__MeasuresAssignment_3 )* ) )
+            // InternalCubeDSL.g:5235:1: ( ( rule__CubeTypeEntity__MeasuresAssignment_3 )* )
             {
-            // InternalCubeDSL.g:5233:1: ( ( rule__CubeTypeEntity__MeasuresAssignment_3 )* )
-            // InternalCubeDSL.g:5234:2: ( rule__CubeTypeEntity__MeasuresAssignment_3 )*
+            // InternalCubeDSL.g:5235:1: ( ( rule__CubeTypeEntity__MeasuresAssignment_3 )* )
+            // InternalCubeDSL.g:5236:2: ( rule__CubeTypeEntity__MeasuresAssignment_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getMeasuresAssignment_3()); 
             }
-            // InternalCubeDSL.g:5235:2: ( rule__CubeTypeEntity__MeasuresAssignment_3 )*
+            // InternalCubeDSL.g:5237:2: ( rule__CubeTypeEntity__MeasuresAssignment_3 )*
             loop62:
             do {
                 int alt62=2;
@@ -18893,7 +18896,7 @@
 
                 switch (alt62) {
             	case 1 :
-            	    // InternalCubeDSL.g:5235:3: rule__CubeTypeEntity__MeasuresAssignment_3
+            	    // InternalCubeDSL.g:5237:3: rule__CubeTypeEntity__MeasuresAssignment_3
             	    {
             	    pushFollow(FOLLOW_24);
             	    rule__CubeTypeEntity__MeasuresAssignment_3();
@@ -18934,14 +18937,14 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__4"
-    // InternalCubeDSL.g:5243:1: rule__CubeTypeEntity__Group__4 : rule__CubeTypeEntity__Group__4__Impl ;
+    // InternalCubeDSL.g:5245:1: rule__CubeTypeEntity__Group__4 : rule__CubeTypeEntity__Group__4__Impl ;
     public final void rule__CubeTypeEntity__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5247:1: ( rule__CubeTypeEntity__Group__4__Impl )
-            // InternalCubeDSL.g:5248:2: rule__CubeTypeEntity__Group__4__Impl
+            // InternalCubeDSL.g:5249:1: ( rule__CubeTypeEntity__Group__4__Impl )
+            // InternalCubeDSL.g:5250:2: rule__CubeTypeEntity__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeTypeEntity__Group__4__Impl();
@@ -18967,17 +18970,17 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__Group__4__Impl"
-    // InternalCubeDSL.g:5254:1: rule__CubeTypeEntity__Group__4__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:5256:1: rule__CubeTypeEntity__Group__4__Impl : ( '}' ) ;
     public final void rule__CubeTypeEntity__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5258:1: ( ( '}' ) )
-            // InternalCubeDSL.g:5259:1: ( '}' )
+            // InternalCubeDSL.g:5260:1: ( ( '}' ) )
+            // InternalCubeDSL.g:5261:1: ( '}' )
             {
-            // InternalCubeDSL.g:5259:1: ( '}' )
-            // InternalCubeDSL.g:5260:2: '}'
+            // InternalCubeDSL.g:5261:1: ( '}' )
+            // InternalCubeDSL.g:5262:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getRightCurlyBracketKeyword_4()); 
@@ -19008,14 +19011,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__0"
-    // InternalCubeDSL.g:5270:1: rule__CubeDimensionEntity__Group__0 : rule__CubeDimensionEntity__Group__0__Impl rule__CubeDimensionEntity__Group__1 ;
+    // InternalCubeDSL.g:5272:1: rule__CubeDimensionEntity__Group__0 : rule__CubeDimensionEntity__Group__0__Impl rule__CubeDimensionEntity__Group__1 ;
     public final void rule__CubeDimensionEntity__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5274:1: ( rule__CubeDimensionEntity__Group__0__Impl rule__CubeDimensionEntity__Group__1 )
-            // InternalCubeDSL.g:5275:2: rule__CubeDimensionEntity__Group__0__Impl rule__CubeDimensionEntity__Group__1
+            // InternalCubeDSL.g:5276:1: ( rule__CubeDimensionEntity__Group__0__Impl rule__CubeDimensionEntity__Group__1 )
+            // InternalCubeDSL.g:5277:2: rule__CubeDimensionEntity__Group__0__Impl rule__CubeDimensionEntity__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__CubeDimensionEntity__Group__0__Impl();
@@ -19046,23 +19049,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__0__Impl"
-    // InternalCubeDSL.g:5282:1: rule__CubeDimensionEntity__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:5284:1: rule__CubeDimensionEntity__Group__0__Impl : ( () ) ;
     public final void rule__CubeDimensionEntity__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5286:1: ( ( () ) )
-            // InternalCubeDSL.g:5287:1: ( () )
+            // InternalCubeDSL.g:5288:1: ( ( () ) )
+            // InternalCubeDSL.g:5289:1: ( () )
             {
-            // InternalCubeDSL.g:5287:1: ( () )
-            // InternalCubeDSL.g:5288:2: ()
+            // InternalCubeDSL.g:5289:1: ( () )
+            // InternalCubeDSL.g:5290:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getCubeDimensionEntityAction_0()); 
             }
-            // InternalCubeDSL.g:5289:2: ()
-            // InternalCubeDSL.g:5289:3: 
+            // InternalCubeDSL.g:5291:2: ()
+            // InternalCubeDSL.g:5291:3: 
             {
             }
 
@@ -19087,14 +19090,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__1"
-    // InternalCubeDSL.g:5297:1: rule__CubeDimensionEntity__Group__1 : rule__CubeDimensionEntity__Group__1__Impl rule__CubeDimensionEntity__Group__2 ;
+    // InternalCubeDSL.g:5299:1: rule__CubeDimensionEntity__Group__1 : rule__CubeDimensionEntity__Group__1__Impl rule__CubeDimensionEntity__Group__2 ;
     public final void rule__CubeDimensionEntity__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5301:1: ( rule__CubeDimensionEntity__Group__1__Impl rule__CubeDimensionEntity__Group__2 )
-            // InternalCubeDSL.g:5302:2: rule__CubeDimensionEntity__Group__1__Impl rule__CubeDimensionEntity__Group__2
+            // InternalCubeDSL.g:5303:1: ( rule__CubeDimensionEntity__Group__1__Impl rule__CubeDimensionEntity__Group__2 )
+            // InternalCubeDSL.g:5304:2: rule__CubeDimensionEntity__Group__1__Impl rule__CubeDimensionEntity__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__CubeDimensionEntity__Group__1__Impl();
@@ -19125,23 +19128,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__1__Impl"
-    // InternalCubeDSL.g:5309:1: rule__CubeDimensionEntity__Group__1__Impl : ( ( rule__CubeDimensionEntity__EntityRefAssignment_1 ) ) ;
+    // InternalCubeDSL.g:5311:1: rule__CubeDimensionEntity__Group__1__Impl : ( ( rule__CubeDimensionEntity__EntityRefAssignment_1 ) ) ;
     public final void rule__CubeDimensionEntity__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5313:1: ( ( ( rule__CubeDimensionEntity__EntityRefAssignment_1 ) ) )
-            // InternalCubeDSL.g:5314:1: ( ( rule__CubeDimensionEntity__EntityRefAssignment_1 ) )
+            // InternalCubeDSL.g:5315:1: ( ( ( rule__CubeDimensionEntity__EntityRefAssignment_1 ) ) )
+            // InternalCubeDSL.g:5316:1: ( ( rule__CubeDimensionEntity__EntityRefAssignment_1 ) )
             {
-            // InternalCubeDSL.g:5314:1: ( ( rule__CubeDimensionEntity__EntityRefAssignment_1 ) )
-            // InternalCubeDSL.g:5315:2: ( rule__CubeDimensionEntity__EntityRefAssignment_1 )
+            // InternalCubeDSL.g:5316:1: ( ( rule__CubeDimensionEntity__EntityRefAssignment_1 ) )
+            // InternalCubeDSL.g:5317:2: ( rule__CubeDimensionEntity__EntityRefAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getEntityRefAssignment_1()); 
             }
-            // InternalCubeDSL.g:5316:2: ( rule__CubeDimensionEntity__EntityRefAssignment_1 )
-            // InternalCubeDSL.g:5316:3: rule__CubeDimensionEntity__EntityRefAssignment_1
+            // InternalCubeDSL.g:5318:2: ( rule__CubeDimensionEntity__EntityRefAssignment_1 )
+            // InternalCubeDSL.g:5318:3: rule__CubeDimensionEntity__EntityRefAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionEntity__EntityRefAssignment_1();
@@ -19176,14 +19179,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__2"
-    // InternalCubeDSL.g:5324:1: rule__CubeDimensionEntity__Group__2 : rule__CubeDimensionEntity__Group__2__Impl rule__CubeDimensionEntity__Group__3 ;
+    // InternalCubeDSL.g:5326:1: rule__CubeDimensionEntity__Group__2 : rule__CubeDimensionEntity__Group__2__Impl rule__CubeDimensionEntity__Group__3 ;
     public final void rule__CubeDimensionEntity__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5328:1: ( rule__CubeDimensionEntity__Group__2__Impl rule__CubeDimensionEntity__Group__3 )
-            // InternalCubeDSL.g:5329:2: rule__CubeDimensionEntity__Group__2__Impl rule__CubeDimensionEntity__Group__3
+            // InternalCubeDSL.g:5330:1: ( rule__CubeDimensionEntity__Group__2__Impl rule__CubeDimensionEntity__Group__3 )
+            // InternalCubeDSL.g:5331:2: rule__CubeDimensionEntity__Group__2__Impl rule__CubeDimensionEntity__Group__3
             {
             pushFollow(FOLLOW_25);
             rule__CubeDimensionEntity__Group__2__Impl();
@@ -19214,17 +19217,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__2__Impl"
-    // InternalCubeDSL.g:5336:1: rule__CubeDimensionEntity__Group__2__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:5338:1: rule__CubeDimensionEntity__Group__2__Impl : ( '{' ) ;
     public final void rule__CubeDimensionEntity__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5340:1: ( ( '{' ) )
-            // InternalCubeDSL.g:5341:1: ( '{' )
+            // InternalCubeDSL.g:5342:1: ( ( '{' ) )
+            // InternalCubeDSL.g:5343:1: ( '{' )
             {
-            // InternalCubeDSL.g:5341:1: ( '{' )
-            // InternalCubeDSL.g:5342:2: '{'
+            // InternalCubeDSL.g:5343:1: ( '{' )
+            // InternalCubeDSL.g:5344:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getLeftCurlyBracketKeyword_2()); 
@@ -19255,14 +19258,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__3"
-    // InternalCubeDSL.g:5351:1: rule__CubeDimensionEntity__Group__3 : rule__CubeDimensionEntity__Group__3__Impl rule__CubeDimensionEntity__Group__4 ;
+    // InternalCubeDSL.g:5353:1: rule__CubeDimensionEntity__Group__3 : rule__CubeDimensionEntity__Group__3__Impl rule__CubeDimensionEntity__Group__4 ;
     public final void rule__CubeDimensionEntity__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5355:1: ( rule__CubeDimensionEntity__Group__3__Impl rule__CubeDimensionEntity__Group__4 )
-            // InternalCubeDSL.g:5356:2: rule__CubeDimensionEntity__Group__3__Impl rule__CubeDimensionEntity__Group__4
+            // InternalCubeDSL.g:5357:1: ( rule__CubeDimensionEntity__Group__3__Impl rule__CubeDimensionEntity__Group__4 )
+            // InternalCubeDSL.g:5358:2: rule__CubeDimensionEntity__Group__3__Impl rule__CubeDimensionEntity__Group__4
             {
             pushFollow(FOLLOW_25);
             rule__CubeDimensionEntity__Group__3__Impl();
@@ -19293,22 +19296,22 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__3__Impl"
-    // InternalCubeDSL.g:5363:1: rule__CubeDimensionEntity__Group__3__Impl : ( ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )* ) ;
+    // InternalCubeDSL.g:5365:1: rule__CubeDimensionEntity__Group__3__Impl : ( ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )* ) ;
     public final void rule__CubeDimensionEntity__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5367:1: ( ( ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )* ) )
-            // InternalCubeDSL.g:5368:1: ( ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )* )
+            // InternalCubeDSL.g:5369:1: ( ( ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )* ) )
+            // InternalCubeDSL.g:5370:1: ( ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )* )
             {
-            // InternalCubeDSL.g:5368:1: ( ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )* )
-            // InternalCubeDSL.g:5369:2: ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )*
+            // InternalCubeDSL.g:5370:1: ( ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )* )
+            // InternalCubeDSL.g:5371:2: ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getHierarchLevelsAssignment_3()); 
             }
-            // InternalCubeDSL.g:5370:2: ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )*
+            // InternalCubeDSL.g:5372:2: ( rule__CubeDimensionEntity__HierarchLevelsAssignment_3 )*
             loop63:
             do {
                 int alt63=2;
@@ -19321,7 +19324,7 @@
 
                 switch (alt63) {
             	case 1 :
-            	    // InternalCubeDSL.g:5370:3: rule__CubeDimensionEntity__HierarchLevelsAssignment_3
+            	    // InternalCubeDSL.g:5372:3: rule__CubeDimensionEntity__HierarchLevelsAssignment_3
             	    {
             	    pushFollow(FOLLOW_26);
             	    rule__CubeDimensionEntity__HierarchLevelsAssignment_3();
@@ -19362,14 +19365,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__4"
-    // InternalCubeDSL.g:5378:1: rule__CubeDimensionEntity__Group__4 : rule__CubeDimensionEntity__Group__4__Impl rule__CubeDimensionEntity__Group__5 ;
+    // InternalCubeDSL.g:5380:1: rule__CubeDimensionEntity__Group__4 : rule__CubeDimensionEntity__Group__4__Impl rule__CubeDimensionEntity__Group__5 ;
     public final void rule__CubeDimensionEntity__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5382:1: ( rule__CubeDimensionEntity__Group__4__Impl rule__CubeDimensionEntity__Group__5 )
-            // InternalCubeDSL.g:5383:2: rule__CubeDimensionEntity__Group__4__Impl rule__CubeDimensionEntity__Group__5
+            // InternalCubeDSL.g:5384:1: ( rule__CubeDimensionEntity__Group__4__Impl rule__CubeDimensionEntity__Group__5 )
+            // InternalCubeDSL.g:5385:2: rule__CubeDimensionEntity__Group__4__Impl rule__CubeDimensionEntity__Group__5
             {
             pushFollow(FOLLOW_25);
             rule__CubeDimensionEntity__Group__4__Impl();
@@ -19400,22 +19403,22 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__4__Impl"
-    // InternalCubeDSL.g:5390:1: rule__CubeDimensionEntity__Group__4__Impl : ( ( rule__CubeDimensionEntity__DimEntityAssignment_4 )? ) ;
+    // InternalCubeDSL.g:5392:1: rule__CubeDimensionEntity__Group__4__Impl : ( ( rule__CubeDimensionEntity__DimEntityAssignment_4 )? ) ;
     public final void rule__CubeDimensionEntity__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5394:1: ( ( ( rule__CubeDimensionEntity__DimEntityAssignment_4 )? ) )
-            // InternalCubeDSL.g:5395:1: ( ( rule__CubeDimensionEntity__DimEntityAssignment_4 )? )
+            // InternalCubeDSL.g:5396:1: ( ( ( rule__CubeDimensionEntity__DimEntityAssignment_4 )? ) )
+            // InternalCubeDSL.g:5397:1: ( ( rule__CubeDimensionEntity__DimEntityAssignment_4 )? )
             {
-            // InternalCubeDSL.g:5395:1: ( ( rule__CubeDimensionEntity__DimEntityAssignment_4 )? )
-            // InternalCubeDSL.g:5396:2: ( rule__CubeDimensionEntity__DimEntityAssignment_4 )?
+            // InternalCubeDSL.g:5397:1: ( ( rule__CubeDimensionEntity__DimEntityAssignment_4 )? )
+            // InternalCubeDSL.g:5398:2: ( rule__CubeDimensionEntity__DimEntityAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getDimEntityAssignment_4()); 
             }
-            // InternalCubeDSL.g:5397:2: ( rule__CubeDimensionEntity__DimEntityAssignment_4 )?
+            // InternalCubeDSL.g:5399:2: ( rule__CubeDimensionEntity__DimEntityAssignment_4 )?
             int alt64=2;
             int LA64_0 = input.LA(1);
 
@@ -19424,7 +19427,7 @@
             }
             switch (alt64) {
                 case 1 :
-                    // InternalCubeDSL.g:5397:3: rule__CubeDimensionEntity__DimEntityAssignment_4
+                    // InternalCubeDSL.g:5399:3: rule__CubeDimensionEntity__DimEntityAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeDimensionEntity__DimEntityAssignment_4();
@@ -19462,14 +19465,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__5"
-    // InternalCubeDSL.g:5405:1: rule__CubeDimensionEntity__Group__5 : rule__CubeDimensionEntity__Group__5__Impl ;
+    // InternalCubeDSL.g:5407:1: rule__CubeDimensionEntity__Group__5 : rule__CubeDimensionEntity__Group__5__Impl ;
     public final void rule__CubeDimensionEntity__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5409:1: ( rule__CubeDimensionEntity__Group__5__Impl )
-            // InternalCubeDSL.g:5410:2: rule__CubeDimensionEntity__Group__5__Impl
+            // InternalCubeDSL.g:5411:1: ( rule__CubeDimensionEntity__Group__5__Impl )
+            // InternalCubeDSL.g:5412:2: rule__CubeDimensionEntity__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionEntity__Group__5__Impl();
@@ -19495,17 +19498,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__Group__5__Impl"
-    // InternalCubeDSL.g:5416:1: rule__CubeDimensionEntity__Group__5__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:5418:1: rule__CubeDimensionEntity__Group__5__Impl : ( '}' ) ;
     public final void rule__CubeDimensionEntity__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5420:1: ( ( '}' ) )
-            // InternalCubeDSL.g:5421:1: ( '}' )
+            // InternalCubeDSL.g:5422:1: ( ( '}' ) )
+            // InternalCubeDSL.g:5423:1: ( '}' )
             {
-            // InternalCubeDSL.g:5421:1: ( '}' )
-            // InternalCubeDSL.g:5422:2: '}'
+            // InternalCubeDSL.g:5423:1: ( '}' )
+            // InternalCubeDSL.g:5424:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getRightCurlyBracketKeyword_5()); 
@@ -19536,14 +19539,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__0"
-    // InternalCubeDSL.g:5432:1: rule__CubeDimensionEntityEntity__Group__0 : rule__CubeDimensionEntityEntity__Group__0__Impl rule__CubeDimensionEntityEntity__Group__1 ;
+    // InternalCubeDSL.g:5434:1: rule__CubeDimensionEntityEntity__Group__0 : rule__CubeDimensionEntityEntity__Group__0__Impl rule__CubeDimensionEntityEntity__Group__1 ;
     public final void rule__CubeDimensionEntityEntity__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5436:1: ( rule__CubeDimensionEntityEntity__Group__0__Impl rule__CubeDimensionEntityEntity__Group__1 )
-            // InternalCubeDSL.g:5437:2: rule__CubeDimensionEntityEntity__Group__0__Impl rule__CubeDimensionEntityEntity__Group__1
+            // InternalCubeDSL.g:5438:1: ( rule__CubeDimensionEntityEntity__Group__0__Impl rule__CubeDimensionEntityEntity__Group__1 )
+            // InternalCubeDSL.g:5439:2: rule__CubeDimensionEntityEntity__Group__0__Impl rule__CubeDimensionEntityEntity__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__CubeDimensionEntityEntity__Group__0__Impl();
@@ -19574,23 +19577,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__0__Impl"
-    // InternalCubeDSL.g:5444:1: rule__CubeDimensionEntityEntity__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:5446:1: rule__CubeDimensionEntityEntity__Group__0__Impl : ( () ) ;
     public final void rule__CubeDimensionEntityEntity__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5448:1: ( ( () ) )
-            // InternalCubeDSL.g:5449:1: ( () )
+            // InternalCubeDSL.g:5450:1: ( ( () ) )
+            // InternalCubeDSL.g:5451:1: ( () )
             {
-            // InternalCubeDSL.g:5449:1: ( () )
-            // InternalCubeDSL.g:5450:2: ()
+            // InternalCubeDSL.g:5451:1: ( () )
+            // InternalCubeDSL.g:5452:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getCubeDimensionEntityEntityAction_0()); 
             }
-            // InternalCubeDSL.g:5451:2: ()
-            // InternalCubeDSL.g:5451:3: 
+            // InternalCubeDSL.g:5453:2: ()
+            // InternalCubeDSL.g:5453:3: 
             {
             }
 
@@ -19615,14 +19618,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__1"
-    // InternalCubeDSL.g:5459:1: rule__CubeDimensionEntityEntity__Group__1 : rule__CubeDimensionEntityEntity__Group__1__Impl rule__CubeDimensionEntityEntity__Group__2 ;
+    // InternalCubeDSL.g:5461:1: rule__CubeDimensionEntityEntity__Group__1 : rule__CubeDimensionEntityEntity__Group__1__Impl rule__CubeDimensionEntityEntity__Group__2 ;
     public final void rule__CubeDimensionEntityEntity__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5463:1: ( rule__CubeDimensionEntityEntity__Group__1__Impl rule__CubeDimensionEntityEntity__Group__2 )
-            // InternalCubeDSL.g:5464:2: rule__CubeDimensionEntityEntity__Group__1__Impl rule__CubeDimensionEntityEntity__Group__2
+            // InternalCubeDSL.g:5465:1: ( rule__CubeDimensionEntityEntity__Group__1__Impl rule__CubeDimensionEntityEntity__Group__2 )
+            // InternalCubeDSL.g:5466:2: rule__CubeDimensionEntityEntity__Group__1__Impl rule__CubeDimensionEntityEntity__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__CubeDimensionEntityEntity__Group__1__Impl();
@@ -19653,23 +19656,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__1__Impl"
-    // InternalCubeDSL.g:5471:1: rule__CubeDimensionEntityEntity__Group__1__Impl : ( ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 ) ) ;
+    // InternalCubeDSL.g:5473:1: rule__CubeDimensionEntityEntity__Group__1__Impl : ( ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 ) ) ;
     public final void rule__CubeDimensionEntityEntity__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5475:1: ( ( ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 ) ) )
-            // InternalCubeDSL.g:5476:1: ( ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 ) )
+            // InternalCubeDSL.g:5477:1: ( ( ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 ) ) )
+            // InternalCubeDSL.g:5478:1: ( ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 ) )
             {
-            // InternalCubeDSL.g:5476:1: ( ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 ) )
-            // InternalCubeDSL.g:5477:2: ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 )
+            // InternalCubeDSL.g:5478:1: ( ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 ) )
+            // InternalCubeDSL.g:5479:2: ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getEntityRefAssignment_1()); 
             }
-            // InternalCubeDSL.g:5478:2: ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 )
-            // InternalCubeDSL.g:5478:3: rule__CubeDimensionEntityEntity__EntityRefAssignment_1
+            // InternalCubeDSL.g:5480:2: ( rule__CubeDimensionEntityEntity__EntityRefAssignment_1 )
+            // InternalCubeDSL.g:5480:3: rule__CubeDimensionEntityEntity__EntityRefAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionEntityEntity__EntityRefAssignment_1();
@@ -19704,14 +19707,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__2"
-    // InternalCubeDSL.g:5486:1: rule__CubeDimensionEntityEntity__Group__2 : rule__CubeDimensionEntityEntity__Group__2__Impl rule__CubeDimensionEntityEntity__Group__3 ;
+    // InternalCubeDSL.g:5488:1: rule__CubeDimensionEntityEntity__Group__2 : rule__CubeDimensionEntityEntity__Group__2__Impl rule__CubeDimensionEntityEntity__Group__3 ;
     public final void rule__CubeDimensionEntityEntity__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5490:1: ( rule__CubeDimensionEntityEntity__Group__2__Impl rule__CubeDimensionEntityEntity__Group__3 )
-            // InternalCubeDSL.g:5491:2: rule__CubeDimensionEntityEntity__Group__2__Impl rule__CubeDimensionEntityEntity__Group__3
+            // InternalCubeDSL.g:5492:1: ( rule__CubeDimensionEntityEntity__Group__2__Impl rule__CubeDimensionEntityEntity__Group__3 )
+            // InternalCubeDSL.g:5493:2: rule__CubeDimensionEntityEntity__Group__2__Impl rule__CubeDimensionEntityEntity__Group__3
             {
             pushFollow(FOLLOW_15);
             rule__CubeDimensionEntityEntity__Group__2__Impl();
@@ -19742,17 +19745,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__2__Impl"
-    // InternalCubeDSL.g:5498:1: rule__CubeDimensionEntityEntity__Group__2__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:5500:1: rule__CubeDimensionEntityEntity__Group__2__Impl : ( '{' ) ;
     public final void rule__CubeDimensionEntityEntity__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5502:1: ( ( '{' ) )
-            // InternalCubeDSL.g:5503:1: ( '{' )
+            // InternalCubeDSL.g:5504:1: ( ( '{' ) )
+            // InternalCubeDSL.g:5505:1: ( '{' )
             {
-            // InternalCubeDSL.g:5503:1: ( '{' )
-            // InternalCubeDSL.g:5504:2: '{'
+            // InternalCubeDSL.g:5505:1: ( '{' )
+            // InternalCubeDSL.g:5506:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getLeftCurlyBracketKeyword_2()); 
@@ -19783,14 +19786,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__3"
-    // InternalCubeDSL.g:5513:1: rule__CubeDimensionEntityEntity__Group__3 : rule__CubeDimensionEntityEntity__Group__3__Impl rule__CubeDimensionEntityEntity__Group__4 ;
+    // InternalCubeDSL.g:5515:1: rule__CubeDimensionEntityEntity__Group__3 : rule__CubeDimensionEntityEntity__Group__3__Impl rule__CubeDimensionEntityEntity__Group__4 ;
     public final void rule__CubeDimensionEntityEntity__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5517:1: ( rule__CubeDimensionEntityEntity__Group__3__Impl rule__CubeDimensionEntityEntity__Group__4 )
-            // InternalCubeDSL.g:5518:2: rule__CubeDimensionEntityEntity__Group__3__Impl rule__CubeDimensionEntityEntity__Group__4
+            // InternalCubeDSL.g:5519:1: ( rule__CubeDimensionEntityEntity__Group__3__Impl rule__CubeDimensionEntityEntity__Group__4 )
+            // InternalCubeDSL.g:5520:2: rule__CubeDimensionEntityEntity__Group__3__Impl rule__CubeDimensionEntityEntity__Group__4
             {
             pushFollow(FOLLOW_6);
             rule__CubeDimensionEntityEntity__Group__3__Impl();
@@ -19821,17 +19824,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__3__Impl"
-    // InternalCubeDSL.g:5525:1: rule__CubeDimensionEntityEntity__Group__3__Impl : ( 'over' ) ;
+    // InternalCubeDSL.g:5527:1: rule__CubeDimensionEntityEntity__Group__3__Impl : ( 'over' ) ;
     public final void rule__CubeDimensionEntityEntity__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5529:1: ( ( 'over' ) )
-            // InternalCubeDSL.g:5530:1: ( 'over' )
+            // InternalCubeDSL.g:5531:1: ( ( 'over' ) )
+            // InternalCubeDSL.g:5532:1: ( 'over' )
             {
-            // InternalCubeDSL.g:5530:1: ( 'over' )
-            // InternalCubeDSL.g:5531:2: 'over'
+            // InternalCubeDSL.g:5532:1: ( 'over' )
+            // InternalCubeDSL.g:5533:2: 'over'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getOverKeyword_3()); 
@@ -19862,14 +19865,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__4"
-    // InternalCubeDSL.g:5540:1: rule__CubeDimensionEntityEntity__Group__4 : rule__CubeDimensionEntityEntity__Group__4__Impl rule__CubeDimensionEntityEntity__Group__5 ;
+    // InternalCubeDSL.g:5542:1: rule__CubeDimensionEntityEntity__Group__4 : rule__CubeDimensionEntityEntity__Group__4__Impl rule__CubeDimensionEntityEntity__Group__5 ;
     public final void rule__CubeDimensionEntityEntity__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5544:1: ( rule__CubeDimensionEntityEntity__Group__4__Impl rule__CubeDimensionEntityEntity__Group__5 )
-            // InternalCubeDSL.g:5545:2: rule__CubeDimensionEntityEntity__Group__4__Impl rule__CubeDimensionEntityEntity__Group__5
+            // InternalCubeDSL.g:5546:1: ( rule__CubeDimensionEntityEntity__Group__4__Impl rule__CubeDimensionEntityEntity__Group__5 )
+            // InternalCubeDSL.g:5547:2: rule__CubeDimensionEntityEntity__Group__4__Impl rule__CubeDimensionEntityEntity__Group__5
             {
             pushFollow(FOLLOW_25);
             rule__CubeDimensionEntityEntity__Group__4__Impl();
@@ -19900,23 +19903,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__4__Impl"
-    // InternalCubeDSL.g:5552:1: rule__CubeDimensionEntityEntity__Group__4__Impl : ( ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 ) ) ;
+    // InternalCubeDSL.g:5554:1: rule__CubeDimensionEntityEntity__Group__4__Impl : ( ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 ) ) ;
     public final void rule__CubeDimensionEntityEntity__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5556:1: ( ( ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 ) ) )
-            // InternalCubeDSL.g:5557:1: ( ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 ) )
+            // InternalCubeDSL.g:5558:1: ( ( ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 ) ) )
+            // InternalCubeDSL.g:5559:1: ( ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 ) )
             {
-            // InternalCubeDSL.g:5557:1: ( ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 ) )
-            // InternalCubeDSL.g:5558:2: ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 )
+            // InternalCubeDSL.g:5559:1: ( ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 ) )
+            // InternalCubeDSL.g:5560:2: ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getOverValueAssignment_4()); 
             }
-            // InternalCubeDSL.g:5559:2: ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 )
-            // InternalCubeDSL.g:5559:3: rule__CubeDimensionEntityEntity__OverValueAssignment_4
+            // InternalCubeDSL.g:5561:2: ( rule__CubeDimensionEntityEntity__OverValueAssignment_4 )
+            // InternalCubeDSL.g:5561:3: rule__CubeDimensionEntityEntity__OverValueAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionEntityEntity__OverValueAssignment_4();
@@ -19951,14 +19954,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__5"
-    // InternalCubeDSL.g:5567:1: rule__CubeDimensionEntityEntity__Group__5 : rule__CubeDimensionEntityEntity__Group__5__Impl rule__CubeDimensionEntityEntity__Group__6 ;
+    // InternalCubeDSL.g:5569:1: rule__CubeDimensionEntityEntity__Group__5 : rule__CubeDimensionEntityEntity__Group__5__Impl rule__CubeDimensionEntityEntity__Group__6 ;
     public final void rule__CubeDimensionEntityEntity__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5571:1: ( rule__CubeDimensionEntityEntity__Group__5__Impl rule__CubeDimensionEntityEntity__Group__6 )
-            // InternalCubeDSL.g:5572:2: rule__CubeDimensionEntityEntity__Group__5__Impl rule__CubeDimensionEntityEntity__Group__6
+            // InternalCubeDSL.g:5573:1: ( rule__CubeDimensionEntityEntity__Group__5__Impl rule__CubeDimensionEntityEntity__Group__6 )
+            // InternalCubeDSL.g:5574:2: rule__CubeDimensionEntityEntity__Group__5__Impl rule__CubeDimensionEntityEntity__Group__6
             {
             pushFollow(FOLLOW_25);
             rule__CubeDimensionEntityEntity__Group__5__Impl();
@@ -19989,22 +19992,22 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__5__Impl"
-    // InternalCubeDSL.g:5579:1: rule__CubeDimensionEntityEntity__Group__5__Impl : ( ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )* ) ;
+    // InternalCubeDSL.g:5581:1: rule__CubeDimensionEntityEntity__Group__5__Impl : ( ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )* ) ;
     public final void rule__CubeDimensionEntityEntity__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5583:1: ( ( ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )* ) )
-            // InternalCubeDSL.g:5584:1: ( ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )* )
+            // InternalCubeDSL.g:5585:1: ( ( ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )* ) )
+            // InternalCubeDSL.g:5586:1: ( ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )* )
             {
-            // InternalCubeDSL.g:5584:1: ( ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )* )
-            // InternalCubeDSL.g:5585:2: ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )*
+            // InternalCubeDSL.g:5586:1: ( ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )* )
+            // InternalCubeDSL.g:5587:2: ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getHierarchLevelsAssignment_5()); 
             }
-            // InternalCubeDSL.g:5586:2: ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )*
+            // InternalCubeDSL.g:5588:2: ( rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 )*
             loop65:
             do {
                 int alt65=2;
@@ -20017,7 +20020,7 @@
 
                 switch (alt65) {
             	case 1 :
-            	    // InternalCubeDSL.g:5586:3: rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5
+            	    // InternalCubeDSL.g:5588:3: rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5
             	    {
             	    pushFollow(FOLLOW_26);
             	    rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5();
@@ -20058,14 +20061,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__6"
-    // InternalCubeDSL.g:5594:1: rule__CubeDimensionEntityEntity__Group__6 : rule__CubeDimensionEntityEntity__Group__6__Impl rule__CubeDimensionEntityEntity__Group__7 ;
+    // InternalCubeDSL.g:5596:1: rule__CubeDimensionEntityEntity__Group__6 : rule__CubeDimensionEntityEntity__Group__6__Impl rule__CubeDimensionEntityEntity__Group__7 ;
     public final void rule__CubeDimensionEntityEntity__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5598:1: ( rule__CubeDimensionEntityEntity__Group__6__Impl rule__CubeDimensionEntityEntity__Group__7 )
-            // InternalCubeDSL.g:5599:2: rule__CubeDimensionEntityEntity__Group__6__Impl rule__CubeDimensionEntityEntity__Group__7
+            // InternalCubeDSL.g:5600:1: ( rule__CubeDimensionEntityEntity__Group__6__Impl rule__CubeDimensionEntityEntity__Group__7 )
+            // InternalCubeDSL.g:5601:2: rule__CubeDimensionEntityEntity__Group__6__Impl rule__CubeDimensionEntityEntity__Group__7
             {
             pushFollow(FOLLOW_25);
             rule__CubeDimensionEntityEntity__Group__6__Impl();
@@ -20096,22 +20099,22 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__6__Impl"
-    // InternalCubeDSL.g:5606:1: rule__CubeDimensionEntityEntity__Group__6__Impl : ( ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )? ) ;
+    // InternalCubeDSL.g:5608:1: rule__CubeDimensionEntityEntity__Group__6__Impl : ( ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )? ) ;
     public final void rule__CubeDimensionEntityEntity__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5610:1: ( ( ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )? ) )
-            // InternalCubeDSL.g:5611:1: ( ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )? )
+            // InternalCubeDSL.g:5612:1: ( ( ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )? ) )
+            // InternalCubeDSL.g:5613:1: ( ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )? )
             {
-            // InternalCubeDSL.g:5611:1: ( ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )? )
-            // InternalCubeDSL.g:5612:2: ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )?
+            // InternalCubeDSL.g:5613:1: ( ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )? )
+            // InternalCubeDSL.g:5614:2: ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getDimEntityAssignment_6()); 
             }
-            // InternalCubeDSL.g:5613:2: ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )?
+            // InternalCubeDSL.g:5615:2: ( rule__CubeDimensionEntityEntity__DimEntityAssignment_6 )?
             int alt66=2;
             int LA66_0 = input.LA(1);
 
@@ -20120,7 +20123,7 @@
             }
             switch (alt66) {
                 case 1 :
-                    // InternalCubeDSL.g:5613:3: rule__CubeDimensionEntityEntity__DimEntityAssignment_6
+                    // InternalCubeDSL.g:5615:3: rule__CubeDimensionEntityEntity__DimEntityAssignment_6
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeDimensionEntityEntity__DimEntityAssignment_6();
@@ -20158,14 +20161,14 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__7"
-    // InternalCubeDSL.g:5621:1: rule__CubeDimensionEntityEntity__Group__7 : rule__CubeDimensionEntityEntity__Group__7__Impl ;
+    // InternalCubeDSL.g:5623:1: rule__CubeDimensionEntityEntity__Group__7 : rule__CubeDimensionEntityEntity__Group__7__Impl ;
     public final void rule__CubeDimensionEntityEntity__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5625:1: ( rule__CubeDimensionEntityEntity__Group__7__Impl )
-            // InternalCubeDSL.g:5626:2: rule__CubeDimensionEntityEntity__Group__7__Impl
+            // InternalCubeDSL.g:5627:1: ( rule__CubeDimensionEntityEntity__Group__7__Impl )
+            // InternalCubeDSL.g:5628:2: rule__CubeDimensionEntityEntity__Group__7__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeDimensionEntityEntity__Group__7__Impl();
@@ -20191,17 +20194,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__Group__7__Impl"
-    // InternalCubeDSL.g:5632:1: rule__CubeDimensionEntityEntity__Group__7__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:5634:1: rule__CubeDimensionEntityEntity__Group__7__Impl : ( '}' ) ;
     public final void rule__CubeDimensionEntityEntity__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5636:1: ( ( '}' ) )
-            // InternalCubeDSL.g:5637:1: ( '}' )
+            // InternalCubeDSL.g:5638:1: ( ( '}' ) )
+            // InternalCubeDSL.g:5639:1: ( '}' )
             {
-            // InternalCubeDSL.g:5637:1: ( '}' )
-            // InternalCubeDSL.g:5638:2: '}'
+            // InternalCubeDSL.g:5639:1: ( '}' )
+            // InternalCubeDSL.g:5640:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getRightCurlyBracketKeyword_7()); 
@@ -20232,14 +20235,14 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__0"
-    // InternalCubeDSL.g:5648:1: rule__CubeLevel__Group__0 : rule__CubeLevel__Group__0__Impl rule__CubeLevel__Group__1 ;
+    // InternalCubeDSL.g:5650:1: rule__CubeLevel__Group__0 : rule__CubeLevel__Group__0__Impl rule__CubeLevel__Group__1 ;
     public final void rule__CubeLevel__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5652:1: ( rule__CubeLevel__Group__0__Impl rule__CubeLevel__Group__1 )
-            // InternalCubeDSL.g:5653:2: rule__CubeLevel__Group__0__Impl rule__CubeLevel__Group__1
+            // InternalCubeDSL.g:5654:1: ( rule__CubeLevel__Group__0__Impl rule__CubeLevel__Group__1 )
+            // InternalCubeDSL.g:5655:2: rule__CubeLevel__Group__0__Impl rule__CubeLevel__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__CubeLevel__Group__0__Impl();
@@ -20270,17 +20273,17 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__0__Impl"
-    // InternalCubeDSL.g:5660:1: rule__CubeLevel__Group__0__Impl : ( 'level' ) ;
+    // InternalCubeDSL.g:5662:1: rule__CubeLevel__Group__0__Impl : ( 'level' ) ;
     public final void rule__CubeLevel__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5664:1: ( ( 'level' ) )
-            // InternalCubeDSL.g:5665:1: ( 'level' )
+            // InternalCubeDSL.g:5666:1: ( ( 'level' ) )
+            // InternalCubeDSL.g:5667:1: ( 'level' )
             {
-            // InternalCubeDSL.g:5665:1: ( 'level' )
-            // InternalCubeDSL.g:5666:2: 'level'
+            // InternalCubeDSL.g:5667:1: ( 'level' )
+            // InternalCubeDSL.g:5668:2: 'level'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getLevelKeyword_0()); 
@@ -20311,14 +20314,14 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__1"
-    // InternalCubeDSL.g:5675:1: rule__CubeLevel__Group__1 : rule__CubeLevel__Group__1__Impl rule__CubeLevel__Group__2 ;
+    // InternalCubeDSL.g:5677:1: rule__CubeLevel__Group__1 : rule__CubeLevel__Group__1__Impl rule__CubeLevel__Group__2 ;
     public final void rule__CubeLevel__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5679:1: ( rule__CubeLevel__Group__1__Impl rule__CubeLevel__Group__2 )
-            // InternalCubeDSL.g:5680:2: rule__CubeLevel__Group__1__Impl rule__CubeLevel__Group__2
+            // InternalCubeDSL.g:5681:1: ( rule__CubeLevel__Group__1__Impl rule__CubeLevel__Group__2 )
+            // InternalCubeDSL.g:5682:2: rule__CubeLevel__Group__1__Impl rule__CubeLevel__Group__2
             {
             pushFollow(FOLLOW_27);
             rule__CubeLevel__Group__1__Impl();
@@ -20349,23 +20352,23 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__1__Impl"
-    // InternalCubeDSL.g:5687:1: rule__CubeLevel__Group__1__Impl : ( ( rule__CubeLevel__NameAssignment_1 ) ) ;
+    // InternalCubeDSL.g:5689:1: rule__CubeLevel__Group__1__Impl : ( ( rule__CubeLevel__NameAssignment_1 ) ) ;
     public final void rule__CubeLevel__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5691:1: ( ( ( rule__CubeLevel__NameAssignment_1 ) ) )
-            // InternalCubeDSL.g:5692:1: ( ( rule__CubeLevel__NameAssignment_1 ) )
+            // InternalCubeDSL.g:5693:1: ( ( ( rule__CubeLevel__NameAssignment_1 ) ) )
+            // InternalCubeDSL.g:5694:1: ( ( rule__CubeLevel__NameAssignment_1 ) )
             {
-            // InternalCubeDSL.g:5692:1: ( ( rule__CubeLevel__NameAssignment_1 ) )
-            // InternalCubeDSL.g:5693:2: ( rule__CubeLevel__NameAssignment_1 )
+            // InternalCubeDSL.g:5694:1: ( ( rule__CubeLevel__NameAssignment_1 ) )
+            // InternalCubeDSL.g:5695:2: ( rule__CubeLevel__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getNameAssignment_1()); 
             }
-            // InternalCubeDSL.g:5694:2: ( rule__CubeLevel__NameAssignment_1 )
-            // InternalCubeDSL.g:5694:3: rule__CubeLevel__NameAssignment_1
+            // InternalCubeDSL.g:5696:2: ( rule__CubeLevel__NameAssignment_1 )
+            // InternalCubeDSL.g:5696:3: rule__CubeLevel__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevel__NameAssignment_1();
@@ -20400,14 +20403,14 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__2"
-    // InternalCubeDSL.g:5702:1: rule__CubeLevel__Group__2 : rule__CubeLevel__Group__2__Impl rule__CubeLevel__Group__3 ;
+    // InternalCubeDSL.g:5704:1: rule__CubeLevel__Group__2 : rule__CubeLevel__Group__2__Impl rule__CubeLevel__Group__3 ;
     public final void rule__CubeLevel__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5706:1: ( rule__CubeLevel__Group__2__Impl rule__CubeLevel__Group__3 )
-            // InternalCubeDSL.g:5707:2: rule__CubeLevel__Group__2__Impl rule__CubeLevel__Group__3
+            // InternalCubeDSL.g:5708:1: ( rule__CubeLevel__Group__2__Impl rule__CubeLevel__Group__3 )
+            // InternalCubeDSL.g:5709:2: rule__CubeLevel__Group__2__Impl rule__CubeLevel__Group__3
             {
             pushFollow(FOLLOW_6);
             rule__CubeLevel__Group__2__Impl();
@@ -20438,17 +20441,17 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__2__Impl"
-    // InternalCubeDSL.g:5714:1: rule__CubeLevel__Group__2__Impl : ( 'column' ) ;
+    // InternalCubeDSL.g:5716:1: rule__CubeLevel__Group__2__Impl : ( 'column' ) ;
     public final void rule__CubeLevel__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5718:1: ( ( 'column' ) )
-            // InternalCubeDSL.g:5719:1: ( 'column' )
+            // InternalCubeDSL.g:5720:1: ( ( 'column' ) )
+            // InternalCubeDSL.g:5721:1: ( 'column' )
             {
-            // InternalCubeDSL.g:5719:1: ( 'column' )
-            // InternalCubeDSL.g:5720:2: 'column'
+            // InternalCubeDSL.g:5721:1: ( 'column' )
+            // InternalCubeDSL.g:5722:2: 'column'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getColumnKeyword_2()); 
@@ -20479,14 +20482,14 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__3"
-    // InternalCubeDSL.g:5729:1: rule__CubeLevel__Group__3 : rule__CubeLevel__Group__3__Impl rule__CubeLevel__Group__4 ;
+    // InternalCubeDSL.g:5731:1: rule__CubeLevel__Group__3 : rule__CubeLevel__Group__3__Impl rule__CubeLevel__Group__4 ;
     public final void rule__CubeLevel__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5733:1: ( rule__CubeLevel__Group__3__Impl rule__CubeLevel__Group__4 )
-            // InternalCubeDSL.g:5734:2: rule__CubeLevel__Group__3__Impl rule__CubeLevel__Group__4
+            // InternalCubeDSL.g:5735:1: ( rule__CubeLevel__Group__3__Impl rule__CubeLevel__Group__4 )
+            // InternalCubeDSL.g:5736:2: rule__CubeLevel__Group__3__Impl rule__CubeLevel__Group__4
             {
             pushFollow(FOLLOW_28);
             rule__CubeLevel__Group__3__Impl();
@@ -20517,23 +20520,23 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__3__Impl"
-    // InternalCubeDSL.g:5741:1: rule__CubeLevel__Group__3__Impl : ( ( rule__CubeLevel__LevelColValueAssignment_3 ) ) ;
+    // InternalCubeDSL.g:5743:1: rule__CubeLevel__Group__3__Impl : ( ( rule__CubeLevel__LevelColValueAssignment_3 ) ) ;
     public final void rule__CubeLevel__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5745:1: ( ( ( rule__CubeLevel__LevelColValueAssignment_3 ) ) )
-            // InternalCubeDSL.g:5746:1: ( ( rule__CubeLevel__LevelColValueAssignment_3 ) )
+            // InternalCubeDSL.g:5747:1: ( ( ( rule__CubeLevel__LevelColValueAssignment_3 ) ) )
+            // InternalCubeDSL.g:5748:1: ( ( rule__CubeLevel__LevelColValueAssignment_3 ) )
             {
-            // InternalCubeDSL.g:5746:1: ( ( rule__CubeLevel__LevelColValueAssignment_3 ) )
-            // InternalCubeDSL.g:5747:2: ( rule__CubeLevel__LevelColValueAssignment_3 )
+            // InternalCubeDSL.g:5748:1: ( ( rule__CubeLevel__LevelColValueAssignment_3 ) )
+            // InternalCubeDSL.g:5749:2: ( rule__CubeLevel__LevelColValueAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getLevelColValueAssignment_3()); 
             }
-            // InternalCubeDSL.g:5748:2: ( rule__CubeLevel__LevelColValueAssignment_3 )
-            // InternalCubeDSL.g:5748:3: rule__CubeLevel__LevelColValueAssignment_3
+            // InternalCubeDSL.g:5750:2: ( rule__CubeLevel__LevelColValueAssignment_3 )
+            // InternalCubeDSL.g:5750:3: rule__CubeLevel__LevelColValueAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevel__LevelColValueAssignment_3();
@@ -20568,14 +20571,14 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__4"
-    // InternalCubeDSL.g:5756:1: rule__CubeLevel__Group__4 : rule__CubeLevel__Group__4__Impl rule__CubeLevel__Group__5 ;
+    // InternalCubeDSL.g:5758:1: rule__CubeLevel__Group__4 : rule__CubeLevel__Group__4__Impl rule__CubeLevel__Group__5 ;
     public final void rule__CubeLevel__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5760:1: ( rule__CubeLevel__Group__4__Impl rule__CubeLevel__Group__5 )
-            // InternalCubeDSL.g:5761:2: rule__CubeLevel__Group__4__Impl rule__CubeLevel__Group__5
+            // InternalCubeDSL.g:5762:1: ( rule__CubeLevel__Group__4__Impl rule__CubeLevel__Group__5 )
+            // InternalCubeDSL.g:5763:2: rule__CubeLevel__Group__4__Impl rule__CubeLevel__Group__5
             {
             pushFollow(FOLLOW_28);
             rule__CubeLevel__Group__4__Impl();
@@ -20606,22 +20609,22 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__4__Impl"
-    // InternalCubeDSL.g:5768:1: rule__CubeLevel__Group__4__Impl : ( ( rule__CubeLevel__UniqueMembersAssignment_4 )? ) ;
+    // InternalCubeDSL.g:5770:1: rule__CubeLevel__Group__4__Impl : ( ( rule__CubeLevel__Group_4__0 )? ) ;
     public final void rule__CubeLevel__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5772:1: ( ( ( rule__CubeLevel__UniqueMembersAssignment_4 )? ) )
-            // InternalCubeDSL.g:5773:1: ( ( rule__CubeLevel__UniqueMembersAssignment_4 )? )
+            // InternalCubeDSL.g:5774:1: ( ( ( rule__CubeLevel__Group_4__0 )? ) )
+            // InternalCubeDSL.g:5775:1: ( ( rule__CubeLevel__Group_4__0 )? )
             {
-            // InternalCubeDSL.g:5773:1: ( ( rule__CubeLevel__UniqueMembersAssignment_4 )? )
-            // InternalCubeDSL.g:5774:2: ( rule__CubeLevel__UniqueMembersAssignment_4 )?
+            // InternalCubeDSL.g:5775:1: ( ( rule__CubeLevel__Group_4__0 )? )
+            // InternalCubeDSL.g:5776:2: ( rule__CubeLevel__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_4()); 
+               before(grammarAccess.getCubeLevelAccess().getGroup_4()); 
             }
-            // InternalCubeDSL.g:5775:2: ( rule__CubeLevel__UniqueMembersAssignment_4 )?
+            // InternalCubeDSL.g:5777:2: ( rule__CubeLevel__Group_4__0 )?
             int alt67=2;
             int LA67_0 = input.LA(1);
 
@@ -20630,10 +20633,10 @@
             }
             switch (alt67) {
                 case 1 :
-                    // InternalCubeDSL.g:5775:3: rule__CubeLevel__UniqueMembersAssignment_4
+                    // InternalCubeDSL.g:5777:3: rule__CubeLevel__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
-                    rule__CubeLevel__UniqueMembersAssignment_4();
+                    rule__CubeLevel__Group_4__0();
 
                     state._fsp--;
                     if (state.failed) return ;
@@ -20644,7 +20647,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_4()); 
+               after(grammarAccess.getCubeLevelAccess().getGroup_4()); 
             }
 
             }
@@ -20668,14 +20671,14 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__5"
-    // InternalCubeDSL.g:5783:1: rule__CubeLevel__Group__5 : rule__CubeLevel__Group__5__Impl rule__CubeLevel__Group__6 ;
+    // InternalCubeDSL.g:5785:1: rule__CubeLevel__Group__5 : rule__CubeLevel__Group__5__Impl rule__CubeLevel__Group__6 ;
     public final void rule__CubeLevel__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5787:1: ( rule__CubeLevel__Group__5__Impl rule__CubeLevel__Group__6 )
-            // InternalCubeDSL.g:5788:2: rule__CubeLevel__Group__5__Impl rule__CubeLevel__Group__6
+            // InternalCubeDSL.g:5789:1: ( rule__CubeLevel__Group__5__Impl rule__CubeLevel__Group__6 )
+            // InternalCubeDSL.g:5790:2: rule__CubeLevel__Group__5__Impl rule__CubeLevel__Group__6
             {
             pushFollow(FOLLOW_28);
             rule__CubeLevel__Group__5__Impl();
@@ -20706,22 +20709,22 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__5__Impl"
-    // InternalCubeDSL.g:5795:1: rule__CubeLevel__Group__5__Impl : ( ( rule__CubeLevel__Group_5__0 )? ) ;
+    // InternalCubeDSL.g:5797:1: rule__CubeLevel__Group__5__Impl : ( ( rule__CubeLevel__Group_5__0 )? ) ;
     public final void rule__CubeLevel__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5799:1: ( ( ( rule__CubeLevel__Group_5__0 )? ) )
-            // InternalCubeDSL.g:5800:1: ( ( rule__CubeLevel__Group_5__0 )? )
+            // InternalCubeDSL.g:5801:1: ( ( ( rule__CubeLevel__Group_5__0 )? ) )
+            // InternalCubeDSL.g:5802:1: ( ( rule__CubeLevel__Group_5__0 )? )
             {
-            // InternalCubeDSL.g:5800:1: ( ( rule__CubeLevel__Group_5__0 )? )
-            // InternalCubeDSL.g:5801:2: ( rule__CubeLevel__Group_5__0 )?
+            // InternalCubeDSL.g:5802:1: ( ( rule__CubeLevel__Group_5__0 )? )
+            // InternalCubeDSL.g:5803:2: ( rule__CubeLevel__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getGroup_5()); 
             }
-            // InternalCubeDSL.g:5802:2: ( rule__CubeLevel__Group_5__0 )?
+            // InternalCubeDSL.g:5804:2: ( rule__CubeLevel__Group_5__0 )?
             int alt68=2;
             int LA68_0 = input.LA(1);
 
@@ -20730,7 +20733,7 @@
             }
             switch (alt68) {
                 case 1 :
-                    // InternalCubeDSL.g:5802:3: rule__CubeLevel__Group_5__0
+                    // InternalCubeDSL.g:5804:3: rule__CubeLevel__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeLevel__Group_5__0();
@@ -20768,20 +20771,25 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__6"
-    // InternalCubeDSL.g:5810:1: rule__CubeLevel__Group__6 : rule__CubeLevel__Group__6__Impl ;
+    // InternalCubeDSL.g:5812:1: rule__CubeLevel__Group__6 : rule__CubeLevel__Group__6__Impl rule__CubeLevel__Group__7 ;
     public final void rule__CubeLevel__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5814:1: ( rule__CubeLevel__Group__6__Impl )
-            // InternalCubeDSL.g:5815:2: rule__CubeLevel__Group__6__Impl
+            // InternalCubeDSL.g:5816:1: ( rule__CubeLevel__Group__6__Impl rule__CubeLevel__Group__7 )
+            // InternalCubeDSL.g:5817:2: rule__CubeLevel__Group__6__Impl rule__CubeLevel__Group__7
             {
-            pushFollow(FOLLOW_2);
+            pushFollow(FOLLOW_28);
             rule__CubeLevel__Group__6__Impl();
 
             state._fsp--;
             if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group__7();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -20801,31 +20809,31 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group__6__Impl"
-    // InternalCubeDSL.g:5821:1: rule__CubeLevel__Group__6__Impl : ( ( rule__CubeLevel__Group_6__0 )? ) ;
+    // InternalCubeDSL.g:5824:1: rule__CubeLevel__Group__6__Impl : ( ( rule__CubeLevel__Group_6__0 )? ) ;
     public final void rule__CubeLevel__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5825:1: ( ( ( rule__CubeLevel__Group_6__0 )? ) )
-            // InternalCubeDSL.g:5826:1: ( ( rule__CubeLevel__Group_6__0 )? )
+            // InternalCubeDSL.g:5828:1: ( ( ( rule__CubeLevel__Group_6__0 )? ) )
+            // InternalCubeDSL.g:5829:1: ( ( rule__CubeLevel__Group_6__0 )? )
             {
-            // InternalCubeDSL.g:5826:1: ( ( rule__CubeLevel__Group_6__0 )? )
-            // InternalCubeDSL.g:5827:2: ( rule__CubeLevel__Group_6__0 )?
+            // InternalCubeDSL.g:5829:1: ( ( rule__CubeLevel__Group_6__0 )? )
+            // InternalCubeDSL.g:5830:2: ( rule__CubeLevel__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getGroup_6()); 
             }
-            // InternalCubeDSL.g:5828:2: ( rule__CubeLevel__Group_6__0 )?
+            // InternalCubeDSL.g:5831:2: ( rule__CubeLevel__Group_6__0 )?
             int alt69=2;
             int LA69_0 = input.LA(1);
 
-            if ( (LA69_0==74) ) {
+            if ( (LA69_0==124) ) {
                 alt69=1;
             }
             switch (alt69) {
                 case 1 :
-                    // InternalCubeDSL.g:5828:3: rule__CubeLevel__Group_6__0
+                    // InternalCubeDSL.g:5831:3: rule__CubeLevel__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeLevel__Group_6__0();
@@ -20862,17 +20870,485 @@
     // $ANTLR end "rule__CubeLevel__Group__6__Impl"
 
 
+    // $ANTLR start "rule__CubeLevel__Group__7"
+    // InternalCubeDSL.g:5839:1: rule__CubeLevel__Group__7 : rule__CubeLevel__Group__7__Impl rule__CubeLevel__Group__8 ;
+    public final void rule__CubeLevel__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5843:1: ( rule__CubeLevel__Group__7__Impl rule__CubeLevel__Group__8 )
+            // InternalCubeDSL.g:5844:2: rule__CubeLevel__Group__7__Impl rule__CubeLevel__Group__8
+            {
+            pushFollow(FOLLOW_28);
+            rule__CubeLevel__Group__7__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group__8();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group__7"
+
+
+    // $ANTLR start "rule__CubeLevel__Group__7__Impl"
+    // InternalCubeDSL.g:5851:1: rule__CubeLevel__Group__7__Impl : ( ( rule__CubeLevel__UniqueMembersAssignment_7 )? ) ;
+    public final void rule__CubeLevel__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5855:1: ( ( ( rule__CubeLevel__UniqueMembersAssignment_7 )? ) )
+            // InternalCubeDSL.g:5856:1: ( ( rule__CubeLevel__UniqueMembersAssignment_7 )? )
+            {
+            // InternalCubeDSL.g:5856:1: ( ( rule__CubeLevel__UniqueMembersAssignment_7 )? )
+            // InternalCubeDSL.g:5857:2: ( rule__CubeLevel__UniqueMembersAssignment_7 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_7()); 
+            }
+            // InternalCubeDSL.g:5858:2: ( rule__CubeLevel__UniqueMembersAssignment_7 )?
+            int alt70=2;
+            int LA70_0 = input.LA(1);
+
+            if ( (LA70_0==125) ) {
+                alt70=1;
+            }
+            switch (alt70) {
+                case 1 :
+                    // InternalCubeDSL.g:5858:3: rule__CubeLevel__UniqueMembersAssignment_7
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__CubeLevel__UniqueMembersAssignment_7();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getUniqueMembersAssignment_7()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group__7__Impl"
+
+
+    // $ANTLR start "rule__CubeLevel__Group__8"
+    // InternalCubeDSL.g:5866:1: rule__CubeLevel__Group__8 : rule__CubeLevel__Group__8__Impl rule__CubeLevel__Group__9 ;
+    public final void rule__CubeLevel__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5870:1: ( rule__CubeLevel__Group__8__Impl rule__CubeLevel__Group__9 )
+            // InternalCubeDSL.g:5871:2: rule__CubeLevel__Group__8__Impl rule__CubeLevel__Group__9
+            {
+            pushFollow(FOLLOW_28);
+            rule__CubeLevel__Group__8__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group__9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group__8"
+
+
+    // $ANTLR start "rule__CubeLevel__Group__8__Impl"
+    // InternalCubeDSL.g:5878:1: rule__CubeLevel__Group__8__Impl : ( ( rule__CubeLevel__Group_8__0 )? ) ;
+    public final void rule__CubeLevel__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5882:1: ( ( ( rule__CubeLevel__Group_8__0 )? ) )
+            // InternalCubeDSL.g:5883:1: ( ( rule__CubeLevel__Group_8__0 )? )
+            {
+            // InternalCubeDSL.g:5883:1: ( ( rule__CubeLevel__Group_8__0 )? )
+            // InternalCubeDSL.g:5884:2: ( rule__CubeLevel__Group_8__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getGroup_8()); 
+            }
+            // InternalCubeDSL.g:5885:2: ( rule__CubeLevel__Group_8__0 )?
+            int alt71=2;
+            int LA71_0 = input.LA(1);
+
+            if ( (LA71_0==126) ) {
+                alt71=1;
+            }
+            switch (alt71) {
+                case 1 :
+                    // InternalCubeDSL.g:5885:3: rule__CubeLevel__Group_8__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__CubeLevel__Group_8__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getGroup_8()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group__8__Impl"
+
+
+    // $ANTLR start "rule__CubeLevel__Group__9"
+    // InternalCubeDSL.g:5893:1: rule__CubeLevel__Group__9 : rule__CubeLevel__Group__9__Impl ;
+    public final void rule__CubeLevel__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5897:1: ( rule__CubeLevel__Group__9__Impl )
+            // InternalCubeDSL.g:5898:2: rule__CubeLevel__Group__9__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group__9__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group__9"
+
+
+    // $ANTLR start "rule__CubeLevel__Group__9__Impl"
+    // InternalCubeDSL.g:5904:1: rule__CubeLevel__Group__9__Impl : ( ( rule__CubeLevel__Group_9__0 )? ) ;
+    public final void rule__CubeLevel__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5908:1: ( ( ( rule__CubeLevel__Group_9__0 )? ) )
+            // InternalCubeDSL.g:5909:1: ( ( rule__CubeLevel__Group_9__0 )? )
+            {
+            // InternalCubeDSL.g:5909:1: ( ( rule__CubeLevel__Group_9__0 )? )
+            // InternalCubeDSL.g:5910:2: ( rule__CubeLevel__Group_9__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getGroup_9()); 
+            }
+            // InternalCubeDSL.g:5911:2: ( rule__CubeLevel__Group_9__0 )?
+            int alt72=2;
+            int LA72_0 = input.LA(1);
+
+            if ( (LA72_0==74) ) {
+                alt72=1;
+            }
+            switch (alt72) {
+                case 1 :
+                    // InternalCubeDSL.g:5911:3: rule__CubeLevel__Group_9__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__CubeLevel__Group_9__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getGroup_9()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group__9__Impl"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_4__0"
+    // InternalCubeDSL.g:5920:1: rule__CubeLevel__Group_4__0 : rule__CubeLevel__Group_4__0__Impl rule__CubeLevel__Group_4__1 ;
+    public final void rule__CubeLevel__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5924:1: ( rule__CubeLevel__Group_4__0__Impl rule__CubeLevel__Group_4__1 )
+            // InternalCubeDSL.g:5925:2: rule__CubeLevel__Group_4__0__Impl rule__CubeLevel__Group_4__1
+            {
+            pushFollow(FOLLOW_6);
+            rule__CubeLevel__Group_4__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group_4__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_4__0"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_4__0__Impl"
+    // InternalCubeDSL.g:5932:1: rule__CubeLevel__Group_4__0__Impl : ( ( rule__CubeLevel__NameColumnAssignment_4_0 ) ) ;
+    public final void rule__CubeLevel__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5936:1: ( ( ( rule__CubeLevel__NameColumnAssignment_4_0 ) ) )
+            // InternalCubeDSL.g:5937:1: ( ( rule__CubeLevel__NameColumnAssignment_4_0 ) )
+            {
+            // InternalCubeDSL.g:5937:1: ( ( rule__CubeLevel__NameColumnAssignment_4_0 ) )
+            // InternalCubeDSL.g:5938:2: ( rule__CubeLevel__NameColumnAssignment_4_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getNameColumnAssignment_4_0()); 
+            }
+            // InternalCubeDSL.g:5939:2: ( rule__CubeLevel__NameColumnAssignment_4_0 )
+            // InternalCubeDSL.g:5939:3: rule__CubeLevel__NameColumnAssignment_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__NameColumnAssignment_4_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getNameColumnAssignment_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_4__1"
+    // InternalCubeDSL.g:5947:1: rule__CubeLevel__Group_4__1 : rule__CubeLevel__Group_4__1__Impl ;
+    public final void rule__CubeLevel__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5951:1: ( rule__CubeLevel__Group_4__1__Impl )
+            // InternalCubeDSL.g:5952:2: rule__CubeLevel__Group_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group_4__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_4__1"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_4__1__Impl"
+    // InternalCubeDSL.g:5958:1: rule__CubeLevel__Group_4__1__Impl : ( ( rule__CubeLevel__LevelNameColValueAssignment_4_1 ) ) ;
+    public final void rule__CubeLevel__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:5962:1: ( ( ( rule__CubeLevel__LevelNameColValueAssignment_4_1 ) ) )
+            // InternalCubeDSL.g:5963:1: ( ( rule__CubeLevel__LevelNameColValueAssignment_4_1 ) )
+            {
+            // InternalCubeDSL.g:5963:1: ( ( rule__CubeLevel__LevelNameColValueAssignment_4_1 ) )
+            // InternalCubeDSL.g:5964:2: ( rule__CubeLevel__LevelNameColValueAssignment_4_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLevelNameColValueAssignment_4_1()); 
+            }
+            // InternalCubeDSL.g:5965:2: ( rule__CubeLevel__LevelNameColValueAssignment_4_1 )
+            // InternalCubeDSL.g:5965:3: rule__CubeLevel__LevelNameColValueAssignment_4_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__LevelNameColValueAssignment_4_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelNameColValueAssignment_4_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_4__1__Impl"
+
+
     // $ANTLR start "rule__CubeLevel__Group_5__0"
-    // InternalCubeDSL.g:5837:1: rule__CubeLevel__Group_5__0 : rule__CubeLevel__Group_5__0__Impl rule__CubeLevel__Group_5__1 ;
+    // InternalCubeDSL.g:5974:1: rule__CubeLevel__Group_5__0 : rule__CubeLevel__Group_5__0__Impl rule__CubeLevel__Group_5__1 ;
     public final void rule__CubeLevel__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5841:1: ( rule__CubeLevel__Group_5__0__Impl rule__CubeLevel__Group_5__1 )
-            // InternalCubeDSL.g:5842:2: rule__CubeLevel__Group_5__0__Impl rule__CubeLevel__Group_5__1
+            // InternalCubeDSL.g:5978:1: ( rule__CubeLevel__Group_5__0__Impl rule__CubeLevel__Group_5__1 )
+            // InternalCubeDSL.g:5979:2: rule__CubeLevel__Group_5__0__Impl rule__CubeLevel__Group_5__1
             {
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_6);
             rule__CubeLevel__Group_5__0__Impl();
 
             state._fsp--;
@@ -20901,26 +21377,26 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group_5__0__Impl"
-    // InternalCubeDSL.g:5849:1: rule__CubeLevel__Group_5__0__Impl : ( ( rule__CubeLevel__LevelTypeAssignment_5_0 ) ) ;
+    // InternalCubeDSL.g:5986:1: rule__CubeLevel__Group_5__0__Impl : ( ( rule__CubeLevel__CaptionColumnAssignment_5_0 ) ) ;
     public final void rule__CubeLevel__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5853:1: ( ( ( rule__CubeLevel__LevelTypeAssignment_5_0 ) ) )
-            // InternalCubeDSL.g:5854:1: ( ( rule__CubeLevel__LevelTypeAssignment_5_0 ) )
+            // InternalCubeDSL.g:5990:1: ( ( ( rule__CubeLevel__CaptionColumnAssignment_5_0 ) ) )
+            // InternalCubeDSL.g:5991:1: ( ( rule__CubeLevel__CaptionColumnAssignment_5_0 ) )
             {
-            // InternalCubeDSL.g:5854:1: ( ( rule__CubeLevel__LevelTypeAssignment_5_0 ) )
-            // InternalCubeDSL.g:5855:2: ( rule__CubeLevel__LevelTypeAssignment_5_0 )
+            // InternalCubeDSL.g:5991:1: ( ( rule__CubeLevel__CaptionColumnAssignment_5_0 ) )
+            // InternalCubeDSL.g:5992:2: ( rule__CubeLevel__CaptionColumnAssignment_5_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_5_0()); 
+               before(grammarAccess.getCubeLevelAccess().getCaptionColumnAssignment_5_0()); 
             }
-            // InternalCubeDSL.g:5856:2: ( rule__CubeLevel__LevelTypeAssignment_5_0 )
-            // InternalCubeDSL.g:5856:3: rule__CubeLevel__LevelTypeAssignment_5_0
+            // InternalCubeDSL.g:5993:2: ( rule__CubeLevel__CaptionColumnAssignment_5_0 )
+            // InternalCubeDSL.g:5993:3: rule__CubeLevel__CaptionColumnAssignment_5_0
             {
             pushFollow(FOLLOW_2);
-            rule__CubeLevel__LevelTypeAssignment_5_0();
+            rule__CubeLevel__CaptionColumnAssignment_5_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -20928,7 +21404,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_5_0()); 
+               after(grammarAccess.getCubeLevelAccess().getCaptionColumnAssignment_5_0()); 
             }
 
             }
@@ -20952,14 +21428,14 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group_5__1"
-    // InternalCubeDSL.g:5864:1: rule__CubeLevel__Group_5__1 : rule__CubeLevel__Group_5__1__Impl ;
+    // InternalCubeDSL.g:6001:1: rule__CubeLevel__Group_5__1 : rule__CubeLevel__Group_5__1__Impl ;
     public final void rule__CubeLevel__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5868:1: ( rule__CubeLevel__Group_5__1__Impl )
-            // InternalCubeDSL.g:5869:2: rule__CubeLevel__Group_5__1__Impl
+            // InternalCubeDSL.g:6005:1: ( rule__CubeLevel__Group_5__1__Impl )
+            // InternalCubeDSL.g:6006:2: rule__CubeLevel__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevel__Group_5__1__Impl();
@@ -20985,26 +21461,26 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group_5__1__Impl"
-    // InternalCubeDSL.g:5875:1: rule__CubeLevel__Group_5__1__Impl : ( ( rule__CubeLevel__LevelTypeValueAssignment_5_1 ) ) ;
+    // InternalCubeDSL.g:6012:1: rule__CubeLevel__Group_5__1__Impl : ( ( rule__CubeLevel__LevelCaptionColValueAssignment_5_1 ) ) ;
     public final void rule__CubeLevel__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5879:1: ( ( ( rule__CubeLevel__LevelTypeValueAssignment_5_1 ) ) )
-            // InternalCubeDSL.g:5880:1: ( ( rule__CubeLevel__LevelTypeValueAssignment_5_1 ) )
+            // InternalCubeDSL.g:6016:1: ( ( ( rule__CubeLevel__LevelCaptionColValueAssignment_5_1 ) ) )
+            // InternalCubeDSL.g:6017:1: ( ( rule__CubeLevel__LevelCaptionColValueAssignment_5_1 ) )
             {
-            // InternalCubeDSL.g:5880:1: ( ( rule__CubeLevel__LevelTypeValueAssignment_5_1 ) )
-            // InternalCubeDSL.g:5881:2: ( rule__CubeLevel__LevelTypeValueAssignment_5_1 )
+            // InternalCubeDSL.g:6017:1: ( ( rule__CubeLevel__LevelCaptionColValueAssignment_5_1 ) )
+            // InternalCubeDSL.g:6018:2: ( rule__CubeLevel__LevelCaptionColValueAssignment_5_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_5_1()); 
+               before(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueAssignment_5_1()); 
             }
-            // InternalCubeDSL.g:5882:2: ( rule__CubeLevel__LevelTypeValueAssignment_5_1 )
-            // InternalCubeDSL.g:5882:3: rule__CubeLevel__LevelTypeValueAssignment_5_1
+            // InternalCubeDSL.g:6019:2: ( rule__CubeLevel__LevelCaptionColValueAssignment_5_1 )
+            // InternalCubeDSL.g:6019:3: rule__CubeLevel__LevelCaptionColValueAssignment_5_1
             {
             pushFollow(FOLLOW_2);
-            rule__CubeLevel__LevelTypeValueAssignment_5_1();
+            rule__CubeLevel__LevelCaptionColValueAssignment_5_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -21012,7 +21488,7 @@
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_5_1()); 
+               after(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueAssignment_5_1()); 
             }
 
             }
@@ -21036,16 +21512,16 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group_6__0"
-    // InternalCubeDSL.g:5891:1: rule__CubeLevel__Group_6__0 : rule__CubeLevel__Group_6__0__Impl rule__CubeLevel__Group_6__1 ;
+    // InternalCubeDSL.g:6028:1: rule__CubeLevel__Group_6__0 : rule__CubeLevel__Group_6__0__Impl rule__CubeLevel__Group_6__1 ;
     public final void rule__CubeLevel__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5895:1: ( rule__CubeLevel__Group_6__0__Impl rule__CubeLevel__Group_6__1 )
-            // InternalCubeDSL.g:5896:2: rule__CubeLevel__Group_6__0__Impl rule__CubeLevel__Group_6__1
+            // InternalCubeDSL.g:6032:1: ( rule__CubeLevel__Group_6__0__Impl rule__CubeLevel__Group_6__1 )
+            // InternalCubeDSL.g:6033:2: rule__CubeLevel__Group_6__0__Impl rule__CubeLevel__Group_6__1
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_6);
             rule__CubeLevel__Group_6__0__Impl();
 
             state._fsp--;
@@ -21074,24 +21550,34 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group_6__0__Impl"
-    // InternalCubeDSL.g:5903:1: rule__CubeLevel__Group_6__0__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:6040:1: rule__CubeLevel__Group_6__0__Impl : ( ( rule__CubeLevel__OrdinalColumnAssignment_6_0 ) ) ;
     public final void rule__CubeLevel__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5907:1: ( ( '{' ) )
-            // InternalCubeDSL.g:5908:1: ( '{' )
+            // InternalCubeDSL.g:6044:1: ( ( ( rule__CubeLevel__OrdinalColumnAssignment_6_0 ) ) )
+            // InternalCubeDSL.g:6045:1: ( ( rule__CubeLevel__OrdinalColumnAssignment_6_0 ) )
             {
-            // InternalCubeDSL.g:5908:1: ( '{' )
-            // InternalCubeDSL.g:5909:2: '{'
+            // InternalCubeDSL.g:6045:1: ( ( rule__CubeLevel__OrdinalColumnAssignment_6_0 ) )
+            // InternalCubeDSL.g:6046:2: ( rule__CubeLevel__OrdinalColumnAssignment_6_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_6_0()); 
+               before(grammarAccess.getCubeLevelAccess().getOrdinalColumnAssignment_6_0()); 
             }
-            match(input,74,FOLLOW_2); if (state.failed) return ;
+            // InternalCubeDSL.g:6047:2: ( rule__CubeLevel__OrdinalColumnAssignment_6_0 )
+            // InternalCubeDSL.g:6047:3: rule__CubeLevel__OrdinalColumnAssignment_6_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__OrdinalColumnAssignment_6_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_6_0()); 
+               after(grammarAccess.getCubeLevelAccess().getOrdinalColumnAssignment_6_0()); 
             }
 
             }
@@ -21115,22 +21601,17 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group_6__1"
-    // InternalCubeDSL.g:5918:1: rule__CubeLevel__Group_6__1 : rule__CubeLevel__Group_6__1__Impl rule__CubeLevel__Group_6__2 ;
+    // InternalCubeDSL.g:6055:1: rule__CubeLevel__Group_6__1 : rule__CubeLevel__Group_6__1__Impl ;
     public final void rule__CubeLevel__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5922:1: ( rule__CubeLevel__Group_6__1__Impl rule__CubeLevel__Group_6__2 )
-            // InternalCubeDSL.g:5923:2: rule__CubeLevel__Group_6__1__Impl rule__CubeLevel__Group_6__2
+            // InternalCubeDSL.g:6059:1: ( rule__CubeLevel__Group_6__1__Impl )
+            // InternalCubeDSL.g:6060:2: rule__CubeLevel__Group_6__1__Impl
             {
-            pushFollow(FOLLOW_30);
-            rule__CubeLevel__Group_6__1__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__CubeLevel__Group_6__2();
+            rule__CubeLevel__Group_6__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -21153,52 +21634,34 @@
 
 
     // $ANTLR start "rule__CubeLevel__Group_6__1__Impl"
-    // InternalCubeDSL.g:5930:1: rule__CubeLevel__Group_6__1__Impl : ( ( rule__CubeLevel__PropertiesAssignment_6_1 )* ) ;
+    // InternalCubeDSL.g:6066:1: rule__CubeLevel__Group_6__1__Impl : ( ( rule__CubeLevel__LevelOrdinalColValueAssignment_6_1 ) ) ;
     public final void rule__CubeLevel__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5934:1: ( ( ( rule__CubeLevel__PropertiesAssignment_6_1 )* ) )
-            // InternalCubeDSL.g:5935:1: ( ( rule__CubeLevel__PropertiesAssignment_6_1 )* )
+            // InternalCubeDSL.g:6070:1: ( ( ( rule__CubeLevel__LevelOrdinalColValueAssignment_6_1 ) ) )
+            // InternalCubeDSL.g:6071:1: ( ( rule__CubeLevel__LevelOrdinalColValueAssignment_6_1 ) )
             {
-            // InternalCubeDSL.g:5935:1: ( ( rule__CubeLevel__PropertiesAssignment_6_1 )* )
-            // InternalCubeDSL.g:5936:2: ( rule__CubeLevel__PropertiesAssignment_6_1 )*
+            // InternalCubeDSL.g:6071:1: ( ( rule__CubeLevel__LevelOrdinalColValueAssignment_6_1 ) )
+            // InternalCubeDSL.g:6072:2: ( rule__CubeLevel__LevelOrdinalColValueAssignment_6_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_6_1()); 
+               before(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueAssignment_6_1()); 
             }
-            // InternalCubeDSL.g:5937:2: ( rule__CubeLevel__PropertiesAssignment_6_1 )*
-            loop70:
-            do {
-                int alt70=2;
-                int LA70_0 = input.LA(1);
+            // InternalCubeDSL.g:6073:2: ( rule__CubeLevel__LevelOrdinalColValueAssignment_6_1 )
+            // InternalCubeDSL.g:6073:3: rule__CubeLevel__LevelOrdinalColValueAssignment_6_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__LevelOrdinalColValueAssignment_6_1();
 
-                if ( (LA70_0==84) ) {
-                    alt70=1;
-                }
+            state._fsp--;
+            if (state.failed) return ;
 
-
-                switch (alt70) {
-            	case 1 :
-            	    // InternalCubeDSL.g:5937:3: rule__CubeLevel__PropertiesAssignment_6_1
-            	    {
-            	    pushFollow(FOLLOW_31);
-            	    rule__CubeLevel__PropertiesAssignment_6_1();
-
-            	    state._fsp--;
-            	    if (state.failed) return ;
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop70;
-                }
-            } while (true);
+            }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_6_1()); 
+               after(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueAssignment_6_1()); 
             }
 
             }
@@ -21221,18 +21684,23 @@
     // $ANTLR end "rule__CubeLevel__Group_6__1__Impl"
 
 
-    // $ANTLR start "rule__CubeLevel__Group_6__2"
-    // InternalCubeDSL.g:5945:1: rule__CubeLevel__Group_6__2 : rule__CubeLevel__Group_6__2__Impl ;
-    public final void rule__CubeLevel__Group_6__2() throws RecognitionException {
+    // $ANTLR start "rule__CubeLevel__Group_8__0"
+    // InternalCubeDSL.g:6082:1: rule__CubeLevel__Group_8__0 : rule__CubeLevel__Group_8__0__Impl rule__CubeLevel__Group_8__1 ;
+    public final void rule__CubeLevel__Group_8__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5949:1: ( rule__CubeLevel__Group_6__2__Impl )
-            // InternalCubeDSL.g:5950:2: rule__CubeLevel__Group_6__2__Impl
+            // InternalCubeDSL.g:6086:1: ( rule__CubeLevel__Group_8__0__Impl rule__CubeLevel__Group_8__1 )
+            // InternalCubeDSL.g:6087:2: rule__CubeLevel__Group_8__0__Impl rule__CubeLevel__Group_8__1
             {
+            pushFollow(FOLLOW_29);
+            rule__CubeLevel__Group_8__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__CubeLevel__Group_6__2__Impl();
+            rule__CubeLevel__Group_8__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -21251,28 +21719,38 @@
         }
         return ;
     }
-    // $ANTLR end "rule__CubeLevel__Group_6__2"
+    // $ANTLR end "rule__CubeLevel__Group_8__0"
 
 
-    // $ANTLR start "rule__CubeLevel__Group_6__2__Impl"
-    // InternalCubeDSL.g:5956:1: rule__CubeLevel__Group_6__2__Impl : ( '}' ) ;
-    public final void rule__CubeLevel__Group_6__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CubeLevel__Group_8__0__Impl"
+    // InternalCubeDSL.g:6094:1: rule__CubeLevel__Group_8__0__Impl : ( ( rule__CubeLevel__LevelTypeAssignment_8_0 ) ) ;
+    public final void rule__CubeLevel__Group_8__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5960:1: ( ( '}' ) )
-            // InternalCubeDSL.g:5961:1: ( '}' )
+            // InternalCubeDSL.g:6098:1: ( ( ( rule__CubeLevel__LevelTypeAssignment_8_0 ) ) )
+            // InternalCubeDSL.g:6099:1: ( ( rule__CubeLevel__LevelTypeAssignment_8_0 ) )
             {
-            // InternalCubeDSL.g:5961:1: ( '}' )
-            // InternalCubeDSL.g:5962:2: '}'
+            // InternalCubeDSL.g:6099:1: ( ( rule__CubeLevel__LevelTypeAssignment_8_0 ) )
+            // InternalCubeDSL.g:6100:2: ( rule__CubeLevel__LevelTypeAssignment_8_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_6_2()); 
+               before(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_8_0()); 
             }
-            match(input,75,FOLLOW_2); if (state.failed) return ;
+            // InternalCubeDSL.g:6101:2: ( rule__CubeLevel__LevelTypeAssignment_8_0 )
+            // InternalCubeDSL.g:6101:3: rule__CubeLevel__LevelTypeAssignment_8_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__LevelTypeAssignment_8_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_6_2()); 
+               after(grammarAccess.getCubeLevelAccess().getLevelTypeAssignment_8_0()); 
             }
 
             }
@@ -21292,18 +21770,362 @@
         }
         return ;
     }
-    // $ANTLR end "rule__CubeLevel__Group_6__2__Impl"
+    // $ANTLR end "rule__CubeLevel__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_8__1"
+    // InternalCubeDSL.g:6109:1: rule__CubeLevel__Group_8__1 : rule__CubeLevel__Group_8__1__Impl ;
+    public final void rule__CubeLevel__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:6113:1: ( rule__CubeLevel__Group_8__1__Impl )
+            // InternalCubeDSL.g:6114:2: rule__CubeLevel__Group_8__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group_8__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_8__1"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_8__1__Impl"
+    // InternalCubeDSL.g:6120:1: rule__CubeLevel__Group_8__1__Impl : ( ( rule__CubeLevel__LevelTypeValueAssignment_8_1 ) ) ;
+    public final void rule__CubeLevel__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:6124:1: ( ( ( rule__CubeLevel__LevelTypeValueAssignment_8_1 ) ) )
+            // InternalCubeDSL.g:6125:1: ( ( rule__CubeLevel__LevelTypeValueAssignment_8_1 ) )
+            {
+            // InternalCubeDSL.g:6125:1: ( ( rule__CubeLevel__LevelTypeValueAssignment_8_1 ) )
+            // InternalCubeDSL.g:6126:2: ( rule__CubeLevel__LevelTypeValueAssignment_8_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_8_1()); 
+            }
+            // InternalCubeDSL.g:6127:2: ( rule__CubeLevel__LevelTypeValueAssignment_8_1 )
+            // InternalCubeDSL.g:6127:3: rule__CubeLevel__LevelTypeValueAssignment_8_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__LevelTypeValueAssignment_8_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelTypeValueAssignment_8_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_9__0"
+    // InternalCubeDSL.g:6136:1: rule__CubeLevel__Group_9__0 : rule__CubeLevel__Group_9__0__Impl rule__CubeLevel__Group_9__1 ;
+    public final void rule__CubeLevel__Group_9__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:6140:1: ( rule__CubeLevel__Group_9__0__Impl rule__CubeLevel__Group_9__1 )
+            // InternalCubeDSL.g:6141:2: rule__CubeLevel__Group_9__0__Impl rule__CubeLevel__Group_9__1
+            {
+            pushFollow(FOLLOW_30);
+            rule__CubeLevel__Group_9__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group_9__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_9__0"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_9__0__Impl"
+    // InternalCubeDSL.g:6148:1: rule__CubeLevel__Group_9__0__Impl : ( '{' ) ;
+    public final void rule__CubeLevel__Group_9__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:6152:1: ( ( '{' ) )
+            // InternalCubeDSL.g:6153:1: ( '{' )
+            {
+            // InternalCubeDSL.g:6153:1: ( '{' )
+            // InternalCubeDSL.g:6154:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_9_0()); 
+            }
+            match(input,74,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_9_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_9__0__Impl"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_9__1"
+    // InternalCubeDSL.g:6163:1: rule__CubeLevel__Group_9__1 : rule__CubeLevel__Group_9__1__Impl rule__CubeLevel__Group_9__2 ;
+    public final void rule__CubeLevel__Group_9__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:6167:1: ( rule__CubeLevel__Group_9__1__Impl rule__CubeLevel__Group_9__2 )
+            // InternalCubeDSL.g:6168:2: rule__CubeLevel__Group_9__1__Impl rule__CubeLevel__Group_9__2
+            {
+            pushFollow(FOLLOW_30);
+            rule__CubeLevel__Group_9__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group_9__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_9__1"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_9__1__Impl"
+    // InternalCubeDSL.g:6175:1: rule__CubeLevel__Group_9__1__Impl : ( ( rule__CubeLevel__PropertiesAssignment_9_1 )* ) ;
+    public final void rule__CubeLevel__Group_9__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:6179:1: ( ( ( rule__CubeLevel__PropertiesAssignment_9_1 )* ) )
+            // InternalCubeDSL.g:6180:1: ( ( rule__CubeLevel__PropertiesAssignment_9_1 )* )
+            {
+            // InternalCubeDSL.g:6180:1: ( ( rule__CubeLevel__PropertiesAssignment_9_1 )* )
+            // InternalCubeDSL.g:6181:2: ( rule__CubeLevel__PropertiesAssignment_9_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_9_1()); 
+            }
+            // InternalCubeDSL.g:6182:2: ( rule__CubeLevel__PropertiesAssignment_9_1 )*
+            loop73:
+            do {
+                int alt73=2;
+                int LA73_0 = input.LA(1);
+
+                if ( (LA73_0==84) ) {
+                    alt73=1;
+                }
+
+
+                switch (alt73) {
+            	case 1 :
+            	    // InternalCubeDSL.g:6182:3: rule__CubeLevel__PropertiesAssignment_9_1
+            	    {
+            	    pushFollow(FOLLOW_31);
+            	    rule__CubeLevel__PropertiesAssignment_9_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop73;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getPropertiesAssignment_9_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_9__1__Impl"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_9__2"
+    // InternalCubeDSL.g:6190:1: rule__CubeLevel__Group_9__2 : rule__CubeLevel__Group_9__2__Impl ;
+    public final void rule__CubeLevel__Group_9__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:6194:1: ( rule__CubeLevel__Group_9__2__Impl )
+            // InternalCubeDSL.g:6195:2: rule__CubeLevel__Group_9__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__CubeLevel__Group_9__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_9__2"
+
+
+    // $ANTLR start "rule__CubeLevel__Group_9__2__Impl"
+    // InternalCubeDSL.g:6201:1: rule__CubeLevel__Group_9__2__Impl : ( '}' ) ;
+    public final void rule__CubeLevel__Group_9__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:6205:1: ( ( '}' ) )
+            // InternalCubeDSL.g:6206:1: ( '}' )
+            {
+            // InternalCubeDSL.g:6206:1: ( '}' )
+            // InternalCubeDSL.g:6207:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_9_2()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_9_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__Group_9__2__Impl"
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__0"
-    // InternalCubeDSL.g:5972:1: rule__CubeLevelProp__Group__0 : rule__CubeLevelProp__Group__0__Impl rule__CubeLevelProp__Group__1 ;
+    // InternalCubeDSL.g:6217:1: rule__CubeLevelProp__Group__0 : rule__CubeLevelProp__Group__0__Impl rule__CubeLevelProp__Group__1 ;
     public final void rule__CubeLevelProp__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5976:1: ( rule__CubeLevelProp__Group__0__Impl rule__CubeLevelProp__Group__1 )
-            // InternalCubeDSL.g:5977:2: rule__CubeLevelProp__Group__0__Impl rule__CubeLevelProp__Group__1
+            // InternalCubeDSL.g:6221:1: ( rule__CubeLevelProp__Group__0__Impl rule__CubeLevelProp__Group__1 )
+            // InternalCubeDSL.g:6222:2: rule__CubeLevelProp__Group__0__Impl rule__CubeLevelProp__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__CubeLevelProp__Group__0__Impl();
@@ -21334,17 +22156,17 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__0__Impl"
-    // InternalCubeDSL.g:5984:1: rule__CubeLevelProp__Group__0__Impl : ( 'property' ) ;
+    // InternalCubeDSL.g:6229:1: rule__CubeLevelProp__Group__0__Impl : ( 'property' ) ;
     public final void rule__CubeLevelProp__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:5988:1: ( ( 'property' ) )
-            // InternalCubeDSL.g:5989:1: ( 'property' )
+            // InternalCubeDSL.g:6233:1: ( ( 'property' ) )
+            // InternalCubeDSL.g:6234:1: ( 'property' )
             {
-            // InternalCubeDSL.g:5989:1: ( 'property' )
-            // InternalCubeDSL.g:5990:2: 'property'
+            // InternalCubeDSL.g:6234:1: ( 'property' )
+            // InternalCubeDSL.g:6235:2: 'property'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getPropertyKeyword_0()); 
@@ -21375,14 +22197,14 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__1"
-    // InternalCubeDSL.g:5999:1: rule__CubeLevelProp__Group__1 : rule__CubeLevelProp__Group__1__Impl rule__CubeLevelProp__Group__2 ;
+    // InternalCubeDSL.g:6244:1: rule__CubeLevelProp__Group__1 : rule__CubeLevelProp__Group__1__Impl rule__CubeLevelProp__Group__2 ;
     public final void rule__CubeLevelProp__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6003:1: ( rule__CubeLevelProp__Group__1__Impl rule__CubeLevelProp__Group__2 )
-            // InternalCubeDSL.g:6004:2: rule__CubeLevelProp__Group__1__Impl rule__CubeLevelProp__Group__2
+            // InternalCubeDSL.g:6248:1: ( rule__CubeLevelProp__Group__1__Impl rule__CubeLevelProp__Group__2 )
+            // InternalCubeDSL.g:6249:2: rule__CubeLevelProp__Group__1__Impl rule__CubeLevelProp__Group__2
             {
             pushFollow(FOLLOW_27);
             rule__CubeLevelProp__Group__1__Impl();
@@ -21413,23 +22235,23 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__1__Impl"
-    // InternalCubeDSL.g:6011:1: rule__CubeLevelProp__Group__1__Impl : ( ( rule__CubeLevelProp__NameAssignment_1 ) ) ;
+    // InternalCubeDSL.g:6256:1: rule__CubeLevelProp__Group__1__Impl : ( ( rule__CubeLevelProp__NameAssignment_1 ) ) ;
     public final void rule__CubeLevelProp__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6015:1: ( ( ( rule__CubeLevelProp__NameAssignment_1 ) ) )
-            // InternalCubeDSL.g:6016:1: ( ( rule__CubeLevelProp__NameAssignment_1 ) )
+            // InternalCubeDSL.g:6260:1: ( ( ( rule__CubeLevelProp__NameAssignment_1 ) ) )
+            // InternalCubeDSL.g:6261:1: ( ( rule__CubeLevelProp__NameAssignment_1 ) )
             {
-            // InternalCubeDSL.g:6016:1: ( ( rule__CubeLevelProp__NameAssignment_1 ) )
-            // InternalCubeDSL.g:6017:2: ( rule__CubeLevelProp__NameAssignment_1 )
+            // InternalCubeDSL.g:6261:1: ( ( rule__CubeLevelProp__NameAssignment_1 ) )
+            // InternalCubeDSL.g:6262:2: ( rule__CubeLevelProp__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getNameAssignment_1()); 
             }
-            // InternalCubeDSL.g:6018:2: ( rule__CubeLevelProp__NameAssignment_1 )
-            // InternalCubeDSL.g:6018:3: rule__CubeLevelProp__NameAssignment_1
+            // InternalCubeDSL.g:6263:2: ( rule__CubeLevelProp__NameAssignment_1 )
+            // InternalCubeDSL.g:6263:3: rule__CubeLevelProp__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelProp__NameAssignment_1();
@@ -21464,14 +22286,14 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__2"
-    // InternalCubeDSL.g:6026:1: rule__CubeLevelProp__Group__2 : rule__CubeLevelProp__Group__2__Impl rule__CubeLevelProp__Group__3 ;
+    // InternalCubeDSL.g:6271:1: rule__CubeLevelProp__Group__2 : rule__CubeLevelProp__Group__2__Impl rule__CubeLevelProp__Group__3 ;
     public final void rule__CubeLevelProp__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6030:1: ( rule__CubeLevelProp__Group__2__Impl rule__CubeLevelProp__Group__3 )
-            // InternalCubeDSL.g:6031:2: rule__CubeLevelProp__Group__2__Impl rule__CubeLevelProp__Group__3
+            // InternalCubeDSL.g:6275:1: ( rule__CubeLevelProp__Group__2__Impl rule__CubeLevelProp__Group__3 )
+            // InternalCubeDSL.g:6276:2: rule__CubeLevelProp__Group__2__Impl rule__CubeLevelProp__Group__3
             {
             pushFollow(FOLLOW_6);
             rule__CubeLevelProp__Group__2__Impl();
@@ -21502,17 +22324,17 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__2__Impl"
-    // InternalCubeDSL.g:6038:1: rule__CubeLevelProp__Group__2__Impl : ( 'column' ) ;
+    // InternalCubeDSL.g:6283:1: rule__CubeLevelProp__Group__2__Impl : ( 'column' ) ;
     public final void rule__CubeLevelProp__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6042:1: ( ( 'column' ) )
-            // InternalCubeDSL.g:6043:1: ( 'column' )
+            // InternalCubeDSL.g:6287:1: ( ( 'column' ) )
+            // InternalCubeDSL.g:6288:1: ( 'column' )
             {
-            // InternalCubeDSL.g:6043:1: ( 'column' )
-            // InternalCubeDSL.g:6044:2: 'column'
+            // InternalCubeDSL.g:6288:1: ( 'column' )
+            // InternalCubeDSL.g:6289:2: 'column'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getColumnKeyword_2()); 
@@ -21543,14 +22365,14 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__3"
-    // InternalCubeDSL.g:6053:1: rule__CubeLevelProp__Group__3 : rule__CubeLevelProp__Group__3__Impl rule__CubeLevelProp__Group__4 ;
+    // InternalCubeDSL.g:6298:1: rule__CubeLevelProp__Group__3 : rule__CubeLevelProp__Group__3__Impl rule__CubeLevelProp__Group__4 ;
     public final void rule__CubeLevelProp__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6057:1: ( rule__CubeLevelProp__Group__3__Impl rule__CubeLevelProp__Group__4 )
-            // InternalCubeDSL.g:6058:2: rule__CubeLevelProp__Group__3__Impl rule__CubeLevelProp__Group__4
+            // InternalCubeDSL.g:6302:1: ( rule__CubeLevelProp__Group__3__Impl rule__CubeLevelProp__Group__4 )
+            // InternalCubeDSL.g:6303:2: rule__CubeLevelProp__Group__3__Impl rule__CubeLevelProp__Group__4
             {
             pushFollow(FOLLOW_32);
             rule__CubeLevelProp__Group__3__Impl();
@@ -21581,23 +22403,23 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__3__Impl"
-    // InternalCubeDSL.g:6065:1: rule__CubeLevelProp__Group__3__Impl : ( ( rule__CubeLevelProp__LevelPropColValueAssignment_3 ) ) ;
+    // InternalCubeDSL.g:6310:1: rule__CubeLevelProp__Group__3__Impl : ( ( rule__CubeLevelProp__LevelPropColValueAssignment_3 ) ) ;
     public final void rule__CubeLevelProp__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6069:1: ( ( ( rule__CubeLevelProp__LevelPropColValueAssignment_3 ) ) )
-            // InternalCubeDSL.g:6070:1: ( ( rule__CubeLevelProp__LevelPropColValueAssignment_3 ) )
+            // InternalCubeDSL.g:6314:1: ( ( ( rule__CubeLevelProp__LevelPropColValueAssignment_3 ) ) )
+            // InternalCubeDSL.g:6315:1: ( ( rule__CubeLevelProp__LevelPropColValueAssignment_3 ) )
             {
-            // InternalCubeDSL.g:6070:1: ( ( rule__CubeLevelProp__LevelPropColValueAssignment_3 ) )
-            // InternalCubeDSL.g:6071:2: ( rule__CubeLevelProp__LevelPropColValueAssignment_3 )
+            // InternalCubeDSL.g:6315:1: ( ( rule__CubeLevelProp__LevelPropColValueAssignment_3 ) )
+            // InternalCubeDSL.g:6316:2: ( rule__CubeLevelProp__LevelPropColValueAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getLevelPropColValueAssignment_3()); 
             }
-            // InternalCubeDSL.g:6072:2: ( rule__CubeLevelProp__LevelPropColValueAssignment_3 )
-            // InternalCubeDSL.g:6072:3: rule__CubeLevelProp__LevelPropColValueAssignment_3
+            // InternalCubeDSL.g:6317:2: ( rule__CubeLevelProp__LevelPropColValueAssignment_3 )
+            // InternalCubeDSL.g:6317:3: rule__CubeLevelProp__LevelPropColValueAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelProp__LevelPropColValueAssignment_3();
@@ -21632,14 +22454,14 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__4"
-    // InternalCubeDSL.g:6080:1: rule__CubeLevelProp__Group__4 : rule__CubeLevelProp__Group__4__Impl ;
+    // InternalCubeDSL.g:6325:1: rule__CubeLevelProp__Group__4 : rule__CubeLevelProp__Group__4__Impl ;
     public final void rule__CubeLevelProp__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6084:1: ( rule__CubeLevelProp__Group__4__Impl )
-            // InternalCubeDSL.g:6085:2: rule__CubeLevelProp__Group__4__Impl
+            // InternalCubeDSL.g:6329:1: ( rule__CubeLevelProp__Group__4__Impl )
+            // InternalCubeDSL.g:6330:2: rule__CubeLevelProp__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelProp__Group__4__Impl();
@@ -21665,31 +22487,31 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group__4__Impl"
-    // InternalCubeDSL.g:6091:1: rule__CubeLevelProp__Group__4__Impl : ( ( rule__CubeLevelProp__Group_4__0 )? ) ;
+    // InternalCubeDSL.g:6336:1: rule__CubeLevelProp__Group__4__Impl : ( ( rule__CubeLevelProp__Group_4__0 )? ) ;
     public final void rule__CubeLevelProp__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6095:1: ( ( ( rule__CubeLevelProp__Group_4__0 )? ) )
-            // InternalCubeDSL.g:6096:1: ( ( rule__CubeLevelProp__Group_4__0 )? )
+            // InternalCubeDSL.g:6340:1: ( ( ( rule__CubeLevelProp__Group_4__0 )? ) )
+            // InternalCubeDSL.g:6341:1: ( ( rule__CubeLevelProp__Group_4__0 )? )
             {
-            // InternalCubeDSL.g:6096:1: ( ( rule__CubeLevelProp__Group_4__0 )? )
-            // InternalCubeDSL.g:6097:2: ( rule__CubeLevelProp__Group_4__0 )?
+            // InternalCubeDSL.g:6341:1: ( ( rule__CubeLevelProp__Group_4__0 )? )
+            // InternalCubeDSL.g:6342:2: ( rule__CubeLevelProp__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getGroup_4()); 
             }
-            // InternalCubeDSL.g:6098:2: ( rule__CubeLevelProp__Group_4__0 )?
-            int alt71=2;
-            int LA71_0 = input.LA(1);
+            // InternalCubeDSL.g:6343:2: ( rule__CubeLevelProp__Group_4__0 )?
+            int alt74=2;
+            int LA74_0 = input.LA(1);
 
-            if ( (LA71_0==124) ) {
-                alt71=1;
+            if ( (LA74_0==127) ) {
+                alt74=1;
             }
-            switch (alt71) {
+            switch (alt74) {
                 case 1 :
-                    // InternalCubeDSL.g:6098:3: rule__CubeLevelProp__Group_4__0
+                    // InternalCubeDSL.g:6343:3: rule__CubeLevelProp__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeLevelProp__Group_4__0();
@@ -21727,14 +22549,14 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group_4__0"
-    // InternalCubeDSL.g:6107:1: rule__CubeLevelProp__Group_4__0 : rule__CubeLevelProp__Group_4__0__Impl rule__CubeLevelProp__Group_4__1 ;
+    // InternalCubeDSL.g:6352:1: rule__CubeLevelProp__Group_4__0 : rule__CubeLevelProp__Group_4__0__Impl rule__CubeLevelProp__Group_4__1 ;
     public final void rule__CubeLevelProp__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6111:1: ( rule__CubeLevelProp__Group_4__0__Impl rule__CubeLevelProp__Group_4__1 )
-            // InternalCubeDSL.g:6112:2: rule__CubeLevelProp__Group_4__0__Impl rule__CubeLevelProp__Group_4__1
+            // InternalCubeDSL.g:6356:1: ( rule__CubeLevelProp__Group_4__0__Impl rule__CubeLevelProp__Group_4__1 )
+            // InternalCubeDSL.g:6357:2: rule__CubeLevelProp__Group_4__0__Impl rule__CubeLevelProp__Group_4__1
             {
             pushFollow(FOLLOW_33);
             rule__CubeLevelProp__Group_4__0__Impl();
@@ -21765,23 +22587,23 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group_4__0__Impl"
-    // InternalCubeDSL.g:6119:1: rule__CubeLevelProp__Group_4__0__Impl : ( ( rule__CubeLevelProp__TypeAssignment_4_0 ) ) ;
+    // InternalCubeDSL.g:6364:1: rule__CubeLevelProp__Group_4__0__Impl : ( ( rule__CubeLevelProp__TypeAssignment_4_0 ) ) ;
     public final void rule__CubeLevelProp__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6123:1: ( ( ( rule__CubeLevelProp__TypeAssignment_4_0 ) ) )
-            // InternalCubeDSL.g:6124:1: ( ( rule__CubeLevelProp__TypeAssignment_4_0 ) )
+            // InternalCubeDSL.g:6368:1: ( ( ( rule__CubeLevelProp__TypeAssignment_4_0 ) ) )
+            // InternalCubeDSL.g:6369:1: ( ( rule__CubeLevelProp__TypeAssignment_4_0 ) )
             {
-            // InternalCubeDSL.g:6124:1: ( ( rule__CubeLevelProp__TypeAssignment_4_0 ) )
-            // InternalCubeDSL.g:6125:2: ( rule__CubeLevelProp__TypeAssignment_4_0 )
+            // InternalCubeDSL.g:6369:1: ( ( rule__CubeLevelProp__TypeAssignment_4_0 ) )
+            // InternalCubeDSL.g:6370:2: ( rule__CubeLevelProp__TypeAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getTypeAssignment_4_0()); 
             }
-            // InternalCubeDSL.g:6126:2: ( rule__CubeLevelProp__TypeAssignment_4_0 )
-            // InternalCubeDSL.g:6126:3: rule__CubeLevelProp__TypeAssignment_4_0
+            // InternalCubeDSL.g:6371:2: ( rule__CubeLevelProp__TypeAssignment_4_0 )
+            // InternalCubeDSL.g:6371:3: rule__CubeLevelProp__TypeAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelProp__TypeAssignment_4_0();
@@ -21816,14 +22638,14 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group_4__1"
-    // InternalCubeDSL.g:6134:1: rule__CubeLevelProp__Group_4__1 : rule__CubeLevelProp__Group_4__1__Impl ;
+    // InternalCubeDSL.g:6379:1: rule__CubeLevelProp__Group_4__1 : rule__CubeLevelProp__Group_4__1__Impl ;
     public final void rule__CubeLevelProp__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6138:1: ( rule__CubeLevelProp__Group_4__1__Impl )
-            // InternalCubeDSL.g:6139:2: rule__CubeLevelProp__Group_4__1__Impl
+            // InternalCubeDSL.g:6383:1: ( rule__CubeLevelProp__Group_4__1__Impl )
+            // InternalCubeDSL.g:6384:2: rule__CubeLevelProp__Group_4__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelProp__Group_4__1__Impl();
@@ -21849,23 +22671,23 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__Group_4__1__Impl"
-    // InternalCubeDSL.g:6145:1: rule__CubeLevelProp__Group_4__1__Impl : ( ( rule__CubeLevelProp__TypeValueAssignment_4_1 ) ) ;
+    // InternalCubeDSL.g:6390:1: rule__CubeLevelProp__Group_4__1__Impl : ( ( rule__CubeLevelProp__TypeValueAssignment_4_1 ) ) ;
     public final void rule__CubeLevelProp__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6149:1: ( ( ( rule__CubeLevelProp__TypeValueAssignment_4_1 ) ) )
-            // InternalCubeDSL.g:6150:1: ( ( rule__CubeLevelProp__TypeValueAssignment_4_1 ) )
+            // InternalCubeDSL.g:6394:1: ( ( ( rule__CubeLevelProp__TypeValueAssignment_4_1 ) ) )
+            // InternalCubeDSL.g:6395:1: ( ( rule__CubeLevelProp__TypeValueAssignment_4_1 ) )
             {
-            // InternalCubeDSL.g:6150:1: ( ( rule__CubeLevelProp__TypeValueAssignment_4_1 ) )
-            // InternalCubeDSL.g:6151:2: ( rule__CubeLevelProp__TypeValueAssignment_4_1 )
+            // InternalCubeDSL.g:6395:1: ( ( rule__CubeLevelProp__TypeValueAssignment_4_1 ) )
+            // InternalCubeDSL.g:6396:2: ( rule__CubeLevelProp__TypeValueAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getTypeValueAssignment_4_1()); 
             }
-            // InternalCubeDSL.g:6152:2: ( rule__CubeLevelProp__TypeValueAssignment_4_1 )
-            // InternalCubeDSL.g:6152:3: rule__CubeLevelProp__TypeValueAssignment_4_1
+            // InternalCubeDSL.g:6397:2: ( rule__CubeLevelProp__TypeValueAssignment_4_1 )
+            // InternalCubeDSL.g:6397:3: rule__CubeLevelProp__TypeValueAssignment_4_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeLevelProp__TypeValueAssignment_4_1();
@@ -21900,14 +22722,14 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__0"
-    // InternalCubeDSL.g:6161:1: rule__CubeMeasure__Group__0 : rule__CubeMeasure__Group__0__Impl rule__CubeMeasure__Group__1 ;
+    // InternalCubeDSL.g:6406:1: rule__CubeMeasure__Group__0 : rule__CubeMeasure__Group__0__Impl rule__CubeMeasure__Group__1 ;
     public final void rule__CubeMeasure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6165:1: ( rule__CubeMeasure__Group__0__Impl rule__CubeMeasure__Group__1 )
-            // InternalCubeDSL.g:6166:2: rule__CubeMeasure__Group__0__Impl rule__CubeMeasure__Group__1
+            // InternalCubeDSL.g:6410:1: ( rule__CubeMeasure__Group__0__Impl rule__CubeMeasure__Group__1 )
+            // InternalCubeDSL.g:6411:2: rule__CubeMeasure__Group__0__Impl rule__CubeMeasure__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__CubeMeasure__Group__0__Impl();
@@ -21938,17 +22760,17 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__0__Impl"
-    // InternalCubeDSL.g:6173:1: rule__CubeMeasure__Group__0__Impl : ( 'measure' ) ;
+    // InternalCubeDSL.g:6418:1: rule__CubeMeasure__Group__0__Impl : ( 'measure' ) ;
     public final void rule__CubeMeasure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6177:1: ( ( 'measure' ) )
-            // InternalCubeDSL.g:6178:1: ( 'measure' )
+            // InternalCubeDSL.g:6422:1: ( ( 'measure' ) )
+            // InternalCubeDSL.g:6423:1: ( 'measure' )
             {
-            // InternalCubeDSL.g:6178:1: ( 'measure' )
-            // InternalCubeDSL.g:6179:2: 'measure'
+            // InternalCubeDSL.g:6423:1: ( 'measure' )
+            // InternalCubeDSL.g:6424:2: 'measure'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getMeasureKeyword_0()); 
@@ -21979,14 +22801,14 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__1"
-    // InternalCubeDSL.g:6188:1: rule__CubeMeasure__Group__1 : rule__CubeMeasure__Group__1__Impl rule__CubeMeasure__Group__2 ;
+    // InternalCubeDSL.g:6433:1: rule__CubeMeasure__Group__1 : rule__CubeMeasure__Group__1__Impl rule__CubeMeasure__Group__2 ;
     public final void rule__CubeMeasure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6192:1: ( rule__CubeMeasure__Group__1__Impl rule__CubeMeasure__Group__2 )
-            // InternalCubeDSL.g:6193:2: rule__CubeMeasure__Group__1__Impl rule__CubeMeasure__Group__2
+            // InternalCubeDSL.g:6437:1: ( rule__CubeMeasure__Group__1__Impl rule__CubeMeasure__Group__2 )
+            // InternalCubeDSL.g:6438:2: rule__CubeMeasure__Group__1__Impl rule__CubeMeasure__Group__2
             {
             pushFollow(FOLLOW_34);
             rule__CubeMeasure__Group__1__Impl();
@@ -22017,23 +22839,23 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__1__Impl"
-    // InternalCubeDSL.g:6200:1: rule__CubeMeasure__Group__1__Impl : ( ( rule__CubeMeasure__NameAssignment_1 ) ) ;
+    // InternalCubeDSL.g:6445:1: rule__CubeMeasure__Group__1__Impl : ( ( rule__CubeMeasure__NameAssignment_1 ) ) ;
     public final void rule__CubeMeasure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6204:1: ( ( ( rule__CubeMeasure__NameAssignment_1 ) ) )
-            // InternalCubeDSL.g:6205:1: ( ( rule__CubeMeasure__NameAssignment_1 ) )
+            // InternalCubeDSL.g:6449:1: ( ( ( rule__CubeMeasure__NameAssignment_1 ) ) )
+            // InternalCubeDSL.g:6450:1: ( ( rule__CubeMeasure__NameAssignment_1 ) )
             {
-            // InternalCubeDSL.g:6205:1: ( ( rule__CubeMeasure__NameAssignment_1 ) )
-            // InternalCubeDSL.g:6206:2: ( rule__CubeMeasure__NameAssignment_1 )
+            // InternalCubeDSL.g:6450:1: ( ( rule__CubeMeasure__NameAssignment_1 ) )
+            // InternalCubeDSL.g:6451:2: ( rule__CubeMeasure__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getNameAssignment_1()); 
             }
-            // InternalCubeDSL.g:6207:2: ( rule__CubeMeasure__NameAssignment_1 )
-            // InternalCubeDSL.g:6207:3: rule__CubeMeasure__NameAssignment_1
+            // InternalCubeDSL.g:6452:2: ( rule__CubeMeasure__NameAssignment_1 )
+            // InternalCubeDSL.g:6452:3: rule__CubeMeasure__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CubeMeasure__NameAssignment_1();
@@ -22068,14 +22890,14 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__2"
-    // InternalCubeDSL.g:6215:1: rule__CubeMeasure__Group__2 : rule__CubeMeasure__Group__2__Impl rule__CubeMeasure__Group__3 ;
+    // InternalCubeDSL.g:6460:1: rule__CubeMeasure__Group__2 : rule__CubeMeasure__Group__2__Impl rule__CubeMeasure__Group__3 ;
     public final void rule__CubeMeasure__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6219:1: ( rule__CubeMeasure__Group__2__Impl rule__CubeMeasure__Group__3 )
-            // InternalCubeDSL.g:6220:2: rule__CubeMeasure__Group__2__Impl rule__CubeMeasure__Group__3
+            // InternalCubeDSL.g:6464:1: ( rule__CubeMeasure__Group__2__Impl rule__CubeMeasure__Group__3 )
+            // InternalCubeDSL.g:6465:2: rule__CubeMeasure__Group__2__Impl rule__CubeMeasure__Group__3
             {
             pushFollow(FOLLOW_27);
             rule__CubeMeasure__Group__2__Impl();
@@ -22106,23 +22928,23 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__2__Impl"
-    // InternalCubeDSL.g:6227:1: rule__CubeMeasure__Group__2__Impl : ( ( rule__CubeMeasure__AggregatorAssignment_2 ) ) ;
+    // InternalCubeDSL.g:6472:1: rule__CubeMeasure__Group__2__Impl : ( ( rule__CubeMeasure__AggregatorAssignment_2 ) ) ;
     public final void rule__CubeMeasure__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6231:1: ( ( ( rule__CubeMeasure__AggregatorAssignment_2 ) ) )
-            // InternalCubeDSL.g:6232:1: ( ( rule__CubeMeasure__AggregatorAssignment_2 ) )
+            // InternalCubeDSL.g:6476:1: ( ( ( rule__CubeMeasure__AggregatorAssignment_2 ) ) )
+            // InternalCubeDSL.g:6477:1: ( ( rule__CubeMeasure__AggregatorAssignment_2 ) )
             {
-            // InternalCubeDSL.g:6232:1: ( ( rule__CubeMeasure__AggregatorAssignment_2 ) )
-            // InternalCubeDSL.g:6233:2: ( rule__CubeMeasure__AggregatorAssignment_2 )
+            // InternalCubeDSL.g:6477:1: ( ( rule__CubeMeasure__AggregatorAssignment_2 ) )
+            // InternalCubeDSL.g:6478:2: ( rule__CubeMeasure__AggregatorAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getAggregatorAssignment_2()); 
             }
-            // InternalCubeDSL.g:6234:2: ( rule__CubeMeasure__AggregatorAssignment_2 )
-            // InternalCubeDSL.g:6234:3: rule__CubeMeasure__AggregatorAssignment_2
+            // InternalCubeDSL.g:6479:2: ( rule__CubeMeasure__AggregatorAssignment_2 )
+            // InternalCubeDSL.g:6479:3: rule__CubeMeasure__AggregatorAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__CubeMeasure__AggregatorAssignment_2();
@@ -22157,14 +22979,14 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__3"
-    // InternalCubeDSL.g:6242:1: rule__CubeMeasure__Group__3 : rule__CubeMeasure__Group__3__Impl rule__CubeMeasure__Group__4 ;
+    // InternalCubeDSL.g:6487:1: rule__CubeMeasure__Group__3 : rule__CubeMeasure__Group__3__Impl rule__CubeMeasure__Group__4 ;
     public final void rule__CubeMeasure__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6246:1: ( rule__CubeMeasure__Group__3__Impl rule__CubeMeasure__Group__4 )
-            // InternalCubeDSL.g:6247:2: rule__CubeMeasure__Group__3__Impl rule__CubeMeasure__Group__4
+            // InternalCubeDSL.g:6491:1: ( rule__CubeMeasure__Group__3__Impl rule__CubeMeasure__Group__4 )
+            // InternalCubeDSL.g:6492:2: rule__CubeMeasure__Group__3__Impl rule__CubeMeasure__Group__4
             {
             pushFollow(FOLLOW_6);
             rule__CubeMeasure__Group__3__Impl();
@@ -22195,17 +23017,17 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__3__Impl"
-    // InternalCubeDSL.g:6254:1: rule__CubeMeasure__Group__3__Impl : ( 'column' ) ;
+    // InternalCubeDSL.g:6499:1: rule__CubeMeasure__Group__3__Impl : ( 'column' ) ;
     public final void rule__CubeMeasure__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6258:1: ( ( 'column' ) )
-            // InternalCubeDSL.g:6259:1: ( 'column' )
+            // InternalCubeDSL.g:6503:1: ( ( 'column' ) )
+            // InternalCubeDSL.g:6504:1: ( 'column' )
             {
-            // InternalCubeDSL.g:6259:1: ( 'column' )
-            // InternalCubeDSL.g:6260:2: 'column'
+            // InternalCubeDSL.g:6504:1: ( 'column' )
+            // InternalCubeDSL.g:6505:2: 'column'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getColumnKeyword_3()); 
@@ -22236,14 +23058,14 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__4"
-    // InternalCubeDSL.g:6269:1: rule__CubeMeasure__Group__4 : rule__CubeMeasure__Group__4__Impl rule__CubeMeasure__Group__5 ;
+    // InternalCubeDSL.g:6514:1: rule__CubeMeasure__Group__4 : rule__CubeMeasure__Group__4__Impl rule__CubeMeasure__Group__5 ;
     public final void rule__CubeMeasure__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6273:1: ( rule__CubeMeasure__Group__4__Impl rule__CubeMeasure__Group__5 )
-            // InternalCubeDSL.g:6274:2: rule__CubeMeasure__Group__4__Impl rule__CubeMeasure__Group__5
+            // InternalCubeDSL.g:6518:1: ( rule__CubeMeasure__Group__4__Impl rule__CubeMeasure__Group__5 )
+            // InternalCubeDSL.g:6519:2: rule__CubeMeasure__Group__4__Impl rule__CubeMeasure__Group__5
             {
             pushFollow(FOLLOW_35);
             rule__CubeMeasure__Group__4__Impl();
@@ -22274,23 +23096,23 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__4__Impl"
-    // InternalCubeDSL.g:6281:1: rule__CubeMeasure__Group__4__Impl : ( ( rule__CubeMeasure__MeasureColAssignment_4 ) ) ;
+    // InternalCubeDSL.g:6526:1: rule__CubeMeasure__Group__4__Impl : ( ( rule__CubeMeasure__MeasureColAssignment_4 ) ) ;
     public final void rule__CubeMeasure__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6285:1: ( ( ( rule__CubeMeasure__MeasureColAssignment_4 ) ) )
-            // InternalCubeDSL.g:6286:1: ( ( rule__CubeMeasure__MeasureColAssignment_4 ) )
+            // InternalCubeDSL.g:6530:1: ( ( ( rule__CubeMeasure__MeasureColAssignment_4 ) ) )
+            // InternalCubeDSL.g:6531:1: ( ( rule__CubeMeasure__MeasureColAssignment_4 ) )
             {
-            // InternalCubeDSL.g:6286:1: ( ( rule__CubeMeasure__MeasureColAssignment_4 ) )
-            // InternalCubeDSL.g:6287:2: ( rule__CubeMeasure__MeasureColAssignment_4 )
+            // InternalCubeDSL.g:6531:1: ( ( rule__CubeMeasure__MeasureColAssignment_4 ) )
+            // InternalCubeDSL.g:6532:2: ( rule__CubeMeasure__MeasureColAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getMeasureColAssignment_4()); 
             }
-            // InternalCubeDSL.g:6288:2: ( rule__CubeMeasure__MeasureColAssignment_4 )
-            // InternalCubeDSL.g:6288:3: rule__CubeMeasure__MeasureColAssignment_4
+            // InternalCubeDSL.g:6533:2: ( rule__CubeMeasure__MeasureColAssignment_4 )
+            // InternalCubeDSL.g:6533:3: rule__CubeMeasure__MeasureColAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__CubeMeasure__MeasureColAssignment_4();
@@ -22325,14 +23147,14 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__5"
-    // InternalCubeDSL.g:6296:1: rule__CubeMeasure__Group__5 : rule__CubeMeasure__Group__5__Impl ;
+    // InternalCubeDSL.g:6541:1: rule__CubeMeasure__Group__5 : rule__CubeMeasure__Group__5__Impl ;
     public final void rule__CubeMeasure__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6300:1: ( rule__CubeMeasure__Group__5__Impl )
-            // InternalCubeDSL.g:6301:2: rule__CubeMeasure__Group__5__Impl
+            // InternalCubeDSL.g:6545:1: ( rule__CubeMeasure__Group__5__Impl )
+            // InternalCubeDSL.g:6546:2: rule__CubeMeasure__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CubeMeasure__Group__5__Impl();
@@ -22358,31 +23180,31 @@
 
 
     // $ANTLR start "rule__CubeMeasure__Group__5__Impl"
-    // InternalCubeDSL.g:6307:1: rule__CubeMeasure__Group__5__Impl : ( ( rule__CubeMeasure__NotVisibleAssignment_5 )? ) ;
+    // InternalCubeDSL.g:6552:1: rule__CubeMeasure__Group__5__Impl : ( ( rule__CubeMeasure__NotVisibleAssignment_5 )? ) ;
     public final void rule__CubeMeasure__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6311:1: ( ( ( rule__CubeMeasure__NotVisibleAssignment_5 )? ) )
-            // InternalCubeDSL.g:6312:1: ( ( rule__CubeMeasure__NotVisibleAssignment_5 )? )
+            // InternalCubeDSL.g:6556:1: ( ( ( rule__CubeMeasure__NotVisibleAssignment_5 )? ) )
+            // InternalCubeDSL.g:6557:1: ( ( rule__CubeMeasure__NotVisibleAssignment_5 )? )
             {
-            // InternalCubeDSL.g:6312:1: ( ( rule__CubeMeasure__NotVisibleAssignment_5 )? )
-            // InternalCubeDSL.g:6313:2: ( rule__CubeMeasure__NotVisibleAssignment_5 )?
+            // InternalCubeDSL.g:6557:1: ( ( rule__CubeMeasure__NotVisibleAssignment_5 )? )
+            // InternalCubeDSL.g:6558:2: ( rule__CubeMeasure__NotVisibleAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getNotVisibleAssignment_5()); 
             }
-            // InternalCubeDSL.g:6314:2: ( rule__CubeMeasure__NotVisibleAssignment_5 )?
-            int alt72=2;
-            int LA72_0 = input.LA(1);
+            // InternalCubeDSL.g:6559:2: ( rule__CubeMeasure__NotVisibleAssignment_5 )?
+            int alt75=2;
+            int LA75_0 = input.LA(1);
 
-            if ( (LA72_0==125) ) {
-                alt72=1;
+            if ( (LA75_0==128) ) {
+                alt75=1;
             }
-            switch (alt72) {
+            switch (alt75) {
                 case 1 :
-                    // InternalCubeDSL.g:6314:3: rule__CubeMeasure__NotVisibleAssignment_5
+                    // InternalCubeDSL.g:6559:3: rule__CubeMeasure__NotVisibleAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__CubeMeasure__NotVisibleAssignment_5();
@@ -22420,14 +23242,14 @@
 
 
     // $ANTLR start "rule__LFQN__Group__0"
-    // InternalCubeDSL.g:6323:1: rule__LFQN__Group__0 : rule__LFQN__Group__0__Impl rule__LFQN__Group__1 ;
+    // InternalCubeDSL.g:6568:1: rule__LFQN__Group__0 : rule__LFQN__Group__0__Impl rule__LFQN__Group__1 ;
     public final void rule__LFQN__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6327:1: ( rule__LFQN__Group__0__Impl rule__LFQN__Group__1 )
-            // InternalCubeDSL.g:6328:2: rule__LFQN__Group__0__Impl rule__LFQN__Group__1
+            // InternalCubeDSL.g:6572:1: ( rule__LFQN__Group__0__Impl rule__LFQN__Group__1 )
+            // InternalCubeDSL.g:6573:2: rule__LFQN__Group__0__Impl rule__LFQN__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__LFQN__Group__0__Impl();
@@ -22458,17 +23280,17 @@
 
 
     // $ANTLR start "rule__LFQN__Group__0__Impl"
-    // InternalCubeDSL.g:6335:1: rule__LFQN__Group__0__Impl : ( RULE_ID ) ;
+    // InternalCubeDSL.g:6580:1: rule__LFQN__Group__0__Impl : ( RULE_ID ) ;
     public final void rule__LFQN__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6339:1: ( ( RULE_ID ) )
-            // InternalCubeDSL.g:6340:1: ( RULE_ID )
+            // InternalCubeDSL.g:6584:1: ( ( RULE_ID ) )
+            // InternalCubeDSL.g:6585:1: ( RULE_ID )
             {
-            // InternalCubeDSL.g:6340:1: ( RULE_ID )
-            // InternalCubeDSL.g:6341:2: RULE_ID
+            // InternalCubeDSL.g:6585:1: ( RULE_ID )
+            // InternalCubeDSL.g:6586:2: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLFQNAccess().getIDTerminalRuleCall_0()); 
@@ -22499,14 +23321,14 @@
 
 
     // $ANTLR start "rule__LFQN__Group__1"
-    // InternalCubeDSL.g:6350:1: rule__LFQN__Group__1 : rule__LFQN__Group__1__Impl ;
+    // InternalCubeDSL.g:6595:1: rule__LFQN__Group__1 : rule__LFQN__Group__1__Impl ;
     public final void rule__LFQN__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6354:1: ( rule__LFQN__Group__1__Impl )
-            // InternalCubeDSL.g:6355:2: rule__LFQN__Group__1__Impl
+            // InternalCubeDSL.g:6599:1: ( rule__LFQN__Group__1__Impl )
+            // InternalCubeDSL.g:6600:2: rule__LFQN__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LFQN__Group__1__Impl();
@@ -22532,35 +23354,35 @@
 
 
     // $ANTLR start "rule__LFQN__Group__1__Impl"
-    // InternalCubeDSL.g:6361:1: rule__LFQN__Group__1__Impl : ( ( rule__LFQN__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:6606:1: rule__LFQN__Group__1__Impl : ( ( rule__LFQN__Group_1__0 )* ) ;
     public final void rule__LFQN__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6365:1: ( ( ( rule__LFQN__Group_1__0 )* ) )
-            // InternalCubeDSL.g:6366:1: ( ( rule__LFQN__Group_1__0 )* )
+            // InternalCubeDSL.g:6610:1: ( ( ( rule__LFQN__Group_1__0 )* ) )
+            // InternalCubeDSL.g:6611:1: ( ( rule__LFQN__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:6366:1: ( ( rule__LFQN__Group_1__0 )* )
-            // InternalCubeDSL.g:6367:2: ( rule__LFQN__Group_1__0 )*
+            // InternalCubeDSL.g:6611:1: ( ( rule__LFQN__Group_1__0 )* )
+            // InternalCubeDSL.g:6612:2: ( rule__LFQN__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLFQNAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:6368:2: ( rule__LFQN__Group_1__0 )*
-            loop73:
+            // InternalCubeDSL.g:6613:2: ( rule__LFQN__Group_1__0 )*
+            loop76:
             do {
-                int alt73=2;
-                int LA73_0 = input.LA(1);
+                int alt76=2;
+                int LA76_0 = input.LA(1);
 
-                if ( (LA73_0==43) ) {
-                    alt73=1;
+                if ( (LA76_0==43) ) {
+                    alt76=1;
                 }
 
 
-                switch (alt73) {
+                switch (alt76) {
             	case 1 :
-            	    // InternalCubeDSL.g:6368:3: rule__LFQN__Group_1__0
+            	    // InternalCubeDSL.g:6613:3: rule__LFQN__Group_1__0
             	    {
             	    pushFollow(FOLLOW_37);
             	    rule__LFQN__Group_1__0();
@@ -22572,7 +23394,7 @@
             	    break;
 
             	default :
-            	    break loop73;
+            	    break loop76;
                 }
             } while (true);
 
@@ -22601,14 +23423,14 @@
 
 
     // $ANTLR start "rule__LFQN__Group_1__0"
-    // InternalCubeDSL.g:6377:1: rule__LFQN__Group_1__0 : rule__LFQN__Group_1__0__Impl rule__LFQN__Group_1__1 ;
+    // InternalCubeDSL.g:6622:1: rule__LFQN__Group_1__0 : rule__LFQN__Group_1__0__Impl rule__LFQN__Group_1__1 ;
     public final void rule__LFQN__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6381:1: ( rule__LFQN__Group_1__0__Impl rule__LFQN__Group_1__1 )
-            // InternalCubeDSL.g:6382:2: rule__LFQN__Group_1__0__Impl rule__LFQN__Group_1__1
+            // InternalCubeDSL.g:6626:1: ( rule__LFQN__Group_1__0__Impl rule__LFQN__Group_1__1 )
+            // InternalCubeDSL.g:6627:2: rule__LFQN__Group_1__0__Impl rule__LFQN__Group_1__1
             {
             pushFollow(FOLLOW_6);
             rule__LFQN__Group_1__0__Impl();
@@ -22639,17 +23461,17 @@
 
 
     // $ANTLR start "rule__LFQN__Group_1__0__Impl"
-    // InternalCubeDSL.g:6389:1: rule__LFQN__Group_1__0__Impl : ( '.' ) ;
+    // InternalCubeDSL.g:6634:1: rule__LFQN__Group_1__0__Impl : ( '.' ) ;
     public final void rule__LFQN__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6393:1: ( ( '.' ) )
-            // InternalCubeDSL.g:6394:1: ( '.' )
+            // InternalCubeDSL.g:6638:1: ( ( '.' ) )
+            // InternalCubeDSL.g:6639:1: ( '.' )
             {
-            // InternalCubeDSL.g:6394:1: ( '.' )
-            // InternalCubeDSL.g:6395:2: '.'
+            // InternalCubeDSL.g:6639:1: ( '.' )
+            // InternalCubeDSL.g:6640:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLFQNAccess().getFullStopKeyword_1_0()); 
@@ -22680,14 +23502,14 @@
 
 
     // $ANTLR start "rule__LFQN__Group_1__1"
-    // InternalCubeDSL.g:6404:1: rule__LFQN__Group_1__1 : rule__LFQN__Group_1__1__Impl ;
+    // InternalCubeDSL.g:6649:1: rule__LFQN__Group_1__1 : rule__LFQN__Group_1__1__Impl ;
     public final void rule__LFQN__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6408:1: ( rule__LFQN__Group_1__1__Impl )
-            // InternalCubeDSL.g:6409:2: rule__LFQN__Group_1__1__Impl
+            // InternalCubeDSL.g:6653:1: ( rule__LFQN__Group_1__1__Impl )
+            // InternalCubeDSL.g:6654:2: rule__LFQN__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LFQN__Group_1__1__Impl();
@@ -22713,17 +23535,17 @@
 
 
     // $ANTLR start "rule__LFQN__Group_1__1__Impl"
-    // InternalCubeDSL.g:6415:1: rule__LFQN__Group_1__1__Impl : ( RULE_ID ) ;
+    // InternalCubeDSL.g:6660:1: rule__LFQN__Group_1__1__Impl : ( RULE_ID ) ;
     public final void rule__LFQN__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6419:1: ( ( RULE_ID ) )
-            // InternalCubeDSL.g:6420:1: ( RULE_ID )
+            // InternalCubeDSL.g:6664:1: ( ( RULE_ID ) )
+            // InternalCubeDSL.g:6665:1: ( RULE_ID )
             {
-            // InternalCubeDSL.g:6420:1: ( RULE_ID )
-            // InternalCubeDSL.g:6421:2: RULE_ID
+            // InternalCubeDSL.g:6665:1: ( RULE_ID )
+            // InternalCubeDSL.g:6666:2: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLFQNAccess().getIDTerminalRuleCall_1_1()); 
@@ -22754,14 +23576,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0"
-    // InternalCubeDSL.g:6431:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+    // InternalCubeDSL.g:6676:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
     public final void rule__XImportDeclaration__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6435:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
-            // InternalCubeDSL.g:6436:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+            // InternalCubeDSL.g:6680:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+            // InternalCubeDSL.g:6681:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
             {
             pushFollow(FOLLOW_38);
             rule__XImportDeclaration__Group__0__Impl();
@@ -22792,23 +23614,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
-    // InternalCubeDSL.g:6443:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:6688:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6447:1: ( ( () ) )
-            // InternalCubeDSL.g:6448:1: ( () )
+            // InternalCubeDSL.g:6692:1: ( ( () ) )
+            // InternalCubeDSL.g:6693:1: ( () )
             {
-            // InternalCubeDSL.g:6448:1: ( () )
-            // InternalCubeDSL.g:6449:2: ()
+            // InternalCubeDSL.g:6693:1: ( () )
+            // InternalCubeDSL.g:6694:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
             }
-            // InternalCubeDSL.g:6450:2: ()
-            // InternalCubeDSL.g:6450:3: 
+            // InternalCubeDSL.g:6695:2: ()
+            // InternalCubeDSL.g:6695:3: 
             {
             }
 
@@ -22833,14 +23655,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1"
-    // InternalCubeDSL.g:6458:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+    // InternalCubeDSL.g:6703:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
     public final void rule__XImportDeclaration__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6462:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
-            // InternalCubeDSL.g:6463:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+            // InternalCubeDSL.g:6707:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+            // InternalCubeDSL.g:6708:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
             {
             pushFollow(FOLLOW_39);
             rule__XImportDeclaration__Group__1__Impl();
@@ -22871,17 +23693,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
-    // InternalCubeDSL.g:6470:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
+    // InternalCubeDSL.g:6715:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
     public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6474:1: ( ( 'import' ) )
-            // InternalCubeDSL.g:6475:1: ( 'import' )
+            // InternalCubeDSL.g:6719:1: ( ( 'import' ) )
+            // InternalCubeDSL.g:6720:1: ( 'import' )
             {
-            // InternalCubeDSL.g:6475:1: ( 'import' )
-            // InternalCubeDSL.g:6476:2: 'import'
+            // InternalCubeDSL.g:6720:1: ( 'import' )
+            // InternalCubeDSL.g:6721:2: 'import'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
@@ -22912,14 +23734,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2"
-    // InternalCubeDSL.g:6485:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
+    // InternalCubeDSL.g:6730:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
     public final void rule__XImportDeclaration__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6489:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
-            // InternalCubeDSL.g:6490:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
+            // InternalCubeDSL.g:6734:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
+            // InternalCubeDSL.g:6735:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
             {
             pushFollow(FOLLOW_40);
             rule__XImportDeclaration__Group__2__Impl();
@@ -22950,23 +23772,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
-    // InternalCubeDSL.g:6497:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
+    // InternalCubeDSL.g:6742:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
     public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6501:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
-            // InternalCubeDSL.g:6502:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalCubeDSL.g:6746:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
+            // InternalCubeDSL.g:6747:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
             {
-            // InternalCubeDSL.g:6502:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
-            // InternalCubeDSL.g:6503:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalCubeDSL.g:6747:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalCubeDSL.g:6748:2: ( rule__XImportDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalCubeDSL.g:6504:2: ( rule__XImportDeclaration__Alternatives_2 )
-            // InternalCubeDSL.g:6504:3: rule__XImportDeclaration__Alternatives_2
+            // InternalCubeDSL.g:6749:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalCubeDSL.g:6749:3: rule__XImportDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2();
@@ -23001,14 +23823,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3"
-    // InternalCubeDSL.g:6512:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
+    // InternalCubeDSL.g:6757:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
     public final void rule__XImportDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6516:1: ( rule__XImportDeclaration__Group__3__Impl )
-            // InternalCubeDSL.g:6517:2: rule__XImportDeclaration__Group__3__Impl
+            // InternalCubeDSL.g:6761:1: ( rule__XImportDeclaration__Group__3__Impl )
+            // InternalCubeDSL.g:6762:2: rule__XImportDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group__3__Impl();
@@ -23034,31 +23856,31 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group__3__Impl"
-    // InternalCubeDSL.g:6523:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
+    // InternalCubeDSL.g:6768:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
     public final void rule__XImportDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6527:1: ( ( ( ';' )? ) )
-            // InternalCubeDSL.g:6528:1: ( ( ';' )? )
+            // InternalCubeDSL.g:6772:1: ( ( ( ';' )? ) )
+            // InternalCubeDSL.g:6773:1: ( ( ';' )? )
             {
-            // InternalCubeDSL.g:6528:1: ( ( ';' )? )
-            // InternalCubeDSL.g:6529:2: ( ';' )?
+            // InternalCubeDSL.g:6773:1: ( ( ';' )? )
+            // InternalCubeDSL.g:6774:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
             }
-            // InternalCubeDSL.g:6530:2: ( ';' )?
-            int alt74=2;
-            int LA74_0 = input.LA(1);
+            // InternalCubeDSL.g:6775:2: ( ';' )?
+            int alt77=2;
+            int LA77_0 = input.LA(1);
 
-            if ( (LA74_0==86) ) {
-                alt74=1;
+            if ( (LA77_0==86) ) {
+                alt77=1;
             }
-            switch (alt74) {
+            switch (alt77) {
                 case 1 :
-                    // InternalCubeDSL.g:6530:3: ';'
+                    // InternalCubeDSL.g:6775:3: ';'
                     {
                     match(input,86,FOLLOW_2); if (state.failed) return ;
 
@@ -23092,14 +23914,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0"
-    // InternalCubeDSL.g:6539:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
+    // InternalCubeDSL.g:6784:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
     public final void rule__XImportDeclaration__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6543:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
-            // InternalCubeDSL.g:6544:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
+            // InternalCubeDSL.g:6788:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
+            // InternalCubeDSL.g:6789:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
             {
             pushFollow(FOLLOW_41);
             rule__XImportDeclaration__Group_2_0__0__Impl();
@@ -23130,23 +23952,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__0__Impl"
-    // InternalCubeDSL.g:6551:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
+    // InternalCubeDSL.g:6796:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6555:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
-            // InternalCubeDSL.g:6556:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalCubeDSL.g:6800:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
+            // InternalCubeDSL.g:6801:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
             {
-            // InternalCubeDSL.g:6556:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
-            // InternalCubeDSL.g:6557:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalCubeDSL.g:6801:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalCubeDSL.g:6802:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
             }
-            // InternalCubeDSL.g:6558:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
-            // InternalCubeDSL.g:6558:3: rule__XImportDeclaration__StaticAssignment_2_0_0
+            // InternalCubeDSL.g:6803:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalCubeDSL.g:6803:3: rule__XImportDeclaration__StaticAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__StaticAssignment_2_0_0();
@@ -23181,14 +24003,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1"
-    // InternalCubeDSL.g:6566:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
+    // InternalCubeDSL.g:6811:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
     public final void rule__XImportDeclaration__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6570:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
-            // InternalCubeDSL.g:6571:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
+            // InternalCubeDSL.g:6815:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
+            // InternalCubeDSL.g:6816:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
             {
             pushFollow(FOLLOW_41);
             rule__XImportDeclaration__Group_2_0__1__Impl();
@@ -23219,31 +24041,31 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__1__Impl"
-    // InternalCubeDSL.g:6578:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
+    // InternalCubeDSL.g:6823:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
     public final void rule__XImportDeclaration__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6582:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
-            // InternalCubeDSL.g:6583:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalCubeDSL.g:6827:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
+            // InternalCubeDSL.g:6828:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
             {
-            // InternalCubeDSL.g:6583:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
-            // InternalCubeDSL.g:6584:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            // InternalCubeDSL.g:6828:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalCubeDSL.g:6829:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
             }
-            // InternalCubeDSL.g:6585:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
-            int alt75=2;
-            int LA75_0 = input.LA(1);
+            // InternalCubeDSL.g:6830:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            int alt78=2;
+            int LA78_0 = input.LA(1);
 
-            if ( (LA75_0==48) ) {
-                alt75=1;
+            if ( (LA78_0==48) ) {
+                alt78=1;
             }
-            switch (alt75) {
+            switch (alt78) {
                 case 1 :
-                    // InternalCubeDSL.g:6585:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
+                    // InternalCubeDSL.g:6830:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XImportDeclaration__ExtensionAssignment_2_0_1();
@@ -23281,14 +24103,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2"
-    // InternalCubeDSL.g:6593:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
+    // InternalCubeDSL.g:6838:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
     public final void rule__XImportDeclaration__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6597:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
-            // InternalCubeDSL.g:6598:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
+            // InternalCubeDSL.g:6842:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
+            // InternalCubeDSL.g:6843:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
             {
             pushFollow(FOLLOW_42);
             rule__XImportDeclaration__Group_2_0__2__Impl();
@@ -23319,23 +24141,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__2__Impl"
-    // InternalCubeDSL.g:6605:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
+    // InternalCubeDSL.g:6850:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6609:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
-            // InternalCubeDSL.g:6610:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalCubeDSL.g:6854:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
+            // InternalCubeDSL.g:6855:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
             {
-            // InternalCubeDSL.g:6610:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
-            // InternalCubeDSL.g:6611:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalCubeDSL.g:6855:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalCubeDSL.g:6856:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
             }
-            // InternalCubeDSL.g:6612:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
-            // InternalCubeDSL.g:6612:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+            // InternalCubeDSL.g:6857:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalCubeDSL.g:6857:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedTypeAssignment_2_0_2();
@@ -23370,14 +24192,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3"
-    // InternalCubeDSL.g:6620:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
+    // InternalCubeDSL.g:6865:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
     public final void rule__XImportDeclaration__Group_2_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6624:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
-            // InternalCubeDSL.g:6625:2: rule__XImportDeclaration__Group_2_0__3__Impl
+            // InternalCubeDSL.g:6869:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
+            // InternalCubeDSL.g:6870:2: rule__XImportDeclaration__Group_2_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_0__3__Impl();
@@ -23403,23 +24225,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_0__3__Impl"
-    // InternalCubeDSL.g:6631:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
+    // InternalCubeDSL.g:6876:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
     public final void rule__XImportDeclaration__Group_2_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6635:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
-            // InternalCubeDSL.g:6636:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalCubeDSL.g:6880:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
+            // InternalCubeDSL.g:6881:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
             {
-            // InternalCubeDSL.g:6636:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
-            // InternalCubeDSL.g:6637:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalCubeDSL.g:6881:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalCubeDSL.g:6882:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
             }
-            // InternalCubeDSL.g:6638:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
-            // InternalCubeDSL.g:6638:3: rule__XImportDeclaration__Alternatives_2_0_3
+            // InternalCubeDSL.g:6883:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalCubeDSL.g:6883:3: rule__XImportDeclaration__Alternatives_2_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Alternatives_2_0_3();
@@ -23454,14 +24276,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0"
-    // InternalCubeDSL.g:6647:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
+    // InternalCubeDSL.g:6892:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
     public final void rule__XImportDeclaration__Group_2_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6651:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
-            // InternalCubeDSL.g:6652:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
+            // InternalCubeDSL.g:6896:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
+            // InternalCubeDSL.g:6897:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
             {
             pushFollow(FOLLOW_6);
             rule__XImportDeclaration__Group_2_3__0__Impl();
@@ -23492,23 +24314,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__0__Impl"
-    // InternalCubeDSL.g:6659:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
+    // InternalCubeDSL.g:6904:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
     public final void rule__XImportDeclaration__Group_2_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6663:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
-            // InternalCubeDSL.g:6664:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalCubeDSL.g:6908:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
+            // InternalCubeDSL.g:6909:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
             {
-            // InternalCubeDSL.g:6664:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
-            // InternalCubeDSL.g:6665:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalCubeDSL.g:6909:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalCubeDSL.g:6910:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
             }
-            // InternalCubeDSL.g:6666:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
-            // InternalCubeDSL.g:6666:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
+            // InternalCubeDSL.g:6911:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalCubeDSL.g:6911:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__FqnImportAssignment_2_3_0();
@@ -23543,14 +24365,14 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1"
-    // InternalCubeDSL.g:6674:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
+    // InternalCubeDSL.g:6919:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
     public final void rule__XImportDeclaration__Group_2_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6678:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
-            // InternalCubeDSL.g:6679:2: rule__XImportDeclaration__Group_2_3__1__Impl
+            // InternalCubeDSL.g:6923:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
+            // InternalCubeDSL.g:6924:2: rule__XImportDeclaration__Group_2_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__Group_2_3__1__Impl();
@@ -23576,23 +24398,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__Group_2_3__1__Impl"
-    // InternalCubeDSL.g:6685:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
+    // InternalCubeDSL.g:6930:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
     public final void rule__XImportDeclaration__Group_2_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6689:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
-            // InternalCubeDSL.g:6690:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalCubeDSL.g:6934:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
+            // InternalCubeDSL.g:6935:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
             {
-            // InternalCubeDSL.g:6690:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
-            // InternalCubeDSL.g:6691:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalCubeDSL.g:6935:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalCubeDSL.g:6936:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
             }
-            // InternalCubeDSL.g:6692:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
-            // InternalCubeDSL.g:6692:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+            // InternalCubeDSL.g:6937:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalCubeDSL.g:6937:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1();
@@ -23627,14 +24449,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0"
-    // InternalCubeDSL.g:6701:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
+    // InternalCubeDSL.g:6946:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
     public final void rule__XAnnotation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6705:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
-            // InternalCubeDSL.g:6706:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
+            // InternalCubeDSL.g:6950:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
+            // InternalCubeDSL.g:6951:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
             {
             pushFollow(FOLLOW_43);
             rule__XAnnotation__Group__0__Impl();
@@ -23665,23 +24487,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__0__Impl"
-    // InternalCubeDSL.g:6713:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:6958:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
     public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6717:1: ( ( () ) )
-            // InternalCubeDSL.g:6718:1: ( () )
+            // InternalCubeDSL.g:6962:1: ( ( () ) )
+            // InternalCubeDSL.g:6963:1: ( () )
             {
-            // InternalCubeDSL.g:6718:1: ( () )
-            // InternalCubeDSL.g:6719:2: ()
+            // InternalCubeDSL.g:6963:1: ( () )
+            // InternalCubeDSL.g:6964:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
             }
-            // InternalCubeDSL.g:6720:2: ()
-            // InternalCubeDSL.g:6720:3: 
+            // InternalCubeDSL.g:6965:2: ()
+            // InternalCubeDSL.g:6965:3: 
             {
             }
 
@@ -23706,14 +24528,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1"
-    // InternalCubeDSL.g:6728:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
+    // InternalCubeDSL.g:6973:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
     public final void rule__XAnnotation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6732:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
-            // InternalCubeDSL.g:6733:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
+            // InternalCubeDSL.g:6977:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
+            // InternalCubeDSL.g:6978:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
             {
             pushFollow(FOLLOW_6);
             rule__XAnnotation__Group__1__Impl();
@@ -23744,17 +24566,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__1__Impl"
-    // InternalCubeDSL.g:6740:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
+    // InternalCubeDSL.g:6985:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
     public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6744:1: ( ( '@' ) )
-            // InternalCubeDSL.g:6745:1: ( '@' )
+            // InternalCubeDSL.g:6989:1: ( ( '@' ) )
+            // InternalCubeDSL.g:6990:1: ( '@' )
             {
-            // InternalCubeDSL.g:6745:1: ( '@' )
-            // InternalCubeDSL.g:6746:2: '@'
+            // InternalCubeDSL.g:6990:1: ( '@' )
+            // InternalCubeDSL.g:6991:2: '@'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
@@ -23785,14 +24607,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2"
-    // InternalCubeDSL.g:6755:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
+    // InternalCubeDSL.g:7000:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
     public final void rule__XAnnotation__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6759:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
-            // InternalCubeDSL.g:6760:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
+            // InternalCubeDSL.g:7004:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
+            // InternalCubeDSL.g:7005:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
             {
             pushFollow(FOLLOW_44);
             rule__XAnnotation__Group__2__Impl();
@@ -23823,23 +24645,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__2__Impl"
-    // InternalCubeDSL.g:6767:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
+    // InternalCubeDSL.g:7012:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
     public final void rule__XAnnotation__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6771:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
-            // InternalCubeDSL.g:6772:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalCubeDSL.g:7016:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
+            // InternalCubeDSL.g:7017:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
             {
-            // InternalCubeDSL.g:6772:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
-            // InternalCubeDSL.g:6773:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalCubeDSL.g:7017:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalCubeDSL.g:7018:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
             }
-            // InternalCubeDSL.g:6774:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
-            // InternalCubeDSL.g:6774:3: rule__XAnnotation__AnnotationTypeAssignment_2
+            // InternalCubeDSL.g:7019:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalCubeDSL.g:7019:3: rule__XAnnotation__AnnotationTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__AnnotationTypeAssignment_2();
@@ -23874,14 +24696,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3"
-    // InternalCubeDSL.g:6782:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
+    // InternalCubeDSL.g:7027:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
     public final void rule__XAnnotation__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6786:1: ( rule__XAnnotation__Group__3__Impl )
-            // InternalCubeDSL.g:6787:2: rule__XAnnotation__Group__3__Impl
+            // InternalCubeDSL.g:7031:1: ( rule__XAnnotation__Group__3__Impl )
+            // InternalCubeDSL.g:7032:2: rule__XAnnotation__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group__3__Impl();
@@ -23907,31 +24729,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group__3__Impl"
-    // InternalCubeDSL.g:6793:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
+    // InternalCubeDSL.g:7038:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
     public final void rule__XAnnotation__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6797:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
-            // InternalCubeDSL.g:6798:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalCubeDSL.g:7042:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
+            // InternalCubeDSL.g:7043:1: ( ( rule__XAnnotation__Group_3__0 )? )
             {
-            // InternalCubeDSL.g:6798:1: ( ( rule__XAnnotation__Group_3__0 )? )
-            // InternalCubeDSL.g:6799:2: ( rule__XAnnotation__Group_3__0 )?
+            // InternalCubeDSL.g:7043:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalCubeDSL.g:7044:2: ( rule__XAnnotation__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3()); 
             }
-            // InternalCubeDSL.g:6800:2: ( rule__XAnnotation__Group_3__0 )?
-            int alt76=2;
-            int LA76_0 = input.LA(1);
+            // InternalCubeDSL.g:7045:2: ( rule__XAnnotation__Group_3__0 )?
+            int alt79=2;
+            int LA79_0 = input.LA(1);
 
-            if ( (LA76_0==88) ) {
-                alt76=1;
+            if ( (LA79_0==88) ) {
+                alt79=1;
             }
-            switch (alt76) {
+            switch (alt79) {
                 case 1 :
-                    // InternalCubeDSL.g:6800:3: rule__XAnnotation__Group_3__0
+                    // InternalCubeDSL.g:7045:3: rule__XAnnotation__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Group_3__0();
@@ -23969,14 +24791,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0"
-    // InternalCubeDSL.g:6809:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
+    // InternalCubeDSL.g:7054:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
     public final void rule__XAnnotation__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6813:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
-            // InternalCubeDSL.g:6814:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
+            // InternalCubeDSL.g:7058:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
+            // InternalCubeDSL.g:7059:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
             {
             pushFollow(FOLLOW_45);
             rule__XAnnotation__Group_3__0__Impl();
@@ -24007,23 +24829,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__0__Impl"
-    // InternalCubeDSL.g:6821:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
+    // InternalCubeDSL.g:7066:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
     public final void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6825:1: ( ( ( '(' ) ) )
-            // InternalCubeDSL.g:6826:1: ( ( '(' ) )
+            // InternalCubeDSL.g:7070:1: ( ( ( '(' ) ) )
+            // InternalCubeDSL.g:7071:1: ( ( '(' ) )
             {
-            // InternalCubeDSL.g:6826:1: ( ( '(' ) )
-            // InternalCubeDSL.g:6827:2: ( '(' )
+            // InternalCubeDSL.g:7071:1: ( ( '(' ) )
+            // InternalCubeDSL.g:7072:2: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
             }
-            // InternalCubeDSL.g:6828:2: ( '(' )
-            // InternalCubeDSL.g:6828:3: '('
+            // InternalCubeDSL.g:7073:2: ( '(' )
+            // InternalCubeDSL.g:7073:3: '('
             {
             match(input,88,FOLLOW_2); if (state.failed) return ;
 
@@ -24054,14 +24876,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1"
-    // InternalCubeDSL.g:6836:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
+    // InternalCubeDSL.g:7081:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
     public final void rule__XAnnotation__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6840:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
-            // InternalCubeDSL.g:6841:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
+            // InternalCubeDSL.g:7085:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
+            // InternalCubeDSL.g:7086:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
             {
             pushFollow(FOLLOW_45);
             rule__XAnnotation__Group_3__1__Impl();
@@ -24092,31 +24914,31 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__1__Impl"
-    // InternalCubeDSL.g:6848:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
+    // InternalCubeDSL.g:7093:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
     public final void rule__XAnnotation__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6852:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
-            // InternalCubeDSL.g:6853:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalCubeDSL.g:7097:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
+            // InternalCubeDSL.g:7098:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
             {
-            // InternalCubeDSL.g:6853:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
-            // InternalCubeDSL.g:6854:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            // InternalCubeDSL.g:7098:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalCubeDSL.g:7099:2: ( rule__XAnnotation__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
             }
-            // InternalCubeDSL.g:6855:2: ( rule__XAnnotation__Alternatives_3_1 )?
-            int alt77=2;
-            int LA77_0 = input.LA(1);
+            // InternalCubeDSL.g:7100:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            int alt80=2;
+            int LA80_0 = input.LA(1);
 
-            if ( ((LA77_0>=RULE_ID && LA77_0<=RULE_DECIMAL)||LA77_0==27||(LA77_0>=34 && LA77_0<=35)||LA77_0==40||(LA77_0>=45 && LA77_0<=50)||LA77_0==74||(LA77_0>=87 && LA77_0<=88)||(LA77_0>=92 && LA77_0<=93)||LA77_0==96||LA77_0==98||(LA77_0>=102 && LA77_0<=110)||LA77_0==112||LA77_0==131) ) {
-                alt77=1;
+            if ( ((LA80_0>=RULE_ID && LA80_0<=RULE_DECIMAL)||LA80_0==27||(LA80_0>=34 && LA80_0<=35)||LA80_0==40||(LA80_0>=45 && LA80_0<=50)||LA80_0==74||(LA80_0>=87 && LA80_0<=88)||(LA80_0>=92 && LA80_0<=93)||LA80_0==96||LA80_0==98||(LA80_0>=102 && LA80_0<=110)||LA80_0==112||LA80_0==134) ) {
+                alt80=1;
             }
-            switch (alt77) {
+            switch (alt80) {
                 case 1 :
-                    // InternalCubeDSL.g:6855:3: rule__XAnnotation__Alternatives_3_1
+                    // InternalCubeDSL.g:7100:3: rule__XAnnotation__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotation__Alternatives_3_1();
@@ -24154,14 +24976,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2"
-    // InternalCubeDSL.g:6863:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
+    // InternalCubeDSL.g:7108:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
     public final void rule__XAnnotation__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6867:1: ( rule__XAnnotation__Group_3__2__Impl )
-            // InternalCubeDSL.g:6868:2: rule__XAnnotation__Group_3__2__Impl
+            // InternalCubeDSL.g:7112:1: ( rule__XAnnotation__Group_3__2__Impl )
+            // InternalCubeDSL.g:7113:2: rule__XAnnotation__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3__2__Impl();
@@ -24187,17 +25009,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3__2__Impl"
-    // InternalCubeDSL.g:6874:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:7119:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6878:1: ( ( ')' ) )
-            // InternalCubeDSL.g:6879:1: ( ')' )
+            // InternalCubeDSL.g:7123:1: ( ( ')' ) )
+            // InternalCubeDSL.g:7124:1: ( ')' )
             {
-            // InternalCubeDSL.g:6879:1: ( ')' )
-            // InternalCubeDSL.g:6880:2: ')'
+            // InternalCubeDSL.g:7124:1: ( ')' )
+            // InternalCubeDSL.g:7125:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
@@ -24228,14 +25050,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0"
-    // InternalCubeDSL.g:6890:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
+    // InternalCubeDSL.g:7135:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
     public final void rule__XAnnotation__Group_3_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6894:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
-            // InternalCubeDSL.g:6895:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
+            // InternalCubeDSL.g:7139:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
+            // InternalCubeDSL.g:7140:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
             {
             pushFollow(FOLLOW_46);
             rule__XAnnotation__Group_3_1_0__0__Impl();
@@ -24266,23 +25088,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__0__Impl"
-    // InternalCubeDSL.g:6902:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
+    // InternalCubeDSL.g:7147:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
     public final void rule__XAnnotation__Group_3_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6906:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
-            // InternalCubeDSL.g:6907:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalCubeDSL.g:7151:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
+            // InternalCubeDSL.g:7152:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
             {
-            // InternalCubeDSL.g:6907:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
-            // InternalCubeDSL.g:6908:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalCubeDSL.g:7152:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalCubeDSL.g:7153:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
             }
-            // InternalCubeDSL.g:6909:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
-            // InternalCubeDSL.g:6909:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+            // InternalCubeDSL.g:7154:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalCubeDSL.g:7154:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0();
@@ -24317,14 +25139,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1"
-    // InternalCubeDSL.g:6917:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
+    // InternalCubeDSL.g:7162:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
     public final void rule__XAnnotation__Group_3_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6921:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
-            // InternalCubeDSL.g:6922:2: rule__XAnnotation__Group_3_1_0__1__Impl
+            // InternalCubeDSL.g:7166:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
+            // InternalCubeDSL.g:7167:2: rule__XAnnotation__Group_3_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0__1__Impl();
@@ -24350,35 +25172,35 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0__1__Impl"
-    // InternalCubeDSL.g:6928:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
+    // InternalCubeDSL.g:7173:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
     public final void rule__XAnnotation__Group_3_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6932:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
-            // InternalCubeDSL.g:6933:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalCubeDSL.g:7177:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
+            // InternalCubeDSL.g:7178:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
             {
-            // InternalCubeDSL.g:6933:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
-            // InternalCubeDSL.g:6934:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            // InternalCubeDSL.g:7178:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalCubeDSL.g:7179:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
             }
-            // InternalCubeDSL.g:6935:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
-            loop78:
+            // InternalCubeDSL.g:7180:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            loop81:
             do {
-                int alt78=2;
-                int LA78_0 = input.LA(1);
+                int alt81=2;
+                int LA81_0 = input.LA(1);
 
-                if ( (LA78_0==90) ) {
-                    alt78=1;
+                if ( (LA81_0==90) ) {
+                    alt81=1;
                 }
 
 
-                switch (alt78) {
+                switch (alt81) {
             	case 1 :
-            	    // InternalCubeDSL.g:6935:3: rule__XAnnotation__Group_3_1_0_1__0
+            	    // InternalCubeDSL.g:7180:3: rule__XAnnotation__Group_3_1_0_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XAnnotation__Group_3_1_0_1__0();
@@ -24390,7 +25212,7 @@
             	    break;
 
             	default :
-            	    break loop78;
+            	    break loop81;
                 }
             } while (true);
 
@@ -24419,14 +25241,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0"
-    // InternalCubeDSL.g:6944:1: rule__XAnnotation__Group_3_1_0_1__0 : rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 ;
+    // InternalCubeDSL.g:7189:1: rule__XAnnotation__Group_3_1_0_1__0 : rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 ;
     public final void rule__XAnnotation__Group_3_1_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6948:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
-            // InternalCubeDSL.g:6949:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
+            // InternalCubeDSL.g:7193:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
+            // InternalCubeDSL.g:7194:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
             {
             pushFollow(FOLLOW_6);
             rule__XAnnotation__Group_3_1_0_1__0__Impl();
@@ -24457,17 +25279,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0__Impl"
-    // InternalCubeDSL.g:6956:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:7201:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotation__Group_3_1_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6960:1: ( ( ',' ) )
-            // InternalCubeDSL.g:6961:1: ( ',' )
+            // InternalCubeDSL.g:7205:1: ( ( ',' ) )
+            // InternalCubeDSL.g:7206:1: ( ',' )
             {
-            // InternalCubeDSL.g:6961:1: ( ',' )
-            // InternalCubeDSL.g:6962:2: ','
+            // InternalCubeDSL.g:7206:1: ( ',' )
+            // InternalCubeDSL.g:7207:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
@@ -24498,14 +25320,14 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1"
-    // InternalCubeDSL.g:6971:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
+    // InternalCubeDSL.g:7216:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
     public final void rule__XAnnotation__Group_3_1_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6975:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
-            // InternalCubeDSL.g:6976:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
+            // InternalCubeDSL.g:7220:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
+            // InternalCubeDSL.g:7221:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__Group_3_1_0_1__1__Impl();
@@ -24531,23 +25353,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1__Impl"
-    // InternalCubeDSL.g:6982:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
+    // InternalCubeDSL.g:7227:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
     public final void rule__XAnnotation__Group_3_1_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:6986:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
-            // InternalCubeDSL.g:6987:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalCubeDSL.g:7231:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
+            // InternalCubeDSL.g:7232:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
             {
-            // InternalCubeDSL.g:6987:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
-            // InternalCubeDSL.g:6988:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalCubeDSL.g:7232:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalCubeDSL.g:7233:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
             }
-            // InternalCubeDSL.g:6989:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
-            // InternalCubeDSL.g:6989:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+            // InternalCubeDSL.g:7234:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalCubeDSL.g:7234:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1();
@@ -24582,14 +25404,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0"
-    // InternalCubeDSL.g:6998:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
+    // InternalCubeDSL.g:7243:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
     public final void rule__XAnnotationElementValuePair__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7002:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
-            // InternalCubeDSL.g:7003:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
+            // InternalCubeDSL.g:7247:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
+            // InternalCubeDSL.g:7248:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
             {
             pushFollow(FOLLOW_48);
             rule__XAnnotationElementValuePair__Group__0__Impl();
@@ -24620,23 +25442,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__0__Impl"
-    // InternalCubeDSL.g:7010:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
+    // InternalCubeDSL.g:7255:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7014:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
-            // InternalCubeDSL.g:7015:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalCubeDSL.g:7259:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
+            // InternalCubeDSL.g:7260:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
             {
-            // InternalCubeDSL.g:7015:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
-            // InternalCubeDSL.g:7016:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalCubeDSL.g:7260:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalCubeDSL.g:7261:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
             }
-            // InternalCubeDSL.g:7017:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
-            // InternalCubeDSL.g:7017:3: rule__XAnnotationElementValuePair__Group_0__0
+            // InternalCubeDSL.g:7262:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalCubeDSL.g:7262:3: rule__XAnnotationElementValuePair__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0();
@@ -24671,14 +25493,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1"
-    // InternalCubeDSL.g:7025:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
+    // InternalCubeDSL.g:7270:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
     public final void rule__XAnnotationElementValuePair__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7029:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
-            // InternalCubeDSL.g:7030:2: rule__XAnnotationElementValuePair__Group__1__Impl
+            // InternalCubeDSL.g:7274:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
+            // InternalCubeDSL.g:7275:2: rule__XAnnotationElementValuePair__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group__1__Impl();
@@ -24704,23 +25526,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group__1__Impl"
-    // InternalCubeDSL.g:7036:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
+    // InternalCubeDSL.g:7281:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7040:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
-            // InternalCubeDSL.g:7041:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalCubeDSL.g:7285:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
+            // InternalCubeDSL.g:7286:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
             {
-            // InternalCubeDSL.g:7041:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
-            // InternalCubeDSL.g:7042:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalCubeDSL.g:7286:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalCubeDSL.g:7287:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
             }
-            // InternalCubeDSL.g:7043:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
-            // InternalCubeDSL.g:7043:3: rule__XAnnotationElementValuePair__ValueAssignment_1
+            // InternalCubeDSL.g:7288:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalCubeDSL.g:7288:3: rule__XAnnotationElementValuePair__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ValueAssignment_1();
@@ -24755,14 +25577,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0"
-    // InternalCubeDSL.g:7052:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
+    // InternalCubeDSL.g:7297:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
     public final void rule__XAnnotationElementValuePair__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7056:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
-            // InternalCubeDSL.g:7057:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
+            // InternalCubeDSL.g:7301:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
+            // InternalCubeDSL.g:7302:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0__0__Impl();
@@ -24788,23 +25610,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0__Impl"
-    // InternalCubeDSL.g:7063:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
+    // InternalCubeDSL.g:7308:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7067:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
-            // InternalCubeDSL.g:7068:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalCubeDSL.g:7312:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
+            // InternalCubeDSL.g:7313:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
             {
-            // InternalCubeDSL.g:7068:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
-            // InternalCubeDSL.g:7069:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalCubeDSL.g:7313:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalCubeDSL.g:7314:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
             }
-            // InternalCubeDSL.g:7070:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
-            // InternalCubeDSL.g:7070:3: rule__XAnnotationElementValuePair__Group_0_0__0
+            // InternalCubeDSL.g:7315:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalCubeDSL.g:7315:3: rule__XAnnotationElementValuePair__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__0();
@@ -24839,14 +25661,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0"
-    // InternalCubeDSL.g:7079:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
+    // InternalCubeDSL.g:7324:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7083:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
-            // InternalCubeDSL.g:7084:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
+            // InternalCubeDSL.g:7328:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
+            // InternalCubeDSL.g:7329:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
             {
             pushFollow(FOLLOW_49);
             rule__XAnnotationElementValuePair__Group_0_0__0__Impl();
@@ -24877,23 +25699,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
-    // InternalCubeDSL.g:7091:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
+    // InternalCubeDSL.g:7336:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7095:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
-            // InternalCubeDSL.g:7096:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalCubeDSL.g:7340:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
+            // InternalCubeDSL.g:7341:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
             {
-            // InternalCubeDSL.g:7096:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
-            // InternalCubeDSL.g:7097:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalCubeDSL.g:7341:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalCubeDSL.g:7342:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
             }
-            // InternalCubeDSL.g:7098:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
-            // InternalCubeDSL.g:7098:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+            // InternalCubeDSL.g:7343:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalCubeDSL.g:7343:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__ElementAssignment_0_0_0();
@@ -24928,14 +25750,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1"
-    // InternalCubeDSL.g:7106:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
+    // InternalCubeDSL.g:7351:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7110:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
-            // InternalCubeDSL.g:7111:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+            // InternalCubeDSL.g:7355:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
+            // InternalCubeDSL.g:7356:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValuePair__Group_0_0__1__Impl();
@@ -24961,17 +25783,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
-    // InternalCubeDSL.g:7117:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
+    // InternalCubeDSL.g:7362:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
     public final void rule__XAnnotationElementValuePair__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7121:1: ( ( '=' ) )
-            // InternalCubeDSL.g:7122:1: ( '=' )
+            // InternalCubeDSL.g:7366:1: ( ( '=' ) )
+            // InternalCubeDSL.g:7367:1: ( '=' )
             {
-            // InternalCubeDSL.g:7122:1: ( '=' )
-            // InternalCubeDSL.g:7123:2: '='
+            // InternalCubeDSL.g:7367:1: ( '=' )
+            // InternalCubeDSL.g:7368:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
@@ -25002,14 +25824,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0"
-    // InternalCubeDSL.g:7133:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
+    // InternalCubeDSL.g:7378:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7137:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
-            // InternalCubeDSL.g:7138:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
+            // InternalCubeDSL.g:7382:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
+            // InternalCubeDSL.g:7383:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
             {
             pushFollow(FOLLOW_50);
             rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl();
@@ -25040,23 +25862,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
-    // InternalCubeDSL.g:7145:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
+    // InternalCubeDSL.g:7390:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7149:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
-            // InternalCubeDSL.g:7150:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalCubeDSL.g:7394:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
+            // InternalCubeDSL.g:7395:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
             {
-            // InternalCubeDSL.g:7150:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
-            // InternalCubeDSL.g:7151:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalCubeDSL.g:7395:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalCubeDSL.g:7396:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
             }
-            // InternalCubeDSL.g:7152:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
-            // InternalCubeDSL.g:7152:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+            // InternalCubeDSL.g:7397:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalCubeDSL.g:7397:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0();
@@ -25091,14 +25913,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1"
-    // InternalCubeDSL.g:7160:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
+    // InternalCubeDSL.g:7405:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7164:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
-            // InternalCubeDSL.g:7165:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
+            // InternalCubeDSL.g:7409:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
+            // InternalCubeDSL.g:7410:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
             {
             pushFollow(FOLLOW_50);
             rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl();
@@ -25129,31 +25951,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
-    // InternalCubeDSL.g:7172:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
+    // InternalCubeDSL.g:7417:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7176:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
-            // InternalCubeDSL.g:7177:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalCubeDSL.g:7421:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
+            // InternalCubeDSL.g:7422:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
             {
-            // InternalCubeDSL.g:7177:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
-            // InternalCubeDSL.g:7178:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            // InternalCubeDSL.g:7422:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalCubeDSL.g:7423:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
             }
-            // InternalCubeDSL.g:7179:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
-            int alt79=2;
-            int LA79_0 = input.LA(1);
+            // InternalCubeDSL.g:7424:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            int alt82=2;
+            int LA82_0 = input.LA(1);
 
-            if ( ((LA79_0>=RULE_ID && LA79_0<=RULE_DECIMAL)||LA79_0==27||(LA79_0>=34 && LA79_0<=35)||LA79_0==40||(LA79_0>=45 && LA79_0<=50)||LA79_0==74||(LA79_0>=87 && LA79_0<=88)||(LA79_0>=92 && LA79_0<=93)||LA79_0==96||LA79_0==98||(LA79_0>=102 && LA79_0<=110)||LA79_0==112||LA79_0==131) ) {
-                alt79=1;
+            if ( ((LA82_0>=RULE_ID && LA82_0<=RULE_DECIMAL)||LA82_0==27||(LA82_0>=34 && LA82_0<=35)||LA82_0==40||(LA82_0>=45 && LA82_0<=50)||LA82_0==74||(LA82_0>=87 && LA82_0<=88)||(LA82_0>=92 && LA82_0<=93)||LA82_0==96||LA82_0==98||(LA82_0>=102 && LA82_0<=110)||LA82_0==112||LA82_0==134) ) {
+                alt82=1;
             }
-            switch (alt79) {
+            switch (alt82) {
                 case 1 :
-                    // InternalCubeDSL.g:7179:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+                    // InternalCubeDSL.g:7424:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_0_1__0();
@@ -25191,14 +26013,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2"
-    // InternalCubeDSL.g:7187:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
+    // InternalCubeDSL.g:7432:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7191:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
-            // InternalCubeDSL.g:7192:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+            // InternalCubeDSL.g:7436:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
+            // InternalCubeDSL.g:7437:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl();
@@ -25224,17 +26046,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
-    // InternalCubeDSL.g:7198:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
+    // InternalCubeDSL.g:7443:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7202:1: ( ( ']' ) )
-            // InternalCubeDSL.g:7203:1: ( ']' )
+            // InternalCubeDSL.g:7447:1: ( ( ']' ) )
+            // InternalCubeDSL.g:7448:1: ( ']' )
             {
-            // InternalCubeDSL.g:7203:1: ( ']' )
-            // InternalCubeDSL.g:7204:2: ']'
+            // InternalCubeDSL.g:7448:1: ( ']' )
+            // InternalCubeDSL.g:7449:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
@@ -25265,14 +26087,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
-    // InternalCubeDSL.g:7214:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
+    // InternalCubeDSL.g:7459:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7218:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
-            // InternalCubeDSL.g:7219:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+            // InternalCubeDSL.g:7463:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
+            // InternalCubeDSL.g:7464:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl();
@@ -25298,23 +26120,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
-    // InternalCubeDSL.g:7225:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
+    // InternalCubeDSL.g:7470:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7229:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
-            // InternalCubeDSL.g:7230:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalCubeDSL.g:7474:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
+            // InternalCubeDSL.g:7475:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
             {
-            // InternalCubeDSL.g:7230:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
-            // InternalCubeDSL.g:7231:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalCubeDSL.g:7475:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalCubeDSL.g:7476:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
             }
-            // InternalCubeDSL.g:7232:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
-            // InternalCubeDSL.g:7232:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+            // InternalCubeDSL.g:7477:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalCubeDSL.g:7477:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0();
@@ -25349,14 +26171,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
-    // InternalCubeDSL.g:7241:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
+    // InternalCubeDSL.g:7486:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7245:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
-            // InternalCubeDSL.g:7246:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+            // InternalCubeDSL.g:7490:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
+            // InternalCubeDSL.g:7491:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
             {
             pushFollow(FOLLOW_51);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl();
@@ -25387,23 +26209,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
-    // InternalCubeDSL.g:7253:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:7498:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7257:1: ( ( () ) )
-            // InternalCubeDSL.g:7258:1: ( () )
+            // InternalCubeDSL.g:7502:1: ( ( () ) )
+            // InternalCubeDSL.g:7503:1: ( () )
             {
-            // InternalCubeDSL.g:7258:1: ( () )
-            // InternalCubeDSL.g:7259:2: ()
+            // InternalCubeDSL.g:7503:1: ( () )
+            // InternalCubeDSL.g:7504:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalCubeDSL.g:7260:2: ()
-            // InternalCubeDSL.g:7260:3: 
+            // InternalCubeDSL.g:7505:2: ()
+            // InternalCubeDSL.g:7505:3: 
             {
             }
 
@@ -25428,14 +26250,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
-    // InternalCubeDSL.g:7268:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
+    // InternalCubeDSL.g:7513:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7272:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
-            // InternalCubeDSL.g:7273:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+            // InternalCubeDSL.g:7517:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
+            // InternalCubeDSL.g:7518:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
             {
             pushFollow(FOLLOW_52);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl();
@@ -25466,17 +26288,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
-    // InternalCubeDSL.g:7280:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalCubeDSL.g:7525:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7284:1: ( ( '#' ) )
-            // InternalCubeDSL.g:7285:1: ( '#' )
+            // InternalCubeDSL.g:7529:1: ( ( '#' ) )
+            // InternalCubeDSL.g:7530:1: ( '#' )
             {
-            // InternalCubeDSL.g:7285:1: ( '#' )
-            // InternalCubeDSL.g:7286:2: '#'
+            // InternalCubeDSL.g:7530:1: ( '#' )
+            // InternalCubeDSL.g:7531:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
@@ -25507,14 +26329,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
-    // InternalCubeDSL.g:7295:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
+    // InternalCubeDSL.g:7540:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7299:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
-            // InternalCubeDSL.g:7300:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+            // InternalCubeDSL.g:7544:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
+            // InternalCubeDSL.g:7545:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl();
@@ -25540,17 +26362,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
-    // InternalCubeDSL.g:7306:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalCubeDSL.g:7551:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7310:1: ( ( '[' ) )
-            // InternalCubeDSL.g:7311:1: ( '[' )
+            // InternalCubeDSL.g:7555:1: ( ( '[' ) )
+            // InternalCubeDSL.g:7556:1: ( '[' )
             {
-            // InternalCubeDSL.g:7311:1: ( '[' )
-            // InternalCubeDSL.g:7312:2: '['
+            // InternalCubeDSL.g:7556:1: ( '[' )
+            // InternalCubeDSL.g:7557:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
@@ -25581,14 +26403,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
-    // InternalCubeDSL.g:7322:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
+    // InternalCubeDSL.g:7567:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7326:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
-            // InternalCubeDSL.g:7327:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+            // InternalCubeDSL.g:7571:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
+            // InternalCubeDSL.g:7572:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl();
@@ -25619,23 +26441,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
-    // InternalCubeDSL.g:7334:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
+    // InternalCubeDSL.g:7579:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7338:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
-            // InternalCubeDSL.g:7339:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalCubeDSL.g:7583:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
+            // InternalCubeDSL.g:7584:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
             {
-            // InternalCubeDSL.g:7339:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
-            // InternalCubeDSL.g:7340:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalCubeDSL.g:7584:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalCubeDSL.g:7585:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalCubeDSL.g:7341:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
-            // InternalCubeDSL.g:7341:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+            // InternalCubeDSL.g:7586:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalCubeDSL.g:7586:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0();
@@ -25670,14 +26492,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
-    // InternalCubeDSL.g:7349:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
+    // InternalCubeDSL.g:7594:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7353:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
-            // InternalCubeDSL.g:7354:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+            // InternalCubeDSL.g:7598:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
+            // InternalCubeDSL.g:7599:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl();
@@ -25703,35 +26525,35 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
-    // InternalCubeDSL.g:7360:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
+    // InternalCubeDSL.g:7605:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7364:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
-            // InternalCubeDSL.g:7365:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalCubeDSL.g:7609:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
+            // InternalCubeDSL.g:7610:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
             {
-            // InternalCubeDSL.g:7365:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
-            // InternalCubeDSL.g:7366:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            // InternalCubeDSL.g:7610:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalCubeDSL.g:7611:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
             }
-            // InternalCubeDSL.g:7367:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
-            loop80:
+            // InternalCubeDSL.g:7612:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            loop83:
             do {
-                int alt80=2;
-                int LA80_0 = input.LA(1);
+                int alt83=2;
+                int LA83_0 = input.LA(1);
 
-                if ( (LA80_0==90) ) {
-                    alt80=1;
+                if ( (LA83_0==90) ) {
+                    alt83=1;
                 }
 
 
-                switch (alt80) {
+                switch (alt83) {
             	case 1 :
-            	    // InternalCubeDSL.g:7367:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+            	    // InternalCubeDSL.g:7612:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0();
@@ -25743,7 +26565,7 @@
             	    break;
 
             	default :
-            	    break loop80;
+            	    break loop83;
                 }
             } while (true);
 
@@ -25772,14 +26594,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
-    // InternalCubeDSL.g:7376:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
+    // InternalCubeDSL.g:7621:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7380:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
-            // InternalCubeDSL.g:7381:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+            // InternalCubeDSL.g:7625:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
+            // InternalCubeDSL.g:7626:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl();
@@ -25810,17 +26632,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
-    // InternalCubeDSL.g:7388:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:7633:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7392:1: ( ( ',' ) )
-            // InternalCubeDSL.g:7393:1: ( ',' )
+            // InternalCubeDSL.g:7637:1: ( ( ',' ) )
+            // InternalCubeDSL.g:7638:1: ( ',' )
             {
-            // InternalCubeDSL.g:7393:1: ( ',' )
-            // InternalCubeDSL.g:7394:2: ','
+            // InternalCubeDSL.g:7638:1: ( ',' )
+            // InternalCubeDSL.g:7639:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
@@ -25851,14 +26673,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
-    // InternalCubeDSL.g:7403:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
+    // InternalCubeDSL.g:7648:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7407:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
-            // InternalCubeDSL.g:7408:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+            // InternalCubeDSL.g:7652:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
+            // InternalCubeDSL.g:7653:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl();
@@ -25884,23 +26706,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
-    // InternalCubeDSL.g:7414:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalCubeDSL.g:7659:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7418:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalCubeDSL.g:7419:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalCubeDSL.g:7663:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalCubeDSL.g:7664:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalCubeDSL.g:7419:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
-            // InternalCubeDSL.g:7420:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalCubeDSL.g:7664:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalCubeDSL.g:7665:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalCubeDSL.g:7421:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
-            // InternalCubeDSL.g:7421:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+            // InternalCubeDSL.g:7666:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalCubeDSL.g:7666:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1();
@@ -25935,14 +26757,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0"
-    // InternalCubeDSL.g:7430:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
+    // InternalCubeDSL.g:7675:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7434:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
-            // InternalCubeDSL.g:7435:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
+            // InternalCubeDSL.g:7679:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
+            // InternalCubeDSL.g:7680:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl();
@@ -25973,17 +26795,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
-    // InternalCubeDSL.g:7442:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
+    // InternalCubeDSL.g:7687:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7446:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalCubeDSL.g:7447:1: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:7691:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalCubeDSL.g:7692:1: ( ruleXAnnotationOrExpression )
             {
-            // InternalCubeDSL.g:7447:1: ( ruleXAnnotationOrExpression )
-            // InternalCubeDSL.g:7448:2: ruleXAnnotationOrExpression
+            // InternalCubeDSL.g:7692:1: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:7693:2: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
@@ -26018,14 +26840,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1"
-    // InternalCubeDSL.g:7457:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
+    // InternalCubeDSL.g:7702:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7461:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
-            // InternalCubeDSL.g:7462:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+            // InternalCubeDSL.g:7706:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
+            // InternalCubeDSL.g:7707:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl();
@@ -26051,31 +26873,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
-    // InternalCubeDSL.g:7468:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
+    // InternalCubeDSL.g:7713:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7472:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
-            // InternalCubeDSL.g:7473:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalCubeDSL.g:7717:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
+            // InternalCubeDSL.g:7718:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
             {
-            // InternalCubeDSL.g:7473:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
-            // InternalCubeDSL.g:7474:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            // InternalCubeDSL.g:7718:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalCubeDSL.g:7719:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
             }
-            // InternalCubeDSL.g:7475:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
-            int alt81=2;
-            int LA81_0 = input.LA(1);
+            // InternalCubeDSL.g:7720:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            int alt84=2;
+            int LA84_0 = input.LA(1);
 
-            if ( (LA81_0==90) ) {
-                alt81=1;
+            if ( (LA84_0==90) ) {
+                alt84=1;
             }
-            switch (alt81) {
+            switch (alt84) {
                 case 1 :
-                    // InternalCubeDSL.g:7475:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+                    // InternalCubeDSL.g:7720:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValueOrCommaList__Group_1_1__0();
@@ -26113,14 +26935,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
-    // InternalCubeDSL.g:7484:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
+    // InternalCubeDSL.g:7729:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7488:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
-            // InternalCubeDSL.g:7489:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+            // InternalCubeDSL.g:7733:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
+            // InternalCubeDSL.g:7734:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl();
@@ -26151,23 +26973,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
-    // InternalCubeDSL.g:7496:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:7741:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7500:1: ( ( () ) )
-            // InternalCubeDSL.g:7501:1: ( () )
+            // InternalCubeDSL.g:7745:1: ( ( () ) )
+            // InternalCubeDSL.g:7746:1: ( () )
             {
-            // InternalCubeDSL.g:7501:1: ( () )
-            // InternalCubeDSL.g:7502:2: ()
+            // InternalCubeDSL.g:7746:1: ( () )
+            // InternalCubeDSL.g:7747:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
             }
-            // InternalCubeDSL.g:7503:2: ()
-            // InternalCubeDSL.g:7503:3: 
+            // InternalCubeDSL.g:7748:2: ()
+            // InternalCubeDSL.g:7748:3: 
             {
             }
 
@@ -26192,14 +27014,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
-    // InternalCubeDSL.g:7511:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
+    // InternalCubeDSL.g:7756:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7515:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
-            // InternalCubeDSL.g:7516:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+            // InternalCubeDSL.g:7760:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
+            // InternalCubeDSL.g:7761:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl();
@@ -26225,26 +27047,26 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
-    // InternalCubeDSL.g:7522:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
+    // InternalCubeDSL.g:7767:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7526:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
-            // InternalCubeDSL.g:7527:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalCubeDSL.g:7771:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
+            // InternalCubeDSL.g:7772:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
             {
-            // InternalCubeDSL.g:7527:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
-            // InternalCubeDSL.g:7528:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalCubeDSL.g:7772:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalCubeDSL.g:7773:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
             {
-            // InternalCubeDSL.g:7528:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
-            // InternalCubeDSL.g:7529:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalCubeDSL.g:7773:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
+            // InternalCubeDSL.g:7774:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalCubeDSL.g:7530:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
-            // InternalCubeDSL.g:7530:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            // InternalCubeDSL.g:7775:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalCubeDSL.g:7775:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             {
             pushFollow(FOLLOW_47);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
@@ -26260,26 +27082,26 @@
 
             }
 
-            // InternalCubeDSL.g:7533:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
-            // InternalCubeDSL.g:7534:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            // InternalCubeDSL.g:7778:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalCubeDSL.g:7779:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
             }
-            // InternalCubeDSL.g:7535:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
-            loop82:
+            // InternalCubeDSL.g:7780:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            loop85:
             do {
-                int alt82=2;
-                int LA82_0 = input.LA(1);
+                int alt85=2;
+                int LA85_0 = input.LA(1);
 
-                if ( (LA82_0==90) ) {
-                    alt82=1;
+                if ( (LA85_0==90) ) {
+                    alt85=1;
                 }
 
 
-                switch (alt82) {
+                switch (alt85) {
             	case 1 :
-            	    // InternalCubeDSL.g:7535:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            	    // InternalCubeDSL.g:7780:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
@@ -26291,7 +27113,7 @@
             	    break;
 
             	default :
-            	    break loop82;
+            	    break loop85;
                 }
             } while (true);
 
@@ -26323,14 +27145,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
-    // InternalCubeDSL.g:7545:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
+    // InternalCubeDSL.g:7790:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7549:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
-            // InternalCubeDSL.g:7550:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+            // InternalCubeDSL.g:7794:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
+            // InternalCubeDSL.g:7795:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl();
@@ -26361,17 +27183,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
-    // InternalCubeDSL.g:7557:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:7802:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7561:1: ( ( ',' ) )
-            // InternalCubeDSL.g:7562:1: ( ',' )
+            // InternalCubeDSL.g:7806:1: ( ( ',' ) )
+            // InternalCubeDSL.g:7807:1: ( ',' )
             {
-            // InternalCubeDSL.g:7562:1: ( ',' )
-            // InternalCubeDSL.g:7563:2: ','
+            // InternalCubeDSL.g:7807:1: ( ',' )
+            // InternalCubeDSL.g:7808:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
@@ -26402,14 +27224,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
-    // InternalCubeDSL.g:7572:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
+    // InternalCubeDSL.g:7817:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7576:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
-            // InternalCubeDSL.g:7577:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+            // InternalCubeDSL.g:7821:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
+            // InternalCubeDSL.g:7822:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl();
@@ -26435,23 +27257,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
-    // InternalCubeDSL.g:7583:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
+    // InternalCubeDSL.g:7828:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7587:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
-            // InternalCubeDSL.g:7588:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalCubeDSL.g:7832:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
+            // InternalCubeDSL.g:7833:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
             {
-            // InternalCubeDSL.g:7588:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
-            // InternalCubeDSL.g:7589:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalCubeDSL.g:7833:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalCubeDSL.g:7834:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
             }
-            // InternalCubeDSL.g:7590:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
-            // InternalCubeDSL.g:7590:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+            // InternalCubeDSL.g:7835:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalCubeDSL.g:7835:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1();
@@ -26486,14 +27308,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0"
-    // InternalCubeDSL.g:7599:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
+    // InternalCubeDSL.g:7844:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
     public final void rule__XAnnotationElementValue__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7603:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
-            // InternalCubeDSL.g:7604:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
+            // InternalCubeDSL.g:7848:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
+            // InternalCubeDSL.g:7849:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
             {
             pushFollow(FOLLOW_50);
             rule__XAnnotationElementValue__Group_0__0__Impl();
@@ -26524,23 +27346,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__0__Impl"
-    // InternalCubeDSL.g:7611:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
+    // InternalCubeDSL.g:7856:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7615:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
-            // InternalCubeDSL.g:7616:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalCubeDSL.g:7860:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
+            // InternalCubeDSL.g:7861:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
             {
-            // InternalCubeDSL.g:7616:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
-            // InternalCubeDSL.g:7617:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalCubeDSL.g:7861:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalCubeDSL.g:7862:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
             }
-            // InternalCubeDSL.g:7618:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
-            // InternalCubeDSL.g:7618:3: rule__XAnnotationElementValue__Group_0_0__0
+            // InternalCubeDSL.g:7863:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalCubeDSL.g:7863:3: rule__XAnnotationElementValue__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0();
@@ -26575,14 +27397,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1"
-    // InternalCubeDSL.g:7626:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
+    // InternalCubeDSL.g:7871:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
     public final void rule__XAnnotationElementValue__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7630:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
-            // InternalCubeDSL.g:7631:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
+            // InternalCubeDSL.g:7875:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
+            // InternalCubeDSL.g:7876:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
             {
             pushFollow(FOLLOW_50);
             rule__XAnnotationElementValue__Group_0__1__Impl();
@@ -26613,31 +27435,31 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__1__Impl"
-    // InternalCubeDSL.g:7638:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
+    // InternalCubeDSL.g:7883:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
     public final void rule__XAnnotationElementValue__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7642:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
-            // InternalCubeDSL.g:7643:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalCubeDSL.g:7887:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
+            // InternalCubeDSL.g:7888:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
             {
-            // InternalCubeDSL.g:7643:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
-            // InternalCubeDSL.g:7644:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            // InternalCubeDSL.g:7888:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalCubeDSL.g:7889:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
             }
-            // InternalCubeDSL.g:7645:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
-            int alt83=2;
-            int LA83_0 = input.LA(1);
+            // InternalCubeDSL.g:7890:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            int alt86=2;
+            int LA86_0 = input.LA(1);
 
-            if ( ((LA83_0>=RULE_ID && LA83_0<=RULE_DECIMAL)||LA83_0==27||(LA83_0>=34 && LA83_0<=35)||LA83_0==40||(LA83_0>=45 && LA83_0<=50)||LA83_0==74||(LA83_0>=87 && LA83_0<=88)||(LA83_0>=92 && LA83_0<=93)||LA83_0==96||LA83_0==98||(LA83_0>=102 && LA83_0<=110)||LA83_0==112||LA83_0==131) ) {
-                alt83=1;
+            if ( ((LA86_0>=RULE_ID && LA86_0<=RULE_DECIMAL)||LA86_0==27||(LA86_0>=34 && LA86_0<=35)||LA86_0==40||(LA86_0>=45 && LA86_0<=50)||LA86_0==74||(LA86_0>=87 && LA86_0<=88)||(LA86_0>=92 && LA86_0<=93)||LA86_0==96||LA86_0==98||(LA86_0>=102 && LA86_0<=110)||LA86_0==112||LA86_0==134) ) {
+                alt86=1;
             }
-            switch (alt83) {
+            switch (alt86) {
                 case 1 :
-                    // InternalCubeDSL.g:7645:3: rule__XAnnotationElementValue__Group_0_1__0
+                    // InternalCubeDSL.g:7890:3: rule__XAnnotationElementValue__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAnnotationElementValue__Group_0_1__0();
@@ -26675,14 +27497,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2"
-    // InternalCubeDSL.g:7653:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
+    // InternalCubeDSL.g:7898:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
     public final void rule__XAnnotationElementValue__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7657:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
-            // InternalCubeDSL.g:7658:2: rule__XAnnotationElementValue__Group_0__2__Impl
+            // InternalCubeDSL.g:7902:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
+            // InternalCubeDSL.g:7903:2: rule__XAnnotationElementValue__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0__2__Impl();
@@ -26708,17 +27530,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0__2__Impl"
-    // InternalCubeDSL.g:7664:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
+    // InternalCubeDSL.g:7909:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
     public final void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7668:1: ( ( ']' ) )
-            // InternalCubeDSL.g:7669:1: ( ']' )
+            // InternalCubeDSL.g:7913:1: ( ( ']' ) )
+            // InternalCubeDSL.g:7914:1: ( ']' )
             {
-            // InternalCubeDSL.g:7669:1: ( ']' )
-            // InternalCubeDSL.g:7670:2: ']'
+            // InternalCubeDSL.g:7914:1: ( ']' )
+            // InternalCubeDSL.g:7915:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
@@ -26749,14 +27571,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0"
-    // InternalCubeDSL.g:7680:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
+    // InternalCubeDSL.g:7925:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7684:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
-            // InternalCubeDSL.g:7685:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
+            // InternalCubeDSL.g:7929:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
+            // InternalCubeDSL.g:7930:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0__0__Impl();
@@ -26782,23 +27604,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0__Impl"
-    // InternalCubeDSL.g:7691:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
+    // InternalCubeDSL.g:7936:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7695:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
-            // InternalCubeDSL.g:7696:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalCubeDSL.g:7940:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
+            // InternalCubeDSL.g:7941:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
             {
-            // InternalCubeDSL.g:7696:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
-            // InternalCubeDSL.g:7697:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalCubeDSL.g:7941:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalCubeDSL.g:7942:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
             }
-            // InternalCubeDSL.g:7698:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
-            // InternalCubeDSL.g:7698:3: rule__XAnnotationElementValue__Group_0_0_0__0
+            // InternalCubeDSL.g:7943:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalCubeDSL.g:7943:3: rule__XAnnotationElementValue__Group_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__0();
@@ -26833,14 +27655,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0"
-    // InternalCubeDSL.g:7707:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
+    // InternalCubeDSL.g:7952:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7711:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
-            // InternalCubeDSL.g:7712:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
+            // InternalCubeDSL.g:7956:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
+            // InternalCubeDSL.g:7957:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
             {
             pushFollow(FOLLOW_51);
             rule__XAnnotationElementValue__Group_0_0_0__0__Impl();
@@ -26871,23 +27693,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
-    // InternalCubeDSL.g:7719:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:7964:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7723:1: ( ( () ) )
-            // InternalCubeDSL.g:7724:1: ( () )
+            // InternalCubeDSL.g:7968:1: ( ( () ) )
+            // InternalCubeDSL.g:7969:1: ( () )
             {
-            // InternalCubeDSL.g:7724:1: ( () )
-            // InternalCubeDSL.g:7725:2: ()
+            // InternalCubeDSL.g:7969:1: ( () )
+            // InternalCubeDSL.g:7970:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
             }
-            // InternalCubeDSL.g:7726:2: ()
-            // InternalCubeDSL.g:7726:3: 
+            // InternalCubeDSL.g:7971:2: ()
+            // InternalCubeDSL.g:7971:3: 
             {
             }
 
@@ -26912,14 +27734,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1"
-    // InternalCubeDSL.g:7734:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
+    // InternalCubeDSL.g:7979:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7738:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
-            // InternalCubeDSL.g:7739:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
+            // InternalCubeDSL.g:7983:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
+            // InternalCubeDSL.g:7984:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
             {
             pushFollow(FOLLOW_52);
             rule__XAnnotationElementValue__Group_0_0_0__1__Impl();
@@ -26950,17 +27772,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
-    // InternalCubeDSL.g:7746:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
+    // InternalCubeDSL.g:7991:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7750:1: ( ( '#' ) )
-            // InternalCubeDSL.g:7751:1: ( '#' )
+            // InternalCubeDSL.g:7995:1: ( ( '#' ) )
+            // InternalCubeDSL.g:7996:1: ( '#' )
             {
-            // InternalCubeDSL.g:7751:1: ( '#' )
-            // InternalCubeDSL.g:7752:2: '#'
+            // InternalCubeDSL.g:7996:1: ( '#' )
+            // InternalCubeDSL.g:7997:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
@@ -26991,14 +27813,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2"
-    // InternalCubeDSL.g:7761:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
+    // InternalCubeDSL.g:8006:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7765:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
-            // InternalCubeDSL.g:7766:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+            // InternalCubeDSL.g:8010:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
+            // InternalCubeDSL.g:8011:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_0_0__2__Impl();
@@ -27024,17 +27846,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
-    // InternalCubeDSL.g:7772:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
+    // InternalCubeDSL.g:8017:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
     public final void rule__XAnnotationElementValue__Group_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7776:1: ( ( '[' ) )
-            // InternalCubeDSL.g:7777:1: ( '[' )
+            // InternalCubeDSL.g:8021:1: ( ( '[' ) )
+            // InternalCubeDSL.g:8022:1: ( '[' )
             {
-            // InternalCubeDSL.g:7777:1: ( '[' )
-            // InternalCubeDSL.g:7778:2: '['
+            // InternalCubeDSL.g:8022:1: ( '[' )
+            // InternalCubeDSL.g:8023:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
@@ -27065,14 +27887,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0"
-    // InternalCubeDSL.g:7788:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
+    // InternalCubeDSL.g:8033:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
     public final void rule__XAnnotationElementValue__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7792:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
-            // InternalCubeDSL.g:7793:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
+            // InternalCubeDSL.g:8037:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
+            // InternalCubeDSL.g:8038:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XAnnotationElementValue__Group_0_1__0__Impl();
@@ -27103,23 +27925,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0__Impl"
-    // InternalCubeDSL.g:7800:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
+    // InternalCubeDSL.g:8045:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7804:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
-            // InternalCubeDSL.g:7805:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalCubeDSL.g:8049:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
+            // InternalCubeDSL.g:8050:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
             {
-            // InternalCubeDSL.g:7805:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
-            // InternalCubeDSL.g:7806:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalCubeDSL.g:8050:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalCubeDSL.g:8051:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
             }
-            // InternalCubeDSL.g:7807:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
-            // InternalCubeDSL.g:7807:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+            // InternalCubeDSL.g:8052:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalCubeDSL.g:8052:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_0();
@@ -27154,14 +27976,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1"
-    // InternalCubeDSL.g:7815:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
+    // InternalCubeDSL.g:8060:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7819:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
-            // InternalCubeDSL.g:7820:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
+            // InternalCubeDSL.g:8064:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
+            // InternalCubeDSL.g:8065:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1__1__Impl();
@@ -27187,35 +28009,35 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1__Impl"
-    // InternalCubeDSL.g:7826:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
+    // InternalCubeDSL.g:8071:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
     public final void rule__XAnnotationElementValue__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7830:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
-            // InternalCubeDSL.g:7831:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalCubeDSL.g:8075:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
+            // InternalCubeDSL.g:8076:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
             {
-            // InternalCubeDSL.g:7831:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
-            // InternalCubeDSL.g:7832:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            // InternalCubeDSL.g:8076:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalCubeDSL.g:8077:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
             }
-            // InternalCubeDSL.g:7833:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
-            loop84:
+            // InternalCubeDSL.g:8078:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            loop87:
             do {
-                int alt84=2;
-                int LA84_0 = input.LA(1);
+                int alt87=2;
+                int LA87_0 = input.LA(1);
 
-                if ( (LA84_0==90) ) {
-                    alt84=1;
+                if ( (LA87_0==90) ) {
+                    alt87=1;
                 }
 
 
-                switch (alt84) {
+                switch (alt87) {
             	case 1 :
-            	    // InternalCubeDSL.g:7833:3: rule__XAnnotationElementValue__Group_0_1_1__0
+            	    // InternalCubeDSL.g:8078:3: rule__XAnnotationElementValue__Group_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XAnnotationElementValue__Group_0_1_1__0();
@@ -27227,7 +28049,7 @@
             	    break;
 
             	default :
-            	    break loop84;
+            	    break loop87;
                 }
             } while (true);
 
@@ -27256,14 +28078,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0"
-    // InternalCubeDSL.g:7842:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
+    // InternalCubeDSL.g:8087:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7846:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
-            // InternalCubeDSL.g:7847:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
+            // InternalCubeDSL.g:8091:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
+            // InternalCubeDSL.g:8092:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XAnnotationElementValue__Group_0_1_1__0__Impl();
@@ -27294,17 +28116,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
-    // InternalCubeDSL.g:7854:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:8099:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7858:1: ( ( ',' ) )
-            // InternalCubeDSL.g:7859:1: ( ',' )
+            // InternalCubeDSL.g:8103:1: ( ( ',' ) )
+            // InternalCubeDSL.g:8104:1: ( ',' )
             {
-            // InternalCubeDSL.g:7859:1: ( ',' )
-            // InternalCubeDSL.g:7860:2: ','
+            // InternalCubeDSL.g:8104:1: ( ',' )
+            // InternalCubeDSL.g:8105:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
@@ -27335,14 +28157,14 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1"
-    // InternalCubeDSL.g:7869:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
+    // InternalCubeDSL.g:8114:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7873:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
-            // InternalCubeDSL.g:7874:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+            // InternalCubeDSL.g:8118:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
+            // InternalCubeDSL.g:8119:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__Group_0_1_1__1__Impl();
@@ -27368,23 +28190,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
-    // InternalCubeDSL.g:7880:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
+    // InternalCubeDSL.g:8125:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
     public final void rule__XAnnotationElementValue__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7884:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
-            // InternalCubeDSL.g:7885:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalCubeDSL.g:8129:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalCubeDSL.g:8130:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
             {
-            // InternalCubeDSL.g:7885:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
-            // InternalCubeDSL.g:7886:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalCubeDSL.g:8130:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalCubeDSL.g:8131:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
             }
-            // InternalCubeDSL.g:7887:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
-            // InternalCubeDSL.g:7887:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+            // InternalCubeDSL.g:8132:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalCubeDSL.g:8132:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1();
@@ -27419,14 +28241,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0"
-    // InternalCubeDSL.g:7896:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+    // InternalCubeDSL.g:8141:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
     public final void rule__XAssignment__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7900:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
-            // InternalCubeDSL.g:7901:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+            // InternalCubeDSL.g:8145:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+            // InternalCubeDSL.g:8146:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
             {
             pushFollow(FOLLOW_53);
             rule__XAssignment__Group_0__0__Impl();
@@ -27457,23 +28279,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
-    // InternalCubeDSL.g:7908:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:8153:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7912:1: ( ( () ) )
-            // InternalCubeDSL.g:7913:1: ( () )
+            // InternalCubeDSL.g:8157:1: ( ( () ) )
+            // InternalCubeDSL.g:8158:1: ( () )
             {
-            // InternalCubeDSL.g:7913:1: ( () )
-            // InternalCubeDSL.g:7914:2: ()
+            // InternalCubeDSL.g:8158:1: ( () )
+            // InternalCubeDSL.g:8159:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
             }
-            // InternalCubeDSL.g:7915:2: ()
-            // InternalCubeDSL.g:7915:3: 
+            // InternalCubeDSL.g:8160:2: ()
+            // InternalCubeDSL.g:8160:3: 
             {
             }
 
@@ -27498,14 +28320,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1"
-    // InternalCubeDSL.g:7923:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+    // InternalCubeDSL.g:8168:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
     public final void rule__XAssignment__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7927:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
-            // InternalCubeDSL.g:7928:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+            // InternalCubeDSL.g:8172:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+            // InternalCubeDSL.g:8173:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
             {
             pushFollow(FOLLOW_49);
             rule__XAssignment__Group_0__1__Impl();
@@ -27536,23 +28358,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
-    // InternalCubeDSL.g:7935:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+    // InternalCubeDSL.g:8180:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
     public final void rule__XAssignment__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7939:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
-            // InternalCubeDSL.g:7940:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalCubeDSL.g:8184:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+            // InternalCubeDSL.g:8185:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
             {
-            // InternalCubeDSL.g:7940:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
-            // InternalCubeDSL.g:7941:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalCubeDSL.g:8185:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalCubeDSL.g:8186:2: ( rule__XAssignment__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalCubeDSL.g:7942:2: ( rule__XAssignment__FeatureAssignment_0_1 )
-            // InternalCubeDSL.g:7942:3: rule__XAssignment__FeatureAssignment_0_1
+            // InternalCubeDSL.g:8187:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalCubeDSL.g:8187:3: rule__XAssignment__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_0_1();
@@ -27587,14 +28409,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2"
-    // InternalCubeDSL.g:7950:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+    // InternalCubeDSL.g:8195:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
     public final void rule__XAssignment__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7954:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
-            // InternalCubeDSL.g:7955:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+            // InternalCubeDSL.g:8199:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+            // InternalCubeDSL.g:8200:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
             {
             pushFollow(FOLLOW_48);
             rule__XAssignment__Group_0__2__Impl();
@@ -27625,17 +28447,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
-    // InternalCubeDSL.g:7962:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+    // InternalCubeDSL.g:8207:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XAssignment__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7966:1: ( ( ruleOpSingleAssign ) )
-            // InternalCubeDSL.g:7967:1: ( ruleOpSingleAssign )
+            // InternalCubeDSL.g:8211:1: ( ( ruleOpSingleAssign ) )
+            // InternalCubeDSL.g:8212:1: ( ruleOpSingleAssign )
             {
-            // InternalCubeDSL.g:7967:1: ( ruleOpSingleAssign )
-            // InternalCubeDSL.g:7968:2: ruleOpSingleAssign
+            // InternalCubeDSL.g:8212:1: ( ruleOpSingleAssign )
+            // InternalCubeDSL.g:8213:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
@@ -27670,14 +28492,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3"
-    // InternalCubeDSL.g:7977:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+    // InternalCubeDSL.g:8222:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
     public final void rule__XAssignment__Group_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7981:1: ( rule__XAssignment__Group_0__3__Impl )
-            // InternalCubeDSL.g:7982:2: rule__XAssignment__Group_0__3__Impl
+            // InternalCubeDSL.g:8226:1: ( rule__XAssignment__Group_0__3__Impl )
+            // InternalCubeDSL.g:8227:2: rule__XAssignment__Group_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_0__3__Impl();
@@ -27703,23 +28525,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
-    // InternalCubeDSL.g:7988:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+    // InternalCubeDSL.g:8233:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
     public final void rule__XAssignment__Group_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:7992:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
-            // InternalCubeDSL.g:7993:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalCubeDSL.g:8237:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+            // InternalCubeDSL.g:8238:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
             {
-            // InternalCubeDSL.g:7993:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
-            // InternalCubeDSL.g:7994:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalCubeDSL.g:8238:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalCubeDSL.g:8239:2: ( rule__XAssignment__ValueAssignment_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
             }
-            // InternalCubeDSL.g:7995:2: ( rule__XAssignment__ValueAssignment_0_3 )
-            // InternalCubeDSL.g:7995:3: rule__XAssignment__ValueAssignment_0_3
+            // InternalCubeDSL.g:8240:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalCubeDSL.g:8240:3: rule__XAssignment__ValueAssignment_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__ValueAssignment_0_3();
@@ -27754,14 +28576,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0"
-    // InternalCubeDSL.g:8004:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+    // InternalCubeDSL.g:8249:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
     public final void rule__XAssignment__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8008:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
-            // InternalCubeDSL.g:8009:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+            // InternalCubeDSL.g:8253:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+            // InternalCubeDSL.g:8254:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
             {
             pushFollow(FOLLOW_54);
             rule__XAssignment__Group_1__0__Impl();
@@ -27792,17 +28614,17 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
-    // InternalCubeDSL.g:8016:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+    // InternalCubeDSL.g:8261:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
     public final void rule__XAssignment__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8020:1: ( ( ruleXOrExpression ) )
-            // InternalCubeDSL.g:8021:1: ( ruleXOrExpression )
+            // InternalCubeDSL.g:8265:1: ( ( ruleXOrExpression ) )
+            // InternalCubeDSL.g:8266:1: ( ruleXOrExpression )
             {
-            // InternalCubeDSL.g:8021:1: ( ruleXOrExpression )
-            // InternalCubeDSL.g:8022:2: ruleXOrExpression
+            // InternalCubeDSL.g:8266:1: ( ruleXOrExpression )
+            // InternalCubeDSL.g:8267:2: ruleXOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
@@ -27837,14 +28659,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1"
-    // InternalCubeDSL.g:8031:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+    // InternalCubeDSL.g:8276:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
     public final void rule__XAssignment__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8035:1: ( rule__XAssignment__Group_1__1__Impl )
-            // InternalCubeDSL.g:8036:2: rule__XAssignment__Group_1__1__Impl
+            // InternalCubeDSL.g:8280:1: ( rule__XAssignment__Group_1__1__Impl )
+            // InternalCubeDSL.g:8281:2: rule__XAssignment__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1__1__Impl();
@@ -27870,27 +28692,27 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
-    // InternalCubeDSL.g:8042:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+    // InternalCubeDSL.g:8287:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
     public final void rule__XAssignment__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8046:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
-            // InternalCubeDSL.g:8047:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalCubeDSL.g:8291:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+            // InternalCubeDSL.g:8292:1: ( ( rule__XAssignment__Group_1_1__0 )? )
             {
-            // InternalCubeDSL.g:8047:1: ( ( rule__XAssignment__Group_1_1__0 )? )
-            // InternalCubeDSL.g:8048:2: ( rule__XAssignment__Group_1_1__0 )?
+            // InternalCubeDSL.g:8292:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalCubeDSL.g:8293:2: ( rule__XAssignment__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
             }
-            // InternalCubeDSL.g:8049:2: ( rule__XAssignment__Group_1_1__0 )?
-            int alt85=2;
-            alt85 = dfa85.predict(input);
-            switch (alt85) {
+            // InternalCubeDSL.g:8294:2: ( rule__XAssignment__Group_1_1__0 )?
+            int alt88=2;
+            alt88 = dfa88.predict(input);
+            switch (alt88) {
                 case 1 :
-                    // InternalCubeDSL.g:8049:3: rule__XAssignment__Group_1_1__0
+                    // InternalCubeDSL.g:8294:3: rule__XAssignment__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XAssignment__Group_1_1__0();
@@ -27928,14 +28750,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0"
-    // InternalCubeDSL.g:8058:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+    // InternalCubeDSL.g:8303:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
     public final void rule__XAssignment__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8062:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
-            // InternalCubeDSL.g:8063:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+            // InternalCubeDSL.g:8307:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+            // InternalCubeDSL.g:8308:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XAssignment__Group_1_1__0__Impl();
@@ -27966,23 +28788,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
-    // InternalCubeDSL.g:8070:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+    // InternalCubeDSL.g:8315:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
     public final void rule__XAssignment__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8074:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
-            // InternalCubeDSL.g:8075:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalCubeDSL.g:8319:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+            // InternalCubeDSL.g:8320:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
             {
-            // InternalCubeDSL.g:8075:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
-            // InternalCubeDSL.g:8076:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalCubeDSL.g:8320:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalCubeDSL.g:8321:2: ( rule__XAssignment__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
             }
-            // InternalCubeDSL.g:8077:2: ( rule__XAssignment__Group_1_1_0__0 )
-            // InternalCubeDSL.g:8077:3: rule__XAssignment__Group_1_1_0__0
+            // InternalCubeDSL.g:8322:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalCubeDSL.g:8322:3: rule__XAssignment__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0();
@@ -28017,14 +28839,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1"
-    // InternalCubeDSL.g:8085:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+    // InternalCubeDSL.g:8330:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
     public final void rule__XAssignment__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8089:1: ( rule__XAssignment__Group_1_1__1__Impl )
-            // InternalCubeDSL.g:8090:2: rule__XAssignment__Group_1_1__1__Impl
+            // InternalCubeDSL.g:8334:1: ( rule__XAssignment__Group_1_1__1__Impl )
+            // InternalCubeDSL.g:8335:2: rule__XAssignment__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1__1__Impl();
@@ -28050,23 +28872,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
-    // InternalCubeDSL.g:8096:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalCubeDSL.g:8341:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
     public final void rule__XAssignment__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8100:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
-            // InternalCubeDSL.g:8101:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalCubeDSL.g:8345:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+            // InternalCubeDSL.g:8346:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalCubeDSL.g:8101:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
-            // InternalCubeDSL.g:8102:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalCubeDSL.g:8346:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalCubeDSL.g:8347:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalCubeDSL.g:8103:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
-            // InternalCubeDSL.g:8103:3: rule__XAssignment__RightOperandAssignment_1_1_1
+            // InternalCubeDSL.g:8348:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalCubeDSL.g:8348:3: rule__XAssignment__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__RightOperandAssignment_1_1_1();
@@ -28101,14 +28923,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
-    // InternalCubeDSL.g:8112:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+    // InternalCubeDSL.g:8357:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
     public final void rule__XAssignment__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8116:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
-            // InternalCubeDSL.g:8117:2: rule__XAssignment__Group_1_1_0__0__Impl
+            // InternalCubeDSL.g:8361:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+            // InternalCubeDSL.g:8362:2: rule__XAssignment__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0__0__Impl();
@@ -28134,23 +28956,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
-    // InternalCubeDSL.g:8123:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:8368:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
     public final void rule__XAssignment__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8127:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:8128:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalCubeDSL.g:8372:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:8373:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:8128:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
-            // InternalCubeDSL.g:8129:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalCubeDSL.g:8373:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalCubeDSL.g:8374:2: ( rule__XAssignment__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
             }
-            // InternalCubeDSL.g:8130:2: ( rule__XAssignment__Group_1_1_0_0__0 )
-            // InternalCubeDSL.g:8130:3: rule__XAssignment__Group_1_1_0_0__0
+            // InternalCubeDSL.g:8375:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalCubeDSL.g:8375:3: rule__XAssignment__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__0();
@@ -28185,14 +29007,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
-    // InternalCubeDSL.g:8139:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
+    // InternalCubeDSL.g:8384:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
     public final void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8143:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
-            // InternalCubeDSL.g:8144:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+            // InternalCubeDSL.g:8388:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+            // InternalCubeDSL.g:8389:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
             {
             pushFollow(FOLLOW_54);
             rule__XAssignment__Group_1_1_0_0__0__Impl();
@@ -28223,23 +29045,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
-    // InternalCubeDSL.g:8151:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:8396:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAssignment__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8155:1: ( ( () ) )
-            // InternalCubeDSL.g:8156:1: ( () )
+            // InternalCubeDSL.g:8400:1: ( ( () ) )
+            // InternalCubeDSL.g:8401:1: ( () )
             {
-            // InternalCubeDSL.g:8156:1: ( () )
-            // InternalCubeDSL.g:8157:2: ()
+            // InternalCubeDSL.g:8401:1: ( () )
+            // InternalCubeDSL.g:8402:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:8158:2: ()
-            // InternalCubeDSL.g:8158:3: 
+            // InternalCubeDSL.g:8403:2: ()
+            // InternalCubeDSL.g:8403:3: 
             {
             }
 
@@ -28264,14 +29086,14 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
-    // InternalCubeDSL.g:8166:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:8411:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
     public final void rule__XAssignment__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8170:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
-            // InternalCubeDSL.g:8171:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+            // InternalCubeDSL.g:8415:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+            // InternalCubeDSL.g:8416:2: rule__XAssignment__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__Group_1_1_0_0__1__Impl();
@@ -28297,23 +29119,23 @@
 
 
     // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
-    // InternalCubeDSL.g:8177:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:8422:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
     public final void rule__XAssignment__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8181:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:8182:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalCubeDSL.g:8426:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:8427:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:8182:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalCubeDSL.g:8183:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalCubeDSL.g:8427:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalCubeDSL.g:8428:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:8184:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
-            // InternalCubeDSL.g:8184:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+            // InternalCubeDSL.g:8429:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalCubeDSL.g:8429:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAssignment__FeatureAssignment_1_1_0_0_1();
@@ -28348,14 +29170,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0"
-    // InternalCubeDSL.g:8193:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
+    // InternalCubeDSL.g:8438:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
     public final void rule__OpMultiAssign__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8197:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
-            // InternalCubeDSL.g:8198:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
+            // InternalCubeDSL.g:8442:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
+            // InternalCubeDSL.g:8443:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
             {
             pushFollow(FOLLOW_55);
             rule__OpMultiAssign__Group_5__0__Impl();
@@ -28386,17 +29208,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
-    // InternalCubeDSL.g:8205:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
+    // InternalCubeDSL.g:8450:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8209:1: ( ( '<' ) )
-            // InternalCubeDSL.g:8210:1: ( '<' )
+            // InternalCubeDSL.g:8454:1: ( ( '<' ) )
+            // InternalCubeDSL.g:8455:1: ( '<' )
             {
-            // InternalCubeDSL.g:8210:1: ( '<' )
-            // InternalCubeDSL.g:8211:2: '<'
+            // InternalCubeDSL.g:8455:1: ( '<' )
+            // InternalCubeDSL.g:8456:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
@@ -28427,14 +29249,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1"
-    // InternalCubeDSL.g:8220:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
+    // InternalCubeDSL.g:8465:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
     public final void rule__OpMultiAssign__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8224:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
-            // InternalCubeDSL.g:8225:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
+            // InternalCubeDSL.g:8469:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
+            // InternalCubeDSL.g:8470:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
             {
             pushFollow(FOLLOW_49);
             rule__OpMultiAssign__Group_5__1__Impl();
@@ -28465,17 +29287,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
-    // InternalCubeDSL.g:8232:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
+    // InternalCubeDSL.g:8477:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
     public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8236:1: ( ( '<' ) )
-            // InternalCubeDSL.g:8237:1: ( '<' )
+            // InternalCubeDSL.g:8481:1: ( ( '<' ) )
+            // InternalCubeDSL.g:8482:1: ( '<' )
             {
-            // InternalCubeDSL.g:8237:1: ( '<' )
-            // InternalCubeDSL.g:8238:2: '<'
+            // InternalCubeDSL.g:8482:1: ( '<' )
+            // InternalCubeDSL.g:8483:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
@@ -28506,14 +29328,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2"
-    // InternalCubeDSL.g:8247:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
+    // InternalCubeDSL.g:8492:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
     public final void rule__OpMultiAssign__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8251:1: ( rule__OpMultiAssign__Group_5__2__Impl )
-            // InternalCubeDSL.g:8252:2: rule__OpMultiAssign__Group_5__2__Impl
+            // InternalCubeDSL.g:8496:1: ( rule__OpMultiAssign__Group_5__2__Impl )
+            // InternalCubeDSL.g:8497:2: rule__OpMultiAssign__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_5__2__Impl();
@@ -28539,17 +29361,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
-    // InternalCubeDSL.g:8258:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
+    // InternalCubeDSL.g:8503:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
     public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8262:1: ( ( '=' ) )
-            // InternalCubeDSL.g:8263:1: ( '=' )
+            // InternalCubeDSL.g:8507:1: ( ( '=' ) )
+            // InternalCubeDSL.g:8508:1: ( '=' )
             {
-            // InternalCubeDSL.g:8263:1: ( '=' )
-            // InternalCubeDSL.g:8264:2: '='
+            // InternalCubeDSL.g:8508:1: ( '=' )
+            // InternalCubeDSL.g:8509:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
@@ -28580,14 +29402,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0"
-    // InternalCubeDSL.g:8274:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
+    // InternalCubeDSL.g:8519:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
     public final void rule__OpMultiAssign__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8278:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
-            // InternalCubeDSL.g:8279:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
+            // InternalCubeDSL.g:8523:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
+            // InternalCubeDSL.g:8524:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
             {
             pushFollow(FOLLOW_56);
             rule__OpMultiAssign__Group_6__0__Impl();
@@ -28618,17 +29440,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
-    // InternalCubeDSL.g:8286:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:8531:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
     public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8290:1: ( ( '>' ) )
-            // InternalCubeDSL.g:8291:1: ( '>' )
+            // InternalCubeDSL.g:8535:1: ( ( '>' ) )
+            // InternalCubeDSL.g:8536:1: ( '>' )
             {
-            // InternalCubeDSL.g:8291:1: ( '>' )
-            // InternalCubeDSL.g:8292:2: '>'
+            // InternalCubeDSL.g:8536:1: ( '>' )
+            // InternalCubeDSL.g:8537:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
@@ -28659,14 +29481,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1"
-    // InternalCubeDSL.g:8301:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
+    // InternalCubeDSL.g:8546:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
     public final void rule__OpMultiAssign__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8305:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
-            // InternalCubeDSL.g:8306:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
+            // InternalCubeDSL.g:8550:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
+            // InternalCubeDSL.g:8551:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
             {
             pushFollow(FOLLOW_56);
             rule__OpMultiAssign__Group_6__1__Impl();
@@ -28697,31 +29519,31 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
-    // InternalCubeDSL.g:8313:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
+    // InternalCubeDSL.g:8558:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
     public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8317:1: ( ( ( '>' )? ) )
-            // InternalCubeDSL.g:8318:1: ( ( '>' )? )
+            // InternalCubeDSL.g:8562:1: ( ( ( '>' )? ) )
+            // InternalCubeDSL.g:8563:1: ( ( '>' )? )
             {
-            // InternalCubeDSL.g:8318:1: ( ( '>' )? )
-            // InternalCubeDSL.g:8319:2: ( '>' )?
+            // InternalCubeDSL.g:8563:1: ( ( '>' )? )
+            // InternalCubeDSL.g:8564:2: ( '>' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
             }
-            // InternalCubeDSL.g:8320:2: ( '>' )?
-            int alt86=2;
-            int LA86_0 = input.LA(1);
+            // InternalCubeDSL.g:8565:2: ( '>' )?
+            int alt89=2;
+            int LA89_0 = input.LA(1);
 
-            if ( (LA86_0==26) ) {
-                alt86=1;
+            if ( (LA89_0==26) ) {
+                alt89=1;
             }
-            switch (alt86) {
+            switch (alt89) {
                 case 1 :
-                    // InternalCubeDSL.g:8320:3: '>'
+                    // InternalCubeDSL.g:8565:3: '>'
                     {
                     match(input,26,FOLLOW_2); if (state.failed) return ;
 
@@ -28755,14 +29577,14 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2"
-    // InternalCubeDSL.g:8328:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
+    // InternalCubeDSL.g:8573:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
     public final void rule__OpMultiAssign__Group_6__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8332:1: ( rule__OpMultiAssign__Group_6__2__Impl )
-            // InternalCubeDSL.g:8333:2: rule__OpMultiAssign__Group_6__2__Impl
+            // InternalCubeDSL.g:8577:1: ( rule__OpMultiAssign__Group_6__2__Impl )
+            // InternalCubeDSL.g:8578:2: rule__OpMultiAssign__Group_6__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpMultiAssign__Group_6__2__Impl();
@@ -28788,17 +29610,17 @@
 
 
     // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
-    // InternalCubeDSL.g:8339:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
+    // InternalCubeDSL.g:8584:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
     public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8343:1: ( ( '>=' ) )
-            // InternalCubeDSL.g:8344:1: ( '>=' )
+            // InternalCubeDSL.g:8588:1: ( ( '>=' ) )
+            // InternalCubeDSL.g:8589:1: ( '>=' )
             {
-            // InternalCubeDSL.g:8344:1: ( '>=' )
-            // InternalCubeDSL.g:8345:2: '>='
+            // InternalCubeDSL.g:8589:1: ( '>=' )
+            // InternalCubeDSL.g:8590:2: '>='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
@@ -28829,14 +29651,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0"
-    // InternalCubeDSL.g:8355:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+    // InternalCubeDSL.g:8600:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
     public final void rule__XOrExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8359:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
-            // InternalCubeDSL.g:8360:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+            // InternalCubeDSL.g:8604:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+            // InternalCubeDSL.g:8605:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
             {
             pushFollow(FOLLOW_57);
             rule__XOrExpression__Group__0__Impl();
@@ -28867,17 +29689,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__0__Impl"
-    // InternalCubeDSL.g:8367:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+    // InternalCubeDSL.g:8612:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8371:1: ( ( ruleXAndExpression ) )
-            // InternalCubeDSL.g:8372:1: ( ruleXAndExpression )
+            // InternalCubeDSL.g:8616:1: ( ( ruleXAndExpression ) )
+            // InternalCubeDSL.g:8617:1: ( ruleXAndExpression )
             {
-            // InternalCubeDSL.g:8372:1: ( ruleXAndExpression )
-            // InternalCubeDSL.g:8373:2: ruleXAndExpression
+            // InternalCubeDSL.g:8617:1: ( ruleXAndExpression )
+            // InternalCubeDSL.g:8618:2: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
@@ -28912,14 +29734,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1"
-    // InternalCubeDSL.g:8382:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+    // InternalCubeDSL.g:8627:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
     public final void rule__XOrExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8386:1: ( rule__XOrExpression__Group__1__Impl )
-            // InternalCubeDSL.g:8387:2: rule__XOrExpression__Group__1__Impl
+            // InternalCubeDSL.g:8631:1: ( rule__XOrExpression__Group__1__Impl )
+            // InternalCubeDSL.g:8632:2: rule__XOrExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group__1__Impl();
@@ -28945,41 +29767,41 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group__1__Impl"
-    // InternalCubeDSL.g:8393:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:8638:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
     public final void rule__XOrExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8397:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
-            // InternalCubeDSL.g:8398:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:8642:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+            // InternalCubeDSL.g:8643:1: ( ( rule__XOrExpression__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:8398:1: ( ( rule__XOrExpression__Group_1__0 )* )
-            // InternalCubeDSL.g:8399:2: ( rule__XOrExpression__Group_1__0 )*
+            // InternalCubeDSL.g:8643:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:8644:2: ( rule__XOrExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:8400:2: ( rule__XOrExpression__Group_1__0 )*
-            loop87:
+            // InternalCubeDSL.g:8645:2: ( rule__XOrExpression__Group_1__0 )*
+            loop90:
             do {
-                int alt87=2;
-                int LA87_0 = input.LA(1);
+                int alt90=2;
+                int LA90_0 = input.LA(1);
 
-                if ( (LA87_0==14) ) {
-                    int LA87_2 = input.LA(2);
+                if ( (LA90_0==14) ) {
+                    int LA90_2 = input.LA(2);
 
-                    if ( (synpred148_InternalCubeDSL()) ) {
-                        alt87=1;
+                    if ( (synpred151_InternalCubeDSL()) ) {
+                        alt90=1;
                     }
 
 
                 }
 
 
-                switch (alt87) {
+                switch (alt90) {
             	case 1 :
-            	    // InternalCubeDSL.g:8400:3: rule__XOrExpression__Group_1__0
+            	    // InternalCubeDSL.g:8645:3: rule__XOrExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_58);
             	    rule__XOrExpression__Group_1__0();
@@ -28991,7 +29813,7 @@
             	    break;
 
             	default :
-            	    break loop87;
+            	    break loop90;
                 }
             } while (true);
 
@@ -29020,14 +29842,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0"
-    // InternalCubeDSL.g:8409:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+    // InternalCubeDSL.g:8654:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
     public final void rule__XOrExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8413:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
-            // InternalCubeDSL.g:8414:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+            // InternalCubeDSL.g:8658:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+            // InternalCubeDSL.g:8659:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XOrExpression__Group_1__0__Impl();
@@ -29058,23 +29880,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
-    // InternalCubeDSL.g:8421:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:8666:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
     public final void rule__XOrExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8425:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:8426:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:8670:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:8671:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:8426:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
-            // InternalCubeDSL.g:8427:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:8671:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:8672:2: ( rule__XOrExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:8428:2: ( rule__XOrExpression__Group_1_0__0 )
-            // InternalCubeDSL.g:8428:3: rule__XOrExpression__Group_1_0__0
+            // InternalCubeDSL.g:8673:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:8673:3: rule__XOrExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0();
@@ -29109,14 +29931,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1"
-    // InternalCubeDSL.g:8436:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+    // InternalCubeDSL.g:8681:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
     public final void rule__XOrExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8440:1: ( rule__XOrExpression__Group_1__1__Impl )
-            // InternalCubeDSL.g:8441:2: rule__XOrExpression__Group_1__1__Impl
+            // InternalCubeDSL.g:8685:1: ( rule__XOrExpression__Group_1__1__Impl )
+            // InternalCubeDSL.g:8686:2: rule__XOrExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1__1__Impl();
@@ -29142,23 +29964,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
-    // InternalCubeDSL.g:8447:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:8692:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XOrExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8451:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:8452:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:8696:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:8697:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:8452:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
-            // InternalCubeDSL.g:8453:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:8697:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:8698:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:8454:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
-            // InternalCubeDSL.g:8454:3: rule__XOrExpression__RightOperandAssignment_1_1
+            // InternalCubeDSL.g:8699:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:8699:3: rule__XOrExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__RightOperandAssignment_1_1();
@@ -29193,14 +30015,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0"
-    // InternalCubeDSL.g:8463:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+    // InternalCubeDSL.g:8708:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
     public final void rule__XOrExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8467:1: ( rule__XOrExpression__Group_1_0__0__Impl )
-            // InternalCubeDSL.g:8468:2: rule__XOrExpression__Group_1_0__0__Impl
+            // InternalCubeDSL.g:8712:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+            // InternalCubeDSL.g:8713:2: rule__XOrExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0__0__Impl();
@@ -29226,23 +30048,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:8474:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:8719:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XOrExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8478:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:8479:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:8723:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:8724:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:8479:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:8480:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:8724:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:8725:2: ( rule__XOrExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:8481:2: ( rule__XOrExpression__Group_1_0_0__0 )
-            // InternalCubeDSL.g:8481:3: rule__XOrExpression__Group_1_0_0__0
+            // InternalCubeDSL.g:8726:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:8726:3: rule__XOrExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__0();
@@ -29277,14 +30099,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
-    // InternalCubeDSL.g:8490:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
+    // InternalCubeDSL.g:8735:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
     public final void rule__XOrExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8494:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
-            // InternalCubeDSL.g:8495:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+            // InternalCubeDSL.g:8739:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+            // InternalCubeDSL.g:8740:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_57);
             rule__XOrExpression__Group_1_0_0__0__Impl();
@@ -29315,23 +30137,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:8502:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:8747:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XOrExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8506:1: ( ( () ) )
-            // InternalCubeDSL.g:8507:1: ( () )
+            // InternalCubeDSL.g:8751:1: ( ( () ) )
+            // InternalCubeDSL.g:8752:1: ( () )
             {
-            // InternalCubeDSL.g:8507:1: ( () )
-            // InternalCubeDSL.g:8508:2: ()
+            // InternalCubeDSL.g:8752:1: ( () )
+            // InternalCubeDSL.g:8753:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:8509:2: ()
-            // InternalCubeDSL.g:8509:3: 
+            // InternalCubeDSL.g:8754:2: ()
+            // InternalCubeDSL.g:8754:3: 
             {
             }
 
@@ -29356,14 +30178,14 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
-    // InternalCubeDSL.g:8517:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:8762:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
     public final void rule__XOrExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8521:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
-            // InternalCubeDSL.g:8522:2: rule__XOrExpression__Group_1_0_0__1__Impl
+            // InternalCubeDSL.g:8766:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+            // InternalCubeDSL.g:8767:2: rule__XOrExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__Group_1_0_0__1__Impl();
@@ -29389,23 +30211,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
-    // InternalCubeDSL.g:8528:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:8773:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XOrExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8532:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:8533:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:8777:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:8778:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:8533:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalCubeDSL.g:8534:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:8778:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:8779:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:8535:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
-            // InternalCubeDSL.g:8535:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
+            // InternalCubeDSL.g:8780:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:8780:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOrExpression__FeatureAssignment_1_0_0_1();
@@ -29440,14 +30262,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0"
-    // InternalCubeDSL.g:8544:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+    // InternalCubeDSL.g:8789:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
     public final void rule__XAndExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8548:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
-            // InternalCubeDSL.g:8549:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+            // InternalCubeDSL.g:8793:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+            // InternalCubeDSL.g:8794:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
             {
             pushFollow(FOLLOW_59);
             rule__XAndExpression__Group__0__Impl();
@@ -29478,17 +30300,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__0__Impl"
-    // InternalCubeDSL.g:8556:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+    // InternalCubeDSL.g:8801:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8560:1: ( ( ruleXEqualityExpression ) )
-            // InternalCubeDSL.g:8561:1: ( ruleXEqualityExpression )
+            // InternalCubeDSL.g:8805:1: ( ( ruleXEqualityExpression ) )
+            // InternalCubeDSL.g:8806:1: ( ruleXEqualityExpression )
             {
-            // InternalCubeDSL.g:8561:1: ( ruleXEqualityExpression )
-            // InternalCubeDSL.g:8562:2: ruleXEqualityExpression
+            // InternalCubeDSL.g:8806:1: ( ruleXEqualityExpression )
+            // InternalCubeDSL.g:8807:2: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
@@ -29523,14 +30345,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1"
-    // InternalCubeDSL.g:8571:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+    // InternalCubeDSL.g:8816:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
     public final void rule__XAndExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8575:1: ( rule__XAndExpression__Group__1__Impl )
-            // InternalCubeDSL.g:8576:2: rule__XAndExpression__Group__1__Impl
+            // InternalCubeDSL.g:8820:1: ( rule__XAndExpression__Group__1__Impl )
+            // InternalCubeDSL.g:8821:2: rule__XAndExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group__1__Impl();
@@ -29556,41 +30378,41 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group__1__Impl"
-    // InternalCubeDSL.g:8582:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:8827:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
     public final void rule__XAndExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8586:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
-            // InternalCubeDSL.g:8587:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:8831:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+            // InternalCubeDSL.g:8832:1: ( ( rule__XAndExpression__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:8587:1: ( ( rule__XAndExpression__Group_1__0 )* )
-            // InternalCubeDSL.g:8588:2: ( rule__XAndExpression__Group_1__0 )*
+            // InternalCubeDSL.g:8832:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:8833:2: ( rule__XAndExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:8589:2: ( rule__XAndExpression__Group_1__0 )*
-            loop88:
+            // InternalCubeDSL.g:8834:2: ( rule__XAndExpression__Group_1__0 )*
+            loop91:
             do {
-                int alt88=2;
-                int LA88_0 = input.LA(1);
+                int alt91=2;
+                int LA91_0 = input.LA(1);
 
-                if ( (LA88_0==15) ) {
-                    int LA88_2 = input.LA(2);
+                if ( (LA91_0==15) ) {
+                    int LA91_2 = input.LA(2);
 
-                    if ( (synpred149_InternalCubeDSL()) ) {
-                        alt88=1;
+                    if ( (synpred152_InternalCubeDSL()) ) {
+                        alt91=1;
                     }
 
 
                 }
 
 
-                switch (alt88) {
+                switch (alt91) {
             	case 1 :
-            	    // InternalCubeDSL.g:8589:3: rule__XAndExpression__Group_1__0
+            	    // InternalCubeDSL.g:8834:3: rule__XAndExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_60);
             	    rule__XAndExpression__Group_1__0();
@@ -29602,7 +30424,7 @@
             	    break;
 
             	default :
-            	    break loop88;
+            	    break loop91;
                 }
             } while (true);
 
@@ -29631,14 +30453,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0"
-    // InternalCubeDSL.g:8598:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+    // InternalCubeDSL.g:8843:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
     public final void rule__XAndExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8602:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
-            // InternalCubeDSL.g:8603:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+            // InternalCubeDSL.g:8847:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+            // InternalCubeDSL.g:8848:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XAndExpression__Group_1__0__Impl();
@@ -29669,23 +30491,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
-    // InternalCubeDSL.g:8610:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:8855:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
     public final void rule__XAndExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8614:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:8615:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:8859:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:8860:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:8615:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
-            // InternalCubeDSL.g:8616:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:8860:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:8861:2: ( rule__XAndExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:8617:2: ( rule__XAndExpression__Group_1_0__0 )
-            // InternalCubeDSL.g:8617:3: rule__XAndExpression__Group_1_0__0
+            // InternalCubeDSL.g:8862:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:8862:3: rule__XAndExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0();
@@ -29720,14 +30542,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1"
-    // InternalCubeDSL.g:8625:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+    // InternalCubeDSL.g:8870:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
     public final void rule__XAndExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8629:1: ( rule__XAndExpression__Group_1__1__Impl )
-            // InternalCubeDSL.g:8630:2: rule__XAndExpression__Group_1__1__Impl
+            // InternalCubeDSL.g:8874:1: ( rule__XAndExpression__Group_1__1__Impl )
+            // InternalCubeDSL.g:8875:2: rule__XAndExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1__1__Impl();
@@ -29753,23 +30575,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
-    // InternalCubeDSL.g:8636:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:8881:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XAndExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8640:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:8641:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:8885:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:8886:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:8641:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
-            // InternalCubeDSL.g:8642:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:8886:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:8887:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:8643:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
-            // InternalCubeDSL.g:8643:3: rule__XAndExpression__RightOperandAssignment_1_1
+            // InternalCubeDSL.g:8888:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:8888:3: rule__XAndExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__RightOperandAssignment_1_1();
@@ -29804,14 +30626,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0"
-    // InternalCubeDSL.g:8652:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+    // InternalCubeDSL.g:8897:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
     public final void rule__XAndExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8656:1: ( rule__XAndExpression__Group_1_0__0__Impl )
-            // InternalCubeDSL.g:8657:2: rule__XAndExpression__Group_1_0__0__Impl
+            // InternalCubeDSL.g:8901:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+            // InternalCubeDSL.g:8902:2: rule__XAndExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0__0__Impl();
@@ -29837,23 +30659,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:8663:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:8908:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XAndExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8667:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:8668:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:8912:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:8913:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:8668:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:8669:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:8913:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:8914:2: ( rule__XAndExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:8670:2: ( rule__XAndExpression__Group_1_0_0__0 )
-            // InternalCubeDSL.g:8670:3: rule__XAndExpression__Group_1_0_0__0
+            // InternalCubeDSL.g:8915:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:8915:3: rule__XAndExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__0();
@@ -29888,14 +30710,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
-    // InternalCubeDSL.g:8679:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
+    // InternalCubeDSL.g:8924:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
     public final void rule__XAndExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8683:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
-            // InternalCubeDSL.g:8684:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+            // InternalCubeDSL.g:8928:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+            // InternalCubeDSL.g:8929:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_59);
             rule__XAndExpression__Group_1_0_0__0__Impl();
@@ -29926,23 +30748,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:8691:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:8936:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAndExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8695:1: ( ( () ) )
-            // InternalCubeDSL.g:8696:1: ( () )
+            // InternalCubeDSL.g:8940:1: ( ( () ) )
+            // InternalCubeDSL.g:8941:1: ( () )
             {
-            // InternalCubeDSL.g:8696:1: ( () )
-            // InternalCubeDSL.g:8697:2: ()
+            // InternalCubeDSL.g:8941:1: ( () )
+            // InternalCubeDSL.g:8942:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:8698:2: ()
-            // InternalCubeDSL.g:8698:3: 
+            // InternalCubeDSL.g:8943:2: ()
+            // InternalCubeDSL.g:8943:3: 
             {
             }
 
@@ -29967,14 +30789,14 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
-    // InternalCubeDSL.g:8706:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:8951:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
     public final void rule__XAndExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8710:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
-            // InternalCubeDSL.g:8711:2: rule__XAndExpression__Group_1_0_0__1__Impl
+            // InternalCubeDSL.g:8955:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+            // InternalCubeDSL.g:8956:2: rule__XAndExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__Group_1_0_0__1__Impl();
@@ -30000,23 +30822,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
-    // InternalCubeDSL.g:8717:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:8962:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XAndExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8721:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:8722:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:8966:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:8967:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:8722:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalCubeDSL.g:8723:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:8967:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:8968:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:8724:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
-            // InternalCubeDSL.g:8724:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
+            // InternalCubeDSL.g:8969:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:8969:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAndExpression__FeatureAssignment_1_0_0_1();
@@ -30051,14 +30873,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0"
-    // InternalCubeDSL.g:8733:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+    // InternalCubeDSL.g:8978:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
     public final void rule__XEqualityExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8737:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
-            // InternalCubeDSL.g:8738:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+            // InternalCubeDSL.g:8982:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+            // InternalCubeDSL.g:8983:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
             {
             pushFollow(FOLLOW_61);
             rule__XEqualityExpression__Group__0__Impl();
@@ -30089,17 +30911,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
-    // InternalCubeDSL.g:8745:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+    // InternalCubeDSL.g:8990:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8749:1: ( ( ruleXRelationalExpression ) )
-            // InternalCubeDSL.g:8750:1: ( ruleXRelationalExpression )
+            // InternalCubeDSL.g:8994:1: ( ( ruleXRelationalExpression ) )
+            // InternalCubeDSL.g:8995:1: ( ruleXRelationalExpression )
             {
-            // InternalCubeDSL.g:8750:1: ( ruleXRelationalExpression )
-            // InternalCubeDSL.g:8751:2: ruleXRelationalExpression
+            // InternalCubeDSL.g:8995:1: ( ruleXRelationalExpression )
+            // InternalCubeDSL.g:8996:2: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
@@ -30134,14 +30956,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1"
-    // InternalCubeDSL.g:8760:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+    // InternalCubeDSL.g:9005:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
     public final void rule__XEqualityExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8764:1: ( rule__XEqualityExpression__Group__1__Impl )
-            // InternalCubeDSL.g:8765:2: rule__XEqualityExpression__Group__1__Impl
+            // InternalCubeDSL.g:9009:1: ( rule__XEqualityExpression__Group__1__Impl )
+            // InternalCubeDSL.g:9010:2: rule__XEqualityExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group__1__Impl();
@@ -30167,32 +30989,32 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
-    // InternalCubeDSL.g:8771:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:9016:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
     public final void rule__XEqualityExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8775:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
-            // InternalCubeDSL.g:8776:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:9020:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+            // InternalCubeDSL.g:9021:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:8776:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
-            // InternalCubeDSL.g:8777:2: ( rule__XEqualityExpression__Group_1__0 )*
+            // InternalCubeDSL.g:9021:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:9022:2: ( rule__XEqualityExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:8778:2: ( rule__XEqualityExpression__Group_1__0 )*
-            loop89:
+            // InternalCubeDSL.g:9023:2: ( rule__XEqualityExpression__Group_1__0 )*
+            loop92:
             do {
-                int alt89=2;
+                int alt92=2;
                 switch ( input.LA(1) ) {
                 case 21:
                     {
-                    int LA89_2 = input.LA(2);
+                    int LA92_2 = input.LA(2);
 
-                    if ( (synpred150_InternalCubeDSL()) ) {
-                        alt89=1;
+                    if ( (synpred153_InternalCubeDSL()) ) {
+                        alt92=1;
                     }
 
 
@@ -30200,10 +31022,10 @@
                     break;
                 case 22:
                     {
-                    int LA89_3 = input.LA(2);
+                    int LA92_3 = input.LA(2);
 
-                    if ( (synpred150_InternalCubeDSL()) ) {
-                        alt89=1;
+                    if ( (synpred153_InternalCubeDSL()) ) {
+                        alt92=1;
                     }
 
 
@@ -30211,10 +31033,10 @@
                     break;
                 case 23:
                     {
-                    int LA89_4 = input.LA(2);
+                    int LA92_4 = input.LA(2);
 
-                    if ( (synpred150_InternalCubeDSL()) ) {
-                        alt89=1;
+                    if ( (synpred153_InternalCubeDSL()) ) {
+                        alt92=1;
                     }
 
 
@@ -30222,10 +31044,10 @@
                     break;
                 case 24:
                     {
-                    int LA89_5 = input.LA(2);
+                    int LA92_5 = input.LA(2);
 
-                    if ( (synpred150_InternalCubeDSL()) ) {
-                        alt89=1;
+                    if ( (synpred153_InternalCubeDSL()) ) {
+                        alt92=1;
                     }
 
 
@@ -30234,9 +31056,9 @@
 
                 }
 
-                switch (alt89) {
+                switch (alt92) {
             	case 1 :
-            	    // InternalCubeDSL.g:8778:3: rule__XEqualityExpression__Group_1__0
+            	    // InternalCubeDSL.g:9023:3: rule__XEqualityExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_62);
             	    rule__XEqualityExpression__Group_1__0();
@@ -30248,7 +31070,7 @@
             	    break;
 
             	default :
-            	    break loop89;
+            	    break loop92;
                 }
             } while (true);
 
@@ -30277,14 +31099,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0"
-    // InternalCubeDSL.g:8787:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+    // InternalCubeDSL.g:9032:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
     public final void rule__XEqualityExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8791:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
-            // InternalCubeDSL.g:8792:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+            // InternalCubeDSL.g:9036:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+            // InternalCubeDSL.g:9037:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XEqualityExpression__Group_1__0__Impl();
@@ -30315,23 +31137,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
-    // InternalCubeDSL.g:8799:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:9044:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
     public final void rule__XEqualityExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8803:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:8804:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:9048:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:9049:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:8804:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
-            // InternalCubeDSL.g:8805:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:9049:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:9050:2: ( rule__XEqualityExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:8806:2: ( rule__XEqualityExpression__Group_1_0__0 )
-            // InternalCubeDSL.g:8806:3: rule__XEqualityExpression__Group_1_0__0
+            // InternalCubeDSL.g:9051:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:9051:3: rule__XEqualityExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0();
@@ -30366,14 +31188,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1"
-    // InternalCubeDSL.g:8814:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+    // InternalCubeDSL.g:9059:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
     public final void rule__XEqualityExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8818:1: ( rule__XEqualityExpression__Group_1__1__Impl )
-            // InternalCubeDSL.g:8819:2: rule__XEqualityExpression__Group_1__1__Impl
+            // InternalCubeDSL.g:9063:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+            // InternalCubeDSL.g:9064:2: rule__XEqualityExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1__1__Impl();
@@ -30399,23 +31221,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
-    // InternalCubeDSL.g:8825:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:9070:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XEqualityExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8829:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:8830:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:9074:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:9075:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:8830:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
-            // InternalCubeDSL.g:8831:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:9075:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:9076:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:8832:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
-            // InternalCubeDSL.g:8832:3: rule__XEqualityExpression__RightOperandAssignment_1_1
+            // InternalCubeDSL.g:9077:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:9077:3: rule__XEqualityExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__RightOperandAssignment_1_1();
@@ -30450,14 +31272,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
-    // InternalCubeDSL.g:8841:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+    // InternalCubeDSL.g:9086:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
     public final void rule__XEqualityExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8845:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
-            // InternalCubeDSL.g:8846:2: rule__XEqualityExpression__Group_1_0__0__Impl
+            // InternalCubeDSL.g:9090:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+            // InternalCubeDSL.g:9091:2: rule__XEqualityExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0__0__Impl();
@@ -30483,23 +31305,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:8852:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:9097:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XEqualityExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8856:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:8857:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:9101:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:9102:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:8857:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:8858:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:9102:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:9103:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:8859:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
-            // InternalCubeDSL.g:8859:3: rule__XEqualityExpression__Group_1_0_0__0
+            // InternalCubeDSL.g:9104:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:9104:3: rule__XEqualityExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__0();
@@ -30534,14 +31356,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
-    // InternalCubeDSL.g:8868:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
+    // InternalCubeDSL.g:9113:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
     public final void rule__XEqualityExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8872:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
-            // InternalCubeDSL.g:8873:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+            // InternalCubeDSL.g:9117:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+            // InternalCubeDSL.g:9118:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_61);
             rule__XEqualityExpression__Group_1_0_0__0__Impl();
@@ -30572,23 +31394,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:8880:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:9125:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XEqualityExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8884:1: ( ( () ) )
-            // InternalCubeDSL.g:8885:1: ( () )
+            // InternalCubeDSL.g:9129:1: ( ( () ) )
+            // InternalCubeDSL.g:9130:1: ( () )
             {
-            // InternalCubeDSL.g:8885:1: ( () )
-            // InternalCubeDSL.g:8886:2: ()
+            // InternalCubeDSL.g:9130:1: ( () )
+            // InternalCubeDSL.g:9131:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:8887:2: ()
-            // InternalCubeDSL.g:8887:3: 
+            // InternalCubeDSL.g:9132:2: ()
+            // InternalCubeDSL.g:9132:3: 
             {
             }
 
@@ -30613,14 +31435,14 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
-    // InternalCubeDSL.g:8895:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:9140:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
     public final void rule__XEqualityExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8899:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
-            // InternalCubeDSL.g:8900:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+            // InternalCubeDSL.g:9144:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+            // InternalCubeDSL.g:9145:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__Group_1_0_0__1__Impl();
@@ -30646,23 +31468,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
-    // InternalCubeDSL.g:8906:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:9151:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8910:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:8911:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:9155:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:9156:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:8911:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalCubeDSL.g:8912:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:9156:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:9157:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:8913:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
-            // InternalCubeDSL.g:8913:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+            // InternalCubeDSL.g:9158:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:9158:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XEqualityExpression__FeatureAssignment_1_0_0_1();
@@ -30697,14 +31519,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0"
-    // InternalCubeDSL.g:8922:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
+    // InternalCubeDSL.g:9167:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
     public final void rule__XRelationalExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8926:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
-            // InternalCubeDSL.g:8927:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
+            // InternalCubeDSL.g:9171:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
+            // InternalCubeDSL.g:9172:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
             {
             pushFollow(FOLLOW_63);
             rule__XRelationalExpression__Group__0__Impl();
@@ -30735,17 +31557,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
-    // InternalCubeDSL.g:8934:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
+    // InternalCubeDSL.g:9179:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8938:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalCubeDSL.g:8939:1: ( ruleXOtherOperatorExpression )
+            // InternalCubeDSL.g:9183:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalCubeDSL.g:9184:1: ( ruleXOtherOperatorExpression )
             {
-            // InternalCubeDSL.g:8939:1: ( ruleXOtherOperatorExpression )
-            // InternalCubeDSL.g:8940:2: ruleXOtherOperatorExpression
+            // InternalCubeDSL.g:9184:1: ( ruleXOtherOperatorExpression )
+            // InternalCubeDSL.g:9185:2: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
@@ -30780,14 +31602,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1"
-    // InternalCubeDSL.g:8949:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
+    // InternalCubeDSL.g:9194:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
     public final void rule__XRelationalExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8953:1: ( rule__XRelationalExpression__Group__1__Impl )
-            // InternalCubeDSL.g:8954:2: rule__XRelationalExpression__Group__1__Impl
+            // InternalCubeDSL.g:9198:1: ( rule__XRelationalExpression__Group__1__Impl )
+            // InternalCubeDSL.g:9199:2: rule__XRelationalExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group__1__Impl();
@@ -30813,32 +31635,32 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
-    // InternalCubeDSL.g:8960:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
+    // InternalCubeDSL.g:9205:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
     public final void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8964:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
-            // InternalCubeDSL.g:8965:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalCubeDSL.g:9209:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
+            // InternalCubeDSL.g:9210:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
             {
-            // InternalCubeDSL.g:8965:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
-            // InternalCubeDSL.g:8966:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            // InternalCubeDSL.g:9210:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalCubeDSL.g:9211:2: ( rule__XRelationalExpression__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
             }
-            // InternalCubeDSL.g:8967:2: ( rule__XRelationalExpression__Alternatives_1 )*
-            loop90:
+            // InternalCubeDSL.g:9212:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            loop93:
             do {
-                int alt90=2;
+                int alt93=2;
                 switch ( input.LA(1) ) {
                 case 27:
                     {
-                    int LA90_2 = input.LA(2);
+                    int LA93_2 = input.LA(2);
 
-                    if ( (synpred151_InternalCubeDSL()) ) {
-                        alt90=1;
+                    if ( (synpred154_InternalCubeDSL()) ) {
+                        alt93=1;
                     }
 
 
@@ -30846,10 +31668,10 @@
                     break;
                 case 26:
                     {
-                    int LA90_3 = input.LA(2);
+                    int LA93_3 = input.LA(2);
 
-                    if ( (synpred151_InternalCubeDSL()) ) {
-                        alt90=1;
+                    if ( (synpred154_InternalCubeDSL()) ) {
+                        alt93=1;
                     }
 
 
@@ -30857,10 +31679,10 @@
                     break;
                 case 94:
                     {
-                    int LA90_4 = input.LA(2);
+                    int LA93_4 = input.LA(2);
 
-                    if ( (synpred151_InternalCubeDSL()) ) {
-                        alt90=1;
+                    if ( (synpred154_InternalCubeDSL()) ) {
+                        alt93=1;
                     }
 
 
@@ -30868,10 +31690,10 @@
                     break;
                 case 25:
                     {
-                    int LA90_5 = input.LA(2);
+                    int LA93_5 = input.LA(2);
 
-                    if ( (synpred151_InternalCubeDSL()) ) {
-                        alt90=1;
+                    if ( (synpred154_InternalCubeDSL()) ) {
+                        alt93=1;
                     }
 
 
@@ -30880,9 +31702,9 @@
 
                 }
 
-                switch (alt90) {
+                switch (alt93) {
             	case 1 :
-            	    // InternalCubeDSL.g:8967:3: rule__XRelationalExpression__Alternatives_1
+            	    // InternalCubeDSL.g:9212:3: rule__XRelationalExpression__Alternatives_1
             	    {
             	    pushFollow(FOLLOW_64);
             	    rule__XRelationalExpression__Alternatives_1();
@@ -30894,7 +31716,7 @@
             	    break;
 
             	default :
-            	    break loop90;
+            	    break loop93;
                 }
             } while (true);
 
@@ -30923,14 +31745,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
-    // InternalCubeDSL.g:8976:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
+    // InternalCubeDSL.g:9221:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
     public final void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8980:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
-            // InternalCubeDSL.g:8981:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
+            // InternalCubeDSL.g:9225:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
+            // InternalCubeDSL.g:9226:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
             {
             pushFollow(FOLLOW_65);
             rule__XRelationalExpression__Group_1_0__0__Impl();
@@ -30961,23 +31783,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:8988:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:9233:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:8992:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:8993:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:9237:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:9238:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:8993:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:8994:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:9238:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:9239:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:8995:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
-            // InternalCubeDSL.g:8995:3: rule__XRelationalExpression__Group_1_0_0__0
+            // InternalCubeDSL.g:9240:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:9240:3: rule__XRelationalExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0();
@@ -31012,14 +31834,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
-    // InternalCubeDSL.g:9003:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
+    // InternalCubeDSL.g:9248:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9007:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
-            // InternalCubeDSL.g:9008:2: rule__XRelationalExpression__Group_1_0__1__Impl
+            // InternalCubeDSL.g:9252:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
+            // InternalCubeDSL.g:9253:2: rule__XRelationalExpression__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0__1__Impl();
@@ -31045,23 +31867,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
-    // InternalCubeDSL.g:9014:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
+    // InternalCubeDSL.g:9259:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9018:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
-            // InternalCubeDSL.g:9019:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalCubeDSL.g:9263:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
+            // InternalCubeDSL.g:9264:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
             {
-            // InternalCubeDSL.g:9019:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
-            // InternalCubeDSL.g:9020:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalCubeDSL.g:9264:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalCubeDSL.g:9265:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
             }
-            // InternalCubeDSL.g:9021:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
-            // InternalCubeDSL.g:9021:3: rule__XRelationalExpression__TypeAssignment_1_0_1
+            // InternalCubeDSL.g:9266:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalCubeDSL.g:9266:3: rule__XRelationalExpression__TypeAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__TypeAssignment_1_0_1();
@@ -31096,14 +31918,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
-    // InternalCubeDSL.g:9030:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
+    // InternalCubeDSL.g:9275:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
     public final void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9034:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
-            // InternalCubeDSL.g:9035:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
+            // InternalCubeDSL.g:9279:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
+            // InternalCubeDSL.g:9280:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0__0__Impl();
@@ -31129,23 +31951,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:9041:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
+    // InternalCubeDSL.g:9286:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9045:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
-            // InternalCubeDSL.g:9046:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalCubeDSL.g:9290:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
+            // InternalCubeDSL.g:9291:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
             {
-            // InternalCubeDSL.g:9046:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
-            // InternalCubeDSL.g:9047:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalCubeDSL.g:9291:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalCubeDSL.g:9292:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:9048:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
-            // InternalCubeDSL.g:9048:3: rule__XRelationalExpression__Group_1_0_0_0__0
+            // InternalCubeDSL.g:9293:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalCubeDSL.g:9293:3: rule__XRelationalExpression__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__0();
@@ -31180,14 +32002,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
-    // InternalCubeDSL.g:9057:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
+    // InternalCubeDSL.g:9302:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9061:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
-            // InternalCubeDSL.g:9062:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
+            // InternalCubeDSL.g:9306:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
+            // InternalCubeDSL.g:9307:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
             {
             pushFollow(FOLLOW_66);
             rule__XRelationalExpression__Group_1_0_0_0__0__Impl();
@@ -31218,23 +32040,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
-    // InternalCubeDSL.g:9069:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:9314:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9073:1: ( ( () ) )
-            // InternalCubeDSL.g:9074:1: ( () )
+            // InternalCubeDSL.g:9318:1: ( ( () ) )
+            // InternalCubeDSL.g:9319:1: ( () )
             {
-            // InternalCubeDSL.g:9074:1: ( () )
-            // InternalCubeDSL.g:9075:2: ()
+            // InternalCubeDSL.g:9319:1: ( () )
+            // InternalCubeDSL.g:9320:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
             }
-            // InternalCubeDSL.g:9076:2: ()
-            // InternalCubeDSL.g:9076:3: 
+            // InternalCubeDSL.g:9321:2: ()
+            // InternalCubeDSL.g:9321:3: 
             {
             }
 
@@ -31259,14 +32081,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
-    // InternalCubeDSL.g:9084:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
+    // InternalCubeDSL.g:9329:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9088:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
-            // InternalCubeDSL.g:9089:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+            // InternalCubeDSL.g:9333:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
+            // InternalCubeDSL.g:9334:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_0_0_0__1__Impl();
@@ -31292,17 +32114,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
-    // InternalCubeDSL.g:9095:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
+    // InternalCubeDSL.g:9340:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
     public final void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9099:1: ( ( 'instanceof' ) )
-            // InternalCubeDSL.g:9100:1: ( 'instanceof' )
+            // InternalCubeDSL.g:9344:1: ( ( 'instanceof' ) )
+            // InternalCubeDSL.g:9345:1: ( 'instanceof' )
             {
-            // InternalCubeDSL.g:9100:1: ( 'instanceof' )
-            // InternalCubeDSL.g:9101:2: 'instanceof'
+            // InternalCubeDSL.g:9345:1: ( 'instanceof' )
+            // InternalCubeDSL.g:9346:2: 'instanceof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
@@ -31333,14 +32155,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
-    // InternalCubeDSL.g:9111:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
+    // InternalCubeDSL.g:9356:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
     public final void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9115:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
-            // InternalCubeDSL.g:9116:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
+            // InternalCubeDSL.g:9360:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
+            // InternalCubeDSL.g:9361:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XRelationalExpression__Group_1_1__0__Impl();
@@ -31371,23 +32193,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
-    // InternalCubeDSL.g:9123:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
+    // InternalCubeDSL.g:9368:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9127:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
-            // InternalCubeDSL.g:9128:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalCubeDSL.g:9372:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
+            // InternalCubeDSL.g:9373:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
             {
-            // InternalCubeDSL.g:9128:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
-            // InternalCubeDSL.g:9129:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalCubeDSL.g:9373:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalCubeDSL.g:9374:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
             }
-            // InternalCubeDSL.g:9130:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
-            // InternalCubeDSL.g:9130:3: rule__XRelationalExpression__Group_1_1_0__0
+            // InternalCubeDSL.g:9375:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalCubeDSL.g:9375:3: rule__XRelationalExpression__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0();
@@ -31422,14 +32244,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
-    // InternalCubeDSL.g:9138:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
+    // InternalCubeDSL.g:9383:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9142:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
-            // InternalCubeDSL.g:9143:2: rule__XRelationalExpression__Group_1_1__1__Impl
+            // InternalCubeDSL.g:9387:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
+            // InternalCubeDSL.g:9388:2: rule__XRelationalExpression__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1__1__Impl();
@@ -31455,23 +32277,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
-    // InternalCubeDSL.g:9149:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
+    // InternalCubeDSL.g:9394:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9153:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
-            // InternalCubeDSL.g:9154:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalCubeDSL.g:9398:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
+            // InternalCubeDSL.g:9399:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
             {
-            // InternalCubeDSL.g:9154:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
-            // InternalCubeDSL.g:9155:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalCubeDSL.g:9399:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalCubeDSL.g:9400:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
             }
-            // InternalCubeDSL.g:9156:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
-            // InternalCubeDSL.g:9156:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
+            // InternalCubeDSL.g:9401:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalCubeDSL.g:9401:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__RightOperandAssignment_1_1_1();
@@ -31506,14 +32328,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
-    // InternalCubeDSL.g:9165:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
+    // InternalCubeDSL.g:9410:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
     public final void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9169:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
-            // InternalCubeDSL.g:9170:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
+            // InternalCubeDSL.g:9414:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
+            // InternalCubeDSL.g:9415:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0__0__Impl();
@@ -31539,23 +32361,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
-    // InternalCubeDSL.g:9176:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:9421:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9180:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:9181:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalCubeDSL.g:9425:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:9426:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:9181:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
-            // InternalCubeDSL.g:9182:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalCubeDSL.g:9426:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalCubeDSL.g:9427:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
             }
-            // InternalCubeDSL.g:9183:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
-            // InternalCubeDSL.g:9183:3: rule__XRelationalExpression__Group_1_1_0_0__0
+            // InternalCubeDSL.g:9428:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalCubeDSL.g:9428:3: rule__XRelationalExpression__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__0();
@@ -31590,14 +32412,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
-    // InternalCubeDSL.g:9192:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
+    // InternalCubeDSL.g:9437:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9196:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
-            // InternalCubeDSL.g:9197:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
+            // InternalCubeDSL.g:9441:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
+            // InternalCubeDSL.g:9442:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
             {
             pushFollow(FOLLOW_63);
             rule__XRelationalExpression__Group_1_1_0_0__0__Impl();
@@ -31628,23 +32450,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
-    // InternalCubeDSL.g:9204:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:9449:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9208:1: ( ( () ) )
-            // InternalCubeDSL.g:9209:1: ( () )
+            // InternalCubeDSL.g:9453:1: ( ( () ) )
+            // InternalCubeDSL.g:9454:1: ( () )
             {
-            // InternalCubeDSL.g:9209:1: ( () )
-            // InternalCubeDSL.g:9210:2: ()
+            // InternalCubeDSL.g:9454:1: ( () )
+            // InternalCubeDSL.g:9455:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:9211:2: ()
-            // InternalCubeDSL.g:9211:3: 
+            // InternalCubeDSL.g:9456:2: ()
+            // InternalCubeDSL.g:9456:3: 
             {
             }
 
@@ -31669,14 +32491,14 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
-    // InternalCubeDSL.g:9219:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:9464:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9223:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
-            // InternalCubeDSL.g:9224:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+            // InternalCubeDSL.g:9468:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
+            // InternalCubeDSL.g:9469:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__Group_1_1_0_0__1__Impl();
@@ -31702,23 +32524,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
-    // InternalCubeDSL.g:9230:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:9475:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
     public final void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9234:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:9235:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalCubeDSL.g:9479:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:9480:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:9235:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
-            // InternalCubeDSL.g:9236:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalCubeDSL.g:9480:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalCubeDSL.g:9481:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:9237:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
-            // InternalCubeDSL.g:9237:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+            // InternalCubeDSL.g:9482:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalCubeDSL.g:9482:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();
@@ -31753,14 +32575,14 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0"
-    // InternalCubeDSL.g:9246:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
+    // InternalCubeDSL.g:9491:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
     public final void rule__OpCompare__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9250:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
-            // InternalCubeDSL.g:9251:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
+            // InternalCubeDSL.g:9495:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
+            // InternalCubeDSL.g:9496:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
             {
             pushFollow(FOLLOW_49);
             rule__OpCompare__Group_1__0__Impl();
@@ -31791,17 +32613,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__0__Impl"
-    // InternalCubeDSL.g:9258:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
+    // InternalCubeDSL.g:9503:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
     public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9262:1: ( ( '<' ) )
-            // InternalCubeDSL.g:9263:1: ( '<' )
+            // InternalCubeDSL.g:9507:1: ( ( '<' ) )
+            // InternalCubeDSL.g:9508:1: ( '<' )
             {
-            // InternalCubeDSL.g:9263:1: ( '<' )
-            // InternalCubeDSL.g:9264:2: '<'
+            // InternalCubeDSL.g:9508:1: ( '<' )
+            // InternalCubeDSL.g:9509:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
@@ -31832,14 +32654,14 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1"
-    // InternalCubeDSL.g:9273:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
+    // InternalCubeDSL.g:9518:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
     public final void rule__OpCompare__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9277:1: ( rule__OpCompare__Group_1__1__Impl )
-            // InternalCubeDSL.g:9278:2: rule__OpCompare__Group_1__1__Impl
+            // InternalCubeDSL.g:9522:1: ( rule__OpCompare__Group_1__1__Impl )
+            // InternalCubeDSL.g:9523:2: rule__OpCompare__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpCompare__Group_1__1__Impl();
@@ -31865,17 +32687,17 @@
 
 
     // $ANTLR start "rule__OpCompare__Group_1__1__Impl"
-    // InternalCubeDSL.g:9284:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
+    // InternalCubeDSL.g:9529:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
     public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9288:1: ( ( '=' ) )
-            // InternalCubeDSL.g:9289:1: ( '=' )
+            // InternalCubeDSL.g:9533:1: ( ( '=' ) )
+            // InternalCubeDSL.g:9534:1: ( '=' )
             {
-            // InternalCubeDSL.g:9289:1: ( '=' )
-            // InternalCubeDSL.g:9290:2: '='
+            // InternalCubeDSL.g:9534:1: ( '=' )
+            // InternalCubeDSL.g:9535:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
@@ -31906,14 +32728,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
-    // InternalCubeDSL.g:9300:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
+    // InternalCubeDSL.g:9545:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
     public final void rule__XOtherOperatorExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9304:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
-            // InternalCubeDSL.g:9305:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
+            // InternalCubeDSL.g:9549:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
+            // InternalCubeDSL.g:9550:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
             {
             pushFollow(FOLLOW_67);
             rule__XOtherOperatorExpression__Group__0__Impl();
@@ -31944,17 +32766,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
-    // InternalCubeDSL.g:9312:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
+    // InternalCubeDSL.g:9557:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9316:1: ( ( ruleXAdditiveExpression ) )
-            // InternalCubeDSL.g:9317:1: ( ruleXAdditiveExpression )
+            // InternalCubeDSL.g:9561:1: ( ( ruleXAdditiveExpression ) )
+            // InternalCubeDSL.g:9562:1: ( ruleXAdditiveExpression )
             {
-            // InternalCubeDSL.g:9317:1: ( ruleXAdditiveExpression )
-            // InternalCubeDSL.g:9318:2: ruleXAdditiveExpression
+            // InternalCubeDSL.g:9562:1: ( ruleXAdditiveExpression )
+            // InternalCubeDSL.g:9563:2: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
@@ -31989,14 +32811,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
-    // InternalCubeDSL.g:9327:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
+    // InternalCubeDSL.g:9572:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9331:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
-            // InternalCubeDSL.g:9332:2: rule__XOtherOperatorExpression__Group__1__Impl
+            // InternalCubeDSL.g:9576:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
+            // InternalCubeDSL.g:9577:2: rule__XOtherOperatorExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group__1__Impl();
@@ -32022,29 +32844,29 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
-    // InternalCubeDSL.g:9338:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:9583:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
     public final void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9342:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
-            // InternalCubeDSL.g:9343:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:9587:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
+            // InternalCubeDSL.g:9588:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:9343:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
-            // InternalCubeDSL.g:9344:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            // InternalCubeDSL.g:9588:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:9589:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:9345:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
-            loop91:
+            // InternalCubeDSL.g:9590:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            loop94:
             do {
-                int alt91=2;
-                alt91 = dfa91.predict(input);
-                switch (alt91) {
+                int alt94=2;
+                alt94 = dfa94.predict(input);
+                switch (alt94) {
             	case 1 :
-            	    // InternalCubeDSL.g:9345:3: rule__XOtherOperatorExpression__Group_1__0
+            	    // InternalCubeDSL.g:9590:3: rule__XOtherOperatorExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_68);
             	    rule__XOtherOperatorExpression__Group_1__0();
@@ -32056,7 +32878,7 @@
             	    break;
 
             	default :
-            	    break loop91;
+            	    break loop94;
                 }
             } while (true);
 
@@ -32085,14 +32907,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
-    // InternalCubeDSL.g:9354:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
+    // InternalCubeDSL.g:9599:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
     public final void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9358:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
-            // InternalCubeDSL.g:9359:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
+            // InternalCubeDSL.g:9603:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
+            // InternalCubeDSL.g:9604:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XOtherOperatorExpression__Group_1__0__Impl();
@@ -32123,23 +32945,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
-    // InternalCubeDSL.g:9366:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:9611:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9370:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:9371:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:9615:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:9616:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:9371:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
-            // InternalCubeDSL.g:9372:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:9616:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:9617:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:9373:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
-            // InternalCubeDSL.g:9373:3: rule__XOtherOperatorExpression__Group_1_0__0
+            // InternalCubeDSL.g:9618:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:9618:3: rule__XOtherOperatorExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0();
@@ -32174,14 +32996,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
-    // InternalCubeDSL.g:9381:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
+    // InternalCubeDSL.g:9626:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9385:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
-            // InternalCubeDSL.g:9386:2: rule__XOtherOperatorExpression__Group_1__1__Impl
+            // InternalCubeDSL.g:9630:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
+            // InternalCubeDSL.g:9631:2: rule__XOtherOperatorExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1__1__Impl();
@@ -32207,23 +33029,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
-    // InternalCubeDSL.g:9392:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:9637:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9396:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:9397:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:9641:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:9642:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:9397:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
-            // InternalCubeDSL.g:9398:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:9642:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:9643:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:9399:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
-            // InternalCubeDSL.g:9399:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+            // InternalCubeDSL.g:9644:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:9644:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__RightOperandAssignment_1_1();
@@ -32258,14 +33080,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
-    // InternalCubeDSL.g:9408:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
+    // InternalCubeDSL.g:9653:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9412:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
-            // InternalCubeDSL.g:9413:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
+            // InternalCubeDSL.g:9657:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
+            // InternalCubeDSL.g:9658:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0__0__Impl();
@@ -32291,23 +33113,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:9419:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:9664:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9423:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:9424:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:9668:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:9669:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:9424:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:9425:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:9669:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:9670:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:9426:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
-            // InternalCubeDSL.g:9426:3: rule__XOtherOperatorExpression__Group_1_0_0__0
+            // InternalCubeDSL.g:9671:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:9671:3: rule__XOtherOperatorExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__0();
@@ -32342,14 +33164,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
-    // InternalCubeDSL.g:9435:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
+    // InternalCubeDSL.g:9680:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9439:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
-            // InternalCubeDSL.g:9440:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
+            // InternalCubeDSL.g:9684:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
+            // InternalCubeDSL.g:9685:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_67);
             rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();
@@ -32380,23 +33202,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:9447:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:9692:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9451:1: ( ( () ) )
-            // InternalCubeDSL.g:9452:1: ( () )
+            // InternalCubeDSL.g:9696:1: ( ( () ) )
+            // InternalCubeDSL.g:9697:1: ( () )
             {
-            // InternalCubeDSL.g:9452:1: ( () )
-            // InternalCubeDSL.g:9453:2: ()
+            // InternalCubeDSL.g:9697:1: ( () )
+            // InternalCubeDSL.g:9698:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:9454:2: ()
-            // InternalCubeDSL.g:9454:3: 
+            // InternalCubeDSL.g:9699:2: ()
+            // InternalCubeDSL.g:9699:3: 
             {
             }
 
@@ -32421,14 +33243,14 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
-    // InternalCubeDSL.g:9462:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:9707:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9466:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
-            // InternalCubeDSL.g:9467:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+            // InternalCubeDSL.g:9711:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
+            // InternalCubeDSL.g:9712:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();
@@ -32454,23 +33276,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
-    // InternalCubeDSL.g:9473:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:9718:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9477:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:9478:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:9722:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:9723:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:9478:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalCubeDSL.g:9479:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:9723:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:9724:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:9480:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
-            // InternalCubeDSL.g:9480:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+            // InternalCubeDSL.g:9725:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:9725:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();
@@ -32505,14 +33327,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0"
-    // InternalCubeDSL.g:9489:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
+    // InternalCubeDSL.g:9734:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
     public final void rule__OpOther__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9493:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
-            // InternalCubeDSL.g:9494:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
+            // InternalCubeDSL.g:9738:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
+            // InternalCubeDSL.g:9739:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
             {
             pushFollow(FOLLOW_69);
             rule__OpOther__Group_2__0__Impl();
@@ -32543,17 +33365,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__0__Impl"
-    // InternalCubeDSL.g:9501:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:9746:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9505:1: ( ( '>' ) )
-            // InternalCubeDSL.g:9506:1: ( '>' )
+            // InternalCubeDSL.g:9750:1: ( ( '>' ) )
+            // InternalCubeDSL.g:9751:1: ( '>' )
             {
-            // InternalCubeDSL.g:9506:1: ( '>' )
-            // InternalCubeDSL.g:9507:2: '>'
+            // InternalCubeDSL.g:9751:1: ( '>' )
+            // InternalCubeDSL.g:9752:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
@@ -32584,14 +33406,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1"
-    // InternalCubeDSL.g:9516:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
+    // InternalCubeDSL.g:9761:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
     public final void rule__OpOther__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9520:1: ( rule__OpOther__Group_2__1__Impl )
-            // InternalCubeDSL.g:9521:2: rule__OpOther__Group_2__1__Impl
+            // InternalCubeDSL.g:9765:1: ( rule__OpOther__Group_2__1__Impl )
+            // InternalCubeDSL.g:9766:2: rule__OpOther__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_2__1__Impl();
@@ -32617,17 +33439,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_2__1__Impl"
-    // InternalCubeDSL.g:9527:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
+    // InternalCubeDSL.g:9772:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
     public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9531:1: ( ( '..' ) )
-            // InternalCubeDSL.g:9532:1: ( '..' )
+            // InternalCubeDSL.g:9776:1: ( ( '..' ) )
+            // InternalCubeDSL.g:9777:1: ( '..' )
             {
-            // InternalCubeDSL.g:9532:1: ( '..' )
-            // InternalCubeDSL.g:9533:2: '..'
+            // InternalCubeDSL.g:9777:1: ( '..' )
+            // InternalCubeDSL.g:9778:2: '..'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
@@ -32658,14 +33480,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0"
-    // InternalCubeDSL.g:9543:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
+    // InternalCubeDSL.g:9788:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
     public final void rule__OpOther__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9547:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
-            // InternalCubeDSL.g:9548:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
+            // InternalCubeDSL.g:9792:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
+            // InternalCubeDSL.g:9793:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
             {
             pushFollow(FOLLOW_70);
             rule__OpOther__Group_5__0__Impl();
@@ -32696,17 +33518,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__0__Impl"
-    // InternalCubeDSL.g:9555:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:9800:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9559:1: ( ( '>' ) )
-            // InternalCubeDSL.g:9560:1: ( '>' )
+            // InternalCubeDSL.g:9804:1: ( ( '>' ) )
+            // InternalCubeDSL.g:9805:1: ( '>' )
             {
-            // InternalCubeDSL.g:9560:1: ( '>' )
-            // InternalCubeDSL.g:9561:2: '>'
+            // InternalCubeDSL.g:9805:1: ( '>' )
+            // InternalCubeDSL.g:9806:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
@@ -32737,14 +33559,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1"
-    // InternalCubeDSL.g:9570:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
+    // InternalCubeDSL.g:9815:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
     public final void rule__OpOther__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9574:1: ( rule__OpOther__Group_5__1__Impl )
-            // InternalCubeDSL.g:9575:2: rule__OpOther__Group_5__1__Impl
+            // InternalCubeDSL.g:9819:1: ( rule__OpOther__Group_5__1__Impl )
+            // InternalCubeDSL.g:9820:2: rule__OpOther__Group_5__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5__1__Impl();
@@ -32770,23 +33592,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5__1__Impl"
-    // InternalCubeDSL.g:9581:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
+    // InternalCubeDSL.g:9826:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
     public final void rule__OpOther__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9585:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
-            // InternalCubeDSL.g:9586:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalCubeDSL.g:9830:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
+            // InternalCubeDSL.g:9831:1: ( ( rule__OpOther__Alternatives_5_1 ) )
             {
-            // InternalCubeDSL.g:9586:1: ( ( rule__OpOther__Alternatives_5_1 ) )
-            // InternalCubeDSL.g:9587:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalCubeDSL.g:9831:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalCubeDSL.g:9832:2: ( rule__OpOther__Alternatives_5_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
             }
-            // InternalCubeDSL.g:9588:2: ( rule__OpOther__Alternatives_5_1 )
-            // InternalCubeDSL.g:9588:3: rule__OpOther__Alternatives_5_1
+            // InternalCubeDSL.g:9833:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalCubeDSL.g:9833:3: rule__OpOther__Alternatives_5_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_5_1();
@@ -32821,14 +33643,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0"
-    // InternalCubeDSL.g:9597:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
+    // InternalCubeDSL.g:9842:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
     public final void rule__OpOther__Group_5_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9601:1: ( rule__OpOther__Group_5_1_0__0__Impl )
-            // InternalCubeDSL.g:9602:2: rule__OpOther__Group_5_1_0__0__Impl
+            // InternalCubeDSL.g:9846:1: ( rule__OpOther__Group_5_1_0__0__Impl )
+            // InternalCubeDSL.g:9847:2: rule__OpOther__Group_5_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0__0__Impl();
@@ -32854,23 +33676,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
-    // InternalCubeDSL.g:9608:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:9853:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
     public final void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9612:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:9613:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalCubeDSL.g:9857:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:9858:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:9613:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
-            // InternalCubeDSL.g:9614:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalCubeDSL.g:9858:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalCubeDSL.g:9859:2: ( rule__OpOther__Group_5_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
             }
-            // InternalCubeDSL.g:9615:2: ( rule__OpOther__Group_5_1_0_0__0 )
-            // InternalCubeDSL.g:9615:3: rule__OpOther__Group_5_1_0_0__0
+            // InternalCubeDSL.g:9860:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalCubeDSL.g:9860:3: rule__OpOther__Group_5_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__0();
@@ -32905,14 +33727,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
-    // InternalCubeDSL.g:9624:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
+    // InternalCubeDSL.g:9869:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
     public final void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9628:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
-            // InternalCubeDSL.g:9629:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
+            // InternalCubeDSL.g:9873:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
+            // InternalCubeDSL.g:9874:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
             {
             pushFollow(FOLLOW_70);
             rule__OpOther__Group_5_1_0_0__0__Impl();
@@ -32943,17 +33765,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
-    // InternalCubeDSL.g:9636:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:9881:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9640:1: ( ( '>' ) )
-            // InternalCubeDSL.g:9641:1: ( '>' )
+            // InternalCubeDSL.g:9885:1: ( ( '>' ) )
+            // InternalCubeDSL.g:9886:1: ( '>' )
             {
-            // InternalCubeDSL.g:9641:1: ( '>' )
-            // InternalCubeDSL.g:9642:2: '>'
+            // InternalCubeDSL.g:9886:1: ( '>' )
+            // InternalCubeDSL.g:9887:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
@@ -32984,14 +33806,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
-    // InternalCubeDSL.g:9651:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:9896:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
     public final void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9655:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
-            // InternalCubeDSL.g:9656:2: rule__OpOther__Group_5_1_0_0__1__Impl
+            // InternalCubeDSL.g:9900:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
+            // InternalCubeDSL.g:9901:2: rule__OpOther__Group_5_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_5_1_0_0__1__Impl();
@@ -33017,17 +33839,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
-    // InternalCubeDSL.g:9662:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:9907:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
     public final void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9666:1: ( ( '>' ) )
-            // InternalCubeDSL.g:9667:1: ( '>' )
+            // InternalCubeDSL.g:9911:1: ( ( '>' ) )
+            // InternalCubeDSL.g:9912:1: ( '>' )
             {
-            // InternalCubeDSL.g:9667:1: ( '>' )
-            // InternalCubeDSL.g:9668:2: '>'
+            // InternalCubeDSL.g:9912:1: ( '>' )
+            // InternalCubeDSL.g:9913:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
@@ -33058,14 +33880,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0"
-    // InternalCubeDSL.g:9678:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
+    // InternalCubeDSL.g:9923:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
     public final void rule__OpOther__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9682:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
-            // InternalCubeDSL.g:9683:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
+            // InternalCubeDSL.g:9927:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
+            // InternalCubeDSL.g:9928:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
             {
             pushFollow(FOLLOW_71);
             rule__OpOther__Group_6__0__Impl();
@@ -33096,17 +33918,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__0__Impl"
-    // InternalCubeDSL.g:9690:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
+    // InternalCubeDSL.g:9935:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9694:1: ( ( '<' ) )
-            // InternalCubeDSL.g:9695:1: ( '<' )
+            // InternalCubeDSL.g:9939:1: ( ( '<' ) )
+            // InternalCubeDSL.g:9940:1: ( '<' )
             {
-            // InternalCubeDSL.g:9695:1: ( '<' )
-            // InternalCubeDSL.g:9696:2: '<'
+            // InternalCubeDSL.g:9940:1: ( '<' )
+            // InternalCubeDSL.g:9941:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
@@ -33137,14 +33959,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1"
-    // InternalCubeDSL.g:9705:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
+    // InternalCubeDSL.g:9950:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
     public final void rule__OpOther__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9709:1: ( rule__OpOther__Group_6__1__Impl )
-            // InternalCubeDSL.g:9710:2: rule__OpOther__Group_6__1__Impl
+            // InternalCubeDSL.g:9954:1: ( rule__OpOther__Group_6__1__Impl )
+            // InternalCubeDSL.g:9955:2: rule__OpOther__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6__1__Impl();
@@ -33170,23 +33992,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6__1__Impl"
-    // InternalCubeDSL.g:9716:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
+    // InternalCubeDSL.g:9961:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
     public final void rule__OpOther__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9720:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
-            // InternalCubeDSL.g:9721:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalCubeDSL.g:9965:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
+            // InternalCubeDSL.g:9966:1: ( ( rule__OpOther__Alternatives_6_1 ) )
             {
-            // InternalCubeDSL.g:9721:1: ( ( rule__OpOther__Alternatives_6_1 ) )
-            // InternalCubeDSL.g:9722:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalCubeDSL.g:9966:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalCubeDSL.g:9967:2: ( rule__OpOther__Alternatives_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
             }
-            // InternalCubeDSL.g:9723:2: ( rule__OpOther__Alternatives_6_1 )
-            // InternalCubeDSL.g:9723:3: rule__OpOther__Alternatives_6_1
+            // InternalCubeDSL.g:9968:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalCubeDSL.g:9968:3: rule__OpOther__Alternatives_6_1
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Alternatives_6_1();
@@ -33221,14 +34043,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0"
-    // InternalCubeDSL.g:9732:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
+    // InternalCubeDSL.g:9977:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
     public final void rule__OpOther__Group_6_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9736:1: ( rule__OpOther__Group_6_1_0__0__Impl )
-            // InternalCubeDSL.g:9737:2: rule__OpOther__Group_6_1_0__0__Impl
+            // InternalCubeDSL.g:9981:1: ( rule__OpOther__Group_6_1_0__0__Impl )
+            // InternalCubeDSL.g:9982:2: rule__OpOther__Group_6_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0__0__Impl();
@@ -33254,23 +34076,23 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
-    // InternalCubeDSL.g:9743:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:9988:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
     public final void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9747:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:9748:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalCubeDSL.g:9992:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:9993:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:9748:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
-            // InternalCubeDSL.g:9749:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalCubeDSL.g:9993:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalCubeDSL.g:9994:2: ( rule__OpOther__Group_6_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
             }
-            // InternalCubeDSL.g:9750:2: ( rule__OpOther__Group_6_1_0_0__0 )
-            // InternalCubeDSL.g:9750:3: rule__OpOther__Group_6_1_0_0__0
+            // InternalCubeDSL.g:9995:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalCubeDSL.g:9995:3: rule__OpOther__Group_6_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__0();
@@ -33305,14 +34127,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
-    // InternalCubeDSL.g:9759:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
+    // InternalCubeDSL.g:10004:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
     public final void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9763:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
-            // InternalCubeDSL.g:9764:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
+            // InternalCubeDSL.g:10008:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
+            // InternalCubeDSL.g:10009:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
             {
             pushFollow(FOLLOW_55);
             rule__OpOther__Group_6_1_0_0__0__Impl();
@@ -33343,17 +34165,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
-    // InternalCubeDSL.g:9771:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
+    // InternalCubeDSL.g:10016:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9775:1: ( ( '<' ) )
-            // InternalCubeDSL.g:9776:1: ( '<' )
+            // InternalCubeDSL.g:10020:1: ( ( '<' ) )
+            // InternalCubeDSL.g:10021:1: ( '<' )
             {
-            // InternalCubeDSL.g:9776:1: ( '<' )
-            // InternalCubeDSL.g:9777:2: '<'
+            // InternalCubeDSL.g:10021:1: ( '<' )
+            // InternalCubeDSL.g:10022:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
@@ -33384,14 +34206,14 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
-    // InternalCubeDSL.g:9786:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:10031:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
     public final void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9790:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
-            // InternalCubeDSL.g:9791:2: rule__OpOther__Group_6_1_0_0__1__Impl
+            // InternalCubeDSL.g:10035:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
+            // InternalCubeDSL.g:10036:2: rule__OpOther__Group_6_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OpOther__Group_6_1_0_0__1__Impl();
@@ -33417,17 +34239,17 @@
 
 
     // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
-    // InternalCubeDSL.g:9797:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
+    // InternalCubeDSL.g:10042:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
     public final void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9801:1: ( ( '<' ) )
-            // InternalCubeDSL.g:9802:1: ( '<' )
+            // InternalCubeDSL.g:10046:1: ( ( '<' ) )
+            // InternalCubeDSL.g:10047:1: ( '<' )
             {
-            // InternalCubeDSL.g:9802:1: ( '<' )
-            // InternalCubeDSL.g:9803:2: '<'
+            // InternalCubeDSL.g:10047:1: ( '<' )
+            // InternalCubeDSL.g:10048:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
@@ -33458,14 +34280,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0"
-    // InternalCubeDSL.g:9813:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
+    // InternalCubeDSL.g:10058:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
     public final void rule__XAdditiveExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9817:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
-            // InternalCubeDSL.g:9818:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
+            // InternalCubeDSL.g:10062:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
+            // InternalCubeDSL.g:10063:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
             {
             pushFollow(FOLLOW_72);
             rule__XAdditiveExpression__Group__0__Impl();
@@ -33496,17 +34318,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
-    // InternalCubeDSL.g:9825:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
+    // InternalCubeDSL.g:10070:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9829:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalCubeDSL.g:9830:1: ( ruleXMultiplicativeExpression )
+            // InternalCubeDSL.g:10074:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalCubeDSL.g:10075:1: ( ruleXMultiplicativeExpression )
             {
-            // InternalCubeDSL.g:9830:1: ( ruleXMultiplicativeExpression )
-            // InternalCubeDSL.g:9831:2: ruleXMultiplicativeExpression
+            // InternalCubeDSL.g:10075:1: ( ruleXMultiplicativeExpression )
+            // InternalCubeDSL.g:10076:2: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
@@ -33541,14 +34363,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1"
-    // InternalCubeDSL.g:9840:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
+    // InternalCubeDSL.g:10085:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
     public final void rule__XAdditiveExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9844:1: ( rule__XAdditiveExpression__Group__1__Impl )
-            // InternalCubeDSL.g:9845:2: rule__XAdditiveExpression__Group__1__Impl
+            // InternalCubeDSL.g:10089:1: ( rule__XAdditiveExpression__Group__1__Impl )
+            // InternalCubeDSL.g:10090:2: rule__XAdditiveExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group__1__Impl();
@@ -33574,50 +34396,50 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
-    // InternalCubeDSL.g:9851:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:10096:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
     public final void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9855:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
-            // InternalCubeDSL.g:9856:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:10100:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
+            // InternalCubeDSL.g:10101:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:9856:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
-            // InternalCubeDSL.g:9857:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            // InternalCubeDSL.g:10101:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:10102:2: ( rule__XAdditiveExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:9858:2: ( rule__XAdditiveExpression__Group_1__0 )*
-            loop92:
+            // InternalCubeDSL.g:10103:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            loop95:
             do {
-                int alt92=2;
-                int LA92_0 = input.LA(1);
+                int alt95=2;
+                int LA95_0 = input.LA(1);
 
-                if ( (LA92_0==35) ) {
-                    int LA92_2 = input.LA(2);
+                if ( (LA95_0==35) ) {
+                    int LA95_2 = input.LA(2);
 
-                    if ( (synpred153_InternalCubeDSL()) ) {
-                        alt92=1;
+                    if ( (synpred156_InternalCubeDSL()) ) {
+                        alt95=1;
                     }
 
 
                 }
-                else if ( (LA92_0==34) ) {
-                    int LA92_3 = input.LA(2);
+                else if ( (LA95_0==34) ) {
+                    int LA95_3 = input.LA(2);
 
-                    if ( (synpred153_InternalCubeDSL()) ) {
-                        alt92=1;
+                    if ( (synpred156_InternalCubeDSL()) ) {
+                        alt95=1;
                     }
 
 
                 }
 
 
-                switch (alt92) {
+                switch (alt95) {
             	case 1 :
-            	    // InternalCubeDSL.g:9858:3: rule__XAdditiveExpression__Group_1__0
+            	    // InternalCubeDSL.g:10103:3: rule__XAdditiveExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_73);
             	    rule__XAdditiveExpression__Group_1__0();
@@ -33629,7 +34451,7 @@
             	    break;
 
             	default :
-            	    break loop92;
+            	    break loop95;
                 }
             } while (true);
 
@@ -33658,14 +34480,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
-    // InternalCubeDSL.g:9867:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
+    // InternalCubeDSL.g:10112:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
     public final void rule__XAdditiveExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9871:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
-            // InternalCubeDSL.g:9872:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
+            // InternalCubeDSL.g:10116:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
+            // InternalCubeDSL.g:10117:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XAdditiveExpression__Group_1__0__Impl();
@@ -33696,23 +34518,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
-    // InternalCubeDSL.g:9879:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:10124:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
     public final void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9883:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:9884:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:10128:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:10129:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:9884:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
-            // InternalCubeDSL.g:9885:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:10129:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:10130:2: ( rule__XAdditiveExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:9886:2: ( rule__XAdditiveExpression__Group_1_0__0 )
-            // InternalCubeDSL.g:9886:3: rule__XAdditiveExpression__Group_1_0__0
+            // InternalCubeDSL.g:10131:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:10131:3: rule__XAdditiveExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0();
@@ -33747,14 +34569,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
-    // InternalCubeDSL.g:9894:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
+    // InternalCubeDSL.g:10139:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
     public final void rule__XAdditiveExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9898:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
-            // InternalCubeDSL.g:9899:2: rule__XAdditiveExpression__Group_1__1__Impl
+            // InternalCubeDSL.g:10143:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
+            // InternalCubeDSL.g:10144:2: rule__XAdditiveExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1__1__Impl();
@@ -33780,23 +34602,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
-    // InternalCubeDSL.g:9905:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:10150:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9909:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:9910:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:10154:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:10155:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:9910:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
-            // InternalCubeDSL.g:9911:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:10155:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:10156:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:9912:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
-            // InternalCubeDSL.g:9912:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
+            // InternalCubeDSL.g:10157:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:10157:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__RightOperandAssignment_1_1();
@@ -33831,14 +34653,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
-    // InternalCubeDSL.g:9921:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
+    // InternalCubeDSL.g:10166:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
     public final void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9925:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
-            // InternalCubeDSL.g:9926:2: rule__XAdditiveExpression__Group_1_0__0__Impl
+            // InternalCubeDSL.g:10170:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
+            // InternalCubeDSL.g:10171:2: rule__XAdditiveExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0__0__Impl();
@@ -33864,23 +34686,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:9932:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:10177:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9936:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:9937:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:10181:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:10182:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:9937:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:9938:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:10182:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:10183:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:9939:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
-            // InternalCubeDSL.g:9939:3: rule__XAdditiveExpression__Group_1_0_0__0
+            // InternalCubeDSL.g:10184:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:10184:3: rule__XAdditiveExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__0();
@@ -33915,14 +34737,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
-    // InternalCubeDSL.g:9948:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
+    // InternalCubeDSL.g:10193:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
     public final void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9952:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
-            // InternalCubeDSL.g:9953:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
+            // InternalCubeDSL.g:10197:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
+            // InternalCubeDSL.g:10198:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_72);
             rule__XAdditiveExpression__Group_1_0_0__0__Impl();
@@ -33953,23 +34775,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:9960:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:10205:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9964:1: ( ( () ) )
-            // InternalCubeDSL.g:9965:1: ( () )
+            // InternalCubeDSL.g:10209:1: ( ( () ) )
+            // InternalCubeDSL.g:10210:1: ( () )
             {
-            // InternalCubeDSL.g:9965:1: ( () )
-            // InternalCubeDSL.g:9966:2: ()
+            // InternalCubeDSL.g:10210:1: ( () )
+            // InternalCubeDSL.g:10211:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:9967:2: ()
-            // InternalCubeDSL.g:9967:3: 
+            // InternalCubeDSL.g:10212:2: ()
+            // InternalCubeDSL.g:10212:3: 
             {
             }
 
@@ -33994,14 +34816,14 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
-    // InternalCubeDSL.g:9975:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:10220:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
     public final void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9979:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
-            // InternalCubeDSL.g:9980:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
+            // InternalCubeDSL.g:10224:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
+            // InternalCubeDSL.g:10225:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__Group_1_0_0__1__Impl();
@@ -34027,23 +34849,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
-    // InternalCubeDSL.g:9986:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:10231:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:9990:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:9991:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:10235:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:10236:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:9991:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalCubeDSL.g:9992:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:10236:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:10237:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:9993:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
-            // InternalCubeDSL.g:9993:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+            // InternalCubeDSL.g:10238:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:10238:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();
@@ -34078,14 +34900,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
-    // InternalCubeDSL.g:10002:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
+    // InternalCubeDSL.g:10247:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
     public final void rule__XMultiplicativeExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10006:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
-            // InternalCubeDSL.g:10007:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
+            // InternalCubeDSL.g:10251:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
+            // InternalCubeDSL.g:10252:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
             {
             pushFollow(FOLLOW_74);
             rule__XMultiplicativeExpression__Group__0__Impl();
@@ -34116,17 +34938,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
-    // InternalCubeDSL.g:10014:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
+    // InternalCubeDSL.g:10259:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10018:1: ( ( ruleXUnaryOperation ) )
-            // InternalCubeDSL.g:10019:1: ( ruleXUnaryOperation )
+            // InternalCubeDSL.g:10263:1: ( ( ruleXUnaryOperation ) )
+            // InternalCubeDSL.g:10264:1: ( ruleXUnaryOperation )
             {
-            // InternalCubeDSL.g:10019:1: ( ruleXUnaryOperation )
-            // InternalCubeDSL.g:10020:2: ruleXUnaryOperation
+            // InternalCubeDSL.g:10264:1: ( ruleXUnaryOperation )
+            // InternalCubeDSL.g:10265:2: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
@@ -34161,14 +34983,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
-    // InternalCubeDSL.g:10029:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
+    // InternalCubeDSL.g:10274:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10033:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
-            // InternalCubeDSL.g:10034:2: rule__XMultiplicativeExpression__Group__1__Impl
+            // InternalCubeDSL.g:10278:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
+            // InternalCubeDSL.g:10279:2: rule__XMultiplicativeExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group__1__Impl();
@@ -34194,32 +35016,32 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
-    // InternalCubeDSL.g:10040:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:10285:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
     public final void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10044:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
-            // InternalCubeDSL.g:10045:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:10289:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
+            // InternalCubeDSL.g:10290:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:10045:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
-            // InternalCubeDSL.g:10046:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            // InternalCubeDSL.g:10290:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:10291:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:10047:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
-            loop93:
+            // InternalCubeDSL.g:10292:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            loop96:
             do {
-                int alt93=2;
+                int alt96=2;
                 switch ( input.LA(1) ) {
                 case 36:
                     {
-                    int LA93_2 = input.LA(2);
+                    int LA96_2 = input.LA(2);
 
-                    if ( (synpred154_InternalCubeDSL()) ) {
-                        alt93=1;
+                    if ( (synpred157_InternalCubeDSL()) ) {
+                        alt96=1;
                     }
 
 
@@ -34227,10 +35049,10 @@
                     break;
                 case 37:
                     {
-                    int LA93_3 = input.LA(2);
+                    int LA96_3 = input.LA(2);
 
-                    if ( (synpred154_InternalCubeDSL()) ) {
-                        alt93=1;
+                    if ( (synpred157_InternalCubeDSL()) ) {
+                        alt96=1;
                     }
 
 
@@ -34238,10 +35060,10 @@
                     break;
                 case 38:
                     {
-                    int LA93_4 = input.LA(2);
+                    int LA96_4 = input.LA(2);
 
-                    if ( (synpred154_InternalCubeDSL()) ) {
-                        alt93=1;
+                    if ( (synpred157_InternalCubeDSL()) ) {
+                        alt96=1;
                     }
 
 
@@ -34249,10 +35071,10 @@
                     break;
                 case 39:
                     {
-                    int LA93_5 = input.LA(2);
+                    int LA96_5 = input.LA(2);
 
-                    if ( (synpred154_InternalCubeDSL()) ) {
-                        alt93=1;
+                    if ( (synpred157_InternalCubeDSL()) ) {
+                        alt96=1;
                     }
 
 
@@ -34261,9 +35083,9 @@
 
                 }
 
-                switch (alt93) {
+                switch (alt96) {
             	case 1 :
-            	    // InternalCubeDSL.g:10047:3: rule__XMultiplicativeExpression__Group_1__0
+            	    // InternalCubeDSL.g:10292:3: rule__XMultiplicativeExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_75);
             	    rule__XMultiplicativeExpression__Group_1__0();
@@ -34275,7 +35097,7 @@
             	    break;
 
             	default :
-            	    break loop93;
+            	    break loop96;
                 }
             } while (true);
 
@@ -34304,14 +35126,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
-    // InternalCubeDSL.g:10056:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
+    // InternalCubeDSL.g:10301:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
     public final void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10060:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
-            // InternalCubeDSL.g:10061:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
+            // InternalCubeDSL.g:10305:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
+            // InternalCubeDSL.g:10306:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XMultiplicativeExpression__Group_1__0__Impl();
@@ -34342,23 +35164,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
-    // InternalCubeDSL.g:10068:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:10313:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10072:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:10073:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:10317:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:10318:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:10073:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
-            // InternalCubeDSL.g:10074:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:10318:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:10319:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:10075:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
-            // InternalCubeDSL.g:10075:3: rule__XMultiplicativeExpression__Group_1_0__0
+            // InternalCubeDSL.g:10320:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:10320:3: rule__XMultiplicativeExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0();
@@ -34393,14 +35215,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
-    // InternalCubeDSL.g:10083:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
+    // InternalCubeDSL.g:10328:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10087:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
-            // InternalCubeDSL.g:10088:2: rule__XMultiplicativeExpression__Group_1__1__Impl
+            // InternalCubeDSL.g:10332:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
+            // InternalCubeDSL.g:10333:2: rule__XMultiplicativeExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1__1__Impl();
@@ -34426,23 +35248,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
-    // InternalCubeDSL.g:10094:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:10339:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10098:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:10099:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:10343:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:10344:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:10099:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
-            // InternalCubeDSL.g:10100:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:10344:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalCubeDSL.g:10345:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:10101:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
-            // InternalCubeDSL.g:10101:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+            // InternalCubeDSL.g:10346:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalCubeDSL.g:10346:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__RightOperandAssignment_1_1();
@@ -34477,14 +35299,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
-    // InternalCubeDSL.g:10110:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
+    // InternalCubeDSL.g:10355:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10114:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
-            // InternalCubeDSL.g:10115:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
+            // InternalCubeDSL.g:10359:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
+            // InternalCubeDSL.g:10360:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0__0__Impl();
@@ -34510,23 +35332,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:10121:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:10366:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10125:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:10126:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:10370:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:10371:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:10126:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:10127:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:10371:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:10372:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:10128:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
-            // InternalCubeDSL.g:10128:3: rule__XMultiplicativeExpression__Group_1_0_0__0
+            // InternalCubeDSL.g:10373:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:10373:3: rule__XMultiplicativeExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__0();
@@ -34561,14 +35383,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
-    // InternalCubeDSL.g:10137:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
+    // InternalCubeDSL.g:10382:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10141:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
-            // InternalCubeDSL.g:10142:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
+            // InternalCubeDSL.g:10386:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
+            // InternalCubeDSL.g:10387:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_74);
             rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();
@@ -34599,23 +35421,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:10149:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:10394:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10153:1: ( ( () ) )
-            // InternalCubeDSL.g:10154:1: ( () )
+            // InternalCubeDSL.g:10398:1: ( ( () ) )
+            // InternalCubeDSL.g:10399:1: ( () )
             {
-            // InternalCubeDSL.g:10154:1: ( () )
-            // InternalCubeDSL.g:10155:2: ()
+            // InternalCubeDSL.g:10399:1: ( () )
+            // InternalCubeDSL.g:10400:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:10156:2: ()
-            // InternalCubeDSL.g:10156:3: 
+            // InternalCubeDSL.g:10401:2: ()
+            // InternalCubeDSL.g:10401:3: 
             {
             }
 
@@ -34640,14 +35462,14 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
-    // InternalCubeDSL.g:10164:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:10409:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10168:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
-            // InternalCubeDSL.g:10169:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+            // InternalCubeDSL.g:10413:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
+            // InternalCubeDSL.g:10414:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();
@@ -34673,23 +35495,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
-    // InternalCubeDSL.g:10175:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:10420:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
     public final void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10179:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:10180:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:10424:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:10425:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:10180:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
-            // InternalCubeDSL.g:10181:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:10425:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalCubeDSL.g:10426:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:10182:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
-            // InternalCubeDSL.g:10182:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+            // InternalCubeDSL.g:10427:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalCubeDSL.g:10427:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();
@@ -34724,14 +35546,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0"
-    // InternalCubeDSL.g:10191:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
+    // InternalCubeDSL.g:10436:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
     public final void rule__XUnaryOperation__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10195:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
-            // InternalCubeDSL.g:10196:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
+            // InternalCubeDSL.g:10440:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
+            // InternalCubeDSL.g:10441:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
             {
             pushFollow(FOLLOW_76);
             rule__XUnaryOperation__Group_0__0__Impl();
@@ -34762,23 +35584,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
-    // InternalCubeDSL.g:10203:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:10448:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
     public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10207:1: ( ( () ) )
-            // InternalCubeDSL.g:10208:1: ( () )
+            // InternalCubeDSL.g:10452:1: ( ( () ) )
+            // InternalCubeDSL.g:10453:1: ( () )
             {
-            // InternalCubeDSL.g:10208:1: ( () )
-            // InternalCubeDSL.g:10209:2: ()
+            // InternalCubeDSL.g:10453:1: ( () )
+            // InternalCubeDSL.g:10454:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
             }
-            // InternalCubeDSL.g:10210:2: ()
-            // InternalCubeDSL.g:10210:3: 
+            // InternalCubeDSL.g:10455:2: ()
+            // InternalCubeDSL.g:10455:3: 
             {
             }
 
@@ -34803,14 +35625,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1"
-    // InternalCubeDSL.g:10218:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
+    // InternalCubeDSL.g:10463:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
     public final void rule__XUnaryOperation__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10222:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
-            // InternalCubeDSL.g:10223:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
+            // InternalCubeDSL.g:10467:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
+            // InternalCubeDSL.g:10468:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
             {
             pushFollow(FOLLOW_48);
             rule__XUnaryOperation__Group_0__1__Impl();
@@ -34841,23 +35663,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
-    // InternalCubeDSL.g:10230:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
+    // InternalCubeDSL.g:10475:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
     public final void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10234:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
-            // InternalCubeDSL.g:10235:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalCubeDSL.g:10479:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
+            // InternalCubeDSL.g:10480:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
             {
-            // InternalCubeDSL.g:10235:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
-            // InternalCubeDSL.g:10236:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalCubeDSL.g:10480:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalCubeDSL.g:10481:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
             }
-            // InternalCubeDSL.g:10237:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
-            // InternalCubeDSL.g:10237:3: rule__XUnaryOperation__FeatureAssignment_0_1
+            // InternalCubeDSL.g:10482:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalCubeDSL.g:10482:3: rule__XUnaryOperation__FeatureAssignment_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__FeatureAssignment_0_1();
@@ -34892,14 +35714,14 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2"
-    // InternalCubeDSL.g:10245:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
+    // InternalCubeDSL.g:10490:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
     public final void rule__XUnaryOperation__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10249:1: ( rule__XUnaryOperation__Group_0__2__Impl )
-            // InternalCubeDSL.g:10250:2: rule__XUnaryOperation__Group_0__2__Impl
+            // InternalCubeDSL.g:10494:1: ( rule__XUnaryOperation__Group_0__2__Impl )
+            // InternalCubeDSL.g:10495:2: rule__XUnaryOperation__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__Group_0__2__Impl();
@@ -34925,23 +35747,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
-    // InternalCubeDSL.g:10256:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
+    // InternalCubeDSL.g:10501:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
     public final void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10260:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
-            // InternalCubeDSL.g:10261:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalCubeDSL.g:10505:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
+            // InternalCubeDSL.g:10506:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
             {
-            // InternalCubeDSL.g:10261:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
-            // InternalCubeDSL.g:10262:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalCubeDSL.g:10506:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalCubeDSL.g:10507:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
             }
-            // InternalCubeDSL.g:10263:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
-            // InternalCubeDSL.g:10263:3: rule__XUnaryOperation__OperandAssignment_0_2
+            // InternalCubeDSL.g:10508:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalCubeDSL.g:10508:3: rule__XUnaryOperation__OperandAssignment_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XUnaryOperation__OperandAssignment_0_2();
@@ -34976,14 +35798,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0"
-    // InternalCubeDSL.g:10272:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
+    // InternalCubeDSL.g:10517:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
     public final void rule__XCastedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10276:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
-            // InternalCubeDSL.g:10277:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
+            // InternalCubeDSL.g:10521:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
+            // InternalCubeDSL.g:10522:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
             {
             pushFollow(FOLLOW_77);
             rule__XCastedExpression__Group__0__Impl();
@@ -35014,17 +35836,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
-    // InternalCubeDSL.g:10284:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
+    // InternalCubeDSL.g:10529:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
     public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10288:1: ( ( ruleXPostfixOperation ) )
-            // InternalCubeDSL.g:10289:1: ( ruleXPostfixOperation )
+            // InternalCubeDSL.g:10533:1: ( ( ruleXPostfixOperation ) )
+            // InternalCubeDSL.g:10534:1: ( ruleXPostfixOperation )
             {
-            // InternalCubeDSL.g:10289:1: ( ruleXPostfixOperation )
-            // InternalCubeDSL.g:10290:2: ruleXPostfixOperation
+            // InternalCubeDSL.g:10534:1: ( ruleXPostfixOperation )
+            // InternalCubeDSL.g:10535:2: ruleXPostfixOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
@@ -35059,14 +35881,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1"
-    // InternalCubeDSL.g:10299:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
+    // InternalCubeDSL.g:10544:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
     public final void rule__XCastedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10303:1: ( rule__XCastedExpression__Group__1__Impl )
-            // InternalCubeDSL.g:10304:2: rule__XCastedExpression__Group__1__Impl
+            // InternalCubeDSL.g:10548:1: ( rule__XCastedExpression__Group__1__Impl )
+            // InternalCubeDSL.g:10549:2: rule__XCastedExpression__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group__1__Impl();
@@ -35092,41 +35914,41 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
-    // InternalCubeDSL.g:10310:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:10555:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
     public final void rule__XCastedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10314:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
-            // InternalCubeDSL.g:10315:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:10559:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
+            // InternalCubeDSL.g:10560:1: ( ( rule__XCastedExpression__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:10315:1: ( ( rule__XCastedExpression__Group_1__0 )* )
-            // InternalCubeDSL.g:10316:2: ( rule__XCastedExpression__Group_1__0 )*
+            // InternalCubeDSL.g:10560:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalCubeDSL.g:10561:2: ( rule__XCastedExpression__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:10317:2: ( rule__XCastedExpression__Group_1__0 )*
-            loop94:
+            // InternalCubeDSL.g:10562:2: ( rule__XCastedExpression__Group_1__0 )*
+            loop97:
             do {
-                int alt94=2;
-                int LA94_0 = input.LA(1);
+                int alt97=2;
+                int LA97_0 = input.LA(1);
 
-                if ( (LA94_0==95) ) {
-                    int LA94_2 = input.LA(2);
+                if ( (LA97_0==95) ) {
+                    int LA97_2 = input.LA(2);
 
-                    if ( (synpred155_InternalCubeDSL()) ) {
-                        alt94=1;
+                    if ( (synpred158_InternalCubeDSL()) ) {
+                        alt97=1;
                     }
 
 
                 }
 
 
-                switch (alt94) {
+                switch (alt97) {
             	case 1 :
-            	    // InternalCubeDSL.g:10317:3: rule__XCastedExpression__Group_1__0
+            	    // InternalCubeDSL.g:10562:3: rule__XCastedExpression__Group_1__0
             	    {
             	    pushFollow(FOLLOW_78);
             	    rule__XCastedExpression__Group_1__0();
@@ -35138,7 +35960,7 @@
             	    break;
 
             	default :
-            	    break loop94;
+            	    break loop97;
                 }
             } while (true);
 
@@ -35167,14 +35989,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0"
-    // InternalCubeDSL.g:10326:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
+    // InternalCubeDSL.g:10571:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
     public final void rule__XCastedExpression__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10330:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
-            // InternalCubeDSL.g:10331:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
+            // InternalCubeDSL.g:10575:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
+            // InternalCubeDSL.g:10576:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
             {
             pushFollow(FOLLOW_65);
             rule__XCastedExpression__Group_1__0__Impl();
@@ -35205,23 +36027,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
-    // InternalCubeDSL.g:10338:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:10583:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
     public final void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10342:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:10343:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:10587:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:10588:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:10343:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
-            // InternalCubeDSL.g:10344:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:10588:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalCubeDSL.g:10589:2: ( rule__XCastedExpression__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:10345:2: ( rule__XCastedExpression__Group_1_0__0 )
-            // InternalCubeDSL.g:10345:3: rule__XCastedExpression__Group_1_0__0
+            // InternalCubeDSL.g:10590:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalCubeDSL.g:10590:3: rule__XCastedExpression__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0();
@@ -35256,14 +36078,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1"
-    // InternalCubeDSL.g:10353:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
+    // InternalCubeDSL.g:10598:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
     public final void rule__XCastedExpression__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10357:1: ( rule__XCastedExpression__Group_1__1__Impl )
-            // InternalCubeDSL.g:10358:2: rule__XCastedExpression__Group_1__1__Impl
+            // InternalCubeDSL.g:10602:1: ( rule__XCastedExpression__Group_1__1__Impl )
+            // InternalCubeDSL.g:10603:2: rule__XCastedExpression__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1__1__Impl();
@@ -35289,23 +36111,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
-    // InternalCubeDSL.g:10364:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:10609:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
     public final void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10368:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:10369:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalCubeDSL.g:10613:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:10614:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:10369:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
-            // InternalCubeDSL.g:10370:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalCubeDSL.g:10614:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalCubeDSL.g:10615:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:10371:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
-            // InternalCubeDSL.g:10371:3: rule__XCastedExpression__TypeAssignment_1_1
+            // InternalCubeDSL.g:10616:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalCubeDSL.g:10616:3: rule__XCastedExpression__TypeAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__TypeAssignment_1_1();
@@ -35340,14 +36162,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
-    // InternalCubeDSL.g:10380:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
+    // InternalCubeDSL.g:10625:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
     public final void rule__XCastedExpression__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10384:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
-            // InternalCubeDSL.g:10385:2: rule__XCastedExpression__Group_1_0__0__Impl
+            // InternalCubeDSL.g:10629:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
+            // InternalCubeDSL.g:10630:2: rule__XCastedExpression__Group_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0__0__Impl();
@@ -35373,23 +36195,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:10391:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:10636:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
     public final void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10395:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:10396:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:10640:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:10641:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:10396:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:10397:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:10641:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:10642:2: ( rule__XCastedExpression__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:10398:2: ( rule__XCastedExpression__Group_1_0_0__0 )
-            // InternalCubeDSL.g:10398:3: rule__XCastedExpression__Group_1_0_0__0
+            // InternalCubeDSL.g:10643:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalCubeDSL.g:10643:3: rule__XCastedExpression__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__0();
@@ -35424,14 +36246,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
-    // InternalCubeDSL.g:10407:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
+    // InternalCubeDSL.g:10652:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
     public final void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10411:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
-            // InternalCubeDSL.g:10412:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
+            // InternalCubeDSL.g:10656:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
+            // InternalCubeDSL.g:10657:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
             {
             pushFollow(FOLLOW_77);
             rule__XCastedExpression__Group_1_0_0__0__Impl();
@@ -35462,23 +36284,23 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:10419:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:10664:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
     public final void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10423:1: ( ( () ) )
-            // InternalCubeDSL.g:10424:1: ( () )
+            // InternalCubeDSL.g:10668:1: ( ( () ) )
+            // InternalCubeDSL.g:10669:1: ( () )
             {
-            // InternalCubeDSL.g:10424:1: ( () )
-            // InternalCubeDSL.g:10425:2: ()
+            // InternalCubeDSL.g:10669:1: ( () )
+            // InternalCubeDSL.g:10670:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:10426:2: ()
-            // InternalCubeDSL.g:10426:3: 
+            // InternalCubeDSL.g:10671:2: ()
+            // InternalCubeDSL.g:10671:3: 
             {
             }
 
@@ -35503,14 +36325,14 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
-    // InternalCubeDSL.g:10434:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:10679:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
     public final void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10438:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
-            // InternalCubeDSL.g:10439:2: rule__XCastedExpression__Group_1_0_0__1__Impl
+            // InternalCubeDSL.g:10683:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
+            // InternalCubeDSL.g:10684:2: rule__XCastedExpression__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCastedExpression__Group_1_0_0__1__Impl();
@@ -35536,17 +36358,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
-    // InternalCubeDSL.g:10445:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
+    // InternalCubeDSL.g:10690:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
     public final void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10449:1: ( ( 'as' ) )
-            // InternalCubeDSL.g:10450:1: ( 'as' )
+            // InternalCubeDSL.g:10694:1: ( ( 'as' ) )
+            // InternalCubeDSL.g:10695:1: ( 'as' )
             {
-            // InternalCubeDSL.g:10450:1: ( 'as' )
-            // InternalCubeDSL.g:10451:2: 'as'
+            // InternalCubeDSL.g:10695:1: ( 'as' )
+            // InternalCubeDSL.g:10696:2: 'as'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
@@ -35577,14 +36399,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0"
-    // InternalCubeDSL.g:10461:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
+    // InternalCubeDSL.g:10706:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
     public final void rule__XPostfixOperation__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10465:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
-            // InternalCubeDSL.g:10466:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
+            // InternalCubeDSL.g:10710:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
+            // InternalCubeDSL.g:10711:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
             {
             pushFollow(FOLLOW_79);
             rule__XPostfixOperation__Group__0__Impl();
@@ -35615,17 +36437,17 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__0__Impl"
-    // InternalCubeDSL.g:10473:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
+    // InternalCubeDSL.g:10718:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
     public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10477:1: ( ( ruleXMemberFeatureCall ) )
-            // InternalCubeDSL.g:10478:1: ( ruleXMemberFeatureCall )
+            // InternalCubeDSL.g:10722:1: ( ( ruleXMemberFeatureCall ) )
+            // InternalCubeDSL.g:10723:1: ( ruleXMemberFeatureCall )
             {
-            // InternalCubeDSL.g:10478:1: ( ruleXMemberFeatureCall )
-            // InternalCubeDSL.g:10479:2: ruleXMemberFeatureCall
+            // InternalCubeDSL.g:10723:1: ( ruleXMemberFeatureCall )
+            // InternalCubeDSL.g:10724:2: ruleXMemberFeatureCall
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
@@ -35660,14 +36482,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1"
-    // InternalCubeDSL.g:10488:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
+    // InternalCubeDSL.g:10733:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
     public final void rule__XPostfixOperation__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10492:1: ( rule__XPostfixOperation__Group__1__Impl )
-            // InternalCubeDSL.g:10493:2: rule__XPostfixOperation__Group__1__Impl
+            // InternalCubeDSL.g:10737:1: ( rule__XPostfixOperation__Group__1__Impl )
+            // InternalCubeDSL.g:10738:2: rule__XPostfixOperation__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group__1__Impl();
@@ -35693,42 +36515,42 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group__1__Impl"
-    // InternalCubeDSL.g:10499:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
+    // InternalCubeDSL.g:10744:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
     public final void rule__XPostfixOperation__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10503:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
-            // InternalCubeDSL.g:10504:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalCubeDSL.g:10748:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
+            // InternalCubeDSL.g:10749:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
             {
-            // InternalCubeDSL.g:10504:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
-            // InternalCubeDSL.g:10505:2: ( rule__XPostfixOperation__Group_1__0 )?
+            // InternalCubeDSL.g:10749:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalCubeDSL.g:10750:2: ( rule__XPostfixOperation__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:10506:2: ( rule__XPostfixOperation__Group_1__0 )?
-            int alt95=2;
-            int LA95_0 = input.LA(1);
+            // InternalCubeDSL.g:10751:2: ( rule__XPostfixOperation__Group_1__0 )?
+            int alt98=2;
+            int LA98_0 = input.LA(1);
 
-            if ( (LA95_0==41) ) {
-                int LA95_1 = input.LA(2);
+            if ( (LA98_0==41) ) {
+                int LA98_1 = input.LA(2);
 
-                if ( (synpred156_InternalCubeDSL()) ) {
-                    alt95=1;
+                if ( (synpred159_InternalCubeDSL()) ) {
+                    alt98=1;
                 }
             }
-            else if ( (LA95_0==42) ) {
-                int LA95_2 = input.LA(2);
+            else if ( (LA98_0==42) ) {
+                int LA98_2 = input.LA(2);
 
-                if ( (synpred156_InternalCubeDSL()) ) {
-                    alt95=1;
+                if ( (synpred159_InternalCubeDSL()) ) {
+                    alt98=1;
                 }
             }
-            switch (alt95) {
+            switch (alt98) {
                 case 1 :
-                    // InternalCubeDSL.g:10506:3: rule__XPostfixOperation__Group_1__0
+                    // InternalCubeDSL.g:10751:3: rule__XPostfixOperation__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XPostfixOperation__Group_1__0();
@@ -35766,14 +36588,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0"
-    // InternalCubeDSL.g:10515:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
+    // InternalCubeDSL.g:10760:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
     public final void rule__XPostfixOperation__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10519:1: ( rule__XPostfixOperation__Group_1__0__Impl )
-            // InternalCubeDSL.g:10520:2: rule__XPostfixOperation__Group_1__0__Impl
+            // InternalCubeDSL.g:10764:1: ( rule__XPostfixOperation__Group_1__0__Impl )
+            // InternalCubeDSL.g:10765:2: rule__XPostfixOperation__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1__0__Impl();
@@ -35799,23 +36621,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1__0__Impl"
-    // InternalCubeDSL.g:10526:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:10771:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
     public final void rule__XPostfixOperation__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10530:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:10531:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalCubeDSL.g:10775:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:10776:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:10531:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
-            // InternalCubeDSL.g:10532:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalCubeDSL.g:10776:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalCubeDSL.g:10777:2: ( rule__XPostfixOperation__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:10533:2: ( rule__XPostfixOperation__Group_1_0__0 )
-            // InternalCubeDSL.g:10533:3: rule__XPostfixOperation__Group_1_0__0
+            // InternalCubeDSL.g:10778:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalCubeDSL.g:10778:3: rule__XPostfixOperation__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__0();
@@ -35850,14 +36672,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0"
-    // InternalCubeDSL.g:10542:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
+    // InternalCubeDSL.g:10787:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
     public final void rule__XPostfixOperation__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10546:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
-            // InternalCubeDSL.g:10547:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
+            // InternalCubeDSL.g:10791:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
+            // InternalCubeDSL.g:10792:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
             {
             pushFollow(FOLLOW_79);
             rule__XPostfixOperation__Group_1_0__0__Impl();
@@ -35888,23 +36710,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:10554:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:10799:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
     public final void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10558:1: ( ( () ) )
-            // InternalCubeDSL.g:10559:1: ( () )
+            // InternalCubeDSL.g:10803:1: ( ( () ) )
+            // InternalCubeDSL.g:10804:1: ( () )
             {
-            // InternalCubeDSL.g:10559:1: ( () )
-            // InternalCubeDSL.g:10560:2: ()
+            // InternalCubeDSL.g:10804:1: ( () )
+            // InternalCubeDSL.g:10805:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
             }
-            // InternalCubeDSL.g:10561:2: ()
-            // InternalCubeDSL.g:10561:3: 
+            // InternalCubeDSL.g:10806:2: ()
+            // InternalCubeDSL.g:10806:3: 
             {
             }
 
@@ -35929,14 +36751,14 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1"
-    // InternalCubeDSL.g:10569:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
+    // InternalCubeDSL.g:10814:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
     public final void rule__XPostfixOperation__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10573:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
-            // InternalCubeDSL.g:10574:2: rule__XPostfixOperation__Group_1_0__1__Impl
+            // InternalCubeDSL.g:10818:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
+            // InternalCubeDSL.g:10819:2: rule__XPostfixOperation__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__Group_1_0__1__Impl();
@@ -35962,23 +36784,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__Group_1_0__1__Impl"
-    // InternalCubeDSL.g:10580:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
+    // InternalCubeDSL.g:10825:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
     public final void rule__XPostfixOperation__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10584:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
-            // InternalCubeDSL.g:10585:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalCubeDSL.g:10829:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
+            // InternalCubeDSL.g:10830:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
             {
-            // InternalCubeDSL.g:10585:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
-            // InternalCubeDSL.g:10586:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalCubeDSL.g:10830:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalCubeDSL.g:10831:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
             }
-            // InternalCubeDSL.g:10587:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
-            // InternalCubeDSL.g:10587:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
+            // InternalCubeDSL.g:10832:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalCubeDSL.g:10832:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XPostfixOperation__FeatureAssignment_1_0_1();
@@ -36013,14 +36835,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0"
-    // InternalCubeDSL.g:10596:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
+    // InternalCubeDSL.g:10841:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
     public final void rule__XMemberFeatureCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10600:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
-            // InternalCubeDSL.g:10601:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
+            // InternalCubeDSL.g:10845:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
+            // InternalCubeDSL.g:10846:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
             {
             pushFollow(FOLLOW_80);
             rule__XMemberFeatureCall__Group__0__Impl();
@@ -36051,17 +36873,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
-    // InternalCubeDSL.g:10608:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
+    // InternalCubeDSL.g:10853:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
     public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10612:1: ( ( ruleXPrimaryExpression ) )
-            // InternalCubeDSL.g:10613:1: ( ruleXPrimaryExpression )
+            // InternalCubeDSL.g:10857:1: ( ( ruleXPrimaryExpression ) )
+            // InternalCubeDSL.g:10858:1: ( ruleXPrimaryExpression )
             {
-            // InternalCubeDSL.g:10613:1: ( ruleXPrimaryExpression )
-            // InternalCubeDSL.g:10614:2: ruleXPrimaryExpression
+            // InternalCubeDSL.g:10858:1: ( ruleXPrimaryExpression )
+            // InternalCubeDSL.g:10859:2: ruleXPrimaryExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
@@ -36096,14 +36918,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1"
-    // InternalCubeDSL.g:10623:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
+    // InternalCubeDSL.g:10868:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
     public final void rule__XMemberFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10627:1: ( rule__XMemberFeatureCall__Group__1__Impl )
-            // InternalCubeDSL.g:10628:2: rule__XMemberFeatureCall__Group__1__Impl
+            // InternalCubeDSL.g:10872:1: ( rule__XMemberFeatureCall__Group__1__Impl )
+            // InternalCubeDSL.g:10873:2: rule__XMemberFeatureCall__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group__1__Impl();
@@ -36129,54 +36951,54 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
-    // InternalCubeDSL.g:10634:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
+    // InternalCubeDSL.g:10879:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
     public final void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10638:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
-            // InternalCubeDSL.g:10639:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalCubeDSL.g:10883:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
+            // InternalCubeDSL.g:10884:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
             {
-            // InternalCubeDSL.g:10639:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
-            // InternalCubeDSL.g:10640:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            // InternalCubeDSL.g:10884:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalCubeDSL.g:10885:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
             }
-            // InternalCubeDSL.g:10641:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
-            loop96:
+            // InternalCubeDSL.g:10886:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            loop99:
             do {
-                int alt96=2;
+                int alt99=2;
                 switch ( input.LA(1) ) {
                 case 43:
                     {
-                    int LA96_2 = input.LA(2);
+                    int LA99_2 = input.LA(2);
 
-                    if ( (synpred157_InternalCubeDSL()) ) {
-                        alt96=1;
+                    if ( (synpred160_InternalCubeDSL()) ) {
+                        alt99=1;
                     }
 
 
                     }
                     break;
-                case 127:
+                case 130:
                     {
-                    int LA96_3 = input.LA(2);
+                    int LA99_3 = input.LA(2);
 
-                    if ( (synpred157_InternalCubeDSL()) ) {
-                        alt96=1;
+                    if ( (synpred160_InternalCubeDSL()) ) {
+                        alt99=1;
                     }
 
 
                     }
                     break;
-                case 128:
+                case 131:
                     {
-                    int LA96_4 = input.LA(2);
+                    int LA99_4 = input.LA(2);
 
-                    if ( (synpred157_InternalCubeDSL()) ) {
-                        alt96=1;
+                    if ( (synpred160_InternalCubeDSL()) ) {
+                        alt99=1;
                     }
 
 
@@ -36185,9 +37007,9 @@
 
                 }
 
-                switch (alt96) {
+                switch (alt99) {
             	case 1 :
-            	    // InternalCubeDSL.g:10641:3: rule__XMemberFeatureCall__Alternatives_1
+            	    // InternalCubeDSL.g:10886:3: rule__XMemberFeatureCall__Alternatives_1
             	    {
             	    pushFollow(FOLLOW_81);
             	    rule__XMemberFeatureCall__Alternatives_1();
@@ -36199,7 +37021,7 @@
             	    break;
 
             	default :
-            	    break loop96;
+            	    break loop99;
                 }
             } while (true);
 
@@ -36228,14 +37050,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
-    // InternalCubeDSL.g:10650:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
+    // InternalCubeDSL.g:10895:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10654:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
-            // InternalCubeDSL.g:10655:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
+            // InternalCubeDSL.g:10899:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
+            // InternalCubeDSL.g:10900:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
             {
             pushFollow(FOLLOW_48);
             rule__XMemberFeatureCall__Group_1_0__0__Impl();
@@ -36266,23 +37088,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:10662:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:10907:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10666:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:10667:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:10911:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:10912:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:10667:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
-            // InternalCubeDSL.g:10668:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalCubeDSL.g:10912:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalCubeDSL.g:10913:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:10669:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
-            // InternalCubeDSL.g:10669:3: rule__XMemberFeatureCall__Group_1_0_0__0
+            // InternalCubeDSL.g:10914:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalCubeDSL.g:10914:3: rule__XMemberFeatureCall__Group_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0();
@@ -36317,14 +37139,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
-    // InternalCubeDSL.g:10677:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
+    // InternalCubeDSL.g:10922:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10681:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
-            // InternalCubeDSL.g:10682:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
+            // InternalCubeDSL.g:10926:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
+            // InternalCubeDSL.g:10927:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0__1__Impl();
@@ -36350,23 +37172,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
-    // InternalCubeDSL.g:10688:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
+    // InternalCubeDSL.g:10933:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10692:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
-            // InternalCubeDSL.g:10693:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalCubeDSL.g:10937:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
+            // InternalCubeDSL.g:10938:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
             {
-            // InternalCubeDSL.g:10693:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
-            // InternalCubeDSL.g:10694:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalCubeDSL.g:10938:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalCubeDSL.g:10939:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
             }
-            // InternalCubeDSL.g:10695:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
-            // InternalCubeDSL.g:10695:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
+            // InternalCubeDSL.g:10940:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalCubeDSL.g:10940:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ValueAssignment_1_0_1();
@@ -36401,14 +37223,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
-    // InternalCubeDSL.g:10704:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
+    // InternalCubeDSL.g:10949:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10708:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
-            // InternalCubeDSL.g:10709:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+            // InternalCubeDSL.g:10953:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
+            // InternalCubeDSL.g:10954:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0__0__Impl();
@@ -36434,23 +37256,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:10715:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
+    // InternalCubeDSL.g:10960:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10719:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
-            // InternalCubeDSL.g:10720:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalCubeDSL.g:10964:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
+            // InternalCubeDSL.g:10965:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
             {
-            // InternalCubeDSL.g:10720:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
-            // InternalCubeDSL.g:10721:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalCubeDSL.g:10965:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalCubeDSL.g:10966:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:10722:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
-            // InternalCubeDSL.g:10722:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
+            // InternalCubeDSL.g:10967:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalCubeDSL.g:10967:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__0();
@@ -36485,14 +37307,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
-    // InternalCubeDSL.g:10731:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
+    // InternalCubeDSL.g:10976:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10735:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
-            // InternalCubeDSL.g:10736:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
+            // InternalCubeDSL.g:10980:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
+            // InternalCubeDSL.g:10981:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
             {
             pushFollow(FOLLOW_82);
             rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();
@@ -36523,23 +37345,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
-    // InternalCubeDSL.g:10743:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:10988:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10747:1: ( ( () ) )
-            // InternalCubeDSL.g:10748:1: ( () )
+            // InternalCubeDSL.g:10992:1: ( ( () ) )
+            // InternalCubeDSL.g:10993:1: ( () )
             {
-            // InternalCubeDSL.g:10748:1: ( () )
-            // InternalCubeDSL.g:10749:2: ()
+            // InternalCubeDSL.g:10993:1: ( () )
+            // InternalCubeDSL.g:10994:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
             }
-            // InternalCubeDSL.g:10750:2: ()
-            // InternalCubeDSL.g:10750:3: 
+            // InternalCubeDSL.g:10995:2: ()
+            // InternalCubeDSL.g:10995:3: 
             {
             }
 
@@ -36564,14 +37386,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
-    // InternalCubeDSL.g:10758:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
+    // InternalCubeDSL.g:11003:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10762:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
-            // InternalCubeDSL.g:10763:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
+            // InternalCubeDSL.g:11007:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
+            // InternalCubeDSL.g:11008:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
             {
             pushFollow(FOLLOW_53);
             rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();
@@ -36602,23 +37424,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
-    // InternalCubeDSL.g:10770:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
+    // InternalCubeDSL.g:11015:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10774:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
-            // InternalCubeDSL.g:10775:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalCubeDSL.g:11019:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
+            // InternalCubeDSL.g:11020:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
             {
-            // InternalCubeDSL.g:10775:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
-            // InternalCubeDSL.g:10776:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalCubeDSL.g:11020:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalCubeDSL.g:11021:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
             }
-            // InternalCubeDSL.g:10777:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
-            // InternalCubeDSL.g:10777:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+            // InternalCubeDSL.g:11022:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalCubeDSL.g:11022:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();
@@ -36653,14 +37475,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
-    // InternalCubeDSL.g:10785:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
+    // InternalCubeDSL.g:11030:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10789:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
-            // InternalCubeDSL.g:10790:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
+            // InternalCubeDSL.g:11034:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
+            // InternalCubeDSL.g:11035:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
             {
             pushFollow(FOLLOW_49);
             rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();
@@ -36691,23 +37513,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
-    // InternalCubeDSL.g:10797:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
+    // InternalCubeDSL.g:11042:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10801:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
-            // InternalCubeDSL.g:10802:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalCubeDSL.g:11046:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
+            // InternalCubeDSL.g:11047:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
             {
-            // InternalCubeDSL.g:10802:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
-            // InternalCubeDSL.g:10803:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalCubeDSL.g:11047:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalCubeDSL.g:11048:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
             }
-            // InternalCubeDSL.g:10804:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
-            // InternalCubeDSL.g:10804:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+            // InternalCubeDSL.g:11049:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalCubeDSL.g:11049:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();
@@ -36742,14 +37564,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
-    // InternalCubeDSL.g:10812:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
+    // InternalCubeDSL.g:11057:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10816:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
-            // InternalCubeDSL.g:10817:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+            // InternalCubeDSL.g:11061:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
+            // InternalCubeDSL.g:11062:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();
@@ -36775,17 +37597,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
-    // InternalCubeDSL.g:10823:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
+    // InternalCubeDSL.g:11068:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
     public final void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10827:1: ( ( ruleOpSingleAssign ) )
-            // InternalCubeDSL.g:10828:1: ( ruleOpSingleAssign )
+            // InternalCubeDSL.g:11072:1: ( ( ruleOpSingleAssign ) )
+            // InternalCubeDSL.g:11073:1: ( ruleOpSingleAssign )
             {
-            // InternalCubeDSL.g:10828:1: ( ruleOpSingleAssign )
-            // InternalCubeDSL.g:10829:2: ruleOpSingleAssign
+            // InternalCubeDSL.g:11073:1: ( ruleOpSingleAssign )
+            // InternalCubeDSL.g:11074:2: ruleOpSingleAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
@@ -36820,14 +37642,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
-    // InternalCubeDSL.g:10839:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
+    // InternalCubeDSL.g:11084:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10843:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
-            // InternalCubeDSL.g:10844:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
+            // InternalCubeDSL.g:11088:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
+            // InternalCubeDSL.g:11089:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
             {
             pushFollow(FOLLOW_83);
             rule__XMemberFeatureCall__Group_1_1__0__Impl();
@@ -36858,23 +37680,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
-    // InternalCubeDSL.g:10851:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
+    // InternalCubeDSL.g:11096:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10855:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
-            // InternalCubeDSL.g:10856:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalCubeDSL.g:11100:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
+            // InternalCubeDSL.g:11101:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
             {
-            // InternalCubeDSL.g:10856:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
-            // InternalCubeDSL.g:10857:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalCubeDSL.g:11101:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalCubeDSL.g:11102:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
             }
-            // InternalCubeDSL.g:10858:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
-            // InternalCubeDSL.g:10858:3: rule__XMemberFeatureCall__Group_1_1_0__0
+            // InternalCubeDSL.g:11103:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalCubeDSL.g:11103:3: rule__XMemberFeatureCall__Group_1_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0();
@@ -36909,14 +37731,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
-    // InternalCubeDSL.g:10866:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
+    // InternalCubeDSL.g:11111:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10870:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
-            // InternalCubeDSL.g:10871:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
+            // InternalCubeDSL.g:11115:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
+            // InternalCubeDSL.g:11116:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
             {
             pushFollow(FOLLOW_83);
             rule__XMemberFeatureCall__Group_1_1__1__Impl();
@@ -36947,31 +37769,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
-    // InternalCubeDSL.g:10878:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
+    // InternalCubeDSL.g:11123:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10882:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
-            // InternalCubeDSL.g:10883:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalCubeDSL.g:11127:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
+            // InternalCubeDSL.g:11128:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
             {
-            // InternalCubeDSL.g:10883:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
-            // InternalCubeDSL.g:10884:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            // InternalCubeDSL.g:11128:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalCubeDSL.g:11129:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
             }
-            // InternalCubeDSL.g:10885:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
-            int alt97=2;
-            int LA97_0 = input.LA(1);
+            // InternalCubeDSL.g:11130:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            int alt100=2;
+            int LA100_0 = input.LA(1);
 
-            if ( (LA97_0==27) ) {
-                alt97=1;
+            if ( (LA100_0==27) ) {
+                alt100=1;
             }
-            switch (alt97) {
+            switch (alt100) {
                 case 1 :
-                    // InternalCubeDSL.g:10885:3: rule__XMemberFeatureCall__Group_1_1_1__0
+                    // InternalCubeDSL.g:11130:3: rule__XMemberFeatureCall__Group_1_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_1__0();
@@ -37009,14 +37831,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
-    // InternalCubeDSL.g:10893:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
+    // InternalCubeDSL.g:11138:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
     public final void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10897:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
-            // InternalCubeDSL.g:10898:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
+            // InternalCubeDSL.g:11142:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
+            // InternalCubeDSL.g:11143:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
             {
             pushFollow(FOLLOW_84);
             rule__XMemberFeatureCall__Group_1_1__2__Impl();
@@ -37047,23 +37869,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
-    // InternalCubeDSL.g:10905:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
+    // InternalCubeDSL.g:11150:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10909:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
-            // InternalCubeDSL.g:10910:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalCubeDSL.g:11154:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
+            // InternalCubeDSL.g:11155:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
             {
-            // InternalCubeDSL.g:10910:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
-            // InternalCubeDSL.g:10911:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalCubeDSL.g:11155:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalCubeDSL.g:11156:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
             }
-            // InternalCubeDSL.g:10912:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
-            // InternalCubeDSL.g:10912:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+            // InternalCubeDSL.g:11157:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalCubeDSL.g:11157:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__FeatureAssignment_1_1_2();
@@ -37098,14 +37920,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
-    // InternalCubeDSL.g:10920:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
+    // InternalCubeDSL.g:11165:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
     public final void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10924:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
-            // InternalCubeDSL.g:10925:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
+            // InternalCubeDSL.g:11169:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
+            // InternalCubeDSL.g:11170:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
             {
             pushFollow(FOLLOW_84);
             rule__XMemberFeatureCall__Group_1_1__3__Impl();
@@ -37136,27 +37958,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
-    // InternalCubeDSL.g:10932:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
+    // InternalCubeDSL.g:11177:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10936:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
-            // InternalCubeDSL.g:10937:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalCubeDSL.g:11181:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
+            // InternalCubeDSL.g:11182:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
             {
-            // InternalCubeDSL.g:10937:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
-            // InternalCubeDSL.g:10938:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            // InternalCubeDSL.g:11182:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalCubeDSL.g:11183:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
             }
-            // InternalCubeDSL.g:10939:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
-            int alt98=2;
-            alt98 = dfa98.predict(input);
-            switch (alt98) {
+            // InternalCubeDSL.g:11184:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            int alt101=2;
+            alt101 = dfa101.predict(input);
+            switch (alt101) {
                 case 1 :
-                    // InternalCubeDSL.g:10939:3: rule__XMemberFeatureCall__Group_1_1_3__0
+                    // InternalCubeDSL.g:11184:3: rule__XMemberFeatureCall__Group_1_1_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Group_1_1_3__0();
@@ -37194,14 +38016,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
-    // InternalCubeDSL.g:10947:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
+    // InternalCubeDSL.g:11192:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10951:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
-            // InternalCubeDSL.g:10952:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
+            // InternalCubeDSL.g:11196:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
+            // InternalCubeDSL.g:11197:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1__4__Impl();
@@ -37227,27 +38049,27 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
-    // InternalCubeDSL.g:10958:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
+    // InternalCubeDSL.g:11203:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10962:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
-            // InternalCubeDSL.g:10963:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalCubeDSL.g:11207:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
+            // InternalCubeDSL.g:11208:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
             {
-            // InternalCubeDSL.g:10963:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
-            // InternalCubeDSL.g:10964:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            // InternalCubeDSL.g:11208:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalCubeDSL.g:11209:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
             }
-            // InternalCubeDSL.g:10965:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
-            int alt99=2;
-            alt99 = dfa99.predict(input);
-            switch (alt99) {
+            // InternalCubeDSL.g:11210:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            int alt102=2;
+            alt102 = dfa102.predict(input);
+            switch (alt102) {
                 case 1 :
-                    // InternalCubeDSL.g:10965:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+                    // InternalCubeDSL.g:11210:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -37285,14 +38107,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
-    // InternalCubeDSL.g:10974:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
+    // InternalCubeDSL.g:11219:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10978:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
-            // InternalCubeDSL.g:10979:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+            // InternalCubeDSL.g:11223:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
+            // InternalCubeDSL.g:11224:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0__0__Impl();
@@ -37318,23 +38140,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
-    // InternalCubeDSL.g:10985:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:11230:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:10989:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:10990:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalCubeDSL.g:11234:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:11235:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:10990:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
-            // InternalCubeDSL.g:10991:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalCubeDSL.g:11235:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalCubeDSL.g:11236:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
             }
-            // InternalCubeDSL.g:10992:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
-            // InternalCubeDSL.g:10992:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
+            // InternalCubeDSL.g:11237:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalCubeDSL.g:11237:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__0();
@@ -37369,14 +38191,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
-    // InternalCubeDSL.g:11001:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
+    // InternalCubeDSL.g:11246:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11005:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
-            // InternalCubeDSL.g:11006:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
+            // InternalCubeDSL.g:11250:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
+            // InternalCubeDSL.g:11251:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
             {
             pushFollow(FOLLOW_80);
             rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();
@@ -37407,23 +38229,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
-    // InternalCubeDSL.g:11013:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:11258:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11017:1: ( ( () ) )
-            // InternalCubeDSL.g:11018:1: ( () )
+            // InternalCubeDSL.g:11262:1: ( ( () ) )
+            // InternalCubeDSL.g:11263:1: ( () )
             {
-            // InternalCubeDSL.g:11018:1: ( () )
-            // InternalCubeDSL.g:11019:2: ()
+            // InternalCubeDSL.g:11263:1: ( () )
+            // InternalCubeDSL.g:11264:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:11020:2: ()
-            // InternalCubeDSL.g:11020:3: 
+            // InternalCubeDSL.g:11265:2: ()
+            // InternalCubeDSL.g:11265:3: 
             {
             }
 
@@ -37448,14 +38270,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
-    // InternalCubeDSL.g:11028:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:11273:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11032:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
-            // InternalCubeDSL.g:11033:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+            // InternalCubeDSL.g:11277:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
+            // InternalCubeDSL.g:11278:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();
@@ -37481,23 +38303,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
-    // InternalCubeDSL.g:11039:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
+    // InternalCubeDSL.g:11284:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11043:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
-            // InternalCubeDSL.g:11044:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalCubeDSL.g:11288:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
+            // InternalCubeDSL.g:11289:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
             {
-            // InternalCubeDSL.g:11044:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
-            // InternalCubeDSL.g:11045:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalCubeDSL.g:11289:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalCubeDSL.g:11290:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:11046:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
-            // InternalCubeDSL.g:11046:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+            // InternalCubeDSL.g:11291:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalCubeDSL.g:11291:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();
@@ -37532,14 +38354,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
-    // InternalCubeDSL.g:11055:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
+    // InternalCubeDSL.g:11300:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11059:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
-            // InternalCubeDSL.g:11060:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
+            // InternalCubeDSL.g:11304:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
+            // InternalCubeDSL.g:11305:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
             {
             pushFollow(FOLLOW_85);
             rule__XMemberFeatureCall__Group_1_1_1__0__Impl();
@@ -37570,17 +38392,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
-    // InternalCubeDSL.g:11067:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
+    // InternalCubeDSL.g:11312:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11071:1: ( ( '<' ) )
-            // InternalCubeDSL.g:11072:1: ( '<' )
+            // InternalCubeDSL.g:11316:1: ( ( '<' ) )
+            // InternalCubeDSL.g:11317:1: ( '<' )
             {
-            // InternalCubeDSL.g:11072:1: ( '<' )
-            // InternalCubeDSL.g:11073:2: '<'
+            // InternalCubeDSL.g:11317:1: ( '<' )
+            // InternalCubeDSL.g:11318:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
@@ -37611,14 +38433,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
-    // InternalCubeDSL.g:11082:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
+    // InternalCubeDSL.g:11327:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11086:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
-            // InternalCubeDSL.g:11087:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
+            // InternalCubeDSL.g:11331:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
+            // InternalCubeDSL.g:11332:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
             {
             pushFollow(FOLLOW_86);
             rule__XMemberFeatureCall__Group_1_1_1__1__Impl();
@@ -37649,23 +38471,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
-    // InternalCubeDSL.g:11094:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
+    // InternalCubeDSL.g:11339:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11098:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
-            // InternalCubeDSL.g:11099:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalCubeDSL.g:11343:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
+            // InternalCubeDSL.g:11344:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
             {
-            // InternalCubeDSL.g:11099:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
-            // InternalCubeDSL.g:11100:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalCubeDSL.g:11344:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalCubeDSL.g:11345:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
             }
-            // InternalCubeDSL.g:11101:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
-            // InternalCubeDSL.g:11101:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+            // InternalCubeDSL.g:11346:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalCubeDSL.g:11346:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();
@@ -37700,14 +38522,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
-    // InternalCubeDSL.g:11109:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
+    // InternalCubeDSL.g:11354:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11113:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
-            // InternalCubeDSL.g:11114:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
+            // InternalCubeDSL.g:11358:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
+            // InternalCubeDSL.g:11359:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
             {
             pushFollow(FOLLOW_86);
             rule__XMemberFeatureCall__Group_1_1_1__2__Impl();
@@ -37738,35 +38560,35 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
-    // InternalCubeDSL.g:11121:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
+    // InternalCubeDSL.g:11366:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11125:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
-            // InternalCubeDSL.g:11126:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalCubeDSL.g:11370:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
+            // InternalCubeDSL.g:11371:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
             {
-            // InternalCubeDSL.g:11126:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
-            // InternalCubeDSL.g:11127:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            // InternalCubeDSL.g:11371:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalCubeDSL.g:11372:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
             }
-            // InternalCubeDSL.g:11128:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
-            loop100:
+            // InternalCubeDSL.g:11373:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            loop103:
             do {
-                int alt100=2;
-                int LA100_0 = input.LA(1);
+                int alt103=2;
+                int LA103_0 = input.LA(1);
 
-                if ( (LA100_0==90) ) {
-                    alt100=1;
+                if ( (LA103_0==90) ) {
+                    alt103=1;
                 }
 
 
-                switch (alt100) {
+                switch (alt103) {
             	case 1 :
-            	    // InternalCubeDSL.g:11128:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
+            	    // InternalCubeDSL.g:11373:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XMemberFeatureCall__Group_1_1_1_2__0();
@@ -37778,7 +38600,7 @@
             	    break;
 
             	default :
-            	    break loop100;
+            	    break loop103;
                 }
             } while (true);
 
@@ -37807,14 +38629,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
-    // InternalCubeDSL.g:11136:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
+    // InternalCubeDSL.g:11381:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11140:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
-            // InternalCubeDSL.g:11141:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+            // InternalCubeDSL.g:11385:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
+            // InternalCubeDSL.g:11386:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1__3__Impl();
@@ -37840,17 +38662,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
-    // InternalCubeDSL.g:11147:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:11392:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11151:1: ( ( '>' ) )
-            // InternalCubeDSL.g:11152:1: ( '>' )
+            // InternalCubeDSL.g:11396:1: ( ( '>' ) )
+            // InternalCubeDSL.g:11397:1: ( '>' )
             {
-            // InternalCubeDSL.g:11152:1: ( '>' )
-            // InternalCubeDSL.g:11153:2: '>'
+            // InternalCubeDSL.g:11397:1: ( '>' )
+            // InternalCubeDSL.g:11398:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
@@ -37881,14 +38703,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
-    // InternalCubeDSL.g:11163:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
+    // InternalCubeDSL.g:11408:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11167:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
-            // InternalCubeDSL.g:11168:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
+            // InternalCubeDSL.g:11412:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
+            // InternalCubeDSL.g:11413:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
             {
             pushFollow(FOLLOW_85);
             rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();
@@ -37919,17 +38741,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
-    // InternalCubeDSL.g:11175:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:11420:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11179:1: ( ( ',' ) )
-            // InternalCubeDSL.g:11180:1: ( ',' )
+            // InternalCubeDSL.g:11424:1: ( ( ',' ) )
+            // InternalCubeDSL.g:11425:1: ( ',' )
             {
-            // InternalCubeDSL.g:11180:1: ( ',' )
-            // InternalCubeDSL.g:11181:2: ','
+            // InternalCubeDSL.g:11425:1: ( ',' )
+            // InternalCubeDSL.g:11426:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
@@ -37960,14 +38782,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
-    // InternalCubeDSL.g:11190:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
+    // InternalCubeDSL.g:11435:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11194:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
-            // InternalCubeDSL.g:11195:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+            // InternalCubeDSL.g:11439:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
+            // InternalCubeDSL.g:11440:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();
@@ -37993,23 +38815,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
-    // InternalCubeDSL.g:11201:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
+    // InternalCubeDSL.g:11446:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11205:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
-            // InternalCubeDSL.g:11206:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalCubeDSL.g:11450:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
+            // InternalCubeDSL.g:11451:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
             {
-            // InternalCubeDSL.g:11206:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
-            // InternalCubeDSL.g:11207:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalCubeDSL.g:11451:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalCubeDSL.g:11452:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
             }
-            // InternalCubeDSL.g:11208:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
-            // InternalCubeDSL.g:11208:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+            // InternalCubeDSL.g:11453:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalCubeDSL.g:11453:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();
@@ -38044,14 +38866,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
-    // InternalCubeDSL.g:11217:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
+    // InternalCubeDSL.g:11462:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11221:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
-            // InternalCubeDSL.g:11222:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
+            // InternalCubeDSL.g:11466:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
+            // InternalCubeDSL.g:11467:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
             {
             pushFollow(FOLLOW_87);
             rule__XMemberFeatureCall__Group_1_1_3__0__Impl();
@@ -38082,23 +38904,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
-    // InternalCubeDSL.g:11229:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
+    // InternalCubeDSL.g:11474:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11233:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
-            // InternalCubeDSL.g:11234:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalCubeDSL.g:11478:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
+            // InternalCubeDSL.g:11479:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
             {
-            // InternalCubeDSL.g:11234:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
-            // InternalCubeDSL.g:11235:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalCubeDSL.g:11479:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalCubeDSL.g:11480:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
             }
-            // InternalCubeDSL.g:11236:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
-            // InternalCubeDSL.g:11236:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+            // InternalCubeDSL.g:11481:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalCubeDSL.g:11481:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();
@@ -38133,14 +38955,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
-    // InternalCubeDSL.g:11244:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
+    // InternalCubeDSL.g:11489:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11248:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
-            // InternalCubeDSL.g:11249:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
+            // InternalCubeDSL.g:11493:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
+            // InternalCubeDSL.g:11494:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
             {
             pushFollow(FOLLOW_87);
             rule__XMemberFeatureCall__Group_1_1_3__1__Impl();
@@ -38171,31 +38993,31 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
-    // InternalCubeDSL.g:11256:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
+    // InternalCubeDSL.g:11501:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11260:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
-            // InternalCubeDSL.g:11261:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalCubeDSL.g:11505:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
+            // InternalCubeDSL.g:11506:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
             {
-            // InternalCubeDSL.g:11261:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
-            // InternalCubeDSL.g:11262:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            // InternalCubeDSL.g:11506:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalCubeDSL.g:11507:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
             }
-            // InternalCubeDSL.g:11263:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
-            int alt101=2;
-            int LA101_0 = input.LA(1);
+            // InternalCubeDSL.g:11508:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            int alt104=2;
+            int LA104_0 = input.LA(1);
 
-            if ( ((LA101_0>=RULE_ID && LA101_0<=RULE_DECIMAL)||LA101_0==27||LA101_0==31||(LA101_0>=34 && LA101_0<=35)||LA101_0==40||(LA101_0>=45 && LA101_0<=50)||LA101_0==74||LA101_0==88||(LA101_0>=92 && LA101_0<=93)||LA101_0==96||LA101_0==98||(LA101_0>=102 && LA101_0<=110)||LA101_0==112||LA101_0==129||LA101_0==131) ) {
-                alt101=1;
+            if ( ((LA104_0>=RULE_ID && LA104_0<=RULE_DECIMAL)||LA104_0==27||LA104_0==31||(LA104_0>=34 && LA104_0<=35)||LA104_0==40||(LA104_0>=45 && LA104_0<=50)||LA104_0==74||LA104_0==88||(LA104_0>=92 && LA104_0<=93)||LA104_0==96||LA104_0==98||(LA104_0>=102 && LA104_0<=110)||LA104_0==112||LA104_0==132||LA104_0==134) ) {
+                alt104=1;
             }
-            switch (alt101) {
+            switch (alt104) {
                 case 1 :
-                    // InternalCubeDSL.g:11263:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
+                    // InternalCubeDSL.g:11508:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XMemberFeatureCall__Alternatives_1_1_3_1();
@@ -38233,14 +39055,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
-    // InternalCubeDSL.g:11271:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
+    // InternalCubeDSL.g:11516:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11275:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
-            // InternalCubeDSL.g:11276:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+            // InternalCubeDSL.g:11520:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
+            // InternalCubeDSL.g:11521:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3__2__Impl();
@@ -38266,17 +39088,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
-    // InternalCubeDSL.g:11282:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:11527:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11286:1: ( ( ')' ) )
-            // InternalCubeDSL.g:11287:1: ( ')' )
+            // InternalCubeDSL.g:11531:1: ( ( ')' ) )
+            // InternalCubeDSL.g:11532:1: ( ')' )
             {
-            // InternalCubeDSL.g:11287:1: ( ')' )
-            // InternalCubeDSL.g:11288:2: ')'
+            // InternalCubeDSL.g:11532:1: ( ')' )
+            // InternalCubeDSL.g:11533:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
@@ -38307,14 +39129,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
-    // InternalCubeDSL.g:11298:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
+    // InternalCubeDSL.g:11543:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11302:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
-            // InternalCubeDSL.g:11303:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+            // InternalCubeDSL.g:11547:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
+            // InternalCubeDSL.g:11548:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();
@@ -38345,23 +39167,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
-    // InternalCubeDSL.g:11310:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
+    // InternalCubeDSL.g:11555:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11314:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
-            // InternalCubeDSL.g:11315:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalCubeDSL.g:11559:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
+            // InternalCubeDSL.g:11560:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
             {
-            // InternalCubeDSL.g:11315:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
-            // InternalCubeDSL.g:11316:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalCubeDSL.g:11560:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalCubeDSL.g:11561:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
             }
-            // InternalCubeDSL.g:11317:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
-            // InternalCubeDSL.g:11317:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+            // InternalCubeDSL.g:11562:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalCubeDSL.g:11562:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();
@@ -38396,14 +39218,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
-    // InternalCubeDSL.g:11325:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
+    // InternalCubeDSL.g:11570:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11329:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
-            // InternalCubeDSL.g:11330:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+            // InternalCubeDSL.g:11574:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
+            // InternalCubeDSL.g:11575:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();
@@ -38429,35 +39251,35 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
-    // InternalCubeDSL.g:11336:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
+    // InternalCubeDSL.g:11581:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11340:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
-            // InternalCubeDSL.g:11341:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalCubeDSL.g:11585:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
+            // InternalCubeDSL.g:11586:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
             {
-            // InternalCubeDSL.g:11341:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
-            // InternalCubeDSL.g:11342:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            // InternalCubeDSL.g:11586:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalCubeDSL.g:11587:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); 
             }
-            // InternalCubeDSL.g:11343:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
-            loop102:
+            // InternalCubeDSL.g:11588:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            loop105:
             do {
-                int alt102=2;
-                int LA102_0 = input.LA(1);
+                int alt105=2;
+                int LA105_0 = input.LA(1);
 
-                if ( (LA102_0==90) ) {
-                    alt102=1;
+                if ( (LA105_0==90) ) {
+                    alt105=1;
                 }
 
 
-                switch (alt102) {
+                switch (alt105) {
             	case 1 :
-            	    // InternalCubeDSL.g:11343:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+            	    // InternalCubeDSL.g:11588:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();
@@ -38469,7 +39291,7 @@
             	    break;
 
             	default :
-            	    break loop102;
+            	    break loop105;
                 }
             } while (true);
 
@@ -38498,14 +39320,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
-    // InternalCubeDSL.g:11352:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
+    // InternalCubeDSL.g:11597:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11356:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
-            // InternalCubeDSL.g:11357:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+            // InternalCubeDSL.g:11601:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
+            // InternalCubeDSL.g:11602:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();
@@ -38536,17 +39358,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
-    // InternalCubeDSL.g:11364:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:11609:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11368:1: ( ( ',' ) )
-            // InternalCubeDSL.g:11369:1: ( ',' )
+            // InternalCubeDSL.g:11613:1: ( ( ',' ) )
+            // InternalCubeDSL.g:11614:1: ( ',' )
             {
-            // InternalCubeDSL.g:11369:1: ( ',' )
-            // InternalCubeDSL.g:11370:2: ','
+            // InternalCubeDSL.g:11614:1: ( ',' )
+            // InternalCubeDSL.g:11615:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
@@ -38577,14 +39399,14 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
-    // InternalCubeDSL.g:11379:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
+    // InternalCubeDSL.g:11624:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11383:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
-            // InternalCubeDSL.g:11384:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+            // InternalCubeDSL.g:11628:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
+            // InternalCubeDSL.g:11629:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl();
@@ -38610,23 +39432,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
-    // InternalCubeDSL.g:11390:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
+    // InternalCubeDSL.g:11635:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
     public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11394:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
-            // InternalCubeDSL.g:11395:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalCubeDSL.g:11639:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
+            // InternalCubeDSL.g:11640:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
             {
-            // InternalCubeDSL.g:11395:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
-            // InternalCubeDSL.g:11396:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalCubeDSL.g:11640:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalCubeDSL.g:11641:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); 
             }
-            // InternalCubeDSL.g:11397:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
-            // InternalCubeDSL.g:11397:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+            // InternalCubeDSL.g:11642:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalCubeDSL.g:11642:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();
@@ -38661,14 +39483,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0"
-    // InternalCubeDSL.g:11406:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
+    // InternalCubeDSL.g:11651:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
     public final void rule__XSetLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11410:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
-            // InternalCubeDSL.g:11411:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
+            // InternalCubeDSL.g:11655:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
+            // InternalCubeDSL.g:11656:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
             {
             pushFollow(FOLLOW_51);
             rule__XSetLiteral__Group__0__Impl();
@@ -38699,23 +39521,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
-    // InternalCubeDSL.g:11418:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:11663:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11422:1: ( ( () ) )
-            // InternalCubeDSL.g:11423:1: ( () )
+            // InternalCubeDSL.g:11667:1: ( ( () ) )
+            // InternalCubeDSL.g:11668:1: ( () )
             {
-            // InternalCubeDSL.g:11423:1: ( () )
-            // InternalCubeDSL.g:11424:2: ()
+            // InternalCubeDSL.g:11668:1: ( () )
+            // InternalCubeDSL.g:11669:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
             }
-            // InternalCubeDSL.g:11425:2: ()
-            // InternalCubeDSL.g:11425:3: 
+            // InternalCubeDSL.g:11670:2: ()
+            // InternalCubeDSL.g:11670:3: 
             {
             }
 
@@ -38740,14 +39562,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1"
-    // InternalCubeDSL.g:11433:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
+    // InternalCubeDSL.g:11678:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
     public final void rule__XSetLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11437:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
-            // InternalCubeDSL.g:11438:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
+            // InternalCubeDSL.g:11682:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
+            // InternalCubeDSL.g:11683:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__XSetLiteral__Group__1__Impl();
@@ -38778,17 +39600,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
-    // InternalCubeDSL.g:11445:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalCubeDSL.g:11690:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11449:1: ( ( '#' ) )
-            // InternalCubeDSL.g:11450:1: ( '#' )
+            // InternalCubeDSL.g:11694:1: ( ( '#' ) )
+            // InternalCubeDSL.g:11695:1: ( '#' )
             {
-            // InternalCubeDSL.g:11450:1: ( '#' )
-            // InternalCubeDSL.g:11451:2: '#'
+            // InternalCubeDSL.g:11695:1: ( '#' )
+            // InternalCubeDSL.g:11696:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
@@ -38819,14 +39641,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2"
-    // InternalCubeDSL.g:11460:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
+    // InternalCubeDSL.g:11705:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
     public final void rule__XSetLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11464:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
-            // InternalCubeDSL.g:11465:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
+            // InternalCubeDSL.g:11709:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
+            // InternalCubeDSL.g:11710:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
             {
             pushFollow(FOLLOW_88);
             rule__XSetLiteral__Group__2__Impl();
@@ -38857,17 +39679,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
-    // InternalCubeDSL.g:11472:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:11717:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
     public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11476:1: ( ( '{' ) )
-            // InternalCubeDSL.g:11477:1: ( '{' )
+            // InternalCubeDSL.g:11721:1: ( ( '{' ) )
+            // InternalCubeDSL.g:11722:1: ( '{' )
             {
-            // InternalCubeDSL.g:11477:1: ( '{' )
-            // InternalCubeDSL.g:11478:2: '{'
+            // InternalCubeDSL.g:11722:1: ( '{' )
+            // InternalCubeDSL.g:11723:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
@@ -38898,14 +39720,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3"
-    // InternalCubeDSL.g:11487:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
+    // InternalCubeDSL.g:11732:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
     public final void rule__XSetLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11491:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
-            // InternalCubeDSL.g:11492:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
+            // InternalCubeDSL.g:11736:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
+            // InternalCubeDSL.g:11737:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
             {
             pushFollow(FOLLOW_88);
             rule__XSetLiteral__Group__3__Impl();
@@ -38936,31 +39758,31 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
-    // InternalCubeDSL.g:11499:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
+    // InternalCubeDSL.g:11744:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
     public final void rule__XSetLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11503:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
-            // InternalCubeDSL.g:11504:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalCubeDSL.g:11748:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
+            // InternalCubeDSL.g:11749:1: ( ( rule__XSetLiteral__Group_3__0 )? )
             {
-            // InternalCubeDSL.g:11504:1: ( ( rule__XSetLiteral__Group_3__0 )? )
-            // InternalCubeDSL.g:11505:2: ( rule__XSetLiteral__Group_3__0 )?
+            // InternalCubeDSL.g:11749:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalCubeDSL.g:11750:2: ( rule__XSetLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
             }
-            // InternalCubeDSL.g:11506:2: ( rule__XSetLiteral__Group_3__0 )?
-            int alt103=2;
-            int LA103_0 = input.LA(1);
+            // InternalCubeDSL.g:11751:2: ( rule__XSetLiteral__Group_3__0 )?
+            int alt106=2;
+            int LA106_0 = input.LA(1);
 
-            if ( ((LA103_0>=RULE_ID && LA103_0<=RULE_DECIMAL)||LA103_0==27||(LA103_0>=34 && LA103_0<=35)||LA103_0==40||(LA103_0>=45 && LA103_0<=50)||LA103_0==74||LA103_0==88||(LA103_0>=92 && LA103_0<=93)||LA103_0==96||LA103_0==98||(LA103_0>=102 && LA103_0<=110)||LA103_0==112||LA103_0==131) ) {
-                alt103=1;
+            if ( ((LA106_0>=RULE_ID && LA106_0<=RULE_DECIMAL)||LA106_0==27||(LA106_0>=34 && LA106_0<=35)||LA106_0==40||(LA106_0>=45 && LA106_0<=50)||LA106_0==74||LA106_0==88||(LA106_0>=92 && LA106_0<=93)||LA106_0==96||LA106_0==98||(LA106_0>=102 && LA106_0<=110)||LA106_0==112||LA106_0==134) ) {
+                alt106=1;
             }
-            switch (alt103) {
+            switch (alt106) {
                 case 1 :
-                    // InternalCubeDSL.g:11506:3: rule__XSetLiteral__Group_3__0
+                    // InternalCubeDSL.g:11751:3: rule__XSetLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSetLiteral__Group_3__0();
@@ -38998,14 +39820,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4"
-    // InternalCubeDSL.g:11514:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
+    // InternalCubeDSL.g:11759:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
     public final void rule__XSetLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11518:1: ( rule__XSetLiteral__Group__4__Impl )
-            // InternalCubeDSL.g:11519:2: rule__XSetLiteral__Group__4__Impl
+            // InternalCubeDSL.g:11763:1: ( rule__XSetLiteral__Group__4__Impl )
+            // InternalCubeDSL.g:11764:2: rule__XSetLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group__4__Impl();
@@ -39031,17 +39853,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
-    // InternalCubeDSL.g:11525:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:11770:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
     public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11529:1: ( ( '}' ) )
-            // InternalCubeDSL.g:11530:1: ( '}' )
+            // InternalCubeDSL.g:11774:1: ( ( '}' ) )
+            // InternalCubeDSL.g:11775:1: ( '}' )
             {
-            // InternalCubeDSL.g:11530:1: ( '}' )
-            // InternalCubeDSL.g:11531:2: '}'
+            // InternalCubeDSL.g:11775:1: ( '}' )
+            // InternalCubeDSL.g:11776:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
@@ -39072,14 +39894,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0"
-    // InternalCubeDSL.g:11541:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
+    // InternalCubeDSL.g:11786:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
     public final void rule__XSetLiteral__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11545:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
-            // InternalCubeDSL.g:11546:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
+            // InternalCubeDSL.g:11790:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
+            // InternalCubeDSL.g:11791:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
             {
             pushFollow(FOLLOW_46);
             rule__XSetLiteral__Group_3__0__Impl();
@@ -39110,23 +39932,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
-    // InternalCubeDSL.g:11553:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalCubeDSL.g:11798:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
     public final void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11557:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalCubeDSL.g:11558:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalCubeDSL.g:11802:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalCubeDSL.g:11803:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalCubeDSL.g:11558:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
-            // InternalCubeDSL.g:11559:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalCubeDSL.g:11803:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalCubeDSL.g:11804:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalCubeDSL.g:11560:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
-            // InternalCubeDSL.g:11560:3: rule__XSetLiteral__ElementsAssignment_3_0
+            // InternalCubeDSL.g:11805:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalCubeDSL.g:11805:3: rule__XSetLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_0();
@@ -39161,14 +39983,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1"
-    // InternalCubeDSL.g:11568:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
+    // InternalCubeDSL.g:11813:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
     public final void rule__XSetLiteral__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11572:1: ( rule__XSetLiteral__Group_3__1__Impl )
-            // InternalCubeDSL.g:11573:2: rule__XSetLiteral__Group_3__1__Impl
+            // InternalCubeDSL.g:11817:1: ( rule__XSetLiteral__Group_3__1__Impl )
+            // InternalCubeDSL.g:11818:2: rule__XSetLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3__1__Impl();
@@ -39194,35 +40016,35 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
-    // InternalCubeDSL.g:11579:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
+    // InternalCubeDSL.g:11824:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
     public final void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11583:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
-            // InternalCubeDSL.g:11584:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalCubeDSL.g:11828:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
+            // InternalCubeDSL.g:11829:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
             {
-            // InternalCubeDSL.g:11584:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
-            // InternalCubeDSL.g:11585:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            // InternalCubeDSL.g:11829:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalCubeDSL.g:11830:2: ( rule__XSetLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
             }
-            // InternalCubeDSL.g:11586:2: ( rule__XSetLiteral__Group_3_1__0 )*
-            loop104:
+            // InternalCubeDSL.g:11831:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            loop107:
             do {
-                int alt104=2;
-                int LA104_0 = input.LA(1);
+                int alt107=2;
+                int LA107_0 = input.LA(1);
 
-                if ( (LA104_0==90) ) {
-                    alt104=1;
+                if ( (LA107_0==90) ) {
+                    alt107=1;
                 }
 
 
-                switch (alt104) {
+                switch (alt107) {
             	case 1 :
-            	    // InternalCubeDSL.g:11586:3: rule__XSetLiteral__Group_3_1__0
+            	    // InternalCubeDSL.g:11831:3: rule__XSetLiteral__Group_3_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XSetLiteral__Group_3_1__0();
@@ -39234,7 +40056,7 @@
             	    break;
 
             	default :
-            	    break loop104;
+            	    break loop107;
                 }
             } while (true);
 
@@ -39263,14 +40085,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
-    // InternalCubeDSL.g:11595:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
+    // InternalCubeDSL.g:11840:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
     public final void rule__XSetLiteral__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11599:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
-            // InternalCubeDSL.g:11600:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
+            // InternalCubeDSL.g:11844:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
+            // InternalCubeDSL.g:11845:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XSetLiteral__Group_3_1__0__Impl();
@@ -39301,17 +40123,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
-    // InternalCubeDSL.g:11607:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:11852:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11611:1: ( ( ',' ) )
-            // InternalCubeDSL.g:11612:1: ( ',' )
+            // InternalCubeDSL.g:11856:1: ( ( ',' ) )
+            // InternalCubeDSL.g:11857:1: ( ',' )
             {
-            // InternalCubeDSL.g:11612:1: ( ',' )
-            // InternalCubeDSL.g:11613:2: ','
+            // InternalCubeDSL.g:11857:1: ( ',' )
+            // InternalCubeDSL.g:11858:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
@@ -39342,14 +40164,14 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
-    // InternalCubeDSL.g:11622:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
+    // InternalCubeDSL.g:11867:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
     public final void rule__XSetLiteral__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11626:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
-            // InternalCubeDSL.g:11627:2: rule__XSetLiteral__Group_3_1__1__Impl
+            // InternalCubeDSL.g:11871:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
+            // InternalCubeDSL.g:11872:2: rule__XSetLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__Group_3_1__1__Impl();
@@ -39375,23 +40197,23 @@
 
 
     // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
-    // InternalCubeDSL.g:11633:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalCubeDSL.g:11878:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
     public final void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11637:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalCubeDSL.g:11638:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalCubeDSL.g:11882:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalCubeDSL.g:11883:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalCubeDSL.g:11638:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalCubeDSL.g:11639:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalCubeDSL.g:11883:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalCubeDSL.g:11884:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalCubeDSL.g:11640:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
-            // InternalCubeDSL.g:11640:3: rule__XSetLiteral__ElementsAssignment_3_1_1
+            // InternalCubeDSL.g:11885:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalCubeDSL.g:11885:3: rule__XSetLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSetLiteral__ElementsAssignment_3_1_1();
@@ -39426,14 +40248,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0"
-    // InternalCubeDSL.g:11649:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
+    // InternalCubeDSL.g:11894:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
     public final void rule__XListLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11653:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
-            // InternalCubeDSL.g:11654:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
+            // InternalCubeDSL.g:11898:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
+            // InternalCubeDSL.g:11899:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
             {
             pushFollow(FOLLOW_51);
             rule__XListLiteral__Group__0__Impl();
@@ -39464,23 +40286,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__0__Impl"
-    // InternalCubeDSL.g:11661:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:11906:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11665:1: ( ( () ) )
-            // InternalCubeDSL.g:11666:1: ( () )
+            // InternalCubeDSL.g:11910:1: ( ( () ) )
+            // InternalCubeDSL.g:11911:1: ( () )
             {
-            // InternalCubeDSL.g:11666:1: ( () )
-            // InternalCubeDSL.g:11667:2: ()
+            // InternalCubeDSL.g:11911:1: ( () )
+            // InternalCubeDSL.g:11912:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
             }
-            // InternalCubeDSL.g:11668:2: ()
-            // InternalCubeDSL.g:11668:3: 
+            // InternalCubeDSL.g:11913:2: ()
+            // InternalCubeDSL.g:11913:3: 
             {
             }
 
@@ -39505,14 +40327,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1"
-    // InternalCubeDSL.g:11676:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
+    // InternalCubeDSL.g:11921:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
     public final void rule__XListLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11680:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
-            // InternalCubeDSL.g:11681:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
+            // InternalCubeDSL.g:11925:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
+            // InternalCubeDSL.g:11926:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
             {
             pushFollow(FOLLOW_52);
             rule__XListLiteral__Group__1__Impl();
@@ -39543,17 +40365,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__1__Impl"
-    // InternalCubeDSL.g:11688:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
+    // InternalCubeDSL.g:11933:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
     public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11692:1: ( ( '#' ) )
-            // InternalCubeDSL.g:11693:1: ( '#' )
+            // InternalCubeDSL.g:11937:1: ( ( '#' ) )
+            // InternalCubeDSL.g:11938:1: ( '#' )
             {
-            // InternalCubeDSL.g:11693:1: ( '#' )
-            // InternalCubeDSL.g:11694:2: '#'
+            // InternalCubeDSL.g:11938:1: ( '#' )
+            // InternalCubeDSL.g:11939:2: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
@@ -39584,14 +40406,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2"
-    // InternalCubeDSL.g:11703:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
+    // InternalCubeDSL.g:11948:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
     public final void rule__XListLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11707:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
-            // InternalCubeDSL.g:11708:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
+            // InternalCubeDSL.g:11952:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
+            // InternalCubeDSL.g:11953:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
             {
             pushFollow(FOLLOW_50);
             rule__XListLiteral__Group__2__Impl();
@@ -39622,17 +40444,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__2__Impl"
-    // InternalCubeDSL.g:11715:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
+    // InternalCubeDSL.g:11960:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
     public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11719:1: ( ( '[' ) )
-            // InternalCubeDSL.g:11720:1: ( '[' )
+            // InternalCubeDSL.g:11964:1: ( ( '[' ) )
+            // InternalCubeDSL.g:11965:1: ( '[' )
             {
-            // InternalCubeDSL.g:11720:1: ( '[' )
-            // InternalCubeDSL.g:11721:2: '['
+            // InternalCubeDSL.g:11965:1: ( '[' )
+            // InternalCubeDSL.g:11966:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
@@ -39663,14 +40485,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3"
-    // InternalCubeDSL.g:11730:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
+    // InternalCubeDSL.g:11975:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
     public final void rule__XListLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11734:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
-            // InternalCubeDSL.g:11735:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
+            // InternalCubeDSL.g:11979:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
+            // InternalCubeDSL.g:11980:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
             {
             pushFollow(FOLLOW_50);
             rule__XListLiteral__Group__3__Impl();
@@ -39701,31 +40523,31 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__3__Impl"
-    // InternalCubeDSL.g:11742:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
+    // InternalCubeDSL.g:11987:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
     public final void rule__XListLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11746:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
-            // InternalCubeDSL.g:11747:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalCubeDSL.g:11991:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
+            // InternalCubeDSL.g:11992:1: ( ( rule__XListLiteral__Group_3__0 )? )
             {
-            // InternalCubeDSL.g:11747:1: ( ( rule__XListLiteral__Group_3__0 )? )
-            // InternalCubeDSL.g:11748:2: ( rule__XListLiteral__Group_3__0 )?
+            // InternalCubeDSL.g:11992:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalCubeDSL.g:11993:2: ( rule__XListLiteral__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
             }
-            // InternalCubeDSL.g:11749:2: ( rule__XListLiteral__Group_3__0 )?
-            int alt105=2;
-            int LA105_0 = input.LA(1);
+            // InternalCubeDSL.g:11994:2: ( rule__XListLiteral__Group_3__0 )?
+            int alt108=2;
+            int LA108_0 = input.LA(1);
 
-            if ( ((LA105_0>=RULE_ID && LA105_0<=RULE_DECIMAL)||LA105_0==27||(LA105_0>=34 && LA105_0<=35)||LA105_0==40||(LA105_0>=45 && LA105_0<=50)||LA105_0==74||LA105_0==88||(LA105_0>=92 && LA105_0<=93)||LA105_0==96||LA105_0==98||(LA105_0>=102 && LA105_0<=110)||LA105_0==112||LA105_0==131) ) {
-                alt105=1;
+            if ( ((LA108_0>=RULE_ID && LA108_0<=RULE_DECIMAL)||LA108_0==27||(LA108_0>=34 && LA108_0<=35)||LA108_0==40||(LA108_0>=45 && LA108_0<=50)||LA108_0==74||LA108_0==88||(LA108_0>=92 && LA108_0<=93)||LA108_0==96||LA108_0==98||(LA108_0>=102 && LA108_0<=110)||LA108_0==112||LA108_0==134) ) {
+                alt108=1;
             }
-            switch (alt105) {
+            switch (alt108) {
                 case 1 :
-                    // InternalCubeDSL.g:11749:3: rule__XListLiteral__Group_3__0
+                    // InternalCubeDSL.g:11994:3: rule__XListLiteral__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XListLiteral__Group_3__0();
@@ -39763,14 +40585,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4"
-    // InternalCubeDSL.g:11757:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
+    // InternalCubeDSL.g:12002:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
     public final void rule__XListLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11761:1: ( rule__XListLiteral__Group__4__Impl )
-            // InternalCubeDSL.g:11762:2: rule__XListLiteral__Group__4__Impl
+            // InternalCubeDSL.g:12006:1: ( rule__XListLiteral__Group__4__Impl )
+            // InternalCubeDSL.g:12007:2: rule__XListLiteral__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group__4__Impl();
@@ -39796,17 +40618,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group__4__Impl"
-    // InternalCubeDSL.g:11768:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
+    // InternalCubeDSL.g:12013:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
     public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11772:1: ( ( ']' ) )
-            // InternalCubeDSL.g:11773:1: ( ']' )
+            // InternalCubeDSL.g:12017:1: ( ( ']' ) )
+            // InternalCubeDSL.g:12018:1: ( ']' )
             {
-            // InternalCubeDSL.g:11773:1: ( ']' )
-            // InternalCubeDSL.g:11774:2: ']'
+            // InternalCubeDSL.g:12018:1: ( ']' )
+            // InternalCubeDSL.g:12019:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
@@ -39837,14 +40659,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0"
-    // InternalCubeDSL.g:11784:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
+    // InternalCubeDSL.g:12029:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
     public final void rule__XListLiteral__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11788:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
-            // InternalCubeDSL.g:11789:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
+            // InternalCubeDSL.g:12033:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
+            // InternalCubeDSL.g:12034:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
             {
             pushFollow(FOLLOW_46);
             rule__XListLiteral__Group_3__0__Impl();
@@ -39875,23 +40697,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
-    // InternalCubeDSL.g:11796:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
+    // InternalCubeDSL.g:12041:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
     public final void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11800:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
-            // InternalCubeDSL.g:11801:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalCubeDSL.g:12045:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalCubeDSL.g:12046:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
             {
-            // InternalCubeDSL.g:11801:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
-            // InternalCubeDSL.g:11802:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalCubeDSL.g:12046:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalCubeDSL.g:12047:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
             }
-            // InternalCubeDSL.g:11803:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
-            // InternalCubeDSL.g:11803:3: rule__XListLiteral__ElementsAssignment_3_0
+            // InternalCubeDSL.g:12048:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalCubeDSL.g:12048:3: rule__XListLiteral__ElementsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_0();
@@ -39926,14 +40748,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1"
-    // InternalCubeDSL.g:11811:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
+    // InternalCubeDSL.g:12056:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
     public final void rule__XListLiteral__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11815:1: ( rule__XListLiteral__Group_3__1__Impl )
-            // InternalCubeDSL.g:11816:2: rule__XListLiteral__Group_3__1__Impl
+            // InternalCubeDSL.g:12060:1: ( rule__XListLiteral__Group_3__1__Impl )
+            // InternalCubeDSL.g:12061:2: rule__XListLiteral__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3__1__Impl();
@@ -39959,35 +40781,35 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
-    // InternalCubeDSL.g:11822:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
+    // InternalCubeDSL.g:12067:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
     public final void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11826:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
-            // InternalCubeDSL.g:11827:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalCubeDSL.g:12071:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
+            // InternalCubeDSL.g:12072:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
             {
-            // InternalCubeDSL.g:11827:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
-            // InternalCubeDSL.g:11828:2: ( rule__XListLiteral__Group_3_1__0 )*
+            // InternalCubeDSL.g:12072:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalCubeDSL.g:12073:2: ( rule__XListLiteral__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
             }
-            // InternalCubeDSL.g:11829:2: ( rule__XListLiteral__Group_3_1__0 )*
-            loop106:
+            // InternalCubeDSL.g:12074:2: ( rule__XListLiteral__Group_3_1__0 )*
+            loop109:
             do {
-                int alt106=2;
-                int LA106_0 = input.LA(1);
+                int alt109=2;
+                int LA109_0 = input.LA(1);
 
-                if ( (LA106_0==90) ) {
-                    alt106=1;
+                if ( (LA109_0==90) ) {
+                    alt109=1;
                 }
 
 
-                switch (alt106) {
+                switch (alt109) {
             	case 1 :
-            	    // InternalCubeDSL.g:11829:3: rule__XListLiteral__Group_3_1__0
+            	    // InternalCubeDSL.g:12074:3: rule__XListLiteral__Group_3_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XListLiteral__Group_3_1__0();
@@ -39999,7 +40821,7 @@
             	    break;
 
             	default :
-            	    break loop106;
+            	    break loop109;
                 }
             } while (true);
 
@@ -40028,14 +40850,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0"
-    // InternalCubeDSL.g:11838:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
+    // InternalCubeDSL.g:12083:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
     public final void rule__XListLiteral__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11842:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
-            // InternalCubeDSL.g:11843:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
+            // InternalCubeDSL.g:12087:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
+            // InternalCubeDSL.g:12088:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XListLiteral__Group_3_1__0__Impl();
@@ -40066,17 +40888,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
-    // InternalCubeDSL.g:11850:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:12095:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11854:1: ( ( ',' ) )
-            // InternalCubeDSL.g:11855:1: ( ',' )
+            // InternalCubeDSL.g:12099:1: ( ( ',' ) )
+            // InternalCubeDSL.g:12100:1: ( ',' )
             {
-            // InternalCubeDSL.g:11855:1: ( ',' )
-            // InternalCubeDSL.g:11856:2: ','
+            // InternalCubeDSL.g:12100:1: ( ',' )
+            // InternalCubeDSL.g:12101:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
@@ -40107,14 +40929,14 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1"
-    // InternalCubeDSL.g:11865:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
+    // InternalCubeDSL.g:12110:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
     public final void rule__XListLiteral__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11869:1: ( rule__XListLiteral__Group_3_1__1__Impl )
-            // InternalCubeDSL.g:11870:2: rule__XListLiteral__Group_3_1__1__Impl
+            // InternalCubeDSL.g:12114:1: ( rule__XListLiteral__Group_3_1__1__Impl )
+            // InternalCubeDSL.g:12115:2: rule__XListLiteral__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__Group_3_1__1__Impl();
@@ -40140,23 +40962,23 @@
 
 
     // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
-    // InternalCubeDSL.g:11876:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
+    // InternalCubeDSL.g:12121:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
     public final void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11880:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
-            // InternalCubeDSL.g:11881:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalCubeDSL.g:12125:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalCubeDSL.g:12126:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
             {
-            // InternalCubeDSL.g:11881:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
-            // InternalCubeDSL.g:11882:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalCubeDSL.g:12126:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalCubeDSL.g:12127:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
             }
-            // InternalCubeDSL.g:11883:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
-            // InternalCubeDSL.g:11883:3: rule__XListLiteral__ElementsAssignment_3_1_1
+            // InternalCubeDSL.g:12128:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalCubeDSL.g:12128:3: rule__XListLiteral__ElementsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XListLiteral__ElementsAssignment_3_1_1();
@@ -40191,14 +41013,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0"
-    // InternalCubeDSL.g:11892:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
+    // InternalCubeDSL.g:12137:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
     public final void rule__XClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11896:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
-            // InternalCubeDSL.g:11897:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
+            // InternalCubeDSL.g:12141:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
+            // InternalCubeDSL.g:12142:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
             {
             pushFollow(FOLLOW_89);
             rule__XClosure__Group__0__Impl();
@@ -40229,23 +41051,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__0__Impl"
-    // InternalCubeDSL.g:11904:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
+    // InternalCubeDSL.g:12149:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
     public final void rule__XClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11908:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
-            // InternalCubeDSL.g:11909:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalCubeDSL.g:12153:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
+            // InternalCubeDSL.g:12154:1: ( ( rule__XClosure__Group_0__0 ) )
             {
-            // InternalCubeDSL.g:11909:1: ( ( rule__XClosure__Group_0__0 ) )
-            // InternalCubeDSL.g:11910:2: ( rule__XClosure__Group_0__0 )
+            // InternalCubeDSL.g:12154:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalCubeDSL.g:12155:2: ( rule__XClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0()); 
             }
-            // InternalCubeDSL.g:11911:2: ( rule__XClosure__Group_0__0 )
-            // InternalCubeDSL.g:11911:3: rule__XClosure__Group_0__0
+            // InternalCubeDSL.g:12156:2: ( rule__XClosure__Group_0__0 )
+            // InternalCubeDSL.g:12156:3: rule__XClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0();
@@ -40280,14 +41102,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1"
-    // InternalCubeDSL.g:11919:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
+    // InternalCubeDSL.g:12164:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
     public final void rule__XClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11923:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
-            // InternalCubeDSL.g:11924:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
+            // InternalCubeDSL.g:12168:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
+            // InternalCubeDSL.g:12169:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
             {
             pushFollow(FOLLOW_89);
             rule__XClosure__Group__1__Impl();
@@ -40318,27 +41140,27 @@
 
 
     // $ANTLR start "rule__XClosure__Group__1__Impl"
-    // InternalCubeDSL.g:11931:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
+    // InternalCubeDSL.g:12176:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
     public final void rule__XClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11935:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
-            // InternalCubeDSL.g:11936:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalCubeDSL.g:12180:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
+            // InternalCubeDSL.g:12181:1: ( ( rule__XClosure__Group_1__0 )? )
             {
-            // InternalCubeDSL.g:11936:1: ( ( rule__XClosure__Group_1__0 )? )
-            // InternalCubeDSL.g:11937:2: ( rule__XClosure__Group_1__0 )?
+            // InternalCubeDSL.g:12181:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalCubeDSL.g:12182:2: ( rule__XClosure__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:11938:2: ( rule__XClosure__Group_1__0 )?
-            int alt107=2;
-            alt107 = dfa107.predict(input);
-            switch (alt107) {
+            // InternalCubeDSL.g:12183:2: ( rule__XClosure__Group_1__0 )?
+            int alt110=2;
+            alt110 = dfa110.predict(input);
+            switch (alt110) {
                 case 1 :
-                    // InternalCubeDSL.g:11938:3: rule__XClosure__Group_1__0
+                    // InternalCubeDSL.g:12183:3: rule__XClosure__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1__0();
@@ -40376,14 +41198,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2"
-    // InternalCubeDSL.g:11946:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
+    // InternalCubeDSL.g:12191:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
     public final void rule__XClosure__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11950:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
-            // InternalCubeDSL.g:11951:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
+            // InternalCubeDSL.g:12195:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
+            // InternalCubeDSL.g:12196:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
             {
             pushFollow(FOLLOW_90);
             rule__XClosure__Group__2__Impl();
@@ -40414,23 +41236,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group__2__Impl"
-    // InternalCubeDSL.g:11958:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
+    // InternalCubeDSL.g:12203:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
     public final void rule__XClosure__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11962:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
-            // InternalCubeDSL.g:11963:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalCubeDSL.g:12207:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
+            // InternalCubeDSL.g:12208:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
             {
-            // InternalCubeDSL.g:11963:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
-            // InternalCubeDSL.g:11964:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalCubeDSL.g:12208:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalCubeDSL.g:12209:2: ( rule__XClosure__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
             }
-            // InternalCubeDSL.g:11965:2: ( rule__XClosure__ExpressionAssignment_2 )
-            // InternalCubeDSL.g:11965:3: rule__XClosure__ExpressionAssignment_2
+            // InternalCubeDSL.g:12210:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalCubeDSL.g:12210:3: rule__XClosure__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExpressionAssignment_2();
@@ -40465,14 +41287,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3"
-    // InternalCubeDSL.g:11973:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
+    // InternalCubeDSL.g:12218:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
     public final void rule__XClosure__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11977:1: ( rule__XClosure__Group__3__Impl )
-            // InternalCubeDSL.g:11978:2: rule__XClosure__Group__3__Impl
+            // InternalCubeDSL.g:12222:1: ( rule__XClosure__Group__3__Impl )
+            // InternalCubeDSL.g:12223:2: rule__XClosure__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group__3__Impl();
@@ -40498,17 +41320,17 @@
 
 
     // $ANTLR start "rule__XClosure__Group__3__Impl"
-    // InternalCubeDSL.g:11984:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
+    // InternalCubeDSL.g:12229:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
     public final void rule__XClosure__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:11988:1: ( ( ']' ) )
-            // InternalCubeDSL.g:11989:1: ( ']' )
+            // InternalCubeDSL.g:12233:1: ( ( ']' ) )
+            // InternalCubeDSL.g:12234:1: ( ']' )
             {
-            // InternalCubeDSL.g:11989:1: ( ']' )
-            // InternalCubeDSL.g:11990:2: ']'
+            // InternalCubeDSL.g:12234:1: ( ']' )
+            // InternalCubeDSL.g:12235:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
@@ -40539,14 +41361,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0"
-    // InternalCubeDSL.g:12000:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
+    // InternalCubeDSL.g:12245:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
     public final void rule__XClosure__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12004:1: ( rule__XClosure__Group_0__0__Impl )
-            // InternalCubeDSL.g:12005:2: rule__XClosure__Group_0__0__Impl
+            // InternalCubeDSL.g:12249:1: ( rule__XClosure__Group_0__0__Impl )
+            // InternalCubeDSL.g:12250:2: rule__XClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0__0__Impl();
@@ -40572,23 +41394,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0__0__Impl"
-    // InternalCubeDSL.g:12011:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
+    // InternalCubeDSL.g:12256:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
     public final void rule__XClosure__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12015:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
-            // InternalCubeDSL.g:12016:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalCubeDSL.g:12260:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
+            // InternalCubeDSL.g:12261:1: ( ( rule__XClosure__Group_0_0__0 ) )
             {
-            // InternalCubeDSL.g:12016:1: ( ( rule__XClosure__Group_0_0__0 ) )
-            // InternalCubeDSL.g:12017:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalCubeDSL.g:12261:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalCubeDSL.g:12262:2: ( rule__XClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
             }
-            // InternalCubeDSL.g:12018:2: ( rule__XClosure__Group_0_0__0 )
-            // InternalCubeDSL.g:12018:3: rule__XClosure__Group_0_0__0
+            // InternalCubeDSL.g:12263:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalCubeDSL.g:12263:3: rule__XClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__0();
@@ -40623,14 +41445,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0"
-    // InternalCubeDSL.g:12027:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
+    // InternalCubeDSL.g:12272:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
     public final void rule__XClosure__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12031:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
-            // InternalCubeDSL.g:12032:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
+            // InternalCubeDSL.g:12276:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
+            // InternalCubeDSL.g:12277:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
             {
             pushFollow(FOLLOW_52);
             rule__XClosure__Group_0_0__0__Impl();
@@ -40661,23 +41483,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
-    // InternalCubeDSL.g:12039:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:12284:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12043:1: ( ( () ) )
-            // InternalCubeDSL.g:12044:1: ( () )
+            // InternalCubeDSL.g:12288:1: ( ( () ) )
+            // InternalCubeDSL.g:12289:1: ( () )
             {
-            // InternalCubeDSL.g:12044:1: ( () )
-            // InternalCubeDSL.g:12045:2: ()
+            // InternalCubeDSL.g:12289:1: ( () )
+            // InternalCubeDSL.g:12290:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalCubeDSL.g:12046:2: ()
-            // InternalCubeDSL.g:12046:3: 
+            // InternalCubeDSL.g:12291:2: ()
+            // InternalCubeDSL.g:12291:3: 
             {
             }
 
@@ -40702,14 +41524,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1"
-    // InternalCubeDSL.g:12054:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
+    // InternalCubeDSL.g:12299:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
     public final void rule__XClosure__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12058:1: ( rule__XClosure__Group_0_0__1__Impl )
-            // InternalCubeDSL.g:12059:2: rule__XClosure__Group_0_0__1__Impl
+            // InternalCubeDSL.g:12303:1: ( rule__XClosure__Group_0_0__1__Impl )
+            // InternalCubeDSL.g:12304:2: rule__XClosure__Group_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_0_0__1__Impl();
@@ -40735,17 +41557,17 @@
 
 
     // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
-    // InternalCubeDSL.g:12065:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
+    // InternalCubeDSL.g:12310:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
     public final void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12069:1: ( ( '[' ) )
-            // InternalCubeDSL.g:12070:1: ( '[' )
+            // InternalCubeDSL.g:12314:1: ( ( '[' ) )
+            // InternalCubeDSL.g:12315:1: ( '[' )
             {
-            // InternalCubeDSL.g:12070:1: ( '[' )
-            // InternalCubeDSL.g:12071:2: '['
+            // InternalCubeDSL.g:12315:1: ( '[' )
+            // InternalCubeDSL.g:12316:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
@@ -40776,14 +41598,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0"
-    // InternalCubeDSL.g:12081:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
+    // InternalCubeDSL.g:12326:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
     public final void rule__XClosure__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12085:1: ( rule__XClosure__Group_1__0__Impl )
-            // InternalCubeDSL.g:12086:2: rule__XClosure__Group_1__0__Impl
+            // InternalCubeDSL.g:12330:1: ( rule__XClosure__Group_1__0__Impl )
+            // InternalCubeDSL.g:12331:2: rule__XClosure__Group_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1__0__Impl();
@@ -40809,23 +41631,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1__0__Impl"
-    // InternalCubeDSL.g:12092:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
+    // InternalCubeDSL.g:12337:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
     public final void rule__XClosure__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12096:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
-            // InternalCubeDSL.g:12097:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalCubeDSL.g:12341:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
+            // InternalCubeDSL.g:12342:1: ( ( rule__XClosure__Group_1_0__0 ) )
             {
-            // InternalCubeDSL.g:12097:1: ( ( rule__XClosure__Group_1_0__0 ) )
-            // InternalCubeDSL.g:12098:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalCubeDSL.g:12342:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalCubeDSL.g:12343:2: ( rule__XClosure__Group_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
             }
-            // InternalCubeDSL.g:12099:2: ( rule__XClosure__Group_1_0__0 )
-            // InternalCubeDSL.g:12099:3: rule__XClosure__Group_1_0__0
+            // InternalCubeDSL.g:12344:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalCubeDSL.g:12344:3: rule__XClosure__Group_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__0();
@@ -40860,14 +41682,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0"
-    // InternalCubeDSL.g:12108:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
+    // InternalCubeDSL.g:12353:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
     public final void rule__XClosure__Group_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12112:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
-            // InternalCubeDSL.g:12113:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
+            // InternalCubeDSL.g:12357:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
+            // InternalCubeDSL.g:12358:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
             {
             pushFollow(FOLLOW_91);
             rule__XClosure__Group_1_0__0__Impl();
@@ -40898,31 +41720,31 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
-    // InternalCubeDSL.g:12120:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
+    // InternalCubeDSL.g:12365:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
     public final void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12124:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
-            // InternalCubeDSL.g:12125:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalCubeDSL.g:12369:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
+            // InternalCubeDSL.g:12370:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
             {
-            // InternalCubeDSL.g:12125:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
-            // InternalCubeDSL.g:12126:2: ( rule__XClosure__Group_1_0_0__0 )?
+            // InternalCubeDSL.g:12370:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalCubeDSL.g:12371:2: ( rule__XClosure__Group_1_0_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
             }
-            // InternalCubeDSL.g:12127:2: ( rule__XClosure__Group_1_0_0__0 )?
-            int alt108=2;
-            int LA108_0 = input.LA(1);
+            // InternalCubeDSL.g:12372:2: ( rule__XClosure__Group_1_0_0__0 )?
+            int alt111=2;
+            int LA111_0 = input.LA(1);
 
-            if ( (LA108_0==RULE_ID||LA108_0==31||LA108_0==88) ) {
-                alt108=1;
+            if ( (LA111_0==RULE_ID||LA111_0==31||LA111_0==88) ) {
+                alt111=1;
             }
-            switch (alt108) {
+            switch (alt111) {
                 case 1 :
-                    // InternalCubeDSL.g:12127:3: rule__XClosure__Group_1_0_0__0
+                    // InternalCubeDSL.g:12372:3: rule__XClosure__Group_1_0_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XClosure__Group_1_0_0__0();
@@ -40960,14 +41782,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1"
-    // InternalCubeDSL.g:12135:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
+    // InternalCubeDSL.g:12380:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
     public final void rule__XClosure__Group_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12139:1: ( rule__XClosure__Group_1_0__1__Impl )
-            // InternalCubeDSL.g:12140:2: rule__XClosure__Group_1_0__1__Impl
+            // InternalCubeDSL.g:12384:1: ( rule__XClosure__Group_1_0__1__Impl )
+            // InternalCubeDSL.g:12385:2: rule__XClosure__Group_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0__1__Impl();
@@ -40993,23 +41815,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
-    // InternalCubeDSL.g:12146:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
+    // InternalCubeDSL.g:12391:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
     public final void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12150:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
-            // InternalCubeDSL.g:12151:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalCubeDSL.g:12395:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
+            // InternalCubeDSL.g:12396:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
             {
-            // InternalCubeDSL.g:12151:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
-            // InternalCubeDSL.g:12152:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalCubeDSL.g:12396:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalCubeDSL.g:12397:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
             }
-            // InternalCubeDSL.g:12153:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
-            // InternalCubeDSL.g:12153:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+            // InternalCubeDSL.g:12398:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalCubeDSL.g:12398:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__ExplicitSyntaxAssignment_1_0_1();
@@ -41044,14 +41866,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0"
-    // InternalCubeDSL.g:12162:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
+    // InternalCubeDSL.g:12407:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
     public final void rule__XClosure__Group_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12166:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
-            // InternalCubeDSL.g:12167:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
+            // InternalCubeDSL.g:12411:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
+            // InternalCubeDSL.g:12412:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
             {
             pushFollow(FOLLOW_46);
             rule__XClosure__Group_1_0_0__0__Impl();
@@ -41082,23 +41904,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
-    // InternalCubeDSL.g:12174:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
+    // InternalCubeDSL.g:12419:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
     public final void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12178:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
-            // InternalCubeDSL.g:12179:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalCubeDSL.g:12423:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
+            // InternalCubeDSL.g:12424:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
             {
-            // InternalCubeDSL.g:12179:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
-            // InternalCubeDSL.g:12180:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalCubeDSL.g:12424:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalCubeDSL.g:12425:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:12181:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
-            // InternalCubeDSL.g:12181:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+            // InternalCubeDSL.g:12426:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalCubeDSL.g:12426:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();
@@ -41133,14 +41955,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1"
-    // InternalCubeDSL.g:12189:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:12434:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
     public final void rule__XClosure__Group_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12193:1: ( rule__XClosure__Group_1_0_0__1__Impl )
-            // InternalCubeDSL.g:12194:2: rule__XClosure__Group_1_0_0__1__Impl
+            // InternalCubeDSL.g:12438:1: ( rule__XClosure__Group_1_0_0__1__Impl )
+            // InternalCubeDSL.g:12439:2: rule__XClosure__Group_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0__1__Impl();
@@ -41166,35 +41988,35 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
-    // InternalCubeDSL.g:12200:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
+    // InternalCubeDSL.g:12445:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
     public final void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12204:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
-            // InternalCubeDSL.g:12205:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalCubeDSL.g:12449:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
+            // InternalCubeDSL.g:12450:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
             {
-            // InternalCubeDSL.g:12205:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
-            // InternalCubeDSL.g:12206:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            // InternalCubeDSL.g:12450:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalCubeDSL.g:12451:2: ( rule__XClosure__Group_1_0_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
             }
-            // InternalCubeDSL.g:12207:2: ( rule__XClosure__Group_1_0_0_1__0 )*
-            loop109:
+            // InternalCubeDSL.g:12452:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            loop112:
             do {
-                int alt109=2;
-                int LA109_0 = input.LA(1);
+                int alt112=2;
+                int LA112_0 = input.LA(1);
 
-                if ( (LA109_0==90) ) {
-                    alt109=1;
+                if ( (LA112_0==90) ) {
+                    alt112=1;
                 }
 
 
-                switch (alt109) {
+                switch (alt112) {
             	case 1 :
-            	    // InternalCubeDSL.g:12207:3: rule__XClosure__Group_1_0_0_1__0
+            	    // InternalCubeDSL.g:12452:3: rule__XClosure__Group_1_0_0_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XClosure__Group_1_0_0_1__0();
@@ -41206,7 +42028,7 @@
             	    break;
 
             	default :
-            	    break loop109;
+            	    break loop112;
                 }
             } while (true);
 
@@ -41235,14 +42057,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
-    // InternalCubeDSL.g:12216:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
+    // InternalCubeDSL.g:12461:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
     public final void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12220:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
-            // InternalCubeDSL.g:12221:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
+            // InternalCubeDSL.g:12465:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
+            // InternalCubeDSL.g:12466:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
             {
             pushFollow(FOLLOW_65);
             rule__XClosure__Group_1_0_0_1__0__Impl();
@@ -41273,17 +42095,17 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
-    // InternalCubeDSL.g:12228:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:12473:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
     public final void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12232:1: ( ( ',' ) )
-            // InternalCubeDSL.g:12233:1: ( ',' )
+            // InternalCubeDSL.g:12477:1: ( ( ',' ) )
+            // InternalCubeDSL.g:12478:1: ( ',' )
             {
-            // InternalCubeDSL.g:12233:1: ( ',' )
-            // InternalCubeDSL.g:12234:2: ','
+            // InternalCubeDSL.g:12478:1: ( ',' )
+            // InternalCubeDSL.g:12479:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
@@ -41314,14 +42136,14 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
-    // InternalCubeDSL.g:12243:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
+    // InternalCubeDSL.g:12488:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
     public final void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12247:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
-            // InternalCubeDSL.g:12248:2: rule__XClosure__Group_1_0_0_1__1__Impl
+            // InternalCubeDSL.g:12492:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
+            // InternalCubeDSL.g:12493:2: rule__XClosure__Group_1_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__Group_1_0_0_1__1__Impl();
@@ -41347,23 +42169,23 @@
 
 
     // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
-    // InternalCubeDSL.g:12254:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
+    // InternalCubeDSL.g:12499:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
     public final void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12258:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
-            // InternalCubeDSL.g:12259:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalCubeDSL.g:12503:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
+            // InternalCubeDSL.g:12504:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
             {
-            // InternalCubeDSL.g:12259:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
-            // InternalCubeDSL.g:12260:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalCubeDSL.g:12504:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalCubeDSL.g:12505:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
             }
-            // InternalCubeDSL.g:12261:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
-            // InternalCubeDSL.g:12261:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+            // InternalCubeDSL.g:12506:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalCubeDSL.g:12506:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();
@@ -41398,14 +42220,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0"
-    // InternalCubeDSL.g:12270:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
+    // InternalCubeDSL.g:12515:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
     public final void rule__XExpressionInClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12274:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
-            // InternalCubeDSL.g:12275:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
+            // InternalCubeDSL.g:12519:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
+            // InternalCubeDSL.g:12520:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
             {
             pushFollow(FOLLOW_89);
             rule__XExpressionInClosure__Group__0__Impl();
@@ -41436,23 +42258,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
-    // InternalCubeDSL.g:12282:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:12527:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
     public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12286:1: ( ( () ) )
-            // InternalCubeDSL.g:12287:1: ( () )
+            // InternalCubeDSL.g:12531:1: ( ( () ) )
+            // InternalCubeDSL.g:12532:1: ( () )
             {
-            // InternalCubeDSL.g:12287:1: ( () )
-            // InternalCubeDSL.g:12288:2: ()
+            // InternalCubeDSL.g:12532:1: ( () )
+            // InternalCubeDSL.g:12533:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:12289:2: ()
-            // InternalCubeDSL.g:12289:3: 
+            // InternalCubeDSL.g:12534:2: ()
+            // InternalCubeDSL.g:12534:3: 
             {
             }
 
@@ -41477,14 +42299,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1"
-    // InternalCubeDSL.g:12297:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
+    // InternalCubeDSL.g:12542:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
     public final void rule__XExpressionInClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12301:1: ( rule__XExpressionInClosure__Group__1__Impl )
-            // InternalCubeDSL.g:12302:2: rule__XExpressionInClosure__Group__1__Impl
+            // InternalCubeDSL.g:12546:1: ( rule__XExpressionInClosure__Group__1__Impl )
+            // InternalCubeDSL.g:12547:2: rule__XExpressionInClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group__1__Impl();
@@ -41510,35 +42332,35 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
-    // InternalCubeDSL.g:12308:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:12553:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
     public final void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12312:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
-            // InternalCubeDSL.g:12313:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalCubeDSL.g:12557:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
+            // InternalCubeDSL.g:12558:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:12313:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
-            // InternalCubeDSL.g:12314:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            // InternalCubeDSL.g:12558:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalCubeDSL.g:12559:2: ( rule__XExpressionInClosure__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:12315:2: ( rule__XExpressionInClosure__Group_1__0 )*
-            loop110:
+            // InternalCubeDSL.g:12560:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            loop113:
             do {
-                int alt110=2;
-                int LA110_0 = input.LA(1);
+                int alt113=2;
+                int LA113_0 = input.LA(1);
 
-                if ( ((LA110_0>=RULE_ID && LA110_0<=RULE_DECIMAL)||LA110_0==27||(LA110_0>=34 && LA110_0<=35)||LA110_0==40||(LA110_0>=44 && LA110_0<=50)||LA110_0==74||LA110_0==88||(LA110_0>=92 && LA110_0<=93)||LA110_0==96||LA110_0==98||(LA110_0>=102 && LA110_0<=110)||LA110_0==112||(LA110_0>=130 && LA110_0<=131)) ) {
-                    alt110=1;
+                if ( ((LA113_0>=RULE_ID && LA113_0<=RULE_DECIMAL)||LA113_0==27||(LA113_0>=34 && LA113_0<=35)||LA113_0==40||(LA113_0>=44 && LA113_0<=50)||LA113_0==74||LA113_0==88||(LA113_0>=92 && LA113_0<=93)||LA113_0==96||LA113_0==98||(LA113_0>=102 && LA113_0<=110)||LA113_0==112||(LA113_0>=133 && LA113_0<=134)) ) {
+                    alt113=1;
                 }
 
 
-                switch (alt110) {
+                switch (alt113) {
             	case 1 :
-            	    // InternalCubeDSL.g:12315:3: rule__XExpressionInClosure__Group_1__0
+            	    // InternalCubeDSL.g:12560:3: rule__XExpressionInClosure__Group_1__0
             	    {
             	    pushFollow(FOLLOW_92);
             	    rule__XExpressionInClosure__Group_1__0();
@@ -41550,7 +42372,7 @@
             	    break;
 
             	default :
-            	    break loop110;
+            	    break loop113;
                 }
             } while (true);
 
@@ -41579,14 +42401,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
-    // InternalCubeDSL.g:12324:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
+    // InternalCubeDSL.g:12569:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
     public final void rule__XExpressionInClosure__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12328:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
-            // InternalCubeDSL.g:12329:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
+            // InternalCubeDSL.g:12573:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
+            // InternalCubeDSL.g:12574:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
             {
             pushFollow(FOLLOW_40);
             rule__XExpressionInClosure__Group_1__0__Impl();
@@ -41617,23 +42439,23 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
-    // InternalCubeDSL.g:12336:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
+    // InternalCubeDSL.g:12581:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
     public final void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12340:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
-            // InternalCubeDSL.g:12341:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalCubeDSL.g:12585:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
+            // InternalCubeDSL.g:12586:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
             {
-            // InternalCubeDSL.g:12341:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
-            // InternalCubeDSL.g:12342:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalCubeDSL.g:12586:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalCubeDSL.g:12587:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
             }
-            // InternalCubeDSL.g:12343:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
-            // InternalCubeDSL.g:12343:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
+            // InternalCubeDSL.g:12588:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalCubeDSL.g:12588:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__ExpressionsAssignment_1_0();
@@ -41668,14 +42490,14 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
-    // InternalCubeDSL.g:12351:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
+    // InternalCubeDSL.g:12596:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
     public final void rule__XExpressionInClosure__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12355:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
-            // InternalCubeDSL.g:12356:2: rule__XExpressionInClosure__Group_1__1__Impl
+            // InternalCubeDSL.g:12600:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
+            // InternalCubeDSL.g:12601:2: rule__XExpressionInClosure__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XExpressionInClosure__Group_1__1__Impl();
@@ -41701,31 +42523,31 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
-    // InternalCubeDSL.g:12362:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
+    // InternalCubeDSL.g:12607:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
     public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12366:1: ( ( ( ';' )? ) )
-            // InternalCubeDSL.g:12367:1: ( ( ';' )? )
+            // InternalCubeDSL.g:12611:1: ( ( ( ';' )? ) )
+            // InternalCubeDSL.g:12612:1: ( ( ';' )? )
             {
-            // InternalCubeDSL.g:12367:1: ( ( ';' )? )
-            // InternalCubeDSL.g:12368:2: ( ';' )?
+            // InternalCubeDSL.g:12612:1: ( ( ';' )? )
+            // InternalCubeDSL.g:12613:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
             }
-            // InternalCubeDSL.g:12369:2: ( ';' )?
-            int alt111=2;
-            int LA111_0 = input.LA(1);
+            // InternalCubeDSL.g:12614:2: ( ';' )?
+            int alt114=2;
+            int LA114_0 = input.LA(1);
 
-            if ( (LA111_0==86) ) {
-                alt111=1;
+            if ( (LA114_0==86) ) {
+                alt114=1;
             }
-            switch (alt111) {
+            switch (alt114) {
                 case 1 :
-                    // InternalCubeDSL.g:12369:3: ';'
+                    // InternalCubeDSL.g:12614:3: ';'
                     {
                     match(input,86,FOLLOW_2); if (state.failed) return ;
 
@@ -41759,14 +42581,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0"
-    // InternalCubeDSL.g:12378:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
+    // InternalCubeDSL.g:12623:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
     public final void rule__XShortClosure__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12382:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
-            // InternalCubeDSL.g:12383:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
+            // InternalCubeDSL.g:12627:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
+            // InternalCubeDSL.g:12628:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
             {
             pushFollow(FOLLOW_48);
             rule__XShortClosure__Group__0__Impl();
@@ -41797,23 +42619,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__0__Impl"
-    // InternalCubeDSL.g:12390:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
+    // InternalCubeDSL.g:12635:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
     public final void rule__XShortClosure__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12394:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
-            // InternalCubeDSL.g:12395:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalCubeDSL.g:12639:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
+            // InternalCubeDSL.g:12640:1: ( ( rule__XShortClosure__Group_0__0 ) )
             {
-            // InternalCubeDSL.g:12395:1: ( ( rule__XShortClosure__Group_0__0 ) )
-            // InternalCubeDSL.g:12396:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalCubeDSL.g:12640:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalCubeDSL.g:12641:2: ( rule__XShortClosure__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
             }
-            // InternalCubeDSL.g:12397:2: ( rule__XShortClosure__Group_0__0 )
-            // InternalCubeDSL.g:12397:3: rule__XShortClosure__Group_0__0
+            // InternalCubeDSL.g:12642:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalCubeDSL.g:12642:3: rule__XShortClosure__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0();
@@ -41848,14 +42670,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1"
-    // InternalCubeDSL.g:12405:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
+    // InternalCubeDSL.g:12650:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
     public final void rule__XShortClosure__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12409:1: ( rule__XShortClosure__Group__1__Impl )
-            // InternalCubeDSL.g:12410:2: rule__XShortClosure__Group__1__Impl
+            // InternalCubeDSL.g:12654:1: ( rule__XShortClosure__Group__1__Impl )
+            // InternalCubeDSL.g:12655:2: rule__XShortClosure__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group__1__Impl();
@@ -41881,23 +42703,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group__1__Impl"
-    // InternalCubeDSL.g:12416:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
+    // InternalCubeDSL.g:12661:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
     public final void rule__XShortClosure__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12420:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
-            // InternalCubeDSL.g:12421:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalCubeDSL.g:12665:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
+            // InternalCubeDSL.g:12666:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
             {
-            // InternalCubeDSL.g:12421:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
-            // InternalCubeDSL.g:12422:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalCubeDSL.g:12666:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalCubeDSL.g:12667:2: ( rule__XShortClosure__ExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
             }
-            // InternalCubeDSL.g:12423:2: ( rule__XShortClosure__ExpressionAssignment_1 )
-            // InternalCubeDSL.g:12423:3: rule__XShortClosure__ExpressionAssignment_1
+            // InternalCubeDSL.g:12668:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalCubeDSL.g:12668:3: rule__XShortClosure__ExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExpressionAssignment_1();
@@ -41932,14 +42754,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0"
-    // InternalCubeDSL.g:12432:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
+    // InternalCubeDSL.g:12677:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
     public final void rule__XShortClosure__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12436:1: ( rule__XShortClosure__Group_0__0__Impl )
-            // InternalCubeDSL.g:12437:2: rule__XShortClosure__Group_0__0__Impl
+            // InternalCubeDSL.g:12681:1: ( rule__XShortClosure__Group_0__0__Impl )
+            // InternalCubeDSL.g:12682:2: rule__XShortClosure__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0__0__Impl();
@@ -41965,23 +42787,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
-    // InternalCubeDSL.g:12443:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
+    // InternalCubeDSL.g:12688:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
     public final void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12447:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
-            // InternalCubeDSL.g:12448:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalCubeDSL.g:12692:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
+            // InternalCubeDSL.g:12693:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
             {
-            // InternalCubeDSL.g:12448:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
-            // InternalCubeDSL.g:12449:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalCubeDSL.g:12693:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalCubeDSL.g:12694:2: ( rule__XShortClosure__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
             }
-            // InternalCubeDSL.g:12450:2: ( rule__XShortClosure__Group_0_0__0 )
-            // InternalCubeDSL.g:12450:3: rule__XShortClosure__Group_0_0__0
+            // InternalCubeDSL.g:12695:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalCubeDSL.g:12695:3: rule__XShortClosure__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__0();
@@ -42016,14 +42838,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0"
-    // InternalCubeDSL.g:12459:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
+    // InternalCubeDSL.g:12704:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
     public final void rule__XShortClosure__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12463:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
-            // InternalCubeDSL.g:12464:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
+            // InternalCubeDSL.g:12708:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
+            // InternalCubeDSL.g:12709:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
             {
             pushFollow(FOLLOW_91);
             rule__XShortClosure__Group_0_0__0__Impl();
@@ -42054,23 +42876,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
-    // InternalCubeDSL.g:12471:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:12716:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12475:1: ( ( () ) )
-            // InternalCubeDSL.g:12476:1: ( () )
+            // InternalCubeDSL.g:12720:1: ( ( () ) )
+            // InternalCubeDSL.g:12721:1: ( () )
             {
-            // InternalCubeDSL.g:12476:1: ( () )
-            // InternalCubeDSL.g:12477:2: ()
+            // InternalCubeDSL.g:12721:1: ( () )
+            // InternalCubeDSL.g:12722:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
             }
-            // InternalCubeDSL.g:12478:2: ()
-            // InternalCubeDSL.g:12478:3: 
+            // InternalCubeDSL.g:12723:2: ()
+            // InternalCubeDSL.g:12723:3: 
             {
             }
 
@@ -42095,14 +42917,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1"
-    // InternalCubeDSL.g:12486:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
+    // InternalCubeDSL.g:12731:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
     public final void rule__XShortClosure__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12490:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
-            // InternalCubeDSL.g:12491:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
+            // InternalCubeDSL.g:12735:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
+            // InternalCubeDSL.g:12736:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
             {
             pushFollow(FOLLOW_91);
             rule__XShortClosure__Group_0_0__1__Impl();
@@ -42133,31 +42955,31 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
-    // InternalCubeDSL.g:12498:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
+    // InternalCubeDSL.g:12743:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
     public final void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12502:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
-            // InternalCubeDSL.g:12503:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalCubeDSL.g:12747:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
+            // InternalCubeDSL.g:12748:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
             {
-            // InternalCubeDSL.g:12503:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
-            // InternalCubeDSL.g:12504:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            // InternalCubeDSL.g:12748:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalCubeDSL.g:12749:2: ( rule__XShortClosure__Group_0_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
             }
-            // InternalCubeDSL.g:12505:2: ( rule__XShortClosure__Group_0_0_1__0 )?
-            int alt112=2;
-            int LA112_0 = input.LA(1);
+            // InternalCubeDSL.g:12750:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            int alt115=2;
+            int LA115_0 = input.LA(1);
 
-            if ( (LA112_0==RULE_ID||LA112_0==31||LA112_0==88) ) {
-                alt112=1;
+            if ( (LA115_0==RULE_ID||LA115_0==31||LA115_0==88) ) {
+                alt115=1;
             }
-            switch (alt112) {
+            switch (alt115) {
                 case 1 :
-                    // InternalCubeDSL.g:12505:3: rule__XShortClosure__Group_0_0_1__0
+                    // InternalCubeDSL.g:12750:3: rule__XShortClosure__Group_0_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XShortClosure__Group_0_0_1__0();
@@ -42195,14 +43017,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2"
-    // InternalCubeDSL.g:12513:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
+    // InternalCubeDSL.g:12758:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
     public final void rule__XShortClosure__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12517:1: ( rule__XShortClosure__Group_0_0__2__Impl )
-            // InternalCubeDSL.g:12518:2: rule__XShortClosure__Group_0_0__2__Impl
+            // InternalCubeDSL.g:12762:1: ( rule__XShortClosure__Group_0_0__2__Impl )
+            // InternalCubeDSL.g:12763:2: rule__XShortClosure__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0__2__Impl();
@@ -42228,23 +43050,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
-    // InternalCubeDSL.g:12524:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
+    // InternalCubeDSL.g:12769:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
     public final void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12528:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
-            // InternalCubeDSL.g:12529:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalCubeDSL.g:12773:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
+            // InternalCubeDSL.g:12774:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
             {
-            // InternalCubeDSL.g:12529:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
-            // InternalCubeDSL.g:12530:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalCubeDSL.g:12774:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalCubeDSL.g:12775:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
             }
-            // InternalCubeDSL.g:12531:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
-            // InternalCubeDSL.g:12531:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+            // InternalCubeDSL.g:12776:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalCubeDSL.g:12776:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();
@@ -42279,14 +43101,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
-    // InternalCubeDSL.g:12540:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
+    // InternalCubeDSL.g:12785:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
     public final void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12544:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
-            // InternalCubeDSL.g:12545:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
+            // InternalCubeDSL.g:12789:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
+            // InternalCubeDSL.g:12790:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XShortClosure__Group_0_0_1__0__Impl();
@@ -42317,23 +43139,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
-    // InternalCubeDSL.g:12552:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
+    // InternalCubeDSL.g:12797:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
     public final void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12556:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
-            // InternalCubeDSL.g:12557:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalCubeDSL.g:12801:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
+            // InternalCubeDSL.g:12802:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
             {
-            // InternalCubeDSL.g:12557:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
-            // InternalCubeDSL.g:12558:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalCubeDSL.g:12802:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalCubeDSL.g:12803:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:12559:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
-            // InternalCubeDSL.g:12559:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+            // InternalCubeDSL.g:12804:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalCubeDSL.g:12804:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();
@@ -42368,14 +43190,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
-    // InternalCubeDSL.g:12567:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
+    // InternalCubeDSL.g:12812:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
     public final void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12571:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
-            // InternalCubeDSL.g:12572:2: rule__XShortClosure__Group_0_0_1__1__Impl
+            // InternalCubeDSL.g:12816:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
+            // InternalCubeDSL.g:12817:2: rule__XShortClosure__Group_0_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1__1__Impl();
@@ -42401,35 +43223,35 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
-    // InternalCubeDSL.g:12578:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
+    // InternalCubeDSL.g:12823:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
     public final void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12582:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
-            // InternalCubeDSL.g:12583:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalCubeDSL.g:12827:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
+            // InternalCubeDSL.g:12828:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
             {
-            // InternalCubeDSL.g:12583:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
-            // InternalCubeDSL.g:12584:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            // InternalCubeDSL.g:12828:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalCubeDSL.g:12829:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
             }
-            // InternalCubeDSL.g:12585:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
-            loop113:
+            // InternalCubeDSL.g:12830:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            loop116:
             do {
-                int alt113=2;
-                int LA113_0 = input.LA(1);
+                int alt116=2;
+                int LA116_0 = input.LA(1);
 
-                if ( (LA113_0==90) ) {
-                    alt113=1;
+                if ( (LA116_0==90) ) {
+                    alt116=1;
                 }
 
 
-                switch (alt113) {
+                switch (alt116) {
             	case 1 :
-            	    // InternalCubeDSL.g:12585:3: rule__XShortClosure__Group_0_0_1_1__0
+            	    // InternalCubeDSL.g:12830:3: rule__XShortClosure__Group_0_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XShortClosure__Group_0_0_1_1__0();
@@ -42441,7 +43263,7 @@
             	    break;
 
             	default :
-            	    break loop113;
+            	    break loop116;
                 }
             } while (true);
 
@@ -42470,14 +43292,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
-    // InternalCubeDSL.g:12594:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
+    // InternalCubeDSL.g:12839:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
     public final void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12598:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
-            // InternalCubeDSL.g:12599:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
+            // InternalCubeDSL.g:12843:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
+            // InternalCubeDSL.g:12844:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
             {
             pushFollow(FOLLOW_65);
             rule__XShortClosure__Group_0_0_1_1__0__Impl();
@@ -42508,17 +43330,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
-    // InternalCubeDSL.g:12606:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:12851:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12610:1: ( ( ',' ) )
-            // InternalCubeDSL.g:12611:1: ( ',' )
+            // InternalCubeDSL.g:12855:1: ( ( ',' ) )
+            // InternalCubeDSL.g:12856:1: ( ',' )
             {
-            // InternalCubeDSL.g:12611:1: ( ',' )
-            // InternalCubeDSL.g:12612:2: ','
+            // InternalCubeDSL.g:12856:1: ( ',' )
+            // InternalCubeDSL.g:12857:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
@@ -42549,14 +43371,14 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
-    // InternalCubeDSL.g:12621:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
+    // InternalCubeDSL.g:12866:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
     public final void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12625:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
-            // InternalCubeDSL.g:12626:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
+            // InternalCubeDSL.g:12870:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
+            // InternalCubeDSL.g:12871:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__Group_0_0_1_1__1__Impl();
@@ -42582,23 +43404,23 @@
 
 
     // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
-    // InternalCubeDSL.g:12632:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
+    // InternalCubeDSL.g:12877:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
     public final void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12636:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
-            // InternalCubeDSL.g:12637:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalCubeDSL.g:12881:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
+            // InternalCubeDSL.g:12882:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
             {
-            // InternalCubeDSL.g:12637:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
-            // InternalCubeDSL.g:12638:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalCubeDSL.g:12882:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalCubeDSL.g:12883:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
             }
-            // InternalCubeDSL.g:12639:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
-            // InternalCubeDSL.g:12639:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+            // InternalCubeDSL.g:12884:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalCubeDSL.g:12884:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();
@@ -42633,14 +43455,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0"
-    // InternalCubeDSL.g:12648:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
+    // InternalCubeDSL.g:12893:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
     public final void rule__XParenthesizedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12652:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
-            // InternalCubeDSL.g:12653:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
+            // InternalCubeDSL.g:12897:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
+            // InternalCubeDSL.g:12898:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
             {
             pushFollow(FOLLOW_48);
             rule__XParenthesizedExpression__Group__0__Impl();
@@ -42671,17 +43493,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
-    // InternalCubeDSL.g:12660:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:12905:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
     public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12664:1: ( ( '(' ) )
-            // InternalCubeDSL.g:12665:1: ( '(' )
+            // InternalCubeDSL.g:12909:1: ( ( '(' ) )
+            // InternalCubeDSL.g:12910:1: ( '(' )
             {
-            // InternalCubeDSL.g:12665:1: ( '(' )
-            // InternalCubeDSL.g:12666:2: '('
+            // InternalCubeDSL.g:12910:1: ( '(' )
+            // InternalCubeDSL.g:12911:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
@@ -42712,14 +43534,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1"
-    // InternalCubeDSL.g:12675:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
+    // InternalCubeDSL.g:12920:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
     public final void rule__XParenthesizedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12679:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
-            // InternalCubeDSL.g:12680:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
+            // InternalCubeDSL.g:12924:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
+            // InternalCubeDSL.g:12925:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
             {
             pushFollow(FOLLOW_93);
             rule__XParenthesizedExpression__Group__1__Impl();
@@ -42750,17 +43572,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
-    // InternalCubeDSL.g:12687:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:12932:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
     public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12691:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:12692:1: ( ruleXExpression )
+            // InternalCubeDSL.g:12936:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:12937:1: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:12692:1: ( ruleXExpression )
-            // InternalCubeDSL.g:12693:2: ruleXExpression
+            // InternalCubeDSL.g:12937:1: ( ruleXExpression )
+            // InternalCubeDSL.g:12938:2: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
@@ -42795,14 +43617,14 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2"
-    // InternalCubeDSL.g:12702:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
+    // InternalCubeDSL.g:12947:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
     public final void rule__XParenthesizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12706:1: ( rule__XParenthesizedExpression__Group__2__Impl )
-            // InternalCubeDSL.g:12707:2: rule__XParenthesizedExpression__Group__2__Impl
+            // InternalCubeDSL.g:12951:1: ( rule__XParenthesizedExpression__Group__2__Impl )
+            // InternalCubeDSL.g:12952:2: rule__XParenthesizedExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XParenthesizedExpression__Group__2__Impl();
@@ -42828,17 +43650,17 @@
 
 
     // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
-    // InternalCubeDSL.g:12713:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:12958:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12717:1: ( ( ')' ) )
-            // InternalCubeDSL.g:12718:1: ( ')' )
+            // InternalCubeDSL.g:12962:1: ( ( ')' ) )
+            // InternalCubeDSL.g:12963:1: ( ')' )
             {
-            // InternalCubeDSL.g:12718:1: ( ')' )
-            // InternalCubeDSL.g:12719:2: ')'
+            // InternalCubeDSL.g:12963:1: ( ')' )
+            // InternalCubeDSL.g:12964:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
@@ -42869,14 +43691,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0"
-    // InternalCubeDSL.g:12729:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
+    // InternalCubeDSL.g:12974:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
     public final void rule__XIfExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12733:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
-            // InternalCubeDSL.g:12734:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
+            // InternalCubeDSL.g:12978:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
+            // InternalCubeDSL.g:12979:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
             {
             pushFollow(FOLLOW_94);
             rule__XIfExpression__Group__0__Impl();
@@ -42907,23 +43729,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__0__Impl"
-    // InternalCubeDSL.g:12741:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:12986:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
     public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12745:1: ( ( () ) )
-            // InternalCubeDSL.g:12746:1: ( () )
+            // InternalCubeDSL.g:12990:1: ( ( () ) )
+            // InternalCubeDSL.g:12991:1: ( () )
             {
-            // InternalCubeDSL.g:12746:1: ( () )
-            // InternalCubeDSL.g:12747:2: ()
+            // InternalCubeDSL.g:12991:1: ( () )
+            // InternalCubeDSL.g:12992:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:12748:2: ()
-            // InternalCubeDSL.g:12748:3: 
+            // InternalCubeDSL.g:12993:2: ()
+            // InternalCubeDSL.g:12993:3: 
             {
             }
 
@@ -42948,14 +43770,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1"
-    // InternalCubeDSL.g:12756:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
+    // InternalCubeDSL.g:13001:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
     public final void rule__XIfExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12760:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
-            // InternalCubeDSL.g:12761:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
+            // InternalCubeDSL.g:13005:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
+            // InternalCubeDSL.g:13006:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
             {
             pushFollow(FOLLOW_44);
             rule__XIfExpression__Group__1__Impl();
@@ -42986,17 +43808,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__1__Impl"
-    // InternalCubeDSL.g:12768:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
+    // InternalCubeDSL.g:13013:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
     public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12772:1: ( ( 'if' ) )
-            // InternalCubeDSL.g:12773:1: ( 'if' )
+            // InternalCubeDSL.g:13017:1: ( ( 'if' ) )
+            // InternalCubeDSL.g:13018:1: ( 'if' )
             {
-            // InternalCubeDSL.g:12773:1: ( 'if' )
-            // InternalCubeDSL.g:12774:2: 'if'
+            // InternalCubeDSL.g:13018:1: ( 'if' )
+            // InternalCubeDSL.g:13019:2: 'if'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
@@ -43027,14 +43849,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2"
-    // InternalCubeDSL.g:12783:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
+    // InternalCubeDSL.g:13028:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
     public final void rule__XIfExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12787:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
-            // InternalCubeDSL.g:12788:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
+            // InternalCubeDSL.g:13032:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
+            // InternalCubeDSL.g:13033:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
             {
             pushFollow(FOLLOW_48);
             rule__XIfExpression__Group__2__Impl();
@@ -43065,17 +43887,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__2__Impl"
-    // InternalCubeDSL.g:12795:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:13040:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12799:1: ( ( '(' ) )
-            // InternalCubeDSL.g:12800:1: ( '(' )
+            // InternalCubeDSL.g:13044:1: ( ( '(' ) )
+            // InternalCubeDSL.g:13045:1: ( '(' )
             {
-            // InternalCubeDSL.g:12800:1: ( '(' )
-            // InternalCubeDSL.g:12801:2: '('
+            // InternalCubeDSL.g:13045:1: ( '(' )
+            // InternalCubeDSL.g:13046:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
@@ -43106,14 +43928,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3"
-    // InternalCubeDSL.g:12810:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
+    // InternalCubeDSL.g:13055:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
     public final void rule__XIfExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12814:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
-            // InternalCubeDSL.g:12815:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
+            // InternalCubeDSL.g:13059:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
+            // InternalCubeDSL.g:13060:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
             {
             pushFollow(FOLLOW_93);
             rule__XIfExpression__Group__3__Impl();
@@ -43144,23 +43966,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__3__Impl"
-    // InternalCubeDSL.g:12822:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
+    // InternalCubeDSL.g:13067:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
     public final void rule__XIfExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12826:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
-            // InternalCubeDSL.g:12827:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalCubeDSL.g:13071:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
+            // InternalCubeDSL.g:13072:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
             {
-            // InternalCubeDSL.g:12827:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
-            // InternalCubeDSL.g:12828:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalCubeDSL.g:13072:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalCubeDSL.g:13073:2: ( rule__XIfExpression__IfAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
             }
-            // InternalCubeDSL.g:12829:2: ( rule__XIfExpression__IfAssignment_3 )
-            // InternalCubeDSL.g:12829:3: rule__XIfExpression__IfAssignment_3
+            // InternalCubeDSL.g:13074:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalCubeDSL.g:13074:3: rule__XIfExpression__IfAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__IfAssignment_3();
@@ -43195,14 +44017,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4"
-    // InternalCubeDSL.g:12837:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
+    // InternalCubeDSL.g:13082:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
     public final void rule__XIfExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12841:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
-            // InternalCubeDSL.g:12842:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
+            // InternalCubeDSL.g:13086:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
+            // InternalCubeDSL.g:13087:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
             {
             pushFollow(FOLLOW_48);
             rule__XIfExpression__Group__4__Impl();
@@ -43233,17 +44055,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__4__Impl"
-    // InternalCubeDSL.g:12849:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:13094:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12853:1: ( ( ')' ) )
-            // InternalCubeDSL.g:12854:1: ( ')' )
+            // InternalCubeDSL.g:13098:1: ( ( ')' ) )
+            // InternalCubeDSL.g:13099:1: ( ')' )
             {
-            // InternalCubeDSL.g:12854:1: ( ')' )
-            // InternalCubeDSL.g:12855:2: ')'
+            // InternalCubeDSL.g:13099:1: ( ')' )
+            // InternalCubeDSL.g:13100:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
@@ -43274,14 +44096,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5"
-    // InternalCubeDSL.g:12864:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
+    // InternalCubeDSL.g:13109:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
     public final void rule__XIfExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12868:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
-            // InternalCubeDSL.g:12869:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
+            // InternalCubeDSL.g:13113:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
+            // InternalCubeDSL.g:13114:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
             {
             pushFollow(FOLLOW_95);
             rule__XIfExpression__Group__5__Impl();
@@ -43312,23 +44134,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__5__Impl"
-    // InternalCubeDSL.g:12876:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
+    // InternalCubeDSL.g:13121:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
     public final void rule__XIfExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12880:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
-            // InternalCubeDSL.g:12881:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalCubeDSL.g:13125:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
+            // InternalCubeDSL.g:13126:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
             {
-            // InternalCubeDSL.g:12881:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
-            // InternalCubeDSL.g:12882:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalCubeDSL.g:13126:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalCubeDSL.g:13127:2: ( rule__XIfExpression__ThenAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
             }
-            // InternalCubeDSL.g:12883:2: ( rule__XIfExpression__ThenAssignment_5 )
-            // InternalCubeDSL.g:12883:3: rule__XIfExpression__ThenAssignment_5
+            // InternalCubeDSL.g:13128:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalCubeDSL.g:13128:3: rule__XIfExpression__ThenAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ThenAssignment_5();
@@ -43363,14 +44185,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6"
-    // InternalCubeDSL.g:12891:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
+    // InternalCubeDSL.g:13136:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
     public final void rule__XIfExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12895:1: ( rule__XIfExpression__Group__6__Impl )
-            // InternalCubeDSL.g:12896:2: rule__XIfExpression__Group__6__Impl
+            // InternalCubeDSL.g:13140:1: ( rule__XIfExpression__Group__6__Impl )
+            // InternalCubeDSL.g:13141:2: rule__XIfExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group__6__Impl();
@@ -43396,35 +44218,35 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group__6__Impl"
-    // InternalCubeDSL.g:12902:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
+    // InternalCubeDSL.g:13147:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
     public final void rule__XIfExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12906:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
-            // InternalCubeDSL.g:12907:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalCubeDSL.g:13151:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
+            // InternalCubeDSL.g:13152:1: ( ( rule__XIfExpression__Group_6__0 )? )
             {
-            // InternalCubeDSL.g:12907:1: ( ( rule__XIfExpression__Group_6__0 )? )
-            // InternalCubeDSL.g:12908:2: ( rule__XIfExpression__Group_6__0 )?
+            // InternalCubeDSL.g:13152:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalCubeDSL.g:13153:2: ( rule__XIfExpression__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
             }
-            // InternalCubeDSL.g:12909:2: ( rule__XIfExpression__Group_6__0 )?
-            int alt114=2;
-            int LA114_0 = input.LA(1);
+            // InternalCubeDSL.g:13154:2: ( rule__XIfExpression__Group_6__0 )?
+            int alt117=2;
+            int LA117_0 = input.LA(1);
 
-            if ( (LA114_0==97) ) {
-                int LA114_1 = input.LA(2);
+            if ( (LA117_0==97) ) {
+                int LA117_1 = input.LA(2);
 
-                if ( (synpred175_InternalCubeDSL()) ) {
-                    alt114=1;
+                if ( (synpred178_InternalCubeDSL()) ) {
+                    alt117=1;
                 }
             }
-            switch (alt114) {
+            switch (alt117) {
                 case 1 :
-                    // InternalCubeDSL.g:12909:3: rule__XIfExpression__Group_6__0
+                    // InternalCubeDSL.g:13154:3: rule__XIfExpression__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XIfExpression__Group_6__0();
@@ -43462,14 +44284,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0"
-    // InternalCubeDSL.g:12918:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
+    // InternalCubeDSL.g:13163:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
     public final void rule__XIfExpression__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12922:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
-            // InternalCubeDSL.g:12923:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
+            // InternalCubeDSL.g:13167:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
+            // InternalCubeDSL.g:13168:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
             {
             pushFollow(FOLLOW_48);
             rule__XIfExpression__Group_6__0__Impl();
@@ -43500,23 +44322,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
-    // InternalCubeDSL.g:12930:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
+    // InternalCubeDSL.g:13175:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
     public final void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12934:1: ( ( ( 'else' ) ) )
-            // InternalCubeDSL.g:12935:1: ( ( 'else' ) )
+            // InternalCubeDSL.g:13179:1: ( ( ( 'else' ) ) )
+            // InternalCubeDSL.g:13180:1: ( ( 'else' ) )
             {
-            // InternalCubeDSL.g:12935:1: ( ( 'else' ) )
-            // InternalCubeDSL.g:12936:2: ( 'else' )
+            // InternalCubeDSL.g:13180:1: ( ( 'else' ) )
+            // InternalCubeDSL.g:13181:2: ( 'else' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
             }
-            // InternalCubeDSL.g:12937:2: ( 'else' )
-            // InternalCubeDSL.g:12937:3: 'else'
+            // InternalCubeDSL.g:13182:2: ( 'else' )
+            // InternalCubeDSL.g:13182:3: 'else'
             {
             match(input,97,FOLLOW_2); if (state.failed) return ;
 
@@ -43547,14 +44369,14 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1"
-    // InternalCubeDSL.g:12945:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
+    // InternalCubeDSL.g:13190:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
     public final void rule__XIfExpression__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12949:1: ( rule__XIfExpression__Group_6__1__Impl )
-            // InternalCubeDSL.g:12950:2: rule__XIfExpression__Group_6__1__Impl
+            // InternalCubeDSL.g:13194:1: ( rule__XIfExpression__Group_6__1__Impl )
+            // InternalCubeDSL.g:13195:2: rule__XIfExpression__Group_6__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__Group_6__1__Impl();
@@ -43580,23 +44402,23 @@
 
 
     // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
-    // InternalCubeDSL.g:12956:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
+    // InternalCubeDSL.g:13201:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
     public final void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12960:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
-            // InternalCubeDSL.g:12961:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalCubeDSL.g:13205:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
+            // InternalCubeDSL.g:13206:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
             {
-            // InternalCubeDSL.g:12961:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
-            // InternalCubeDSL.g:12962:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalCubeDSL.g:13206:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalCubeDSL.g:13207:2: ( rule__XIfExpression__ElseAssignment_6_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
             }
-            // InternalCubeDSL.g:12963:2: ( rule__XIfExpression__ElseAssignment_6_1 )
-            // InternalCubeDSL.g:12963:3: rule__XIfExpression__ElseAssignment_6_1
+            // InternalCubeDSL.g:13208:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalCubeDSL.g:13208:3: rule__XIfExpression__ElseAssignment_6_1
             {
             pushFollow(FOLLOW_2);
             rule__XIfExpression__ElseAssignment_6_1();
@@ -43631,14 +44453,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0"
-    // InternalCubeDSL.g:12972:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
+    // InternalCubeDSL.g:13217:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
     public final void rule__XSwitchExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12976:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
-            // InternalCubeDSL.g:12977:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
+            // InternalCubeDSL.g:13221:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
+            // InternalCubeDSL.g:13222:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
             {
             pushFollow(FOLLOW_96);
             rule__XSwitchExpression__Group__0__Impl();
@@ -43669,23 +44491,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
-    // InternalCubeDSL.g:12984:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:13229:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
     public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:12988:1: ( ( () ) )
-            // InternalCubeDSL.g:12989:1: ( () )
+            // InternalCubeDSL.g:13233:1: ( ( () ) )
+            // InternalCubeDSL.g:13234:1: ( () )
             {
-            // InternalCubeDSL.g:12989:1: ( () )
-            // InternalCubeDSL.g:12990:2: ()
+            // InternalCubeDSL.g:13234:1: ( () )
+            // InternalCubeDSL.g:13235:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:12991:2: ()
-            // InternalCubeDSL.g:12991:3: 
+            // InternalCubeDSL.g:13236:2: ()
+            // InternalCubeDSL.g:13236:3: 
             {
             }
 
@@ -43710,14 +44532,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1"
-    // InternalCubeDSL.g:12999:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
+    // InternalCubeDSL.g:13244:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
     public final void rule__XSwitchExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13003:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
-            // InternalCubeDSL.g:13004:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
+            // InternalCubeDSL.g:13248:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
+            // InternalCubeDSL.g:13249:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
             {
             pushFollow(FOLLOW_97);
             rule__XSwitchExpression__Group__1__Impl();
@@ -43748,17 +44570,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
-    // InternalCubeDSL.g:13011:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
+    // InternalCubeDSL.g:13256:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
     public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13015:1: ( ( 'switch' ) )
-            // InternalCubeDSL.g:13016:1: ( 'switch' )
+            // InternalCubeDSL.g:13260:1: ( ( 'switch' ) )
+            // InternalCubeDSL.g:13261:1: ( 'switch' )
             {
-            // InternalCubeDSL.g:13016:1: ( 'switch' )
-            // InternalCubeDSL.g:13017:2: 'switch'
+            // InternalCubeDSL.g:13261:1: ( 'switch' )
+            // InternalCubeDSL.g:13262:2: 'switch'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
@@ -43789,14 +44611,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2"
-    // InternalCubeDSL.g:13026:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
+    // InternalCubeDSL.g:13271:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
     public final void rule__XSwitchExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13030:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
-            // InternalCubeDSL.g:13031:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
+            // InternalCubeDSL.g:13275:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
+            // InternalCubeDSL.g:13276:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__XSwitchExpression__Group__2__Impl();
@@ -43827,23 +44649,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
-    // InternalCubeDSL.g:13038:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
+    // InternalCubeDSL.g:13283:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
     public final void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13042:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
-            // InternalCubeDSL.g:13043:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalCubeDSL.g:13287:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
+            // InternalCubeDSL.g:13288:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
             {
-            // InternalCubeDSL.g:13043:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
-            // InternalCubeDSL.g:13044:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalCubeDSL.g:13288:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalCubeDSL.g:13289:2: ( rule__XSwitchExpression__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
             }
-            // InternalCubeDSL.g:13045:2: ( rule__XSwitchExpression__Alternatives_2 )
-            // InternalCubeDSL.g:13045:3: rule__XSwitchExpression__Alternatives_2
+            // InternalCubeDSL.g:13290:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalCubeDSL.g:13290:3: rule__XSwitchExpression__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Alternatives_2();
@@ -43878,14 +44700,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3"
-    // InternalCubeDSL.g:13053:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
+    // InternalCubeDSL.g:13298:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
     public final void rule__XSwitchExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13057:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
-            // InternalCubeDSL.g:13058:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
+            // InternalCubeDSL.g:13302:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
+            // InternalCubeDSL.g:13303:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
             {
             pushFollow(FOLLOW_98);
             rule__XSwitchExpression__Group__3__Impl();
@@ -43916,17 +44738,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
-    // InternalCubeDSL.g:13065:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:13310:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
     public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13069:1: ( ( '{' ) )
-            // InternalCubeDSL.g:13070:1: ( '{' )
+            // InternalCubeDSL.g:13314:1: ( ( '{' ) )
+            // InternalCubeDSL.g:13315:1: ( '{' )
             {
-            // InternalCubeDSL.g:13070:1: ( '{' )
-            // InternalCubeDSL.g:13071:2: '{'
+            // InternalCubeDSL.g:13315:1: ( '{' )
+            // InternalCubeDSL.g:13316:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
@@ -43957,14 +44779,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4"
-    // InternalCubeDSL.g:13080:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
+    // InternalCubeDSL.g:13325:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
     public final void rule__XSwitchExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13084:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
-            // InternalCubeDSL.g:13085:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
+            // InternalCubeDSL.g:13329:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
+            // InternalCubeDSL.g:13330:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
             {
             pushFollow(FOLLOW_98);
             rule__XSwitchExpression__Group__4__Impl();
@@ -43995,35 +44817,35 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
-    // InternalCubeDSL.g:13092:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
+    // InternalCubeDSL.g:13337:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
     public final void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13096:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
-            // InternalCubeDSL.g:13097:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalCubeDSL.g:13341:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+            // InternalCubeDSL.g:13342:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
             {
-            // InternalCubeDSL.g:13097:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
-            // InternalCubeDSL.g:13098:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            // InternalCubeDSL.g:13342:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalCubeDSL.g:13343:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
             }
-            // InternalCubeDSL.g:13099:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
-            loop115:
+            // InternalCubeDSL.g:13344:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            loop118:
             do {
-                int alt115=2;
-                int LA115_0 = input.LA(1);
+                int alt118=2;
+                int LA118_0 = input.LA(1);
 
-                if ( (LA115_0==RULE_ID||LA115_0==31||LA115_0==88||LA115_0==90||LA115_0==99||LA115_0==101) ) {
-                    alt115=1;
+                if ( (LA118_0==RULE_ID||LA118_0==31||LA118_0==88||LA118_0==90||LA118_0==99||LA118_0==101) ) {
+                    alt118=1;
                 }
 
 
-                switch (alt115) {
+                switch (alt118) {
             	case 1 :
-            	    // InternalCubeDSL.g:13099:3: rule__XSwitchExpression__CasesAssignment_4
+            	    // InternalCubeDSL.g:13344:3: rule__XSwitchExpression__CasesAssignment_4
             	    {
             	    pushFollow(FOLLOW_99);
             	    rule__XSwitchExpression__CasesAssignment_4();
@@ -44035,7 +44857,7 @@
             	    break;
 
             	default :
-            	    break loop115;
+            	    break loop118;
                 }
             } while (true);
 
@@ -44064,14 +44886,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5"
-    // InternalCubeDSL.g:13107:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
+    // InternalCubeDSL.g:13352:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
     public final void rule__XSwitchExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13111:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
-            // InternalCubeDSL.g:13112:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
+            // InternalCubeDSL.g:13356:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
+            // InternalCubeDSL.g:13357:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
             {
             pushFollow(FOLLOW_98);
             rule__XSwitchExpression__Group__5__Impl();
@@ -44102,31 +44924,31 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
-    // InternalCubeDSL.g:13119:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
+    // InternalCubeDSL.g:13364:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
     public final void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13123:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
-            // InternalCubeDSL.g:13124:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalCubeDSL.g:13368:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
+            // InternalCubeDSL.g:13369:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
             {
-            // InternalCubeDSL.g:13124:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
-            // InternalCubeDSL.g:13125:2: ( rule__XSwitchExpression__Group_5__0 )?
+            // InternalCubeDSL.g:13369:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalCubeDSL.g:13370:2: ( rule__XSwitchExpression__Group_5__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
             }
-            // InternalCubeDSL.g:13126:2: ( rule__XSwitchExpression__Group_5__0 )?
-            int alt116=2;
-            int LA116_0 = input.LA(1);
+            // InternalCubeDSL.g:13371:2: ( rule__XSwitchExpression__Group_5__0 )?
+            int alt119=2;
+            int LA119_0 = input.LA(1);
 
-            if ( (LA116_0==100) ) {
-                alt116=1;
+            if ( (LA119_0==100) ) {
+                alt119=1;
             }
-            switch (alt116) {
+            switch (alt119) {
                 case 1 :
-                    // InternalCubeDSL.g:13126:3: rule__XSwitchExpression__Group_5__0
+                    // InternalCubeDSL.g:13371:3: rule__XSwitchExpression__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_5__0();
@@ -44164,14 +44986,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6"
-    // InternalCubeDSL.g:13134:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
+    // InternalCubeDSL.g:13379:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
     public final void rule__XSwitchExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13138:1: ( rule__XSwitchExpression__Group__6__Impl )
-            // InternalCubeDSL.g:13139:2: rule__XSwitchExpression__Group__6__Impl
+            // InternalCubeDSL.g:13383:1: ( rule__XSwitchExpression__Group__6__Impl )
+            // InternalCubeDSL.g:13384:2: rule__XSwitchExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group__6__Impl();
@@ -44197,17 +45019,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
-    // InternalCubeDSL.g:13145:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:13390:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
     public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13149:1: ( ( '}' ) )
-            // InternalCubeDSL.g:13150:1: ( '}' )
+            // InternalCubeDSL.g:13394:1: ( ( '}' ) )
+            // InternalCubeDSL.g:13395:1: ( '}' )
             {
-            // InternalCubeDSL.g:13150:1: ( '}' )
-            // InternalCubeDSL.g:13151:2: '}'
+            // InternalCubeDSL.g:13395:1: ( '}' )
+            // InternalCubeDSL.g:13396:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
@@ -44238,14 +45060,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
-    // InternalCubeDSL.g:13161:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
+    // InternalCubeDSL.g:13406:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
     public final void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13165:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
-            // InternalCubeDSL.g:13166:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
+            // InternalCubeDSL.g:13410:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
+            // InternalCubeDSL.g:13411:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
             {
             pushFollow(FOLLOW_48);
             rule__XSwitchExpression__Group_2_0__0__Impl();
@@ -44276,23 +45098,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
-    // InternalCubeDSL.g:13173:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
+    // InternalCubeDSL.g:13418:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13177:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
-            // InternalCubeDSL.g:13178:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalCubeDSL.g:13422:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
+            // InternalCubeDSL.g:13423:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
             {
-            // InternalCubeDSL.g:13178:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
-            // InternalCubeDSL.g:13179:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalCubeDSL.g:13423:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalCubeDSL.g:13424:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
             }
-            // InternalCubeDSL.g:13180:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
-            // InternalCubeDSL.g:13180:3: rule__XSwitchExpression__Group_2_0_0__0
+            // InternalCubeDSL.g:13425:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalCubeDSL.g:13425:3: rule__XSwitchExpression__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0();
@@ -44327,14 +45149,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
-    // InternalCubeDSL.g:13188:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
+    // InternalCubeDSL.g:13433:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
     public final void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13192:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
-            // InternalCubeDSL.g:13193:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
+            // InternalCubeDSL.g:13437:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
+            // InternalCubeDSL.g:13438:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
             {
             pushFollow(FOLLOW_93);
             rule__XSwitchExpression__Group_2_0__1__Impl();
@@ -44365,23 +45187,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
-    // InternalCubeDSL.g:13200:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
+    // InternalCubeDSL.g:13445:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13204:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
-            // InternalCubeDSL.g:13205:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalCubeDSL.g:13449:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
+            // InternalCubeDSL.g:13450:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
             {
-            // InternalCubeDSL.g:13205:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
-            // InternalCubeDSL.g:13206:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalCubeDSL.g:13450:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalCubeDSL.g:13451:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
             }
-            // InternalCubeDSL.g:13207:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
-            // InternalCubeDSL.g:13207:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
+            // InternalCubeDSL.g:13452:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalCubeDSL.g:13452:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_0_1();
@@ -44416,14 +45238,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2"
-    // InternalCubeDSL.g:13215:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
+    // InternalCubeDSL.g:13460:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
     public final void rule__XSwitchExpression__Group_2_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13219:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
-            // InternalCubeDSL.g:13220:2: rule__XSwitchExpression__Group_2_0__2__Impl
+            // InternalCubeDSL.g:13464:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
+            // InternalCubeDSL.g:13465:2: rule__XSwitchExpression__Group_2_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0__2__Impl();
@@ -44449,17 +45271,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0__2__Impl"
-    // InternalCubeDSL.g:13226:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:13471:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
     public final void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13230:1: ( ( ')' ) )
-            // InternalCubeDSL.g:13231:1: ( ')' )
+            // InternalCubeDSL.g:13475:1: ( ( ')' ) )
+            // InternalCubeDSL.g:13476:1: ( ')' )
             {
-            // InternalCubeDSL.g:13231:1: ( ')' )
-            // InternalCubeDSL.g:13232:2: ')'
+            // InternalCubeDSL.g:13476:1: ( ')' )
+            // InternalCubeDSL.g:13477:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
@@ -44490,14 +45312,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
-    // InternalCubeDSL.g:13242:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
+    // InternalCubeDSL.g:13487:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
     public final void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13246:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
-            // InternalCubeDSL.g:13247:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
+            // InternalCubeDSL.g:13491:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
+            // InternalCubeDSL.g:13492:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0__0__Impl();
@@ -44523,23 +45345,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
-    // InternalCubeDSL.g:13253:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
+    // InternalCubeDSL.g:13498:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13257:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
-            // InternalCubeDSL.g:13258:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalCubeDSL.g:13502:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
+            // InternalCubeDSL.g:13503:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
             {
-            // InternalCubeDSL.g:13258:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
-            // InternalCubeDSL.g:13259:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalCubeDSL.g:13503:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalCubeDSL.g:13504:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
             }
-            // InternalCubeDSL.g:13260:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
-            // InternalCubeDSL.g:13260:3: rule__XSwitchExpression__Group_2_0_0_0__0
+            // InternalCubeDSL.g:13505:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalCubeDSL.g:13505:3: rule__XSwitchExpression__Group_2_0_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__0();
@@ -44574,14 +45396,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
-    // InternalCubeDSL.g:13269:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
+    // InternalCubeDSL.g:13514:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13273:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
-            // InternalCubeDSL.g:13274:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
+            // InternalCubeDSL.g:13518:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
+            // InternalCubeDSL.g:13519:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
             {
             pushFollow(FOLLOW_65);
             rule__XSwitchExpression__Group_2_0_0_0__0__Impl();
@@ -44612,17 +45434,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
-    // InternalCubeDSL.g:13281:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:13526:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13285:1: ( ( '(' ) )
-            // InternalCubeDSL.g:13286:1: ( '(' )
+            // InternalCubeDSL.g:13530:1: ( ( '(' ) )
+            // InternalCubeDSL.g:13531:1: ( '(' )
             {
-            // InternalCubeDSL.g:13286:1: ( '(' )
-            // InternalCubeDSL.g:13287:2: '('
+            // InternalCubeDSL.g:13531:1: ( '(' )
+            // InternalCubeDSL.g:13532:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
@@ -44653,14 +45475,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
-    // InternalCubeDSL.g:13296:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
+    // InternalCubeDSL.g:13541:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13300:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
-            // InternalCubeDSL.g:13301:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
+            // InternalCubeDSL.g:13545:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
+            // InternalCubeDSL.g:13546:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
             {
             pushFollow(FOLLOW_100);
             rule__XSwitchExpression__Group_2_0_0_0__1__Impl();
@@ -44691,23 +45513,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
-    // InternalCubeDSL.g:13308:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
+    // InternalCubeDSL.g:13553:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13312:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
-            // InternalCubeDSL.g:13313:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalCubeDSL.g:13557:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
+            // InternalCubeDSL.g:13558:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
             {
-            // InternalCubeDSL.g:13313:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
-            // InternalCubeDSL.g:13314:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalCubeDSL.g:13558:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalCubeDSL.g:13559:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
             }
-            // InternalCubeDSL.g:13315:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
-            // InternalCubeDSL.g:13315:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
+            // InternalCubeDSL.g:13560:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalCubeDSL.g:13560:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1();
@@ -44742,14 +45564,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2"
-    // InternalCubeDSL.g:13323:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
+    // InternalCubeDSL.g:13568:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13327:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
-            // InternalCubeDSL.g:13328:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+            // InternalCubeDSL.g:13572:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
+            // InternalCubeDSL.g:13573:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_0_0_0__2__Impl();
@@ -44775,17 +45597,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
-    // InternalCubeDSL.g:13334:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
+    // InternalCubeDSL.g:13579:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_2_0_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13338:1: ( ( ':' ) )
-            // InternalCubeDSL.g:13339:1: ( ':' )
+            // InternalCubeDSL.g:13583:1: ( ( ':' ) )
+            // InternalCubeDSL.g:13584:1: ( ':' )
             {
-            // InternalCubeDSL.g:13339:1: ( ':' )
-            // InternalCubeDSL.g:13340:2: ':'
+            // InternalCubeDSL.g:13584:1: ( ':' )
+            // InternalCubeDSL.g:13585:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
@@ -44816,14 +45638,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
-    // InternalCubeDSL.g:13350:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
+    // InternalCubeDSL.g:13595:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
     public final void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13354:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
-            // InternalCubeDSL.g:13355:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
+            // InternalCubeDSL.g:13599:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
+            // InternalCubeDSL.g:13600:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
             {
             pushFollow(FOLLOW_97);
             rule__XSwitchExpression__Group_2_1__0__Impl();
@@ -44854,27 +45676,27 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
-    // InternalCubeDSL.g:13362:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
+    // InternalCubeDSL.g:13607:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
     public final void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13366:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
-            // InternalCubeDSL.g:13367:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalCubeDSL.g:13611:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
+            // InternalCubeDSL.g:13612:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
             {
-            // InternalCubeDSL.g:13367:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
-            // InternalCubeDSL.g:13368:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            // InternalCubeDSL.g:13612:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalCubeDSL.g:13613:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
             }
-            // InternalCubeDSL.g:13369:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
-            int alt117=2;
-            alt117 = dfa117.predict(input);
-            switch (alt117) {
+            // InternalCubeDSL.g:13614:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            int alt120=2;
+            alt120 = dfa120.predict(input);
+            switch (alt120) {
                 case 1 :
-                    // InternalCubeDSL.g:13369:3: rule__XSwitchExpression__Group_2_1_0__0
+                    // InternalCubeDSL.g:13614:3: rule__XSwitchExpression__Group_2_1_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XSwitchExpression__Group_2_1_0__0();
@@ -44912,14 +45734,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
-    // InternalCubeDSL.g:13377:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
+    // InternalCubeDSL.g:13622:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
     public final void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13381:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
-            // InternalCubeDSL.g:13382:2: rule__XSwitchExpression__Group_2_1__1__Impl
+            // InternalCubeDSL.g:13626:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
+            // InternalCubeDSL.g:13627:2: rule__XSwitchExpression__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1__1__Impl();
@@ -44945,23 +45767,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
-    // InternalCubeDSL.g:13388:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
+    // InternalCubeDSL.g:13633:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13392:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
-            // InternalCubeDSL.g:13393:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalCubeDSL.g:13637:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
+            // InternalCubeDSL.g:13638:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
             {
-            // InternalCubeDSL.g:13393:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
-            // InternalCubeDSL.g:13394:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalCubeDSL.g:13638:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalCubeDSL.g:13639:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
             }
-            // InternalCubeDSL.g:13395:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
-            // InternalCubeDSL.g:13395:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
+            // InternalCubeDSL.g:13640:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalCubeDSL.g:13640:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__SwitchAssignment_2_1_1();
@@ -44996,14 +45818,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
-    // InternalCubeDSL.g:13404:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
+    // InternalCubeDSL.g:13649:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
     public final void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13408:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
-            // InternalCubeDSL.g:13409:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
+            // InternalCubeDSL.g:13653:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
+            // InternalCubeDSL.g:13654:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0__0__Impl();
@@ -45029,23 +45851,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
-    // InternalCubeDSL.g:13415:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
+    // InternalCubeDSL.g:13660:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13419:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
-            // InternalCubeDSL.g:13420:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalCubeDSL.g:13664:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
+            // InternalCubeDSL.g:13665:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
             {
-            // InternalCubeDSL.g:13420:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
-            // InternalCubeDSL.g:13421:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalCubeDSL.g:13665:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalCubeDSL.g:13666:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
             }
-            // InternalCubeDSL.g:13422:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
-            // InternalCubeDSL.g:13422:3: rule__XSwitchExpression__Group_2_1_0_0__0
+            // InternalCubeDSL.g:13667:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalCubeDSL.g:13667:3: rule__XSwitchExpression__Group_2_1_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__0();
@@ -45080,14 +45902,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
-    // InternalCubeDSL.g:13431:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
+    // InternalCubeDSL.g:13676:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13435:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
-            // InternalCubeDSL.g:13436:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
+            // InternalCubeDSL.g:13680:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
+            // InternalCubeDSL.g:13681:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
             {
             pushFollow(FOLLOW_100);
             rule__XSwitchExpression__Group_2_1_0_0__0__Impl();
@@ -45118,23 +45940,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
-    // InternalCubeDSL.g:13443:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
+    // InternalCubeDSL.g:13688:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13447:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
-            // InternalCubeDSL.g:13448:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalCubeDSL.g:13692:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
+            // InternalCubeDSL.g:13693:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
             {
-            // InternalCubeDSL.g:13448:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
-            // InternalCubeDSL.g:13449:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalCubeDSL.g:13693:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalCubeDSL.g:13694:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
             }
-            // InternalCubeDSL.g:13450:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
-            // InternalCubeDSL.g:13450:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
+            // InternalCubeDSL.g:13695:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalCubeDSL.g:13695:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0();
@@ -45169,14 +45991,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
-    // InternalCubeDSL.g:13458:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
+    // InternalCubeDSL.g:13703:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13462:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
-            // InternalCubeDSL.g:13463:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+            // InternalCubeDSL.g:13707:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
+            // InternalCubeDSL.g:13708:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_2_1_0_0__1__Impl();
@@ -45202,17 +46024,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
-    // InternalCubeDSL.g:13469:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
+    // InternalCubeDSL.g:13714:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13473:1: ( ( ':' ) )
-            // InternalCubeDSL.g:13474:1: ( ':' )
+            // InternalCubeDSL.g:13718:1: ( ( ':' ) )
+            // InternalCubeDSL.g:13719:1: ( ':' )
             {
-            // InternalCubeDSL.g:13474:1: ( ':' )
-            // InternalCubeDSL.g:13475:2: ':'
+            // InternalCubeDSL.g:13719:1: ( ':' )
+            // InternalCubeDSL.g:13720:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
@@ -45243,14 +46065,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0"
-    // InternalCubeDSL.g:13485:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
+    // InternalCubeDSL.g:13730:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
     public final void rule__XSwitchExpression__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13489:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
-            // InternalCubeDSL.g:13490:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
+            // InternalCubeDSL.g:13734:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
+            // InternalCubeDSL.g:13735:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
             {
             pushFollow(FOLLOW_100);
             rule__XSwitchExpression__Group_5__0__Impl();
@@ -45281,17 +46103,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
-    // InternalCubeDSL.g:13497:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
+    // InternalCubeDSL.g:13742:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
     public final void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13501:1: ( ( 'default' ) )
-            // InternalCubeDSL.g:13502:1: ( 'default' )
+            // InternalCubeDSL.g:13746:1: ( ( 'default' ) )
+            // InternalCubeDSL.g:13747:1: ( 'default' )
             {
-            // InternalCubeDSL.g:13502:1: ( 'default' )
-            // InternalCubeDSL.g:13503:2: 'default'
+            // InternalCubeDSL.g:13747:1: ( 'default' )
+            // InternalCubeDSL.g:13748:2: 'default'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
@@ -45322,14 +46144,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1"
-    // InternalCubeDSL.g:13512:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
+    // InternalCubeDSL.g:13757:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
     public final void rule__XSwitchExpression__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13516:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
-            // InternalCubeDSL.g:13517:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
+            // InternalCubeDSL.g:13761:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
+            // InternalCubeDSL.g:13762:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
             {
             pushFollow(FOLLOW_48);
             rule__XSwitchExpression__Group_5__1__Impl();
@@ -45360,17 +46182,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
-    // InternalCubeDSL.g:13524:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
+    // InternalCubeDSL.g:13769:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
     public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13528:1: ( ( ':' ) )
-            // InternalCubeDSL.g:13529:1: ( ':' )
+            // InternalCubeDSL.g:13773:1: ( ( ':' ) )
+            // InternalCubeDSL.g:13774:1: ( ':' )
             {
-            // InternalCubeDSL.g:13529:1: ( ':' )
-            // InternalCubeDSL.g:13530:2: ':'
+            // InternalCubeDSL.g:13774:1: ( ':' )
+            // InternalCubeDSL.g:13775:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
@@ -45401,14 +46223,14 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2"
-    // InternalCubeDSL.g:13539:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
+    // InternalCubeDSL.g:13784:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
     public final void rule__XSwitchExpression__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13543:1: ( rule__XSwitchExpression__Group_5__2__Impl )
-            // InternalCubeDSL.g:13544:2: rule__XSwitchExpression__Group_5__2__Impl
+            // InternalCubeDSL.g:13788:1: ( rule__XSwitchExpression__Group_5__2__Impl )
+            // InternalCubeDSL.g:13789:2: rule__XSwitchExpression__Group_5__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__Group_5__2__Impl();
@@ -45434,23 +46256,23 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
-    // InternalCubeDSL.g:13550:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
+    // InternalCubeDSL.g:13795:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
     public final void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13554:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
-            // InternalCubeDSL.g:13555:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalCubeDSL.g:13799:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
+            // InternalCubeDSL.g:13800:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
             {
-            // InternalCubeDSL.g:13555:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
-            // InternalCubeDSL.g:13556:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalCubeDSL.g:13800:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalCubeDSL.g:13801:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
             }
-            // InternalCubeDSL.g:13557:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
-            // InternalCubeDSL.g:13557:3: rule__XSwitchExpression__DefaultAssignment_5_2
+            // InternalCubeDSL.g:13802:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalCubeDSL.g:13802:3: rule__XSwitchExpression__DefaultAssignment_5_2
             {
             pushFollow(FOLLOW_2);
             rule__XSwitchExpression__DefaultAssignment_5_2();
@@ -45485,14 +46307,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0"
-    // InternalCubeDSL.g:13566:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
+    // InternalCubeDSL.g:13811:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
     public final void rule__XCasePart__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13570:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
-            // InternalCubeDSL.g:13571:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
+            // InternalCubeDSL.g:13815:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
+            // InternalCubeDSL.g:13816:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
             {
             pushFollow(FOLLOW_101);
             rule__XCasePart__Group__0__Impl();
@@ -45523,23 +46345,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__0__Impl"
-    // InternalCubeDSL.g:13578:1: rule__XCasePart__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:13823:1: rule__XCasePart__Group__0__Impl : ( () ) ;
     public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13582:1: ( ( () ) )
-            // InternalCubeDSL.g:13583:1: ( () )
+            // InternalCubeDSL.g:13827:1: ( ( () ) )
+            // InternalCubeDSL.g:13828:1: ( () )
             {
-            // InternalCubeDSL.g:13583:1: ( () )
-            // InternalCubeDSL.g:13584:2: ()
+            // InternalCubeDSL.g:13828:1: ( () )
+            // InternalCubeDSL.g:13829:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
             }
-            // InternalCubeDSL.g:13585:2: ()
-            // InternalCubeDSL.g:13585:3: 
+            // InternalCubeDSL.g:13830:2: ()
+            // InternalCubeDSL.g:13830:3: 
             {
             }
 
@@ -45564,14 +46386,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1"
-    // InternalCubeDSL.g:13593:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
+    // InternalCubeDSL.g:13838:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
     public final void rule__XCasePart__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13597:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
-            // InternalCubeDSL.g:13598:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
+            // InternalCubeDSL.g:13842:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
+            // InternalCubeDSL.g:13843:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
             {
             pushFollow(FOLLOW_101);
             rule__XCasePart__Group__1__Impl();
@@ -45602,31 +46424,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__1__Impl"
-    // InternalCubeDSL.g:13605:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
+    // InternalCubeDSL.g:13850:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
     public final void rule__XCasePart__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13609:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
-            // InternalCubeDSL.g:13610:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalCubeDSL.g:13854:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
+            // InternalCubeDSL.g:13855:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
             {
-            // InternalCubeDSL.g:13610:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
-            // InternalCubeDSL.g:13611:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            // InternalCubeDSL.g:13855:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalCubeDSL.g:13856:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
             }
-            // InternalCubeDSL.g:13612:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
-            int alt118=2;
-            int LA118_0 = input.LA(1);
+            // InternalCubeDSL.g:13857:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            int alt121=2;
+            int LA121_0 = input.LA(1);
 
-            if ( (LA118_0==RULE_ID||LA118_0==31||LA118_0==88) ) {
-                alt118=1;
+            if ( (LA121_0==RULE_ID||LA121_0==31||LA121_0==88) ) {
+                alt121=1;
             }
-            switch (alt118) {
+            switch (alt121) {
                 case 1 :
-                    // InternalCubeDSL.g:13612:3: rule__XCasePart__TypeGuardAssignment_1
+                    // InternalCubeDSL.g:13857:3: rule__XCasePart__TypeGuardAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__TypeGuardAssignment_1();
@@ -45664,14 +46486,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2"
-    // InternalCubeDSL.g:13620:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
+    // InternalCubeDSL.g:13865:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
     public final void rule__XCasePart__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13624:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
-            // InternalCubeDSL.g:13625:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
+            // InternalCubeDSL.g:13869:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
+            // InternalCubeDSL.g:13870:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
             {
             pushFollow(FOLLOW_101);
             rule__XCasePart__Group__2__Impl();
@@ -45702,31 +46524,31 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__2__Impl"
-    // InternalCubeDSL.g:13632:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
+    // InternalCubeDSL.g:13877:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
     public final void rule__XCasePart__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13636:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
-            // InternalCubeDSL.g:13637:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalCubeDSL.g:13881:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
+            // InternalCubeDSL.g:13882:1: ( ( rule__XCasePart__Group_2__0 )? )
             {
-            // InternalCubeDSL.g:13637:1: ( ( rule__XCasePart__Group_2__0 )? )
-            // InternalCubeDSL.g:13638:2: ( rule__XCasePart__Group_2__0 )?
+            // InternalCubeDSL.g:13882:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalCubeDSL.g:13883:2: ( rule__XCasePart__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getGroup_2()); 
             }
-            // InternalCubeDSL.g:13639:2: ( rule__XCasePart__Group_2__0 )?
-            int alt119=2;
-            int LA119_0 = input.LA(1);
+            // InternalCubeDSL.g:13884:2: ( rule__XCasePart__Group_2__0 )?
+            int alt122=2;
+            int LA122_0 = input.LA(1);
 
-            if ( (LA119_0==101) ) {
-                alt119=1;
+            if ( (LA122_0==101) ) {
+                alt122=1;
             }
-            switch (alt119) {
+            switch (alt122) {
                 case 1 :
-                    // InternalCubeDSL.g:13639:3: rule__XCasePart__Group_2__0
+                    // InternalCubeDSL.g:13884:3: rule__XCasePart__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XCasePart__Group_2__0();
@@ -45764,14 +46586,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3"
-    // InternalCubeDSL.g:13647:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
+    // InternalCubeDSL.g:13892:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
     public final void rule__XCasePart__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13651:1: ( rule__XCasePart__Group__3__Impl )
-            // InternalCubeDSL.g:13652:2: rule__XCasePart__Group__3__Impl
+            // InternalCubeDSL.g:13896:1: ( rule__XCasePart__Group__3__Impl )
+            // InternalCubeDSL.g:13897:2: rule__XCasePart__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group__3__Impl();
@@ -45797,23 +46619,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group__3__Impl"
-    // InternalCubeDSL.g:13658:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
+    // InternalCubeDSL.g:13903:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
     public final void rule__XCasePart__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13662:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
-            // InternalCubeDSL.g:13663:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalCubeDSL.g:13907:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
+            // InternalCubeDSL.g:13908:1: ( ( rule__XCasePart__Alternatives_3 ) )
             {
-            // InternalCubeDSL.g:13663:1: ( ( rule__XCasePart__Alternatives_3 ) )
-            // InternalCubeDSL.g:13664:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalCubeDSL.g:13908:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalCubeDSL.g:13909:2: ( rule__XCasePart__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
             }
-            // InternalCubeDSL.g:13665:2: ( rule__XCasePart__Alternatives_3 )
-            // InternalCubeDSL.g:13665:3: rule__XCasePart__Alternatives_3
+            // InternalCubeDSL.g:13910:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalCubeDSL.g:13910:3: rule__XCasePart__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Alternatives_3();
@@ -45848,14 +46670,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0"
-    // InternalCubeDSL.g:13674:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
+    // InternalCubeDSL.g:13919:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
     public final void rule__XCasePart__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13678:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
-            // InternalCubeDSL.g:13679:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
+            // InternalCubeDSL.g:13923:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
+            // InternalCubeDSL.g:13924:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
             {
             pushFollow(FOLLOW_48);
             rule__XCasePart__Group_2__0__Impl();
@@ -45886,17 +46708,17 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__0__Impl"
-    // InternalCubeDSL.g:13686:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
+    // InternalCubeDSL.g:13931:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
     public final void rule__XCasePart__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13690:1: ( ( 'case' ) )
-            // InternalCubeDSL.g:13691:1: ( 'case' )
+            // InternalCubeDSL.g:13935:1: ( ( 'case' ) )
+            // InternalCubeDSL.g:13936:1: ( 'case' )
             {
-            // InternalCubeDSL.g:13691:1: ( 'case' )
-            // InternalCubeDSL.g:13692:2: 'case'
+            // InternalCubeDSL.g:13936:1: ( 'case' )
+            // InternalCubeDSL.g:13937:2: 'case'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
@@ -45927,14 +46749,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1"
-    // InternalCubeDSL.g:13701:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
+    // InternalCubeDSL.g:13946:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
     public final void rule__XCasePart__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13705:1: ( rule__XCasePart__Group_2__1__Impl )
-            // InternalCubeDSL.g:13706:2: rule__XCasePart__Group_2__1__Impl
+            // InternalCubeDSL.g:13950:1: ( rule__XCasePart__Group_2__1__Impl )
+            // InternalCubeDSL.g:13951:2: rule__XCasePart__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_2__1__Impl();
@@ -45960,23 +46782,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_2__1__Impl"
-    // InternalCubeDSL.g:13712:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
+    // InternalCubeDSL.g:13957:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
     public final void rule__XCasePart__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13716:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
-            // InternalCubeDSL.g:13717:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalCubeDSL.g:13961:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
+            // InternalCubeDSL.g:13962:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
             {
-            // InternalCubeDSL.g:13717:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
-            // InternalCubeDSL.g:13718:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalCubeDSL.g:13962:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalCubeDSL.g:13963:2: ( rule__XCasePart__CaseAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
             }
-            // InternalCubeDSL.g:13719:2: ( rule__XCasePart__CaseAssignment_2_1 )
-            // InternalCubeDSL.g:13719:3: rule__XCasePart__CaseAssignment_2_1
+            // InternalCubeDSL.g:13964:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalCubeDSL.g:13964:3: rule__XCasePart__CaseAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__CaseAssignment_2_1();
@@ -46011,14 +46833,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0"
-    // InternalCubeDSL.g:13728:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
+    // InternalCubeDSL.g:13973:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
     public final void rule__XCasePart__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13732:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
-            // InternalCubeDSL.g:13733:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
+            // InternalCubeDSL.g:13977:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
+            // InternalCubeDSL.g:13978:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
             {
             pushFollow(FOLLOW_48);
             rule__XCasePart__Group_3_0__0__Impl();
@@ -46049,17 +46871,17 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__0__Impl"
-    // InternalCubeDSL.g:13740:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
+    // InternalCubeDSL.g:13985:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
     public final void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13744:1: ( ( ':' ) )
-            // InternalCubeDSL.g:13745:1: ( ':' )
+            // InternalCubeDSL.g:13989:1: ( ( ':' ) )
+            // InternalCubeDSL.g:13990:1: ( ':' )
             {
-            // InternalCubeDSL.g:13745:1: ( ':' )
-            // InternalCubeDSL.g:13746:2: ':'
+            // InternalCubeDSL.g:13990:1: ( ':' )
+            // InternalCubeDSL.g:13991:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
@@ -46090,14 +46912,14 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1"
-    // InternalCubeDSL.g:13755:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
+    // InternalCubeDSL.g:14000:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
     public final void rule__XCasePart__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13759:1: ( rule__XCasePart__Group_3_0__1__Impl )
-            // InternalCubeDSL.g:13760:2: rule__XCasePart__Group_3_0__1__Impl
+            // InternalCubeDSL.g:14004:1: ( rule__XCasePart__Group_3_0__1__Impl )
+            // InternalCubeDSL.g:14005:2: rule__XCasePart__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__Group_3_0__1__Impl();
@@ -46123,23 +46945,23 @@
 
 
     // $ANTLR start "rule__XCasePart__Group_3_0__1__Impl"
-    // InternalCubeDSL.g:13766:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
+    // InternalCubeDSL.g:14011:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
     public final void rule__XCasePart__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13770:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
-            // InternalCubeDSL.g:13771:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalCubeDSL.g:14015:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
+            // InternalCubeDSL.g:14016:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
             {
-            // InternalCubeDSL.g:13771:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
-            // InternalCubeDSL.g:13772:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalCubeDSL.g:14016:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalCubeDSL.g:14017:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
             }
-            // InternalCubeDSL.g:13773:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
-            // InternalCubeDSL.g:13773:3: rule__XCasePart__ThenAssignment_3_0_1
+            // InternalCubeDSL.g:14018:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalCubeDSL.g:14018:3: rule__XCasePart__ThenAssignment_3_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XCasePart__ThenAssignment_3_0_1();
@@ -46174,14 +46996,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0"
-    // InternalCubeDSL.g:13782:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
+    // InternalCubeDSL.g:14027:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
     public final void rule__XForLoopExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13786:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
-            // InternalCubeDSL.g:13787:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
+            // InternalCubeDSL.g:14031:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
+            // InternalCubeDSL.g:14032:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
             {
             pushFollow(FOLLOW_48);
             rule__XForLoopExpression__Group__0__Impl();
@@ -46212,23 +47034,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
-    // InternalCubeDSL.g:13794:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
+    // InternalCubeDSL.g:14039:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
     public final void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13798:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
-            // InternalCubeDSL.g:13799:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalCubeDSL.g:14043:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
+            // InternalCubeDSL.g:14044:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
             {
-            // InternalCubeDSL.g:13799:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
-            // InternalCubeDSL.g:13800:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalCubeDSL.g:14044:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalCubeDSL.g:14045:2: ( rule__XForLoopExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
             }
-            // InternalCubeDSL.g:13801:2: ( rule__XForLoopExpression__Group_0__0 )
-            // InternalCubeDSL.g:13801:3: rule__XForLoopExpression__Group_0__0
+            // InternalCubeDSL.g:14046:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalCubeDSL.g:14046:3: rule__XForLoopExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0();
@@ -46263,14 +47085,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1"
-    // InternalCubeDSL.g:13809:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
+    // InternalCubeDSL.g:14054:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
     public final void rule__XForLoopExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13813:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
-            // InternalCubeDSL.g:13814:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
+            // InternalCubeDSL.g:14058:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
+            // InternalCubeDSL.g:14059:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
             {
             pushFollow(FOLLOW_93);
             rule__XForLoopExpression__Group__1__Impl();
@@ -46301,23 +47123,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
-    // InternalCubeDSL.g:13821:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
+    // InternalCubeDSL.g:14066:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
     public final void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13825:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
-            // InternalCubeDSL.g:13826:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalCubeDSL.g:14070:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
+            // InternalCubeDSL.g:14071:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
             {
-            // InternalCubeDSL.g:13826:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
-            // InternalCubeDSL.g:13827:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalCubeDSL.g:14071:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalCubeDSL.g:14072:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
             }
-            // InternalCubeDSL.g:13828:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
-            // InternalCubeDSL.g:13828:3: rule__XForLoopExpression__ForExpressionAssignment_1
+            // InternalCubeDSL.g:14073:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalCubeDSL.g:14073:3: rule__XForLoopExpression__ForExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__ForExpressionAssignment_1();
@@ -46352,14 +47174,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2"
-    // InternalCubeDSL.g:13836:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
+    // InternalCubeDSL.g:14081:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
     public final void rule__XForLoopExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13840:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
-            // InternalCubeDSL.g:13841:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
+            // InternalCubeDSL.g:14085:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
+            // InternalCubeDSL.g:14086:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
             {
             pushFollow(FOLLOW_48);
             rule__XForLoopExpression__Group__2__Impl();
@@ -46390,17 +47212,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
-    // InternalCubeDSL.g:13848:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:14093:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13852:1: ( ( ')' ) )
-            // InternalCubeDSL.g:13853:1: ( ')' )
+            // InternalCubeDSL.g:14097:1: ( ( ')' ) )
+            // InternalCubeDSL.g:14098:1: ( ')' )
             {
-            // InternalCubeDSL.g:13853:1: ( ')' )
-            // InternalCubeDSL.g:13854:2: ')'
+            // InternalCubeDSL.g:14098:1: ( ')' )
+            // InternalCubeDSL.g:14099:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
@@ -46431,14 +47253,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3"
-    // InternalCubeDSL.g:13863:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
+    // InternalCubeDSL.g:14108:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
     public final void rule__XForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13867:1: ( rule__XForLoopExpression__Group__3__Impl )
-            // InternalCubeDSL.g:13868:2: rule__XForLoopExpression__Group__3__Impl
+            // InternalCubeDSL.g:14112:1: ( rule__XForLoopExpression__Group__3__Impl )
+            // InternalCubeDSL.g:14113:2: rule__XForLoopExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group__3__Impl();
@@ -46464,23 +47286,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
-    // InternalCubeDSL.g:13874:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
+    // InternalCubeDSL.g:14119:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
     public final void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13878:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
-            // InternalCubeDSL.g:13879:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalCubeDSL.g:14123:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
+            // InternalCubeDSL.g:14124:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
             {
-            // InternalCubeDSL.g:13879:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
-            // InternalCubeDSL.g:13880:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalCubeDSL.g:14124:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalCubeDSL.g:14125:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
             }
-            // InternalCubeDSL.g:13881:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
-            // InternalCubeDSL.g:13881:3: rule__XForLoopExpression__EachExpressionAssignment_3
+            // InternalCubeDSL.g:14126:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalCubeDSL.g:14126:3: rule__XForLoopExpression__EachExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__EachExpressionAssignment_3();
@@ -46515,14 +47337,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0"
-    // InternalCubeDSL.g:13890:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
+    // InternalCubeDSL.g:14135:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
     public final void rule__XForLoopExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13894:1: ( rule__XForLoopExpression__Group_0__0__Impl )
-            // InternalCubeDSL.g:13895:2: rule__XForLoopExpression__Group_0__0__Impl
+            // InternalCubeDSL.g:14139:1: ( rule__XForLoopExpression__Group_0__0__Impl )
+            // InternalCubeDSL.g:14140:2: rule__XForLoopExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0__0__Impl();
@@ -46548,23 +47370,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0__0__Impl"
-    // InternalCubeDSL.g:13901:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
+    // InternalCubeDSL.g:14146:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
     public final void rule__XForLoopExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13905:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
-            // InternalCubeDSL.g:13906:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalCubeDSL.g:14150:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
+            // InternalCubeDSL.g:14151:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
             {
-            // InternalCubeDSL.g:13906:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
-            // InternalCubeDSL.g:13907:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalCubeDSL.g:14151:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalCubeDSL.g:14152:2: ( rule__XForLoopExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
             }
-            // InternalCubeDSL.g:13908:2: ( rule__XForLoopExpression__Group_0_0__0 )
-            // InternalCubeDSL.g:13908:3: rule__XForLoopExpression__Group_0_0__0
+            // InternalCubeDSL.g:14153:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalCubeDSL.g:14153:3: rule__XForLoopExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__0();
@@ -46599,14 +47421,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0"
-    // InternalCubeDSL.g:13917:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
+    // InternalCubeDSL.g:14162:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
     public final void rule__XForLoopExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13921:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
-            // InternalCubeDSL.g:13922:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
+            // InternalCubeDSL.g:14166:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
+            // InternalCubeDSL.g:14167:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
             {
             pushFollow(FOLLOW_102);
             rule__XForLoopExpression__Group_0_0__0__Impl();
@@ -46637,23 +47459,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__0__Impl"
-    // InternalCubeDSL.g:13929:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:14174:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13933:1: ( ( () ) )
-            // InternalCubeDSL.g:13934:1: ( () )
+            // InternalCubeDSL.g:14178:1: ( ( () ) )
+            // InternalCubeDSL.g:14179:1: ( () )
             {
-            // InternalCubeDSL.g:13934:1: ( () )
-            // InternalCubeDSL.g:13935:2: ()
+            // InternalCubeDSL.g:14179:1: ( () )
+            // InternalCubeDSL.g:14180:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
             }
-            // InternalCubeDSL.g:13936:2: ()
-            // InternalCubeDSL.g:13936:3: 
+            // InternalCubeDSL.g:14181:2: ()
+            // InternalCubeDSL.g:14181:3: 
             {
             }
 
@@ -46678,14 +47500,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1"
-    // InternalCubeDSL.g:13944:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
+    // InternalCubeDSL.g:14189:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
     public final void rule__XForLoopExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13948:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
-            // InternalCubeDSL.g:13949:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
+            // InternalCubeDSL.g:14193:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
+            // InternalCubeDSL.g:14194:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
             {
             pushFollow(FOLLOW_44);
             rule__XForLoopExpression__Group_0_0__1__Impl();
@@ -46716,17 +47538,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__1__Impl"
-    // InternalCubeDSL.g:13956:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
+    // InternalCubeDSL.g:14201:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
     public final void rule__XForLoopExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13960:1: ( ( 'for' ) )
-            // InternalCubeDSL.g:13961:1: ( 'for' )
+            // InternalCubeDSL.g:14205:1: ( ( 'for' ) )
+            // InternalCubeDSL.g:14206:1: ( 'for' )
             {
-            // InternalCubeDSL.g:13961:1: ( 'for' )
-            // InternalCubeDSL.g:13962:2: 'for'
+            // InternalCubeDSL.g:14206:1: ( 'for' )
+            // InternalCubeDSL.g:14207:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
@@ -46757,14 +47579,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2"
-    // InternalCubeDSL.g:13971:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
+    // InternalCubeDSL.g:14216:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
     public final void rule__XForLoopExpression__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13975:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
-            // InternalCubeDSL.g:13976:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
+            // InternalCubeDSL.g:14220:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
+            // InternalCubeDSL.g:14221:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
             {
             pushFollow(FOLLOW_65);
             rule__XForLoopExpression__Group_0_0__2__Impl();
@@ -46795,17 +47617,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__2__Impl"
-    // InternalCubeDSL.g:13983:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:14228:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:13987:1: ( ( '(' ) )
-            // InternalCubeDSL.g:13988:1: ( '(' )
+            // InternalCubeDSL.g:14232:1: ( ( '(' ) )
+            // InternalCubeDSL.g:14233:1: ( '(' )
             {
-            // InternalCubeDSL.g:13988:1: ( '(' )
-            // InternalCubeDSL.g:13989:2: '('
+            // InternalCubeDSL.g:14233:1: ( '(' )
+            // InternalCubeDSL.g:14234:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
@@ -46836,14 +47658,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3"
-    // InternalCubeDSL.g:13998:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
+    // InternalCubeDSL.g:14243:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
     public final void rule__XForLoopExpression__Group_0_0__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14002:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
-            // InternalCubeDSL.g:14003:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
+            // InternalCubeDSL.g:14247:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
+            // InternalCubeDSL.g:14248:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
             {
             pushFollow(FOLLOW_100);
             rule__XForLoopExpression__Group_0_0__3__Impl();
@@ -46874,23 +47696,23 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__3__Impl"
-    // InternalCubeDSL.g:14010:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
+    // InternalCubeDSL.g:14255:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
     public final void rule__XForLoopExpression__Group_0_0__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14014:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
-            // InternalCubeDSL.g:14015:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalCubeDSL.g:14259:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
+            // InternalCubeDSL.g:14260:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
             {
-            // InternalCubeDSL.g:14015:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
-            // InternalCubeDSL.g:14016:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalCubeDSL.g:14260:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalCubeDSL.g:14261:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
             }
-            // InternalCubeDSL.g:14017:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
-            // InternalCubeDSL.g:14017:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
+            // InternalCubeDSL.g:14262:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalCubeDSL.g:14262:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__DeclaredParamAssignment_0_0_3();
@@ -46925,14 +47747,14 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4"
-    // InternalCubeDSL.g:14025:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
+    // InternalCubeDSL.g:14270:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
     public final void rule__XForLoopExpression__Group_0_0__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14029:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
-            // InternalCubeDSL.g:14030:2: rule__XForLoopExpression__Group_0_0__4__Impl
+            // InternalCubeDSL.g:14274:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
+            // InternalCubeDSL.g:14275:2: rule__XForLoopExpression__Group_0_0__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XForLoopExpression__Group_0_0__4__Impl();
@@ -46958,17 +47780,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__Group_0_0__4__Impl"
-    // InternalCubeDSL.g:14036:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
+    // InternalCubeDSL.g:14281:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
     public final void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14040:1: ( ( ':' ) )
-            // InternalCubeDSL.g:14041:1: ( ':' )
+            // InternalCubeDSL.g:14285:1: ( ( ':' ) )
+            // InternalCubeDSL.g:14286:1: ( ':' )
             {
-            // InternalCubeDSL.g:14041:1: ( ':' )
-            // InternalCubeDSL.g:14042:2: ':'
+            // InternalCubeDSL.g:14286:1: ( ':' )
+            // InternalCubeDSL.g:14287:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
@@ -46999,14 +47821,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0"
-    // InternalCubeDSL.g:14052:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
+    // InternalCubeDSL.g:14297:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
     public final void rule__XBasicForLoopExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14056:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
-            // InternalCubeDSL.g:14057:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
+            // InternalCubeDSL.g:14301:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
+            // InternalCubeDSL.g:14302:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
             {
             pushFollow(FOLLOW_102);
             rule__XBasicForLoopExpression__Group__0__Impl();
@@ -47037,23 +47859,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__0__Impl"
-    // InternalCubeDSL.g:14064:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:14309:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14068:1: ( ( () ) )
-            // InternalCubeDSL.g:14069:1: ( () )
+            // InternalCubeDSL.g:14313:1: ( ( () ) )
+            // InternalCubeDSL.g:14314:1: ( () )
             {
-            // InternalCubeDSL.g:14069:1: ( () )
-            // InternalCubeDSL.g:14070:2: ()
+            // InternalCubeDSL.g:14314:1: ( () )
+            // InternalCubeDSL.g:14315:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:14071:2: ()
-            // InternalCubeDSL.g:14071:3: 
+            // InternalCubeDSL.g:14316:2: ()
+            // InternalCubeDSL.g:14316:3: 
             {
             }
 
@@ -47078,14 +47900,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1"
-    // InternalCubeDSL.g:14079:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
+    // InternalCubeDSL.g:14324:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
     public final void rule__XBasicForLoopExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14083:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
-            // InternalCubeDSL.g:14084:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
+            // InternalCubeDSL.g:14328:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
+            // InternalCubeDSL.g:14329:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
             {
             pushFollow(FOLLOW_44);
             rule__XBasicForLoopExpression__Group__1__Impl();
@@ -47116,17 +47938,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__1__Impl"
-    // InternalCubeDSL.g:14091:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
+    // InternalCubeDSL.g:14336:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
     public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14095:1: ( ( 'for' ) )
-            // InternalCubeDSL.g:14096:1: ( 'for' )
+            // InternalCubeDSL.g:14340:1: ( ( 'for' ) )
+            // InternalCubeDSL.g:14341:1: ( 'for' )
             {
-            // InternalCubeDSL.g:14096:1: ( 'for' )
-            // InternalCubeDSL.g:14097:2: 'for'
+            // InternalCubeDSL.g:14341:1: ( 'for' )
+            // InternalCubeDSL.g:14342:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
@@ -47157,14 +47979,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2"
-    // InternalCubeDSL.g:14106:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
+    // InternalCubeDSL.g:14351:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
     public final void rule__XBasicForLoopExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14110:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
-            // InternalCubeDSL.g:14111:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
+            // InternalCubeDSL.g:14355:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
+            // InternalCubeDSL.g:14356:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
             {
             pushFollow(FOLLOW_103);
             rule__XBasicForLoopExpression__Group__2__Impl();
@@ -47195,17 +48017,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__2__Impl"
-    // InternalCubeDSL.g:14118:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:14363:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14122:1: ( ( '(' ) )
-            // InternalCubeDSL.g:14123:1: ( '(' )
+            // InternalCubeDSL.g:14367:1: ( ( '(' ) )
+            // InternalCubeDSL.g:14368:1: ( '(' )
             {
-            // InternalCubeDSL.g:14123:1: ( '(' )
-            // InternalCubeDSL.g:14124:2: '('
+            // InternalCubeDSL.g:14368:1: ( '(' )
+            // InternalCubeDSL.g:14369:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
@@ -47236,14 +48058,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3"
-    // InternalCubeDSL.g:14133:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
+    // InternalCubeDSL.g:14378:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
     public final void rule__XBasicForLoopExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14137:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
-            // InternalCubeDSL.g:14138:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
+            // InternalCubeDSL.g:14382:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
+            // InternalCubeDSL.g:14383:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
             {
             pushFollow(FOLLOW_103);
             rule__XBasicForLoopExpression__Group__3__Impl();
@@ -47274,31 +48096,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__3__Impl"
-    // InternalCubeDSL.g:14145:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
+    // InternalCubeDSL.g:14390:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14149:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
-            // InternalCubeDSL.g:14150:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalCubeDSL.g:14394:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
+            // InternalCubeDSL.g:14395:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
             {
-            // InternalCubeDSL.g:14150:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
-            // InternalCubeDSL.g:14151:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            // InternalCubeDSL.g:14395:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalCubeDSL.g:14396:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
             }
-            // InternalCubeDSL.g:14152:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
-            int alt120=2;
-            int LA120_0 = input.LA(1);
+            // InternalCubeDSL.g:14397:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            int alt123=2;
+            int LA123_0 = input.LA(1);
 
-            if ( ((LA120_0>=RULE_ID && LA120_0<=RULE_DECIMAL)||LA120_0==27||(LA120_0>=34 && LA120_0<=35)||LA120_0==40||(LA120_0>=44 && LA120_0<=50)||LA120_0==74||LA120_0==88||(LA120_0>=92 && LA120_0<=93)||LA120_0==96||LA120_0==98||(LA120_0>=102 && LA120_0<=110)||LA120_0==112||(LA120_0>=130 && LA120_0<=131)) ) {
-                alt120=1;
+            if ( ((LA123_0>=RULE_ID && LA123_0<=RULE_DECIMAL)||LA123_0==27||(LA123_0>=34 && LA123_0<=35)||LA123_0==40||(LA123_0>=44 && LA123_0<=50)||LA123_0==74||LA123_0==88||(LA123_0>=92 && LA123_0<=93)||LA123_0==96||LA123_0==98||(LA123_0>=102 && LA123_0<=110)||LA123_0==112||(LA123_0>=133 && LA123_0<=134)) ) {
+                alt123=1;
             }
-            switch (alt120) {
+            switch (alt123) {
                 case 1 :
-                    // InternalCubeDSL.g:14152:3: rule__XBasicForLoopExpression__Group_3__0
+                    // InternalCubeDSL.g:14397:3: rule__XBasicForLoopExpression__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_3__0();
@@ -47336,14 +48158,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4"
-    // InternalCubeDSL.g:14160:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
+    // InternalCubeDSL.g:14405:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
     public final void rule__XBasicForLoopExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14164:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
-            // InternalCubeDSL.g:14165:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
+            // InternalCubeDSL.g:14409:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
+            // InternalCubeDSL.g:14410:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
             {
             pushFollow(FOLLOW_104);
             rule__XBasicForLoopExpression__Group__4__Impl();
@@ -47374,17 +48196,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__4__Impl"
-    // InternalCubeDSL.g:14172:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
+    // InternalCubeDSL.g:14417:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14176:1: ( ( ';' ) )
-            // InternalCubeDSL.g:14177:1: ( ';' )
+            // InternalCubeDSL.g:14421:1: ( ( ';' ) )
+            // InternalCubeDSL.g:14422:1: ( ';' )
             {
-            // InternalCubeDSL.g:14177:1: ( ';' )
-            // InternalCubeDSL.g:14178:2: ';'
+            // InternalCubeDSL.g:14422:1: ( ';' )
+            // InternalCubeDSL.g:14423:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
@@ -47415,14 +48237,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5"
-    // InternalCubeDSL.g:14187:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
+    // InternalCubeDSL.g:14432:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
     public final void rule__XBasicForLoopExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14191:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
-            // InternalCubeDSL.g:14192:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
+            // InternalCubeDSL.g:14436:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
+            // InternalCubeDSL.g:14437:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
             {
             pushFollow(FOLLOW_104);
             rule__XBasicForLoopExpression__Group__5__Impl();
@@ -47453,31 +48275,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__5__Impl"
-    // InternalCubeDSL.g:14199:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
+    // InternalCubeDSL.g:14444:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14203:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
-            // InternalCubeDSL.g:14204:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalCubeDSL.g:14448:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
+            // InternalCubeDSL.g:14449:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
             {
-            // InternalCubeDSL.g:14204:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
-            // InternalCubeDSL.g:14205:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            // InternalCubeDSL.g:14449:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalCubeDSL.g:14450:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
             }
-            // InternalCubeDSL.g:14206:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
-            int alt121=2;
-            int LA121_0 = input.LA(1);
+            // InternalCubeDSL.g:14451:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            int alt124=2;
+            int LA124_0 = input.LA(1);
 
-            if ( ((LA121_0>=RULE_ID && LA121_0<=RULE_DECIMAL)||LA121_0==27||(LA121_0>=34 && LA121_0<=35)||LA121_0==40||(LA121_0>=45 && LA121_0<=50)||LA121_0==74||LA121_0==88||(LA121_0>=92 && LA121_0<=93)||LA121_0==96||LA121_0==98||(LA121_0>=102 && LA121_0<=110)||LA121_0==112||LA121_0==131) ) {
-                alt121=1;
+            if ( ((LA124_0>=RULE_ID && LA124_0<=RULE_DECIMAL)||LA124_0==27||(LA124_0>=34 && LA124_0<=35)||LA124_0==40||(LA124_0>=45 && LA124_0<=50)||LA124_0==74||LA124_0==88||(LA124_0>=92 && LA124_0<=93)||LA124_0==96||LA124_0==98||(LA124_0>=102 && LA124_0<=110)||LA124_0==112||LA124_0==134) ) {
+                alt124=1;
             }
-            switch (alt121) {
+            switch (alt124) {
                 case 1 :
-                    // InternalCubeDSL.g:14206:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
+                    // InternalCubeDSL.g:14451:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__ExpressionAssignment_5();
@@ -47515,14 +48337,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6"
-    // InternalCubeDSL.g:14214:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
+    // InternalCubeDSL.g:14459:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
     public final void rule__XBasicForLoopExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14218:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
-            // InternalCubeDSL.g:14219:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
+            // InternalCubeDSL.g:14463:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
+            // InternalCubeDSL.g:14464:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
             {
             pushFollow(FOLLOW_45);
             rule__XBasicForLoopExpression__Group__6__Impl();
@@ -47553,17 +48375,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__6__Impl"
-    // InternalCubeDSL.g:14226:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
+    // InternalCubeDSL.g:14471:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
     public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14230:1: ( ( ';' ) )
-            // InternalCubeDSL.g:14231:1: ( ';' )
+            // InternalCubeDSL.g:14475:1: ( ( ';' ) )
+            // InternalCubeDSL.g:14476:1: ( ';' )
             {
-            // InternalCubeDSL.g:14231:1: ( ';' )
-            // InternalCubeDSL.g:14232:2: ';'
+            // InternalCubeDSL.g:14476:1: ( ';' )
+            // InternalCubeDSL.g:14477:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
@@ -47594,14 +48416,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7"
-    // InternalCubeDSL.g:14241:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
+    // InternalCubeDSL.g:14486:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
     public final void rule__XBasicForLoopExpression__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14245:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
-            // InternalCubeDSL.g:14246:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
+            // InternalCubeDSL.g:14490:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
+            // InternalCubeDSL.g:14491:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
             {
             pushFollow(FOLLOW_45);
             rule__XBasicForLoopExpression__Group__7__Impl();
@@ -47632,31 +48454,31 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__7__Impl"
-    // InternalCubeDSL.g:14253:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
+    // InternalCubeDSL.g:14498:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
     public final void rule__XBasicForLoopExpression__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14257:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
-            // InternalCubeDSL.g:14258:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalCubeDSL.g:14502:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
+            // InternalCubeDSL.g:14503:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
             {
-            // InternalCubeDSL.g:14258:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
-            // InternalCubeDSL.g:14259:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            // InternalCubeDSL.g:14503:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalCubeDSL.g:14504:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
             }
-            // InternalCubeDSL.g:14260:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
-            int alt122=2;
-            int LA122_0 = input.LA(1);
+            // InternalCubeDSL.g:14505:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            int alt125=2;
+            int LA125_0 = input.LA(1);
 
-            if ( ((LA122_0>=RULE_ID && LA122_0<=RULE_DECIMAL)||LA122_0==27||(LA122_0>=34 && LA122_0<=35)||LA122_0==40||(LA122_0>=45 && LA122_0<=50)||LA122_0==74||LA122_0==88||(LA122_0>=92 && LA122_0<=93)||LA122_0==96||LA122_0==98||(LA122_0>=102 && LA122_0<=110)||LA122_0==112||LA122_0==131) ) {
-                alt122=1;
+            if ( ((LA125_0>=RULE_ID && LA125_0<=RULE_DECIMAL)||LA125_0==27||(LA125_0>=34 && LA125_0<=35)||LA125_0==40||(LA125_0>=45 && LA125_0<=50)||LA125_0==74||LA125_0==88||(LA125_0>=92 && LA125_0<=93)||LA125_0==96||LA125_0==98||(LA125_0>=102 && LA125_0<=110)||LA125_0==112||LA125_0==134) ) {
+                alt125=1;
             }
-            switch (alt122) {
+            switch (alt125) {
                 case 1 :
-                    // InternalCubeDSL.g:14260:3: rule__XBasicForLoopExpression__Group_7__0
+                    // InternalCubeDSL.g:14505:3: rule__XBasicForLoopExpression__Group_7__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XBasicForLoopExpression__Group_7__0();
@@ -47694,14 +48516,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8"
-    // InternalCubeDSL.g:14268:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
+    // InternalCubeDSL.g:14513:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
     public final void rule__XBasicForLoopExpression__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14272:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
-            // InternalCubeDSL.g:14273:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
+            // InternalCubeDSL.g:14517:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
+            // InternalCubeDSL.g:14518:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
             {
             pushFollow(FOLLOW_48);
             rule__XBasicForLoopExpression__Group__8__Impl();
@@ -47732,17 +48554,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__8__Impl"
-    // InternalCubeDSL.g:14280:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:14525:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
     public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14284:1: ( ( ')' ) )
-            // InternalCubeDSL.g:14285:1: ( ')' )
+            // InternalCubeDSL.g:14529:1: ( ( ')' ) )
+            // InternalCubeDSL.g:14530:1: ( ')' )
             {
-            // InternalCubeDSL.g:14285:1: ( ')' )
-            // InternalCubeDSL.g:14286:2: ')'
+            // InternalCubeDSL.g:14530:1: ( ')' )
+            // InternalCubeDSL.g:14531:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
@@ -47773,14 +48595,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9"
-    // InternalCubeDSL.g:14295:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
+    // InternalCubeDSL.g:14540:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
     public final void rule__XBasicForLoopExpression__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14299:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
-            // InternalCubeDSL.g:14300:2: rule__XBasicForLoopExpression__Group__9__Impl
+            // InternalCubeDSL.g:14544:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
+            // InternalCubeDSL.g:14545:2: rule__XBasicForLoopExpression__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group__9__Impl();
@@ -47806,23 +48628,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group__9__Impl"
-    // InternalCubeDSL.g:14306:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
+    // InternalCubeDSL.g:14551:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
     public final void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14310:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
-            // InternalCubeDSL.g:14311:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalCubeDSL.g:14555:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
+            // InternalCubeDSL.g:14556:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
             {
-            // InternalCubeDSL.g:14311:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
-            // InternalCubeDSL.g:14312:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalCubeDSL.g:14556:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalCubeDSL.g:14557:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
             }
-            // InternalCubeDSL.g:14313:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
-            // InternalCubeDSL.g:14313:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
+            // InternalCubeDSL.g:14558:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalCubeDSL.g:14558:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__EachExpressionAssignment_9();
@@ -47857,14 +48679,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0"
-    // InternalCubeDSL.g:14322:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
+    // InternalCubeDSL.g:14567:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
     public final void rule__XBasicForLoopExpression__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14326:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
-            // InternalCubeDSL.g:14327:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
+            // InternalCubeDSL.g:14571:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
+            // InternalCubeDSL.g:14572:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
             {
             pushFollow(FOLLOW_46);
             rule__XBasicForLoopExpression__Group_3__0__Impl();
@@ -47895,23 +48717,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0__Impl"
-    // InternalCubeDSL.g:14334:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
+    // InternalCubeDSL.g:14579:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14338:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
-            // InternalCubeDSL.g:14339:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalCubeDSL.g:14583:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
+            // InternalCubeDSL.g:14584:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
             {
-            // InternalCubeDSL.g:14339:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
-            // InternalCubeDSL.g:14340:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalCubeDSL.g:14584:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalCubeDSL.g:14585:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
             }
-            // InternalCubeDSL.g:14341:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
-            // InternalCubeDSL.g:14341:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
+            // InternalCubeDSL.g:14586:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalCubeDSL.g:14586:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0();
@@ -47946,14 +48768,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1"
-    // InternalCubeDSL.g:14349:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
+    // InternalCubeDSL.g:14594:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14353:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
-            // InternalCubeDSL.g:14354:2: rule__XBasicForLoopExpression__Group_3__1__Impl
+            // InternalCubeDSL.g:14598:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
+            // InternalCubeDSL.g:14599:2: rule__XBasicForLoopExpression__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3__1__Impl();
@@ -47979,35 +48801,35 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1__Impl"
-    // InternalCubeDSL.g:14360:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
+    // InternalCubeDSL.g:14605:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
     public final void rule__XBasicForLoopExpression__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14364:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
-            // InternalCubeDSL.g:14365:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalCubeDSL.g:14609:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
+            // InternalCubeDSL.g:14610:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
             {
-            // InternalCubeDSL.g:14365:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
-            // InternalCubeDSL.g:14366:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            // InternalCubeDSL.g:14610:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalCubeDSL.g:14611:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
             }
-            // InternalCubeDSL.g:14367:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
-            loop123:
+            // InternalCubeDSL.g:14612:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            loop126:
             do {
-                int alt123=2;
-                int LA123_0 = input.LA(1);
+                int alt126=2;
+                int LA126_0 = input.LA(1);
 
-                if ( (LA123_0==90) ) {
-                    alt123=1;
+                if ( (LA126_0==90) ) {
+                    alt126=1;
                 }
 
 
-                switch (alt123) {
+                switch (alt126) {
             	case 1 :
-            	    // InternalCubeDSL.g:14367:3: rule__XBasicForLoopExpression__Group_3_1__0
+            	    // InternalCubeDSL.g:14612:3: rule__XBasicForLoopExpression__Group_3_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XBasicForLoopExpression__Group_3_1__0();
@@ -48019,7 +48841,7 @@
             	    break;
 
             	default :
-            	    break loop123;
+            	    break loop126;
                 }
             } while (true);
 
@@ -48048,14 +48870,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0"
-    // InternalCubeDSL.g:14376:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
+    // InternalCubeDSL.g:14621:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14380:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
-            // InternalCubeDSL.g:14381:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
+            // InternalCubeDSL.g:14625:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
+            // InternalCubeDSL.g:14626:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
             {
             pushFollow(FOLLOW_105);
             rule__XBasicForLoopExpression__Group_3_1__0__Impl();
@@ -48086,17 +48908,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
-    // InternalCubeDSL.g:14388:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:14633:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14392:1: ( ( ',' ) )
-            // InternalCubeDSL.g:14393:1: ( ',' )
+            // InternalCubeDSL.g:14637:1: ( ( ',' ) )
+            // InternalCubeDSL.g:14638:1: ( ',' )
             {
-            // InternalCubeDSL.g:14393:1: ( ',' )
-            // InternalCubeDSL.g:14394:2: ','
+            // InternalCubeDSL.g:14638:1: ( ',' )
+            // InternalCubeDSL.g:14639:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
@@ -48127,14 +48949,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1"
-    // InternalCubeDSL.g:14403:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
+    // InternalCubeDSL.g:14648:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14407:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
-            // InternalCubeDSL.g:14408:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
+            // InternalCubeDSL.g:14652:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
+            // InternalCubeDSL.g:14653:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_3_1__1__Impl();
@@ -48160,23 +48982,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
-    // InternalCubeDSL.g:14414:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
+    // InternalCubeDSL.g:14659:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14418:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
-            // InternalCubeDSL.g:14419:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalCubeDSL.g:14663:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
+            // InternalCubeDSL.g:14664:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
             {
-            // InternalCubeDSL.g:14419:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
-            // InternalCubeDSL.g:14420:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalCubeDSL.g:14664:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalCubeDSL.g:14665:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
             }
-            // InternalCubeDSL.g:14421:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
-            // InternalCubeDSL.g:14421:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
+            // InternalCubeDSL.g:14666:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalCubeDSL.g:14666:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1();
@@ -48211,14 +49033,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0"
-    // InternalCubeDSL.g:14430:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
+    // InternalCubeDSL.g:14675:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
     public final void rule__XBasicForLoopExpression__Group_7__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14434:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
-            // InternalCubeDSL.g:14435:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
+            // InternalCubeDSL.g:14679:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
+            // InternalCubeDSL.g:14680:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
             {
             pushFollow(FOLLOW_46);
             rule__XBasicForLoopExpression__Group_7__0__Impl();
@@ -48249,23 +49071,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0__Impl"
-    // InternalCubeDSL.g:14442:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
+    // InternalCubeDSL.g:14687:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_7__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14446:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
-            // InternalCubeDSL.g:14447:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalCubeDSL.g:14691:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
+            // InternalCubeDSL.g:14692:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
             {
-            // InternalCubeDSL.g:14447:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
-            // InternalCubeDSL.g:14448:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalCubeDSL.g:14692:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalCubeDSL.g:14693:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
             }
-            // InternalCubeDSL.g:14449:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
-            // InternalCubeDSL.g:14449:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
+            // InternalCubeDSL.g:14694:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalCubeDSL.g:14694:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0();
@@ -48300,14 +49122,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1"
-    // InternalCubeDSL.g:14457:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
+    // InternalCubeDSL.g:14702:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_7__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14461:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
-            // InternalCubeDSL.g:14462:2: rule__XBasicForLoopExpression__Group_7__1__Impl
+            // InternalCubeDSL.g:14706:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
+            // InternalCubeDSL.g:14707:2: rule__XBasicForLoopExpression__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7__1__Impl();
@@ -48333,35 +49155,35 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1__Impl"
-    // InternalCubeDSL.g:14468:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
+    // InternalCubeDSL.g:14713:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
     public final void rule__XBasicForLoopExpression__Group_7__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14472:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
-            // InternalCubeDSL.g:14473:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalCubeDSL.g:14717:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
+            // InternalCubeDSL.g:14718:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
             {
-            // InternalCubeDSL.g:14473:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
-            // InternalCubeDSL.g:14474:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            // InternalCubeDSL.g:14718:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalCubeDSL.g:14719:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
             }
-            // InternalCubeDSL.g:14475:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
-            loop124:
+            // InternalCubeDSL.g:14720:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            loop127:
             do {
-                int alt124=2;
-                int LA124_0 = input.LA(1);
+                int alt127=2;
+                int LA127_0 = input.LA(1);
 
-                if ( (LA124_0==90) ) {
-                    alt124=1;
+                if ( (LA127_0==90) ) {
+                    alt127=1;
                 }
 
 
-                switch (alt124) {
+                switch (alt127) {
             	case 1 :
-            	    // InternalCubeDSL.g:14475:3: rule__XBasicForLoopExpression__Group_7_1__0
+            	    // InternalCubeDSL.g:14720:3: rule__XBasicForLoopExpression__Group_7_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XBasicForLoopExpression__Group_7_1__0();
@@ -48373,7 +49195,7 @@
             	    break;
 
             	default :
-            	    break loop124;
+            	    break loop127;
                 }
             } while (true);
 
@@ -48402,14 +49224,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0"
-    // InternalCubeDSL.g:14484:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
+    // InternalCubeDSL.g:14729:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14488:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
-            // InternalCubeDSL.g:14489:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
+            // InternalCubeDSL.g:14733:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
+            // InternalCubeDSL.g:14734:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XBasicForLoopExpression__Group_7_1__0__Impl();
@@ -48440,17 +49262,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
-    // InternalCubeDSL.g:14496:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:14741:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14500:1: ( ( ',' ) )
-            // InternalCubeDSL.g:14501:1: ( ',' )
+            // InternalCubeDSL.g:14745:1: ( ( ',' ) )
+            // InternalCubeDSL.g:14746:1: ( ',' )
             {
-            // InternalCubeDSL.g:14501:1: ( ',' )
-            // InternalCubeDSL.g:14502:2: ','
+            // InternalCubeDSL.g:14746:1: ( ',' )
+            // InternalCubeDSL.g:14747:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
@@ -48481,14 +49303,14 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1"
-    // InternalCubeDSL.g:14511:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
+    // InternalCubeDSL.g:14756:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
     public final void rule__XBasicForLoopExpression__Group_7_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14515:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
-            // InternalCubeDSL.g:14516:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
+            // InternalCubeDSL.g:14760:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
+            // InternalCubeDSL.g:14761:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__Group_7_1__1__Impl();
@@ -48514,23 +49336,23 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
-    // InternalCubeDSL.g:14522:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
+    // InternalCubeDSL.g:14767:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
     public final void rule__XBasicForLoopExpression__Group_7_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14526:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
-            // InternalCubeDSL.g:14527:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalCubeDSL.g:14771:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
+            // InternalCubeDSL.g:14772:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
             {
-            // InternalCubeDSL.g:14527:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
-            // InternalCubeDSL.g:14528:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalCubeDSL.g:14772:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalCubeDSL.g:14773:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
             }
-            // InternalCubeDSL.g:14529:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
-            // InternalCubeDSL.g:14529:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
+            // InternalCubeDSL.g:14774:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalCubeDSL.g:14774:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1();
@@ -48565,14 +49387,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0"
-    // InternalCubeDSL.g:14538:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
+    // InternalCubeDSL.g:14783:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
     public final void rule__XWhileExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14542:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
-            // InternalCubeDSL.g:14543:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
+            // InternalCubeDSL.g:14787:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
+            // InternalCubeDSL.g:14788:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
             {
             pushFollow(FOLLOW_106);
             rule__XWhileExpression__Group__0__Impl();
@@ -48603,23 +49425,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
-    // InternalCubeDSL.g:14550:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:14795:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14554:1: ( ( () ) )
-            // InternalCubeDSL.g:14555:1: ( () )
+            // InternalCubeDSL.g:14799:1: ( ( () ) )
+            // InternalCubeDSL.g:14800:1: ( () )
             {
-            // InternalCubeDSL.g:14555:1: ( () )
-            // InternalCubeDSL.g:14556:2: ()
+            // InternalCubeDSL.g:14800:1: ( () )
+            // InternalCubeDSL.g:14801:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:14557:2: ()
-            // InternalCubeDSL.g:14557:3: 
+            // InternalCubeDSL.g:14802:2: ()
+            // InternalCubeDSL.g:14802:3: 
             {
             }
 
@@ -48644,14 +49466,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1"
-    // InternalCubeDSL.g:14565:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
+    // InternalCubeDSL.g:14810:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
     public final void rule__XWhileExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14569:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
-            // InternalCubeDSL.g:14570:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
+            // InternalCubeDSL.g:14814:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
+            // InternalCubeDSL.g:14815:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
             {
             pushFollow(FOLLOW_44);
             rule__XWhileExpression__Group__1__Impl();
@@ -48682,17 +49504,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
-    // InternalCubeDSL.g:14577:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
+    // InternalCubeDSL.g:14822:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
     public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14581:1: ( ( 'while' ) )
-            // InternalCubeDSL.g:14582:1: ( 'while' )
+            // InternalCubeDSL.g:14826:1: ( ( 'while' ) )
+            // InternalCubeDSL.g:14827:1: ( 'while' )
             {
-            // InternalCubeDSL.g:14582:1: ( 'while' )
-            // InternalCubeDSL.g:14583:2: 'while'
+            // InternalCubeDSL.g:14827:1: ( 'while' )
+            // InternalCubeDSL.g:14828:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
@@ -48723,14 +49545,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2"
-    // InternalCubeDSL.g:14592:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
+    // InternalCubeDSL.g:14837:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
     public final void rule__XWhileExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14596:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
-            // InternalCubeDSL.g:14597:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
+            // InternalCubeDSL.g:14841:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
+            // InternalCubeDSL.g:14842:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
             {
             pushFollow(FOLLOW_48);
             rule__XWhileExpression__Group__2__Impl();
@@ -48761,17 +49583,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
-    // InternalCubeDSL.g:14604:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:14849:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
     public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14608:1: ( ( '(' ) )
-            // InternalCubeDSL.g:14609:1: ( '(' )
+            // InternalCubeDSL.g:14853:1: ( ( '(' ) )
+            // InternalCubeDSL.g:14854:1: ( '(' )
             {
-            // InternalCubeDSL.g:14609:1: ( '(' )
-            // InternalCubeDSL.g:14610:2: '('
+            // InternalCubeDSL.g:14854:1: ( '(' )
+            // InternalCubeDSL.g:14855:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
@@ -48802,14 +49624,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3"
-    // InternalCubeDSL.g:14619:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
+    // InternalCubeDSL.g:14864:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
     public final void rule__XWhileExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14623:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
-            // InternalCubeDSL.g:14624:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
+            // InternalCubeDSL.g:14868:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
+            // InternalCubeDSL.g:14869:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
             {
             pushFollow(FOLLOW_93);
             rule__XWhileExpression__Group__3__Impl();
@@ -48840,23 +49662,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
-    // InternalCubeDSL.g:14631:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
+    // InternalCubeDSL.g:14876:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
     public final void rule__XWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14635:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
-            // InternalCubeDSL.g:14636:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalCubeDSL.g:14880:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
+            // InternalCubeDSL.g:14881:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
             {
-            // InternalCubeDSL.g:14636:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
-            // InternalCubeDSL.g:14637:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalCubeDSL.g:14881:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalCubeDSL.g:14882:2: ( rule__XWhileExpression__PredicateAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
             }
-            // InternalCubeDSL.g:14638:2: ( rule__XWhileExpression__PredicateAssignment_3 )
-            // InternalCubeDSL.g:14638:3: rule__XWhileExpression__PredicateAssignment_3
+            // InternalCubeDSL.g:14883:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalCubeDSL.g:14883:3: rule__XWhileExpression__PredicateAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__PredicateAssignment_3();
@@ -48891,14 +49713,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4"
-    // InternalCubeDSL.g:14646:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
+    // InternalCubeDSL.g:14891:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
     public final void rule__XWhileExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14650:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
-            // InternalCubeDSL.g:14651:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
+            // InternalCubeDSL.g:14895:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
+            // InternalCubeDSL.g:14896:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
             {
             pushFollow(FOLLOW_48);
             rule__XWhileExpression__Group__4__Impl();
@@ -48929,17 +49751,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
-    // InternalCubeDSL.g:14658:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:14903:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
     public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14662:1: ( ( ')' ) )
-            // InternalCubeDSL.g:14663:1: ( ')' )
+            // InternalCubeDSL.g:14907:1: ( ( ')' ) )
+            // InternalCubeDSL.g:14908:1: ( ')' )
             {
-            // InternalCubeDSL.g:14663:1: ( ')' )
-            // InternalCubeDSL.g:14664:2: ')'
+            // InternalCubeDSL.g:14908:1: ( ')' )
+            // InternalCubeDSL.g:14909:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
@@ -48970,14 +49792,14 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5"
-    // InternalCubeDSL.g:14673:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
+    // InternalCubeDSL.g:14918:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
     public final void rule__XWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14677:1: ( rule__XWhileExpression__Group__5__Impl )
-            // InternalCubeDSL.g:14678:2: rule__XWhileExpression__Group__5__Impl
+            // InternalCubeDSL.g:14922:1: ( rule__XWhileExpression__Group__5__Impl )
+            // InternalCubeDSL.g:14923:2: rule__XWhileExpression__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__Group__5__Impl();
@@ -49003,23 +49825,23 @@
 
 
     // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
-    // InternalCubeDSL.g:14684:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
+    // InternalCubeDSL.g:14929:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
     public final void rule__XWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14688:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
-            // InternalCubeDSL.g:14689:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalCubeDSL.g:14933:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
+            // InternalCubeDSL.g:14934:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
             {
-            // InternalCubeDSL.g:14689:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
-            // InternalCubeDSL.g:14690:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalCubeDSL.g:14934:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalCubeDSL.g:14935:2: ( rule__XWhileExpression__BodyAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
             }
-            // InternalCubeDSL.g:14691:2: ( rule__XWhileExpression__BodyAssignment_5 )
-            // InternalCubeDSL.g:14691:3: rule__XWhileExpression__BodyAssignment_5
+            // InternalCubeDSL.g:14936:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalCubeDSL.g:14936:3: rule__XWhileExpression__BodyAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XWhileExpression__BodyAssignment_5();
@@ -49054,14 +49876,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0"
-    // InternalCubeDSL.g:14700:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
+    // InternalCubeDSL.g:14945:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
     public final void rule__XDoWhileExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14704:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
-            // InternalCubeDSL.g:14705:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
+            // InternalCubeDSL.g:14949:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
+            // InternalCubeDSL.g:14950:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
             {
             pushFollow(FOLLOW_107);
             rule__XDoWhileExpression__Group__0__Impl();
@@ -49092,23 +49914,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
-    // InternalCubeDSL.g:14712:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:14957:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
     public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14716:1: ( ( () ) )
-            // InternalCubeDSL.g:14717:1: ( () )
+            // InternalCubeDSL.g:14961:1: ( ( () ) )
+            // InternalCubeDSL.g:14962:1: ( () )
             {
-            // InternalCubeDSL.g:14717:1: ( () )
-            // InternalCubeDSL.g:14718:2: ()
+            // InternalCubeDSL.g:14962:1: ( () )
+            // InternalCubeDSL.g:14963:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:14719:2: ()
-            // InternalCubeDSL.g:14719:3: 
+            // InternalCubeDSL.g:14964:2: ()
+            // InternalCubeDSL.g:14964:3: 
             {
             }
 
@@ -49133,14 +49955,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1"
-    // InternalCubeDSL.g:14727:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
+    // InternalCubeDSL.g:14972:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
     public final void rule__XDoWhileExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14731:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
-            // InternalCubeDSL.g:14732:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
+            // InternalCubeDSL.g:14976:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
+            // InternalCubeDSL.g:14977:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
             {
             pushFollow(FOLLOW_48);
             rule__XDoWhileExpression__Group__1__Impl();
@@ -49171,17 +49993,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
-    // InternalCubeDSL.g:14739:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
+    // InternalCubeDSL.g:14984:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
     public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14743:1: ( ( 'do' ) )
-            // InternalCubeDSL.g:14744:1: ( 'do' )
+            // InternalCubeDSL.g:14988:1: ( ( 'do' ) )
+            // InternalCubeDSL.g:14989:1: ( 'do' )
             {
-            // InternalCubeDSL.g:14744:1: ( 'do' )
-            // InternalCubeDSL.g:14745:2: 'do'
+            // InternalCubeDSL.g:14989:1: ( 'do' )
+            // InternalCubeDSL.g:14990:2: 'do'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
@@ -49212,14 +50034,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2"
-    // InternalCubeDSL.g:14754:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
+    // InternalCubeDSL.g:14999:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
     public final void rule__XDoWhileExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14758:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
-            // InternalCubeDSL.g:14759:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
+            // InternalCubeDSL.g:15003:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
+            // InternalCubeDSL.g:15004:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
             {
             pushFollow(FOLLOW_106);
             rule__XDoWhileExpression__Group__2__Impl();
@@ -49250,23 +50072,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
-    // InternalCubeDSL.g:14766:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
+    // InternalCubeDSL.g:15011:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
     public final void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14770:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
-            // InternalCubeDSL.g:14771:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalCubeDSL.g:15015:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
+            // InternalCubeDSL.g:15016:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
             {
-            // InternalCubeDSL.g:14771:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
-            // InternalCubeDSL.g:14772:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalCubeDSL.g:15016:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalCubeDSL.g:15017:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
             }
-            // InternalCubeDSL.g:14773:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
-            // InternalCubeDSL.g:14773:3: rule__XDoWhileExpression__BodyAssignment_2
+            // InternalCubeDSL.g:15018:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalCubeDSL.g:15018:3: rule__XDoWhileExpression__BodyAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__BodyAssignment_2();
@@ -49301,14 +50123,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3"
-    // InternalCubeDSL.g:14781:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
+    // InternalCubeDSL.g:15026:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
     public final void rule__XDoWhileExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14785:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
-            // InternalCubeDSL.g:14786:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
+            // InternalCubeDSL.g:15030:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
+            // InternalCubeDSL.g:15031:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
             {
             pushFollow(FOLLOW_44);
             rule__XDoWhileExpression__Group__3__Impl();
@@ -49339,17 +50161,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
-    // InternalCubeDSL.g:14793:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
+    // InternalCubeDSL.g:15038:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
     public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14797:1: ( ( 'while' ) )
-            // InternalCubeDSL.g:14798:1: ( 'while' )
+            // InternalCubeDSL.g:15042:1: ( ( 'while' ) )
+            // InternalCubeDSL.g:15043:1: ( 'while' )
             {
-            // InternalCubeDSL.g:14798:1: ( 'while' )
-            // InternalCubeDSL.g:14799:2: 'while'
+            // InternalCubeDSL.g:15043:1: ( 'while' )
+            // InternalCubeDSL.g:15044:2: 'while'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
@@ -49380,14 +50202,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4"
-    // InternalCubeDSL.g:14808:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
+    // InternalCubeDSL.g:15053:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
     public final void rule__XDoWhileExpression__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14812:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
-            // InternalCubeDSL.g:14813:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
+            // InternalCubeDSL.g:15057:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
+            // InternalCubeDSL.g:15058:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
             {
             pushFollow(FOLLOW_48);
             rule__XDoWhileExpression__Group__4__Impl();
@@ -49418,17 +50240,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
-    // InternalCubeDSL.g:14820:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:15065:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
     public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14824:1: ( ( '(' ) )
-            // InternalCubeDSL.g:14825:1: ( '(' )
+            // InternalCubeDSL.g:15069:1: ( ( '(' ) )
+            // InternalCubeDSL.g:15070:1: ( '(' )
             {
-            // InternalCubeDSL.g:14825:1: ( '(' )
-            // InternalCubeDSL.g:14826:2: '('
+            // InternalCubeDSL.g:15070:1: ( '(' )
+            // InternalCubeDSL.g:15071:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
@@ -49459,14 +50281,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5"
-    // InternalCubeDSL.g:14835:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
+    // InternalCubeDSL.g:15080:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
     public final void rule__XDoWhileExpression__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14839:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
-            // InternalCubeDSL.g:14840:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
+            // InternalCubeDSL.g:15084:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
+            // InternalCubeDSL.g:15085:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
             {
             pushFollow(FOLLOW_93);
             rule__XDoWhileExpression__Group__5__Impl();
@@ -49497,23 +50319,23 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
-    // InternalCubeDSL.g:14847:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
+    // InternalCubeDSL.g:15092:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
     public final void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14851:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
-            // InternalCubeDSL.g:14852:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalCubeDSL.g:15096:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
+            // InternalCubeDSL.g:15097:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
             {
-            // InternalCubeDSL.g:14852:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
-            // InternalCubeDSL.g:14853:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalCubeDSL.g:15097:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalCubeDSL.g:15098:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
             }
-            // InternalCubeDSL.g:14854:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
-            // InternalCubeDSL.g:14854:3: rule__XDoWhileExpression__PredicateAssignment_5
+            // InternalCubeDSL.g:15099:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalCubeDSL.g:15099:3: rule__XDoWhileExpression__PredicateAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__PredicateAssignment_5();
@@ -49548,14 +50370,14 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6"
-    // InternalCubeDSL.g:14862:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
+    // InternalCubeDSL.g:15107:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
     public final void rule__XDoWhileExpression__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14866:1: ( rule__XDoWhileExpression__Group__6__Impl )
-            // InternalCubeDSL.g:14867:2: rule__XDoWhileExpression__Group__6__Impl
+            // InternalCubeDSL.g:15111:1: ( rule__XDoWhileExpression__Group__6__Impl )
+            // InternalCubeDSL.g:15112:2: rule__XDoWhileExpression__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XDoWhileExpression__Group__6__Impl();
@@ -49581,17 +50403,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
-    // InternalCubeDSL.g:14873:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:15118:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
     public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14877:1: ( ( ')' ) )
-            // InternalCubeDSL.g:14878:1: ( ')' )
+            // InternalCubeDSL.g:15122:1: ( ( ')' ) )
+            // InternalCubeDSL.g:15123:1: ( ')' )
             {
-            // InternalCubeDSL.g:14878:1: ( ')' )
-            // InternalCubeDSL.g:14879:2: ')'
+            // InternalCubeDSL.g:15123:1: ( ')' )
+            // InternalCubeDSL.g:15124:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
@@ -49622,14 +50444,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0"
-    // InternalCubeDSL.g:14889:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
+    // InternalCubeDSL.g:15134:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
     public final void rule__XBlockExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14893:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
-            // InternalCubeDSL.g:14894:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
+            // InternalCubeDSL.g:15138:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
+            // InternalCubeDSL.g:15139:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__XBlockExpression__Group__0__Impl();
@@ -49660,23 +50482,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
-    // InternalCubeDSL.g:14901:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:15146:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
     public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14905:1: ( ( () ) )
-            // InternalCubeDSL.g:14906:1: ( () )
+            // InternalCubeDSL.g:15150:1: ( ( () ) )
+            // InternalCubeDSL.g:15151:1: ( () )
             {
-            // InternalCubeDSL.g:14906:1: ( () )
-            // InternalCubeDSL.g:14907:2: ()
+            // InternalCubeDSL.g:15151:1: ( () )
+            // InternalCubeDSL.g:15152:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:14908:2: ()
-            // InternalCubeDSL.g:14908:3: 
+            // InternalCubeDSL.g:15153:2: ()
+            // InternalCubeDSL.g:15153:3: 
             {
             }
 
@@ -49701,14 +50523,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1"
-    // InternalCubeDSL.g:14916:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
+    // InternalCubeDSL.g:15161:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
     public final void rule__XBlockExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14920:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
-            // InternalCubeDSL.g:14921:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
+            // InternalCubeDSL.g:15165:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
+            // InternalCubeDSL.g:15166:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
             {
             pushFollow(FOLLOW_108);
             rule__XBlockExpression__Group__1__Impl();
@@ -49739,17 +50561,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
-    // InternalCubeDSL.g:14928:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
+    // InternalCubeDSL.g:15173:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
     public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14932:1: ( ( '{' ) )
-            // InternalCubeDSL.g:14933:1: ( '{' )
+            // InternalCubeDSL.g:15177:1: ( ( '{' ) )
+            // InternalCubeDSL.g:15178:1: ( '{' )
             {
-            // InternalCubeDSL.g:14933:1: ( '{' )
-            // InternalCubeDSL.g:14934:2: '{'
+            // InternalCubeDSL.g:15178:1: ( '{' )
+            // InternalCubeDSL.g:15179:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
@@ -49780,14 +50602,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2"
-    // InternalCubeDSL.g:14943:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
+    // InternalCubeDSL.g:15188:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
     public final void rule__XBlockExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14947:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
-            // InternalCubeDSL.g:14948:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
+            // InternalCubeDSL.g:15192:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
+            // InternalCubeDSL.g:15193:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
             {
             pushFollow(FOLLOW_108);
             rule__XBlockExpression__Group__2__Impl();
@@ -49818,35 +50640,35 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
-    // InternalCubeDSL.g:14955:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
+    // InternalCubeDSL.g:15200:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
     public final void rule__XBlockExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14959:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
-            // InternalCubeDSL.g:14960:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalCubeDSL.g:15204:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
+            // InternalCubeDSL.g:15205:1: ( ( rule__XBlockExpression__Group_2__0 )* )
             {
-            // InternalCubeDSL.g:14960:1: ( ( rule__XBlockExpression__Group_2__0 )* )
-            // InternalCubeDSL.g:14961:2: ( rule__XBlockExpression__Group_2__0 )*
+            // InternalCubeDSL.g:15205:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalCubeDSL.g:15206:2: ( rule__XBlockExpression__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
             }
-            // InternalCubeDSL.g:14962:2: ( rule__XBlockExpression__Group_2__0 )*
-            loop125:
+            // InternalCubeDSL.g:15207:2: ( rule__XBlockExpression__Group_2__0 )*
+            loop128:
             do {
-                int alt125=2;
-                int LA125_0 = input.LA(1);
+                int alt128=2;
+                int LA128_0 = input.LA(1);
 
-                if ( ((LA125_0>=RULE_ID && LA125_0<=RULE_DECIMAL)||LA125_0==27||(LA125_0>=34 && LA125_0<=35)||LA125_0==40||(LA125_0>=44 && LA125_0<=50)||LA125_0==74||LA125_0==88||(LA125_0>=92 && LA125_0<=93)||LA125_0==96||LA125_0==98||(LA125_0>=102 && LA125_0<=110)||LA125_0==112||(LA125_0>=130 && LA125_0<=131)) ) {
-                    alt125=1;
+                if ( ((LA128_0>=RULE_ID && LA128_0<=RULE_DECIMAL)||LA128_0==27||(LA128_0>=34 && LA128_0<=35)||LA128_0==40||(LA128_0>=44 && LA128_0<=50)||LA128_0==74||LA128_0==88||(LA128_0>=92 && LA128_0<=93)||LA128_0==96||LA128_0==98||(LA128_0>=102 && LA128_0<=110)||LA128_0==112||(LA128_0>=133 && LA128_0<=134)) ) {
+                    alt128=1;
                 }
 
 
-                switch (alt125) {
+                switch (alt128) {
             	case 1 :
-            	    // InternalCubeDSL.g:14962:3: rule__XBlockExpression__Group_2__0
+            	    // InternalCubeDSL.g:15207:3: rule__XBlockExpression__Group_2__0
             	    {
             	    pushFollow(FOLLOW_92);
             	    rule__XBlockExpression__Group_2__0();
@@ -49858,7 +50680,7 @@
             	    break;
 
             	default :
-            	    break loop125;
+            	    break loop128;
                 }
             } while (true);
 
@@ -49887,14 +50709,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3"
-    // InternalCubeDSL.g:14970:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
+    // InternalCubeDSL.g:15215:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
     public final void rule__XBlockExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14974:1: ( rule__XBlockExpression__Group__3__Impl )
-            // InternalCubeDSL.g:14975:2: rule__XBlockExpression__Group__3__Impl
+            // InternalCubeDSL.g:15219:1: ( rule__XBlockExpression__Group__3__Impl )
+            // InternalCubeDSL.g:15220:2: rule__XBlockExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group__3__Impl();
@@ -49920,17 +50742,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
-    // InternalCubeDSL.g:14981:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
+    // InternalCubeDSL.g:15226:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
     public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:14985:1: ( ( '}' ) )
-            // InternalCubeDSL.g:14986:1: ( '}' )
+            // InternalCubeDSL.g:15230:1: ( ( '}' ) )
+            // InternalCubeDSL.g:15231:1: ( '}' )
             {
-            // InternalCubeDSL.g:14986:1: ( '}' )
-            // InternalCubeDSL.g:14987:2: '}'
+            // InternalCubeDSL.g:15231:1: ( '}' )
+            // InternalCubeDSL.g:15232:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
@@ -49961,14 +50783,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0"
-    // InternalCubeDSL.g:14997:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
+    // InternalCubeDSL.g:15242:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
     public final void rule__XBlockExpression__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15001:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
-            // InternalCubeDSL.g:15002:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
+            // InternalCubeDSL.g:15246:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
+            // InternalCubeDSL.g:15247:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
             {
             pushFollow(FOLLOW_40);
             rule__XBlockExpression__Group_2__0__Impl();
@@ -49999,23 +50821,23 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
-    // InternalCubeDSL.g:15009:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
+    // InternalCubeDSL.g:15254:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
     public final void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15013:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
-            // InternalCubeDSL.g:15014:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalCubeDSL.g:15258:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
+            // InternalCubeDSL.g:15259:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
             {
-            // InternalCubeDSL.g:15014:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
-            // InternalCubeDSL.g:15015:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalCubeDSL.g:15259:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalCubeDSL.g:15260:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
             }
-            // InternalCubeDSL.g:15016:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
-            // InternalCubeDSL.g:15016:3: rule__XBlockExpression__ExpressionsAssignment_2_0
+            // InternalCubeDSL.g:15261:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalCubeDSL.g:15261:3: rule__XBlockExpression__ExpressionsAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__ExpressionsAssignment_2_0();
@@ -50050,14 +50872,14 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1"
-    // InternalCubeDSL.g:15024:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
+    // InternalCubeDSL.g:15269:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
     public final void rule__XBlockExpression__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15028:1: ( rule__XBlockExpression__Group_2__1__Impl )
-            // InternalCubeDSL.g:15029:2: rule__XBlockExpression__Group_2__1__Impl
+            // InternalCubeDSL.g:15273:1: ( rule__XBlockExpression__Group_2__1__Impl )
+            // InternalCubeDSL.g:15274:2: rule__XBlockExpression__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBlockExpression__Group_2__1__Impl();
@@ -50083,31 +50905,31 @@
 
 
     // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
-    // InternalCubeDSL.g:15035:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
+    // InternalCubeDSL.g:15280:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
     public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15039:1: ( ( ( ';' )? ) )
-            // InternalCubeDSL.g:15040:1: ( ( ';' )? )
+            // InternalCubeDSL.g:15284:1: ( ( ( ';' )? ) )
+            // InternalCubeDSL.g:15285:1: ( ( ';' )? )
             {
-            // InternalCubeDSL.g:15040:1: ( ( ';' )? )
-            // InternalCubeDSL.g:15041:2: ( ';' )?
+            // InternalCubeDSL.g:15285:1: ( ( ';' )? )
+            // InternalCubeDSL.g:15286:2: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
             }
-            // InternalCubeDSL.g:15042:2: ( ';' )?
-            int alt126=2;
-            int LA126_0 = input.LA(1);
+            // InternalCubeDSL.g:15287:2: ( ';' )?
+            int alt129=2;
+            int LA129_0 = input.LA(1);
 
-            if ( (LA126_0==86) ) {
-                alt126=1;
+            if ( (LA129_0==86) ) {
+                alt129=1;
             }
-            switch (alt126) {
+            switch (alt129) {
                 case 1 :
-                    // InternalCubeDSL.g:15042:3: ';'
+                    // InternalCubeDSL.g:15287:3: ';'
                     {
                     match(input,86,FOLLOW_2); if (state.failed) return ;
 
@@ -50141,14 +50963,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0"
-    // InternalCubeDSL.g:15051:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
+    // InternalCubeDSL.g:15296:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
     public final void rule__XVariableDeclaration__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15055:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
-            // InternalCubeDSL.g:15056:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
+            // InternalCubeDSL.g:15300:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
+            // InternalCubeDSL.g:15301:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
             {
             pushFollow(FOLLOW_109);
             rule__XVariableDeclaration__Group__0__Impl();
@@ -50179,23 +51001,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
-    // InternalCubeDSL.g:15063:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:15308:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
     public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15067:1: ( ( () ) )
-            // InternalCubeDSL.g:15068:1: ( () )
+            // InternalCubeDSL.g:15312:1: ( ( () ) )
+            // InternalCubeDSL.g:15313:1: ( () )
             {
-            // InternalCubeDSL.g:15068:1: ( () )
-            // InternalCubeDSL.g:15069:2: ()
+            // InternalCubeDSL.g:15313:1: ( () )
+            // InternalCubeDSL.g:15314:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
             }
-            // InternalCubeDSL.g:15070:2: ()
-            // InternalCubeDSL.g:15070:3: 
+            // InternalCubeDSL.g:15315:2: ()
+            // InternalCubeDSL.g:15315:3: 
             {
             }
 
@@ -50220,14 +51042,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1"
-    // InternalCubeDSL.g:15078:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
+    // InternalCubeDSL.g:15323:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
     public final void rule__XVariableDeclaration__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15082:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
-            // InternalCubeDSL.g:15083:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
+            // InternalCubeDSL.g:15327:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
+            // InternalCubeDSL.g:15328:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
             {
             pushFollow(FOLLOW_65);
             rule__XVariableDeclaration__Group__1__Impl();
@@ -50258,23 +51080,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
-    // InternalCubeDSL.g:15090:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
+    // InternalCubeDSL.g:15335:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
     public final void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15094:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
-            // InternalCubeDSL.g:15095:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalCubeDSL.g:15339:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
+            // InternalCubeDSL.g:15340:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
             {
-            // InternalCubeDSL.g:15095:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
-            // InternalCubeDSL.g:15096:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalCubeDSL.g:15340:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalCubeDSL.g:15341:2: ( rule__XVariableDeclaration__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
             }
-            // InternalCubeDSL.g:15097:2: ( rule__XVariableDeclaration__Alternatives_1 )
-            // InternalCubeDSL.g:15097:3: rule__XVariableDeclaration__Alternatives_1
+            // InternalCubeDSL.g:15342:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalCubeDSL.g:15342:3: rule__XVariableDeclaration__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_1();
@@ -50309,14 +51131,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2"
-    // InternalCubeDSL.g:15105:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
+    // InternalCubeDSL.g:15350:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
     public final void rule__XVariableDeclaration__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15109:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
-            // InternalCubeDSL.g:15110:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
+            // InternalCubeDSL.g:15354:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
+            // InternalCubeDSL.g:15355:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
             {
             pushFollow(FOLLOW_49);
             rule__XVariableDeclaration__Group__2__Impl();
@@ -50347,23 +51169,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
-    // InternalCubeDSL.g:15117:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
+    // InternalCubeDSL.g:15362:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
     public final void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15121:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
-            // InternalCubeDSL.g:15122:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalCubeDSL.g:15366:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
+            // InternalCubeDSL.g:15367:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
             {
-            // InternalCubeDSL.g:15122:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
-            // InternalCubeDSL.g:15123:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalCubeDSL.g:15367:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalCubeDSL.g:15368:2: ( rule__XVariableDeclaration__Alternatives_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
             }
-            // InternalCubeDSL.g:15124:2: ( rule__XVariableDeclaration__Alternatives_2 )
-            // InternalCubeDSL.g:15124:3: rule__XVariableDeclaration__Alternatives_2
+            // InternalCubeDSL.g:15369:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalCubeDSL.g:15369:3: rule__XVariableDeclaration__Alternatives_2
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Alternatives_2();
@@ -50398,14 +51220,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3"
-    // InternalCubeDSL.g:15132:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
+    // InternalCubeDSL.g:15377:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
     public final void rule__XVariableDeclaration__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15136:1: ( rule__XVariableDeclaration__Group__3__Impl )
-            // InternalCubeDSL.g:15137:2: rule__XVariableDeclaration__Group__3__Impl
+            // InternalCubeDSL.g:15381:1: ( rule__XVariableDeclaration__Group__3__Impl )
+            // InternalCubeDSL.g:15382:2: rule__XVariableDeclaration__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group__3__Impl();
@@ -50431,31 +51253,31 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
-    // InternalCubeDSL.g:15143:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
+    // InternalCubeDSL.g:15388:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
     public final void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15147:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
-            // InternalCubeDSL.g:15148:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalCubeDSL.g:15392:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
+            // InternalCubeDSL.g:15393:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
             {
-            // InternalCubeDSL.g:15148:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
-            // InternalCubeDSL.g:15149:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            // InternalCubeDSL.g:15393:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalCubeDSL.g:15394:2: ( rule__XVariableDeclaration__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
             }
-            // InternalCubeDSL.g:15150:2: ( rule__XVariableDeclaration__Group_3__0 )?
-            int alt127=2;
-            int LA127_0 = input.LA(1);
+            // InternalCubeDSL.g:15395:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            int alt130=2;
+            int LA130_0 = input.LA(1);
 
-            if ( (LA127_0==13) ) {
-                alt127=1;
+            if ( (LA130_0==13) ) {
+                alt130=1;
             }
-            switch (alt127) {
+            switch (alt130) {
                 case 1 :
-                    // InternalCubeDSL.g:15150:3: rule__XVariableDeclaration__Group_3__0
+                    // InternalCubeDSL.g:15395:3: rule__XVariableDeclaration__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XVariableDeclaration__Group_3__0();
@@ -50493,14 +51315,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
-    // InternalCubeDSL.g:15159:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
+    // InternalCubeDSL.g:15404:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
     public final void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15163:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
-            // InternalCubeDSL.g:15164:2: rule__XVariableDeclaration__Group_2_0__0__Impl
+            // InternalCubeDSL.g:15408:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
+            // InternalCubeDSL.g:15409:2: rule__XVariableDeclaration__Group_2_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0__0__Impl();
@@ -50526,23 +51348,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
-    // InternalCubeDSL.g:15170:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
+    // InternalCubeDSL.g:15415:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15174:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
-            // InternalCubeDSL.g:15175:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalCubeDSL.g:15419:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
+            // InternalCubeDSL.g:15420:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
             {
-            // InternalCubeDSL.g:15175:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
-            // InternalCubeDSL.g:15176:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalCubeDSL.g:15420:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalCubeDSL.g:15421:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
             }
-            // InternalCubeDSL.g:15177:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
-            // InternalCubeDSL.g:15177:3: rule__XVariableDeclaration__Group_2_0_0__0
+            // InternalCubeDSL.g:15422:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalCubeDSL.g:15422:3: rule__XVariableDeclaration__Group_2_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__0();
@@ -50577,14 +51399,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
-    // InternalCubeDSL.g:15186:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
+    // InternalCubeDSL.g:15431:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
     public final void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15190:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
-            // InternalCubeDSL.g:15191:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
+            // InternalCubeDSL.g:15435:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
+            // InternalCubeDSL.g:15436:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
             {
             pushFollow(FOLLOW_6);
             rule__XVariableDeclaration__Group_2_0_0__0__Impl();
@@ -50615,23 +51437,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
-    // InternalCubeDSL.g:15198:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
+    // InternalCubeDSL.g:15443:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15202:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
-            // InternalCubeDSL.g:15203:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalCubeDSL.g:15447:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
+            // InternalCubeDSL.g:15448:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
             {
-            // InternalCubeDSL.g:15203:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
-            // InternalCubeDSL.g:15204:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalCubeDSL.g:15448:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalCubeDSL.g:15449:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
             }
-            // InternalCubeDSL.g:15205:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
-            // InternalCubeDSL.g:15205:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+            // InternalCubeDSL.g:15450:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalCubeDSL.g:15450:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__TypeAssignment_2_0_0_0();
@@ -50666,14 +51488,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
-    // InternalCubeDSL.g:15213:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
+    // InternalCubeDSL.g:15458:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
     public final void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15217:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
-            // InternalCubeDSL.g:15218:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
+            // InternalCubeDSL.g:15462:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
+            // InternalCubeDSL.g:15463:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_2_0_0__1__Impl();
@@ -50699,23 +51521,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
-    // InternalCubeDSL.g:15224:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
+    // InternalCubeDSL.g:15469:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
     public final void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15228:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
-            // InternalCubeDSL.g:15229:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalCubeDSL.g:15473:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
+            // InternalCubeDSL.g:15474:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
             {
-            // InternalCubeDSL.g:15229:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
-            // InternalCubeDSL.g:15230:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalCubeDSL.g:15474:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalCubeDSL.g:15475:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
             }
-            // InternalCubeDSL.g:15231:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
-            // InternalCubeDSL.g:15231:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
+            // InternalCubeDSL.g:15476:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalCubeDSL.g:15476:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__NameAssignment_2_0_0_1();
@@ -50750,14 +51572,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
-    // InternalCubeDSL.g:15240:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
+    // InternalCubeDSL.g:15485:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
     public final void rule__XVariableDeclaration__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15244:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
-            // InternalCubeDSL.g:15245:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
+            // InternalCubeDSL.g:15489:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
+            // InternalCubeDSL.g:15490:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
             {
             pushFollow(FOLLOW_48);
             rule__XVariableDeclaration__Group_3__0__Impl();
@@ -50788,17 +51610,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
-    // InternalCubeDSL.g:15252:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
+    // InternalCubeDSL.g:15497:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
     public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15256:1: ( ( '=' ) )
-            // InternalCubeDSL.g:15257:1: ( '=' )
+            // InternalCubeDSL.g:15501:1: ( ( '=' ) )
+            // InternalCubeDSL.g:15502:1: ( '=' )
             {
-            // InternalCubeDSL.g:15257:1: ( '=' )
-            // InternalCubeDSL.g:15258:2: '='
+            // InternalCubeDSL.g:15502:1: ( '=' )
+            // InternalCubeDSL.g:15503:2: '='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
@@ -50829,14 +51651,14 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
-    // InternalCubeDSL.g:15267:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
+    // InternalCubeDSL.g:15512:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
     public final void rule__XVariableDeclaration__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15271:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
-            // InternalCubeDSL.g:15272:2: rule__XVariableDeclaration__Group_3__1__Impl
+            // InternalCubeDSL.g:15516:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
+            // InternalCubeDSL.g:15517:2: rule__XVariableDeclaration__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__Group_3__1__Impl();
@@ -50862,23 +51684,23 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
-    // InternalCubeDSL.g:15278:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
+    // InternalCubeDSL.g:15523:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
     public final void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15282:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
-            // InternalCubeDSL.g:15283:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalCubeDSL.g:15527:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
+            // InternalCubeDSL.g:15528:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
             {
-            // InternalCubeDSL.g:15283:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
-            // InternalCubeDSL.g:15284:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalCubeDSL.g:15528:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalCubeDSL.g:15529:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
             }
-            // InternalCubeDSL.g:15285:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
-            // InternalCubeDSL.g:15285:3: rule__XVariableDeclaration__RightAssignment_3_1
+            // InternalCubeDSL.g:15530:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalCubeDSL.g:15530:3: rule__XVariableDeclaration__RightAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XVariableDeclaration__RightAssignment_3_1();
@@ -50913,14 +51735,14 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0"
-    // InternalCubeDSL.g:15294:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
+    // InternalCubeDSL.g:15539:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
     public final void rule__JvmFormalParameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15298:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
-            // InternalCubeDSL.g:15299:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
+            // InternalCubeDSL.g:15543:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
+            // InternalCubeDSL.g:15544:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__JvmFormalParameter__Group__0__Impl();
@@ -50951,38 +51773,38 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
-    // InternalCubeDSL.g:15306:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
+    // InternalCubeDSL.g:15551:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
     public final void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15310:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
-            // InternalCubeDSL.g:15311:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalCubeDSL.g:15555:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
+            // InternalCubeDSL.g:15556:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
             {
-            // InternalCubeDSL.g:15311:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
-            // InternalCubeDSL.g:15312:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            // InternalCubeDSL.g:15556:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalCubeDSL.g:15557:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalCubeDSL.g:15313:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
-            int alt128=2;
-            int LA128_0 = input.LA(1);
+            // InternalCubeDSL.g:15558:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            int alt131=2;
+            int LA131_0 = input.LA(1);
 
-            if ( (LA128_0==RULE_ID) ) {
-                int LA128_1 = input.LA(2);
+            if ( (LA131_0==RULE_ID) ) {
+                int LA131_1 = input.LA(2);
 
-                if ( (LA128_1==RULE_ID||LA128_1==27||LA128_1==43||LA128_1==93) ) {
-                    alt128=1;
+                if ( (LA131_1==RULE_ID||LA131_1==27||LA131_1==43||LA131_1==93) ) {
+                    alt131=1;
                 }
             }
-            else if ( (LA128_0==31||LA128_0==88) ) {
-                alt128=1;
+            else if ( (LA131_0==31||LA131_0==88) ) {
+                alt131=1;
             }
-            switch (alt128) {
+            switch (alt131) {
                 case 1 :
-                    // InternalCubeDSL.g:15313:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
+                    // InternalCubeDSL.g:15558:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmFormalParameter__ParameterTypeAssignment_0();
@@ -51020,14 +51842,14 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1"
-    // InternalCubeDSL.g:15321:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
+    // InternalCubeDSL.g:15566:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
     public final void rule__JvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15325:1: ( rule__JvmFormalParameter__Group__1__Impl )
-            // InternalCubeDSL.g:15326:2: rule__JvmFormalParameter__Group__1__Impl
+            // InternalCubeDSL.g:15570:1: ( rule__JvmFormalParameter__Group__1__Impl )
+            // InternalCubeDSL.g:15571:2: rule__JvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__Group__1__Impl();
@@ -51053,23 +51875,23 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
-    // InternalCubeDSL.g:15332:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalCubeDSL.g:15577:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15336:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalCubeDSL.g:15337:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalCubeDSL.g:15581:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalCubeDSL.g:15582:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalCubeDSL.g:15337:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
-            // InternalCubeDSL.g:15338:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalCubeDSL.g:15582:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalCubeDSL.g:15583:2: ( rule__JvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalCubeDSL.g:15339:2: ( rule__JvmFormalParameter__NameAssignment_1 )
-            // InternalCubeDSL.g:15339:3: rule__JvmFormalParameter__NameAssignment_1
+            // InternalCubeDSL.g:15584:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalCubeDSL.g:15584:3: rule__JvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmFormalParameter__NameAssignment_1();
@@ -51104,14 +51926,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
-    // InternalCubeDSL.g:15348:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
+    // InternalCubeDSL.g:15593:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
     public final void rule__FullJvmFormalParameter__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15352:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
-            // InternalCubeDSL.g:15353:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
+            // InternalCubeDSL.g:15597:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
+            // InternalCubeDSL.g:15598:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__FullJvmFormalParameter__Group__0__Impl();
@@ -51142,23 +51964,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
-    // InternalCubeDSL.g:15360:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
+    // InternalCubeDSL.g:15605:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15364:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
-            // InternalCubeDSL.g:15365:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalCubeDSL.g:15609:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
+            // InternalCubeDSL.g:15610:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
             {
-            // InternalCubeDSL.g:15365:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
-            // InternalCubeDSL.g:15366:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalCubeDSL.g:15610:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalCubeDSL.g:15611:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
             }
-            // InternalCubeDSL.g:15367:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
-            // InternalCubeDSL.g:15367:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+            // InternalCubeDSL.g:15612:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalCubeDSL.g:15612:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__ParameterTypeAssignment_0();
@@ -51193,14 +52015,14 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
-    // InternalCubeDSL.g:15375:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
+    // InternalCubeDSL.g:15620:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
     public final void rule__FullJvmFormalParameter__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15379:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
-            // InternalCubeDSL.g:15380:2: rule__FullJvmFormalParameter__Group__1__Impl
+            // InternalCubeDSL.g:15624:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
+            // InternalCubeDSL.g:15625:2: rule__FullJvmFormalParameter__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__Group__1__Impl();
@@ -51226,23 +52048,23 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
-    // InternalCubeDSL.g:15386:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
+    // InternalCubeDSL.g:15631:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
     public final void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15390:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
-            // InternalCubeDSL.g:15391:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalCubeDSL.g:15635:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalCubeDSL.g:15636:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
             {
-            // InternalCubeDSL.g:15391:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
-            // InternalCubeDSL.g:15392:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalCubeDSL.g:15636:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalCubeDSL.g:15637:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
             }
-            // InternalCubeDSL.g:15393:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
-            // InternalCubeDSL.g:15393:3: rule__FullJvmFormalParameter__NameAssignment_1
+            // InternalCubeDSL.g:15638:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalCubeDSL.g:15638:3: rule__FullJvmFormalParameter__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__FullJvmFormalParameter__NameAssignment_1();
@@ -51277,14 +52099,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0"
-    // InternalCubeDSL.g:15402:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
+    // InternalCubeDSL.g:15647:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
     public final void rule__XFeatureCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15406:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
-            // InternalCubeDSL.g:15407:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
+            // InternalCubeDSL.g:15651:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
+            // InternalCubeDSL.g:15652:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
             {
             pushFollow(FOLLOW_83);
             rule__XFeatureCall__Group__0__Impl();
@@ -51315,23 +52137,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
-    // InternalCubeDSL.g:15414:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:15659:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
     public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15418:1: ( ( () ) )
-            // InternalCubeDSL.g:15419:1: ( () )
+            // InternalCubeDSL.g:15663:1: ( ( () ) )
+            // InternalCubeDSL.g:15664:1: ( () )
             {
-            // InternalCubeDSL.g:15419:1: ( () )
-            // InternalCubeDSL.g:15420:2: ()
+            // InternalCubeDSL.g:15664:1: ( () )
+            // InternalCubeDSL.g:15665:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
             }
-            // InternalCubeDSL.g:15421:2: ()
-            // InternalCubeDSL.g:15421:3: 
+            // InternalCubeDSL.g:15666:2: ()
+            // InternalCubeDSL.g:15666:3: 
             {
             }
 
@@ -51356,14 +52178,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1"
-    // InternalCubeDSL.g:15429:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
+    // InternalCubeDSL.g:15674:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
     public final void rule__XFeatureCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15433:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
-            // InternalCubeDSL.g:15434:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
+            // InternalCubeDSL.g:15678:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
+            // InternalCubeDSL.g:15679:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
             {
             pushFollow(FOLLOW_83);
             rule__XFeatureCall__Group__1__Impl();
@@ -51394,31 +52216,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
-    // InternalCubeDSL.g:15441:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
+    // InternalCubeDSL.g:15686:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
     public final void rule__XFeatureCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15445:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
-            // InternalCubeDSL.g:15446:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalCubeDSL.g:15690:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
+            // InternalCubeDSL.g:15691:1: ( ( rule__XFeatureCall__Group_1__0 )? )
             {
-            // InternalCubeDSL.g:15446:1: ( ( rule__XFeatureCall__Group_1__0 )? )
-            // InternalCubeDSL.g:15447:2: ( rule__XFeatureCall__Group_1__0 )?
+            // InternalCubeDSL.g:15691:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalCubeDSL.g:15692:2: ( rule__XFeatureCall__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:15448:2: ( rule__XFeatureCall__Group_1__0 )?
-            int alt129=2;
-            int LA129_0 = input.LA(1);
+            // InternalCubeDSL.g:15693:2: ( rule__XFeatureCall__Group_1__0 )?
+            int alt132=2;
+            int LA132_0 = input.LA(1);
 
-            if ( (LA129_0==27) ) {
-                alt129=1;
+            if ( (LA132_0==27) ) {
+                alt132=1;
             }
-            switch (alt129) {
+            switch (alt132) {
                 case 1 :
-                    // InternalCubeDSL.g:15448:3: rule__XFeatureCall__Group_1__0
+                    // InternalCubeDSL.g:15693:3: rule__XFeatureCall__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_1__0();
@@ -51456,14 +52278,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2"
-    // InternalCubeDSL.g:15456:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
+    // InternalCubeDSL.g:15701:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
     public final void rule__XFeatureCall__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15460:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
-            // InternalCubeDSL.g:15461:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
+            // InternalCubeDSL.g:15705:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
+            // InternalCubeDSL.g:15706:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
             {
             pushFollow(FOLLOW_84);
             rule__XFeatureCall__Group__2__Impl();
@@ -51494,23 +52316,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
-    // InternalCubeDSL.g:15468:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
+    // InternalCubeDSL.g:15713:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
     public final void rule__XFeatureCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15472:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
-            // InternalCubeDSL.g:15473:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalCubeDSL.g:15717:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
+            // InternalCubeDSL.g:15718:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
             {
-            // InternalCubeDSL.g:15473:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
-            // InternalCubeDSL.g:15474:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalCubeDSL.g:15718:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalCubeDSL.g:15719:2: ( rule__XFeatureCall__FeatureAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
             }
-            // InternalCubeDSL.g:15475:2: ( rule__XFeatureCall__FeatureAssignment_2 )
-            // InternalCubeDSL.g:15475:3: rule__XFeatureCall__FeatureAssignment_2
+            // InternalCubeDSL.g:15720:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalCubeDSL.g:15720:3: rule__XFeatureCall__FeatureAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureAssignment_2();
@@ -51545,14 +52367,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3"
-    // InternalCubeDSL.g:15483:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
+    // InternalCubeDSL.g:15728:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
     public final void rule__XFeatureCall__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15487:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
-            // InternalCubeDSL.g:15488:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
+            // InternalCubeDSL.g:15732:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
+            // InternalCubeDSL.g:15733:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
             {
             pushFollow(FOLLOW_84);
             rule__XFeatureCall__Group__3__Impl();
@@ -51583,27 +52405,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
-    // InternalCubeDSL.g:15495:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
+    // InternalCubeDSL.g:15740:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
     public final void rule__XFeatureCall__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15499:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
-            // InternalCubeDSL.g:15500:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalCubeDSL.g:15744:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
+            // InternalCubeDSL.g:15745:1: ( ( rule__XFeatureCall__Group_3__0 )? )
             {
-            // InternalCubeDSL.g:15500:1: ( ( rule__XFeatureCall__Group_3__0 )? )
-            // InternalCubeDSL.g:15501:2: ( rule__XFeatureCall__Group_3__0 )?
+            // InternalCubeDSL.g:15745:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalCubeDSL.g:15746:2: ( rule__XFeatureCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
             }
-            // InternalCubeDSL.g:15502:2: ( rule__XFeatureCall__Group_3__0 )?
-            int alt130=2;
-            alt130 = dfa130.predict(input);
-            switch (alt130) {
+            // InternalCubeDSL.g:15747:2: ( rule__XFeatureCall__Group_3__0 )?
+            int alt133=2;
+            alt133 = dfa133.predict(input);
+            switch (alt133) {
                 case 1 :
-                    // InternalCubeDSL.g:15502:3: rule__XFeatureCall__Group_3__0
+                    // InternalCubeDSL.g:15747:3: rule__XFeatureCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Group_3__0();
@@ -51641,14 +52463,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4"
-    // InternalCubeDSL.g:15510:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
+    // InternalCubeDSL.g:15755:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
     public final void rule__XFeatureCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15514:1: ( rule__XFeatureCall__Group__4__Impl )
-            // InternalCubeDSL.g:15515:2: rule__XFeatureCall__Group__4__Impl
+            // InternalCubeDSL.g:15759:1: ( rule__XFeatureCall__Group__4__Impl )
+            // InternalCubeDSL.g:15760:2: rule__XFeatureCall__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group__4__Impl();
@@ -51674,27 +52496,27 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
-    // InternalCubeDSL.g:15521:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
+    // InternalCubeDSL.g:15766:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
     public final void rule__XFeatureCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15525:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
-            // InternalCubeDSL.g:15526:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalCubeDSL.g:15770:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
+            // InternalCubeDSL.g:15771:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
             {
-            // InternalCubeDSL.g:15526:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
-            // InternalCubeDSL.g:15527:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            // InternalCubeDSL.g:15771:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalCubeDSL.g:15772:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
             }
-            // InternalCubeDSL.g:15528:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
-            int alt131=2;
-            alt131 = dfa131.predict(input);
-            switch (alt131) {
+            // InternalCubeDSL.g:15773:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            int alt134=2;
+            alt134 = dfa134.predict(input);
+            switch (alt134) {
                 case 1 :
-                    // InternalCubeDSL.g:15528:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+                    // InternalCubeDSL.g:15773:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -51732,14 +52554,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0"
-    // InternalCubeDSL.g:15537:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
+    // InternalCubeDSL.g:15782:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
     public final void rule__XFeatureCall__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15541:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
-            // InternalCubeDSL.g:15542:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
+            // InternalCubeDSL.g:15786:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
+            // InternalCubeDSL.g:15787:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
             {
             pushFollow(FOLLOW_85);
             rule__XFeatureCall__Group_1__0__Impl();
@@ -51770,17 +52592,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
-    // InternalCubeDSL.g:15549:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
+    // InternalCubeDSL.g:15794:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
     public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15553:1: ( ( '<' ) )
-            // InternalCubeDSL.g:15554:1: ( '<' )
+            // InternalCubeDSL.g:15798:1: ( ( '<' ) )
+            // InternalCubeDSL.g:15799:1: ( '<' )
             {
-            // InternalCubeDSL.g:15554:1: ( '<' )
-            // InternalCubeDSL.g:15555:2: '<'
+            // InternalCubeDSL.g:15799:1: ( '<' )
+            // InternalCubeDSL.g:15800:2: '<'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
@@ -51811,14 +52633,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1"
-    // InternalCubeDSL.g:15564:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
+    // InternalCubeDSL.g:15809:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
     public final void rule__XFeatureCall__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15568:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
-            // InternalCubeDSL.g:15569:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
+            // InternalCubeDSL.g:15813:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
+            // InternalCubeDSL.g:15814:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
             {
             pushFollow(FOLLOW_86);
             rule__XFeatureCall__Group_1__1__Impl();
@@ -51849,23 +52671,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
-    // InternalCubeDSL.g:15576:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:15821:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
     public final void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15580:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:15581:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalCubeDSL.g:15825:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:15826:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:15581:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
-            // InternalCubeDSL.g:15582:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalCubeDSL.g:15826:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalCubeDSL.g:15827:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:15583:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
-            // InternalCubeDSL.g:15583:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
+            // InternalCubeDSL.g:15828:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalCubeDSL.g:15828:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_1();
@@ -51900,14 +52722,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2"
-    // InternalCubeDSL.g:15591:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
+    // InternalCubeDSL.g:15836:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
     public final void rule__XFeatureCall__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15595:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
-            // InternalCubeDSL.g:15596:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
+            // InternalCubeDSL.g:15840:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
+            // InternalCubeDSL.g:15841:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
             {
             pushFollow(FOLLOW_86);
             rule__XFeatureCall__Group_1__2__Impl();
@@ -51938,35 +52760,35 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
-    // InternalCubeDSL.g:15603:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
+    // InternalCubeDSL.g:15848:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
     public final void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15607:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
-            // InternalCubeDSL.g:15608:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalCubeDSL.g:15852:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
+            // InternalCubeDSL.g:15853:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
             {
-            // InternalCubeDSL.g:15608:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
-            // InternalCubeDSL.g:15609:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            // InternalCubeDSL.g:15853:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalCubeDSL.g:15854:2: ( rule__XFeatureCall__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
             }
-            // InternalCubeDSL.g:15610:2: ( rule__XFeatureCall__Group_1_2__0 )*
-            loop132:
+            // InternalCubeDSL.g:15855:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            loop135:
             do {
-                int alt132=2;
-                int LA132_0 = input.LA(1);
+                int alt135=2;
+                int LA135_0 = input.LA(1);
 
-                if ( (LA132_0==90) ) {
-                    alt132=1;
+                if ( (LA135_0==90) ) {
+                    alt135=1;
                 }
 
 
-                switch (alt132) {
+                switch (alt135) {
             	case 1 :
-            	    // InternalCubeDSL.g:15610:3: rule__XFeatureCall__Group_1_2__0
+            	    // InternalCubeDSL.g:15855:3: rule__XFeatureCall__Group_1_2__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XFeatureCall__Group_1_2__0();
@@ -51978,7 +52800,7 @@
             	    break;
 
             	default :
-            	    break loop132;
+            	    break loop135;
                 }
             } while (true);
 
@@ -52007,14 +52829,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3"
-    // InternalCubeDSL.g:15618:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
+    // InternalCubeDSL.g:15863:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
     public final void rule__XFeatureCall__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15622:1: ( rule__XFeatureCall__Group_1__3__Impl )
-            // InternalCubeDSL.g:15623:2: rule__XFeatureCall__Group_1__3__Impl
+            // InternalCubeDSL.g:15867:1: ( rule__XFeatureCall__Group_1__3__Impl )
+            // InternalCubeDSL.g:15868:2: rule__XFeatureCall__Group_1__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1__3__Impl();
@@ -52040,17 +52862,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
-    // InternalCubeDSL.g:15629:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:15874:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
     public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15633:1: ( ( '>' ) )
-            // InternalCubeDSL.g:15634:1: ( '>' )
+            // InternalCubeDSL.g:15878:1: ( ( '>' ) )
+            // InternalCubeDSL.g:15879:1: ( '>' )
             {
-            // InternalCubeDSL.g:15634:1: ( '>' )
-            // InternalCubeDSL.g:15635:2: '>'
+            // InternalCubeDSL.g:15879:1: ( '>' )
+            // InternalCubeDSL.g:15880:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
@@ -52081,14 +52903,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
-    // InternalCubeDSL.g:15645:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
+    // InternalCubeDSL.g:15890:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
     public final void rule__XFeatureCall__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15649:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
-            // InternalCubeDSL.g:15650:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
+            // InternalCubeDSL.g:15894:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
+            // InternalCubeDSL.g:15895:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
             {
             pushFollow(FOLLOW_85);
             rule__XFeatureCall__Group_1_2__0__Impl();
@@ -52119,17 +52941,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
-    // InternalCubeDSL.g:15657:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:15902:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15661:1: ( ( ',' ) )
-            // InternalCubeDSL.g:15662:1: ( ',' )
+            // InternalCubeDSL.g:15906:1: ( ( ',' ) )
+            // InternalCubeDSL.g:15907:1: ( ',' )
             {
-            // InternalCubeDSL.g:15662:1: ( ',' )
-            // InternalCubeDSL.g:15663:2: ','
+            // InternalCubeDSL.g:15907:1: ( ',' )
+            // InternalCubeDSL.g:15908:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
@@ -52160,14 +52982,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
-    // InternalCubeDSL.g:15672:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
+    // InternalCubeDSL.g:15917:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
     public final void rule__XFeatureCall__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15676:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
-            // InternalCubeDSL.g:15677:2: rule__XFeatureCall__Group_1_2__1__Impl
+            // InternalCubeDSL.g:15921:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
+            // InternalCubeDSL.g:15922:2: rule__XFeatureCall__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_1_2__1__Impl();
@@ -52193,23 +53015,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
-    // InternalCubeDSL.g:15683:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
+    // InternalCubeDSL.g:15928:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
     public final void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15687:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
-            // InternalCubeDSL.g:15688:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalCubeDSL.g:15932:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
+            // InternalCubeDSL.g:15933:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
             {
-            // InternalCubeDSL.g:15688:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
-            // InternalCubeDSL.g:15689:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalCubeDSL.g:15933:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalCubeDSL.g:15934:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
             }
-            // InternalCubeDSL.g:15690:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
-            // InternalCubeDSL.g:15690:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+            // InternalCubeDSL.g:15935:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalCubeDSL.g:15935:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();
@@ -52244,14 +53066,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0"
-    // InternalCubeDSL.g:15699:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
+    // InternalCubeDSL.g:15944:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
     public final void rule__XFeatureCall__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15703:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
-            // InternalCubeDSL.g:15704:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
+            // InternalCubeDSL.g:15948:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
+            // InternalCubeDSL.g:15949:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
             {
             pushFollow(FOLLOW_87);
             rule__XFeatureCall__Group_3__0__Impl();
@@ -52282,23 +53104,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
-    // InternalCubeDSL.g:15711:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
+    // InternalCubeDSL.g:15956:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
     public final void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15715:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
-            // InternalCubeDSL.g:15716:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalCubeDSL.g:15960:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
+            // InternalCubeDSL.g:15961:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
             {
-            // InternalCubeDSL.g:15716:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
-            // InternalCubeDSL.g:15717:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalCubeDSL.g:15961:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalCubeDSL.g:15962:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
             }
-            // InternalCubeDSL.g:15718:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
-            // InternalCubeDSL.g:15718:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+            // InternalCubeDSL.g:15963:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalCubeDSL.g:15963:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();
@@ -52333,14 +53155,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1"
-    // InternalCubeDSL.g:15726:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
+    // InternalCubeDSL.g:15971:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
     public final void rule__XFeatureCall__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15730:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
-            // InternalCubeDSL.g:15731:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
+            // InternalCubeDSL.g:15975:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
+            // InternalCubeDSL.g:15976:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
             {
             pushFollow(FOLLOW_87);
             rule__XFeatureCall__Group_3__1__Impl();
@@ -52371,31 +53193,31 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
-    // InternalCubeDSL.g:15738:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
+    // InternalCubeDSL.g:15983:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
     public final void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15742:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
-            // InternalCubeDSL.g:15743:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalCubeDSL.g:15987:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
+            // InternalCubeDSL.g:15988:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
             {
-            // InternalCubeDSL.g:15743:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
-            // InternalCubeDSL.g:15744:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            // InternalCubeDSL.g:15988:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalCubeDSL.g:15989:2: ( rule__XFeatureCall__Alternatives_3_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
             }
-            // InternalCubeDSL.g:15745:2: ( rule__XFeatureCall__Alternatives_3_1 )?
-            int alt133=2;
-            int LA133_0 = input.LA(1);
+            // InternalCubeDSL.g:15990:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            int alt136=2;
+            int LA136_0 = input.LA(1);
 
-            if ( ((LA133_0>=RULE_ID && LA133_0<=RULE_DECIMAL)||LA133_0==27||LA133_0==31||(LA133_0>=34 && LA133_0<=35)||LA133_0==40||(LA133_0>=45 && LA133_0<=50)||LA133_0==74||LA133_0==88||(LA133_0>=92 && LA133_0<=93)||LA133_0==96||LA133_0==98||(LA133_0>=102 && LA133_0<=110)||LA133_0==112||LA133_0==129||LA133_0==131) ) {
-                alt133=1;
+            if ( ((LA136_0>=RULE_ID && LA136_0<=RULE_DECIMAL)||LA136_0==27||LA136_0==31||(LA136_0>=34 && LA136_0<=35)||LA136_0==40||(LA136_0>=45 && LA136_0<=50)||LA136_0==74||LA136_0==88||(LA136_0>=92 && LA136_0<=93)||LA136_0==96||LA136_0==98||(LA136_0>=102 && LA136_0<=110)||LA136_0==112||LA136_0==132||LA136_0==134) ) {
+                alt136=1;
             }
-            switch (alt133) {
+            switch (alt136) {
                 case 1 :
-                    // InternalCubeDSL.g:15745:3: rule__XFeatureCall__Alternatives_3_1
+                    // InternalCubeDSL.g:15990:3: rule__XFeatureCall__Alternatives_3_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFeatureCall__Alternatives_3_1();
@@ -52433,14 +53255,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2"
-    // InternalCubeDSL.g:15753:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
+    // InternalCubeDSL.g:15998:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
     public final void rule__XFeatureCall__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15757:1: ( rule__XFeatureCall__Group_3__2__Impl )
-            // InternalCubeDSL.g:15758:2: rule__XFeatureCall__Group_3__2__Impl
+            // InternalCubeDSL.g:16002:1: ( rule__XFeatureCall__Group_3__2__Impl )
+            // InternalCubeDSL.g:16003:2: rule__XFeatureCall__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3__2__Impl();
@@ -52466,17 +53288,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
-    // InternalCubeDSL.g:15764:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:16009:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
     public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15768:1: ( ( ')' ) )
-            // InternalCubeDSL.g:15769:1: ( ')' )
+            // InternalCubeDSL.g:16013:1: ( ( ')' ) )
+            // InternalCubeDSL.g:16014:1: ( ')' )
             {
-            // InternalCubeDSL.g:15769:1: ( ')' )
-            // InternalCubeDSL.g:15770:2: ')'
+            // InternalCubeDSL.g:16014:1: ( ')' )
+            // InternalCubeDSL.g:16015:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
@@ -52507,14 +53329,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
-    // InternalCubeDSL.g:15780:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
+    // InternalCubeDSL.g:16025:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
     public final void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15784:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
-            // InternalCubeDSL.g:15785:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
+            // InternalCubeDSL.g:16029:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
+            // InternalCubeDSL.g:16030:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XFeatureCall__Group_3_1_1__0__Impl();
@@ -52545,23 +53367,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
-    // InternalCubeDSL.g:15792:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
+    // InternalCubeDSL.g:16037:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
     public final void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15796:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
-            // InternalCubeDSL.g:15797:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalCubeDSL.g:16041:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
+            // InternalCubeDSL.g:16042:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
             {
-            // InternalCubeDSL.g:15797:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
-            // InternalCubeDSL.g:15798:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalCubeDSL.g:16042:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalCubeDSL.g:16043:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
             }
-            // InternalCubeDSL.g:15799:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
-            // InternalCubeDSL.g:15799:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+            // InternalCubeDSL.g:16044:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalCubeDSL.g:16044:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();
@@ -52596,14 +53418,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
-    // InternalCubeDSL.g:15807:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
+    // InternalCubeDSL.g:16052:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
     public final void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15811:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
-            // InternalCubeDSL.g:15812:2: rule__XFeatureCall__Group_3_1_1__1__Impl
+            // InternalCubeDSL.g:16056:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
+            // InternalCubeDSL.g:16057:2: rule__XFeatureCall__Group_3_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1__1__Impl();
@@ -52629,35 +53451,35 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
-    // InternalCubeDSL.g:15818:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
+    // InternalCubeDSL.g:16063:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
     public final void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15822:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
-            // InternalCubeDSL.g:15823:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalCubeDSL.g:16067:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
+            // InternalCubeDSL.g:16068:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
             {
-            // InternalCubeDSL.g:15823:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
-            // InternalCubeDSL.g:15824:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            // InternalCubeDSL.g:16068:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalCubeDSL.g:16069:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
             }
-            // InternalCubeDSL.g:15825:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
-            loop134:
+            // InternalCubeDSL.g:16070:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            loop137:
             do {
-                int alt134=2;
-                int LA134_0 = input.LA(1);
+                int alt137=2;
+                int LA137_0 = input.LA(1);
 
-                if ( (LA134_0==90) ) {
-                    alt134=1;
+                if ( (LA137_0==90) ) {
+                    alt137=1;
                 }
 
 
-                switch (alt134) {
+                switch (alt137) {
             	case 1 :
-            	    // InternalCubeDSL.g:15825:3: rule__XFeatureCall__Group_3_1_1_1__0
+            	    // InternalCubeDSL.g:16070:3: rule__XFeatureCall__Group_3_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XFeatureCall__Group_3_1_1_1__0();
@@ -52669,7 +53491,7 @@
             	    break;
 
             	default :
-            	    break loop134;
+            	    break loop137;
                 }
             } while (true);
 
@@ -52698,14 +53520,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
-    // InternalCubeDSL.g:15834:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
+    // InternalCubeDSL.g:16079:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
     public final void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15838:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
-            // InternalCubeDSL.g:15839:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
+            // InternalCubeDSL.g:16083:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
+            // InternalCubeDSL.g:16084:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XFeatureCall__Group_3_1_1_1__0__Impl();
@@ -52736,17 +53558,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
-    // InternalCubeDSL.g:15846:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:16091:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15850:1: ( ( ',' ) )
-            // InternalCubeDSL.g:15851:1: ( ',' )
+            // InternalCubeDSL.g:16095:1: ( ( ',' ) )
+            // InternalCubeDSL.g:16096:1: ( ',' )
             {
-            // InternalCubeDSL.g:15851:1: ( ',' )
-            // InternalCubeDSL.g:15852:2: ','
+            // InternalCubeDSL.g:16096:1: ( ',' )
+            // InternalCubeDSL.g:16097:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
@@ -52777,14 +53599,14 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
-    // InternalCubeDSL.g:15861:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
+    // InternalCubeDSL.g:16106:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
     public final void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15865:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
-            // InternalCubeDSL.g:15866:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
+            // InternalCubeDSL.g:16110:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
+            // InternalCubeDSL.g:16111:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__Group_3_1_1_1__1__Impl();
@@ -52810,23 +53632,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
-    // InternalCubeDSL.g:15872:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
+    // InternalCubeDSL.g:16117:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
     public final void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15876:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
-            // InternalCubeDSL.g:15877:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalCubeDSL.g:16121:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
+            // InternalCubeDSL.g:16122:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
             {
-            // InternalCubeDSL.g:15877:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
-            // InternalCubeDSL.g:15878:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalCubeDSL.g:16122:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalCubeDSL.g:16123:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
             }
-            // InternalCubeDSL.g:15879:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
-            // InternalCubeDSL.g:15879:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+            // InternalCubeDSL.g:16124:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalCubeDSL.g:16124:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();
@@ -52861,14 +53683,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0"
-    // InternalCubeDSL.g:15888:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
+    // InternalCubeDSL.g:16133:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
     public final void rule__XConstructorCall__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15892:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
-            // InternalCubeDSL.g:15893:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
+            // InternalCubeDSL.g:16137:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
+            // InternalCubeDSL.g:16138:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
             {
             pushFollow(FOLLOW_110);
             rule__XConstructorCall__Group__0__Impl();
@@ -52899,23 +53721,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
-    // InternalCubeDSL.g:15900:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:16145:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
     public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15904:1: ( ( () ) )
-            // InternalCubeDSL.g:15905:1: ( () )
+            // InternalCubeDSL.g:16149:1: ( ( () ) )
+            // InternalCubeDSL.g:16150:1: ( () )
             {
-            // InternalCubeDSL.g:15905:1: ( () )
-            // InternalCubeDSL.g:15906:2: ()
+            // InternalCubeDSL.g:16150:1: ( () )
+            // InternalCubeDSL.g:16151:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
             }
-            // InternalCubeDSL.g:15907:2: ()
-            // InternalCubeDSL.g:15907:3: 
+            // InternalCubeDSL.g:16152:2: ()
+            // InternalCubeDSL.g:16152:3: 
             {
             }
 
@@ -52940,14 +53762,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1"
-    // InternalCubeDSL.g:15915:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
+    // InternalCubeDSL.g:16160:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
     public final void rule__XConstructorCall__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15919:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
-            // InternalCubeDSL.g:15920:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
+            // InternalCubeDSL.g:16164:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
+            // InternalCubeDSL.g:16165:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
             {
             pushFollow(FOLLOW_6);
             rule__XConstructorCall__Group__1__Impl();
@@ -52978,17 +53800,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
-    // InternalCubeDSL.g:15927:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
+    // InternalCubeDSL.g:16172:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
     public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15931:1: ( ( 'new' ) )
-            // InternalCubeDSL.g:15932:1: ( 'new' )
+            // InternalCubeDSL.g:16176:1: ( ( 'new' ) )
+            // InternalCubeDSL.g:16177:1: ( 'new' )
             {
-            // InternalCubeDSL.g:15932:1: ( 'new' )
-            // InternalCubeDSL.g:15933:2: 'new'
+            // InternalCubeDSL.g:16177:1: ( 'new' )
+            // InternalCubeDSL.g:16178:2: 'new'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
@@ -53019,14 +53841,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2"
-    // InternalCubeDSL.g:15942:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
+    // InternalCubeDSL.g:16187:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
     public final void rule__XConstructorCall__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15946:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
-            // InternalCubeDSL.g:15947:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
+            // InternalCubeDSL.g:16191:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
+            // InternalCubeDSL.g:16192:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
             {
             pushFollow(FOLLOW_111);
             rule__XConstructorCall__Group__2__Impl();
@@ -53057,23 +53879,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
-    // InternalCubeDSL.g:15954:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
+    // InternalCubeDSL.g:16199:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
     public final void rule__XConstructorCall__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15958:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
-            // InternalCubeDSL.g:15959:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalCubeDSL.g:16203:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
+            // InternalCubeDSL.g:16204:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
             {
-            // InternalCubeDSL.g:15959:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
-            // InternalCubeDSL.g:15960:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalCubeDSL.g:16204:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalCubeDSL.g:16205:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
             }
-            // InternalCubeDSL.g:15961:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
-            // InternalCubeDSL.g:15961:3: rule__XConstructorCall__ConstructorAssignment_2
+            // InternalCubeDSL.g:16206:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalCubeDSL.g:16206:3: rule__XConstructorCall__ConstructorAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ConstructorAssignment_2();
@@ -53108,14 +53930,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3"
-    // InternalCubeDSL.g:15969:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
+    // InternalCubeDSL.g:16214:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
     public final void rule__XConstructorCall__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15973:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
-            // InternalCubeDSL.g:15974:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
+            // InternalCubeDSL.g:16218:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
+            // InternalCubeDSL.g:16219:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
             {
             pushFollow(FOLLOW_111);
             rule__XConstructorCall__Group__3__Impl();
@@ -53146,27 +53968,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
-    // InternalCubeDSL.g:15981:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
+    // InternalCubeDSL.g:16226:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
     public final void rule__XConstructorCall__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:15985:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
-            // InternalCubeDSL.g:15986:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalCubeDSL.g:16230:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
+            // InternalCubeDSL.g:16231:1: ( ( rule__XConstructorCall__Group_3__0 )? )
             {
-            // InternalCubeDSL.g:15986:1: ( ( rule__XConstructorCall__Group_3__0 )? )
-            // InternalCubeDSL.g:15987:2: ( rule__XConstructorCall__Group_3__0 )?
+            // InternalCubeDSL.g:16231:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalCubeDSL.g:16232:2: ( rule__XConstructorCall__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
             }
-            // InternalCubeDSL.g:15988:2: ( rule__XConstructorCall__Group_3__0 )?
-            int alt135=2;
-            alt135 = dfa135.predict(input);
-            switch (alt135) {
+            // InternalCubeDSL.g:16233:2: ( rule__XConstructorCall__Group_3__0 )?
+            int alt138=2;
+            alt138 = dfa138.predict(input);
+            switch (alt138) {
                 case 1 :
-                    // InternalCubeDSL.g:15988:3: rule__XConstructorCall__Group_3__0
+                    // InternalCubeDSL.g:16233:3: rule__XConstructorCall__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_3__0();
@@ -53204,14 +54026,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4"
-    // InternalCubeDSL.g:15996:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
+    // InternalCubeDSL.g:16241:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
     public final void rule__XConstructorCall__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16000:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
-            // InternalCubeDSL.g:16001:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
+            // InternalCubeDSL.g:16245:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
+            // InternalCubeDSL.g:16246:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
             {
             pushFollow(FOLLOW_111);
             rule__XConstructorCall__Group__4__Impl();
@@ -53242,27 +54064,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
-    // InternalCubeDSL.g:16008:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
+    // InternalCubeDSL.g:16253:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
     public final void rule__XConstructorCall__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16012:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
-            // InternalCubeDSL.g:16013:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalCubeDSL.g:16257:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
+            // InternalCubeDSL.g:16258:1: ( ( rule__XConstructorCall__Group_4__0 )? )
             {
-            // InternalCubeDSL.g:16013:1: ( ( rule__XConstructorCall__Group_4__0 )? )
-            // InternalCubeDSL.g:16014:2: ( rule__XConstructorCall__Group_4__0 )?
+            // InternalCubeDSL.g:16258:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalCubeDSL.g:16259:2: ( rule__XConstructorCall__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
             }
-            // InternalCubeDSL.g:16015:2: ( rule__XConstructorCall__Group_4__0 )?
-            int alt136=2;
-            alt136 = dfa136.predict(input);
-            switch (alt136) {
+            // InternalCubeDSL.g:16260:2: ( rule__XConstructorCall__Group_4__0 )?
+            int alt139=2;
+            alt139 = dfa139.predict(input);
+            switch (alt139) {
                 case 1 :
-                    // InternalCubeDSL.g:16015:3: rule__XConstructorCall__Group_4__0
+                    // InternalCubeDSL.g:16260:3: rule__XConstructorCall__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Group_4__0();
@@ -53300,14 +54122,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5"
-    // InternalCubeDSL.g:16023:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
+    // InternalCubeDSL.g:16268:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
     public final void rule__XConstructorCall__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16027:1: ( rule__XConstructorCall__Group__5__Impl )
-            // InternalCubeDSL.g:16028:2: rule__XConstructorCall__Group__5__Impl
+            // InternalCubeDSL.g:16272:1: ( rule__XConstructorCall__Group__5__Impl )
+            // InternalCubeDSL.g:16273:2: rule__XConstructorCall__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group__5__Impl();
@@ -53333,27 +54155,27 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
-    // InternalCubeDSL.g:16034:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
+    // InternalCubeDSL.g:16279:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
     public final void rule__XConstructorCall__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16038:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
-            // InternalCubeDSL.g:16039:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalCubeDSL.g:16283:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
+            // InternalCubeDSL.g:16284:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
             {
-            // InternalCubeDSL.g:16039:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
-            // InternalCubeDSL.g:16040:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            // InternalCubeDSL.g:16284:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalCubeDSL.g:16285:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
             }
-            // InternalCubeDSL.g:16041:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
-            int alt137=2;
-            alt137 = dfa137.predict(input);
-            switch (alt137) {
+            // InternalCubeDSL.g:16286:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            int alt140=2;
+            alt140 = dfa140.predict(input);
+            switch (alt140) {
                 case 1 :
-                    // InternalCubeDSL.g:16041:3: rule__XConstructorCall__ArgumentsAssignment_5
+                    // InternalCubeDSL.g:16286:3: rule__XConstructorCall__ArgumentsAssignment_5
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__ArgumentsAssignment_5();
@@ -53391,14 +54213,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0"
-    // InternalCubeDSL.g:16050:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
+    // InternalCubeDSL.g:16295:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
     public final void rule__XConstructorCall__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16054:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
-            // InternalCubeDSL.g:16055:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
+            // InternalCubeDSL.g:16299:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
+            // InternalCubeDSL.g:16300:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
             {
             pushFollow(FOLLOW_85);
             rule__XConstructorCall__Group_3__0__Impl();
@@ -53429,23 +54251,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
-    // InternalCubeDSL.g:16062:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
+    // InternalCubeDSL.g:16307:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
     public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16066:1: ( ( ( '<' ) ) )
-            // InternalCubeDSL.g:16067:1: ( ( '<' ) )
+            // InternalCubeDSL.g:16311:1: ( ( ( '<' ) ) )
+            // InternalCubeDSL.g:16312:1: ( ( '<' ) )
             {
-            // InternalCubeDSL.g:16067:1: ( ( '<' ) )
-            // InternalCubeDSL.g:16068:2: ( '<' )
+            // InternalCubeDSL.g:16312:1: ( ( '<' ) )
+            // InternalCubeDSL.g:16313:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
             }
-            // InternalCubeDSL.g:16069:2: ( '<' )
-            // InternalCubeDSL.g:16069:3: '<'
+            // InternalCubeDSL.g:16314:2: ( '<' )
+            // InternalCubeDSL.g:16314:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -53476,14 +54298,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1"
-    // InternalCubeDSL.g:16077:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
+    // InternalCubeDSL.g:16322:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
     public final void rule__XConstructorCall__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16081:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
-            // InternalCubeDSL.g:16082:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
+            // InternalCubeDSL.g:16326:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
+            // InternalCubeDSL.g:16327:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
             {
             pushFollow(FOLLOW_86);
             rule__XConstructorCall__Group_3__1__Impl();
@@ -53514,23 +54336,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
-    // InternalCubeDSL.g:16089:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
+    // InternalCubeDSL.g:16334:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
     public final void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16093:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
-            // InternalCubeDSL.g:16094:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalCubeDSL.g:16338:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
+            // InternalCubeDSL.g:16339:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
             {
-            // InternalCubeDSL.g:16094:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
-            // InternalCubeDSL.g:16095:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalCubeDSL.g:16339:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalCubeDSL.g:16340:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
             }
-            // InternalCubeDSL.g:16096:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
-            // InternalCubeDSL.g:16096:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
+            // InternalCubeDSL.g:16341:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalCubeDSL.g:16341:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_1();
@@ -53565,14 +54387,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2"
-    // InternalCubeDSL.g:16104:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
+    // InternalCubeDSL.g:16349:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
     public final void rule__XConstructorCall__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16108:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
-            // InternalCubeDSL.g:16109:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
+            // InternalCubeDSL.g:16353:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
+            // InternalCubeDSL.g:16354:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
             {
             pushFollow(FOLLOW_86);
             rule__XConstructorCall__Group_3__2__Impl();
@@ -53603,35 +54425,35 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
-    // InternalCubeDSL.g:16116:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
+    // InternalCubeDSL.g:16361:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
     public final void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16120:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
-            // InternalCubeDSL.g:16121:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalCubeDSL.g:16365:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
+            // InternalCubeDSL.g:16366:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
             {
-            // InternalCubeDSL.g:16121:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
-            // InternalCubeDSL.g:16122:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            // InternalCubeDSL.g:16366:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalCubeDSL.g:16367:2: ( rule__XConstructorCall__Group_3_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
             }
-            // InternalCubeDSL.g:16123:2: ( rule__XConstructorCall__Group_3_2__0 )*
-            loop138:
+            // InternalCubeDSL.g:16368:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            loop141:
             do {
-                int alt138=2;
-                int LA138_0 = input.LA(1);
+                int alt141=2;
+                int LA141_0 = input.LA(1);
 
-                if ( (LA138_0==90) ) {
-                    alt138=1;
+                if ( (LA141_0==90) ) {
+                    alt141=1;
                 }
 
 
-                switch (alt138) {
+                switch (alt141) {
             	case 1 :
-            	    // InternalCubeDSL.g:16123:3: rule__XConstructorCall__Group_3_2__0
+            	    // InternalCubeDSL.g:16368:3: rule__XConstructorCall__Group_3_2__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XConstructorCall__Group_3_2__0();
@@ -53643,7 +54465,7 @@
             	    break;
 
             	default :
-            	    break loop138;
+            	    break loop141;
                 }
             } while (true);
 
@@ -53672,14 +54494,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3"
-    // InternalCubeDSL.g:16131:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
+    // InternalCubeDSL.g:16376:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
     public final void rule__XConstructorCall__Group_3__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16135:1: ( rule__XConstructorCall__Group_3__3__Impl )
-            // InternalCubeDSL.g:16136:2: rule__XConstructorCall__Group_3__3__Impl
+            // InternalCubeDSL.g:16380:1: ( rule__XConstructorCall__Group_3__3__Impl )
+            // InternalCubeDSL.g:16381:2: rule__XConstructorCall__Group_3__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3__3__Impl();
@@ -53705,17 +54527,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
-    // InternalCubeDSL.g:16142:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:16387:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
     public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16146:1: ( ( '>' ) )
-            // InternalCubeDSL.g:16147:1: ( '>' )
+            // InternalCubeDSL.g:16391:1: ( ( '>' ) )
+            // InternalCubeDSL.g:16392:1: ( '>' )
             {
-            // InternalCubeDSL.g:16147:1: ( '>' )
-            // InternalCubeDSL.g:16148:2: '>'
+            // InternalCubeDSL.g:16392:1: ( '>' )
+            // InternalCubeDSL.g:16393:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
@@ -53746,14 +54568,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
-    // InternalCubeDSL.g:16158:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
+    // InternalCubeDSL.g:16403:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
     public final void rule__XConstructorCall__Group_3_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16162:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
-            // InternalCubeDSL.g:16163:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
+            // InternalCubeDSL.g:16407:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
+            // InternalCubeDSL.g:16408:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
             {
             pushFollow(FOLLOW_85);
             rule__XConstructorCall__Group_3_2__0__Impl();
@@ -53784,17 +54606,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
-    // InternalCubeDSL.g:16170:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:16415:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16174:1: ( ( ',' ) )
-            // InternalCubeDSL.g:16175:1: ( ',' )
+            // InternalCubeDSL.g:16419:1: ( ( ',' ) )
+            // InternalCubeDSL.g:16420:1: ( ',' )
             {
-            // InternalCubeDSL.g:16175:1: ( ',' )
-            // InternalCubeDSL.g:16176:2: ','
+            // InternalCubeDSL.g:16420:1: ( ',' )
+            // InternalCubeDSL.g:16421:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
@@ -53825,14 +54647,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
-    // InternalCubeDSL.g:16185:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
+    // InternalCubeDSL.g:16430:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
     public final void rule__XConstructorCall__Group_3_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16189:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
-            // InternalCubeDSL.g:16190:2: rule__XConstructorCall__Group_3_2__1__Impl
+            // InternalCubeDSL.g:16434:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
+            // InternalCubeDSL.g:16435:2: rule__XConstructorCall__Group_3_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_3_2__1__Impl();
@@ -53858,23 +54680,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
-    // InternalCubeDSL.g:16196:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
+    // InternalCubeDSL.g:16441:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
     public final void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16200:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
-            // InternalCubeDSL.g:16201:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalCubeDSL.g:16445:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
+            // InternalCubeDSL.g:16446:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
             {
-            // InternalCubeDSL.g:16201:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
-            // InternalCubeDSL.g:16202:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalCubeDSL.g:16446:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalCubeDSL.g:16447:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
             }
-            // InternalCubeDSL.g:16203:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
-            // InternalCubeDSL.g:16203:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+            // InternalCubeDSL.g:16448:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalCubeDSL.g:16448:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();
@@ -53909,14 +54731,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0"
-    // InternalCubeDSL.g:16212:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
+    // InternalCubeDSL.g:16457:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
     public final void rule__XConstructorCall__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16216:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
-            // InternalCubeDSL.g:16217:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
+            // InternalCubeDSL.g:16461:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
+            // InternalCubeDSL.g:16462:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
             {
             pushFollow(FOLLOW_87);
             rule__XConstructorCall__Group_4__0__Impl();
@@ -53947,23 +54769,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
-    // InternalCubeDSL.g:16224:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
+    // InternalCubeDSL.g:16469:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
     public final void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16228:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
-            // InternalCubeDSL.g:16229:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalCubeDSL.g:16473:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
+            // InternalCubeDSL.g:16474:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
             {
-            // InternalCubeDSL.g:16229:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
-            // InternalCubeDSL.g:16230:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalCubeDSL.g:16474:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalCubeDSL.g:16475:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
             }
-            // InternalCubeDSL.g:16231:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
-            // InternalCubeDSL.g:16231:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
+            // InternalCubeDSL.g:16476:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalCubeDSL.g:16476:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0();
@@ -53998,14 +54820,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1"
-    // InternalCubeDSL.g:16239:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
+    // InternalCubeDSL.g:16484:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
     public final void rule__XConstructorCall__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16243:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
-            // InternalCubeDSL.g:16244:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
+            // InternalCubeDSL.g:16488:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
+            // InternalCubeDSL.g:16489:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
             {
             pushFollow(FOLLOW_87);
             rule__XConstructorCall__Group_4__1__Impl();
@@ -54036,31 +54858,31 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
-    // InternalCubeDSL.g:16251:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
+    // InternalCubeDSL.g:16496:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
     public final void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16255:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
-            // InternalCubeDSL.g:16256:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalCubeDSL.g:16500:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
+            // InternalCubeDSL.g:16501:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
             {
-            // InternalCubeDSL.g:16256:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
-            // InternalCubeDSL.g:16257:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            // InternalCubeDSL.g:16501:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalCubeDSL.g:16502:2: ( rule__XConstructorCall__Alternatives_4_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
             }
-            // InternalCubeDSL.g:16258:2: ( rule__XConstructorCall__Alternatives_4_1 )?
-            int alt139=2;
-            int LA139_0 = input.LA(1);
+            // InternalCubeDSL.g:16503:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            int alt142=2;
+            int LA142_0 = input.LA(1);
 
-            if ( ((LA139_0>=RULE_ID && LA139_0<=RULE_DECIMAL)||LA139_0==27||LA139_0==31||(LA139_0>=34 && LA139_0<=35)||LA139_0==40||(LA139_0>=45 && LA139_0<=50)||LA139_0==74||LA139_0==88||(LA139_0>=92 && LA139_0<=93)||LA139_0==96||LA139_0==98||(LA139_0>=102 && LA139_0<=110)||LA139_0==112||LA139_0==129||LA139_0==131) ) {
-                alt139=1;
+            if ( ((LA142_0>=RULE_ID && LA142_0<=RULE_DECIMAL)||LA142_0==27||LA142_0==31||(LA142_0>=34 && LA142_0<=35)||LA142_0==40||(LA142_0>=45 && LA142_0<=50)||LA142_0==74||LA142_0==88||(LA142_0>=92 && LA142_0<=93)||LA142_0==96||LA142_0==98||(LA142_0>=102 && LA142_0<=110)||LA142_0==112||LA142_0==132||LA142_0==134) ) {
+                alt142=1;
             }
-            switch (alt139) {
+            switch (alt142) {
                 case 1 :
-                    // InternalCubeDSL.g:16258:3: rule__XConstructorCall__Alternatives_4_1
+                    // InternalCubeDSL.g:16503:3: rule__XConstructorCall__Alternatives_4_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__XConstructorCall__Alternatives_4_1();
@@ -54098,14 +54920,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2"
-    // InternalCubeDSL.g:16266:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
+    // InternalCubeDSL.g:16511:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
     public final void rule__XConstructorCall__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16270:1: ( rule__XConstructorCall__Group_4__2__Impl )
-            // InternalCubeDSL.g:16271:2: rule__XConstructorCall__Group_4__2__Impl
+            // InternalCubeDSL.g:16515:1: ( rule__XConstructorCall__Group_4__2__Impl )
+            // InternalCubeDSL.g:16516:2: rule__XConstructorCall__Group_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4__2__Impl();
@@ -54131,17 +54953,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
-    // InternalCubeDSL.g:16277:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:16522:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
     public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16281:1: ( ( ')' ) )
-            // InternalCubeDSL.g:16282:1: ( ')' )
+            // InternalCubeDSL.g:16526:1: ( ( ')' ) )
+            // InternalCubeDSL.g:16527:1: ( ')' )
             {
-            // InternalCubeDSL.g:16282:1: ( ')' )
-            // InternalCubeDSL.g:16283:2: ')'
+            // InternalCubeDSL.g:16527:1: ( ')' )
+            // InternalCubeDSL.g:16528:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
@@ -54172,14 +54994,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
-    // InternalCubeDSL.g:16293:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
+    // InternalCubeDSL.g:16538:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
     public final void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16297:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
-            // InternalCubeDSL.g:16298:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
+            // InternalCubeDSL.g:16542:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
+            // InternalCubeDSL.g:16543:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XConstructorCall__Group_4_1_1__0__Impl();
@@ -54210,23 +55032,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
-    // InternalCubeDSL.g:16305:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
+    // InternalCubeDSL.g:16550:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
     public final void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16309:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
-            // InternalCubeDSL.g:16310:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalCubeDSL.g:16554:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
+            // InternalCubeDSL.g:16555:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
             {
-            // InternalCubeDSL.g:16310:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
-            // InternalCubeDSL.g:16311:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalCubeDSL.g:16555:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalCubeDSL.g:16556:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
             }
-            // InternalCubeDSL.g:16312:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
-            // InternalCubeDSL.g:16312:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+            // InternalCubeDSL.g:16557:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalCubeDSL.g:16557:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();
@@ -54261,14 +55083,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
-    // InternalCubeDSL.g:16320:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
+    // InternalCubeDSL.g:16565:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
     public final void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16324:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
-            // InternalCubeDSL.g:16325:2: rule__XConstructorCall__Group_4_1_1__1__Impl
+            // InternalCubeDSL.g:16569:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
+            // InternalCubeDSL.g:16570:2: rule__XConstructorCall__Group_4_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1__1__Impl();
@@ -54294,35 +55116,35 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
-    // InternalCubeDSL.g:16331:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
+    // InternalCubeDSL.g:16576:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
     public final void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16335:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
-            // InternalCubeDSL.g:16336:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalCubeDSL.g:16580:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
+            // InternalCubeDSL.g:16581:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
             {
-            // InternalCubeDSL.g:16336:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
-            // InternalCubeDSL.g:16337:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            // InternalCubeDSL.g:16581:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalCubeDSL.g:16582:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
             }
-            // InternalCubeDSL.g:16338:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
-            loop140:
+            // InternalCubeDSL.g:16583:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            loop143:
             do {
-                int alt140=2;
-                int LA140_0 = input.LA(1);
+                int alt143=2;
+                int LA143_0 = input.LA(1);
 
-                if ( (LA140_0==90) ) {
-                    alt140=1;
+                if ( (LA143_0==90) ) {
+                    alt143=1;
                 }
 
 
-                switch (alt140) {
+                switch (alt143) {
             	case 1 :
-            	    // InternalCubeDSL.g:16338:3: rule__XConstructorCall__Group_4_1_1_1__0
+            	    // InternalCubeDSL.g:16583:3: rule__XConstructorCall__Group_4_1_1_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XConstructorCall__Group_4_1_1_1__0();
@@ -54334,7 +55156,7 @@
             	    break;
 
             	default :
-            	    break loop140;
+            	    break loop143;
                 }
             } while (true);
 
@@ -54363,14 +55185,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
-    // InternalCubeDSL.g:16347:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
+    // InternalCubeDSL.g:16592:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
     public final void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16351:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
-            // InternalCubeDSL.g:16352:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
+            // InternalCubeDSL.g:16596:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
+            // InternalCubeDSL.g:16597:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XConstructorCall__Group_4_1_1_1__0__Impl();
@@ -54401,17 +55223,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
-    // InternalCubeDSL.g:16359:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:16604:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
     public final void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16363:1: ( ( ',' ) )
-            // InternalCubeDSL.g:16364:1: ( ',' )
+            // InternalCubeDSL.g:16608:1: ( ( ',' ) )
+            // InternalCubeDSL.g:16609:1: ( ',' )
             {
-            // InternalCubeDSL.g:16364:1: ( ',' )
-            // InternalCubeDSL.g:16365:2: ','
+            // InternalCubeDSL.g:16609:1: ( ',' )
+            // InternalCubeDSL.g:16610:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
@@ -54442,14 +55264,14 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
-    // InternalCubeDSL.g:16374:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
+    // InternalCubeDSL.g:16619:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
     public final void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16378:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
-            // InternalCubeDSL.g:16379:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
+            // InternalCubeDSL.g:16623:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
+            // InternalCubeDSL.g:16624:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__Group_4_1_1_1__1__Impl();
@@ -54475,23 +55297,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
-    // InternalCubeDSL.g:16385:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
+    // InternalCubeDSL.g:16630:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
     public final void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16389:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
-            // InternalCubeDSL.g:16390:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalCubeDSL.g:16634:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
+            // InternalCubeDSL.g:16635:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
             {
-            // InternalCubeDSL.g:16390:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
-            // InternalCubeDSL.g:16391:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalCubeDSL.g:16635:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalCubeDSL.g:16636:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
             }
-            // InternalCubeDSL.g:16392:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
-            // InternalCubeDSL.g:16392:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+            // InternalCubeDSL.g:16637:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalCubeDSL.g:16637:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();
@@ -54526,14 +55348,14 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0"
-    // InternalCubeDSL.g:16401:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
+    // InternalCubeDSL.g:16646:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
     public final void rule__XBooleanLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16405:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
-            // InternalCubeDSL.g:16406:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
+            // InternalCubeDSL.g:16650:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
+            // InternalCubeDSL.g:16651:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
             {
             pushFollow(FOLLOW_112);
             rule__XBooleanLiteral__Group__0__Impl();
@@ -54564,23 +55386,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
-    // InternalCubeDSL.g:16413:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:16658:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16417:1: ( ( () ) )
-            // InternalCubeDSL.g:16418:1: ( () )
+            // InternalCubeDSL.g:16662:1: ( ( () ) )
+            // InternalCubeDSL.g:16663:1: ( () )
             {
-            // InternalCubeDSL.g:16418:1: ( () )
-            // InternalCubeDSL.g:16419:2: ()
+            // InternalCubeDSL.g:16663:1: ( () )
+            // InternalCubeDSL.g:16664:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
             }
-            // InternalCubeDSL.g:16420:2: ()
-            // InternalCubeDSL.g:16420:3: 
+            // InternalCubeDSL.g:16665:2: ()
+            // InternalCubeDSL.g:16665:3: 
             {
             }
 
@@ -54605,14 +55427,14 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1"
-    // InternalCubeDSL.g:16428:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
+    // InternalCubeDSL.g:16673:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
     public final void rule__XBooleanLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16432:1: ( rule__XBooleanLiteral__Group__1__Impl )
-            // InternalCubeDSL.g:16433:2: rule__XBooleanLiteral__Group__1__Impl
+            // InternalCubeDSL.g:16677:1: ( rule__XBooleanLiteral__Group__1__Impl )
+            // InternalCubeDSL.g:16678:2: rule__XBooleanLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Group__1__Impl();
@@ -54638,23 +55460,23 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
-    // InternalCubeDSL.g:16439:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
+    // InternalCubeDSL.g:16684:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
     public final void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16443:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
-            // InternalCubeDSL.g:16444:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalCubeDSL.g:16688:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
+            // InternalCubeDSL.g:16689:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
             {
-            // InternalCubeDSL.g:16444:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
-            // InternalCubeDSL.g:16445:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalCubeDSL.g:16689:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalCubeDSL.g:16690:2: ( rule__XBooleanLiteral__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
             }
-            // InternalCubeDSL.g:16446:2: ( rule__XBooleanLiteral__Alternatives_1 )
-            // InternalCubeDSL.g:16446:3: rule__XBooleanLiteral__Alternatives_1
+            // InternalCubeDSL.g:16691:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalCubeDSL.g:16691:3: rule__XBooleanLiteral__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__XBooleanLiteral__Alternatives_1();
@@ -54689,14 +55511,14 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0"
-    // InternalCubeDSL.g:16455:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
+    // InternalCubeDSL.g:16700:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
     public final void rule__XNullLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16459:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
-            // InternalCubeDSL.g:16460:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
+            // InternalCubeDSL.g:16704:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
+            // InternalCubeDSL.g:16705:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
             {
             pushFollow(FOLLOW_113);
             rule__XNullLiteral__Group__0__Impl();
@@ -54727,23 +55549,23 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
-    // InternalCubeDSL.g:16467:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:16712:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16471:1: ( ( () ) )
-            // InternalCubeDSL.g:16472:1: ( () )
+            // InternalCubeDSL.g:16716:1: ( ( () ) )
+            // InternalCubeDSL.g:16717:1: ( () )
             {
-            // InternalCubeDSL.g:16472:1: ( () )
-            // InternalCubeDSL.g:16473:2: ()
+            // InternalCubeDSL.g:16717:1: ( () )
+            // InternalCubeDSL.g:16718:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
             }
-            // InternalCubeDSL.g:16474:2: ()
-            // InternalCubeDSL.g:16474:3: 
+            // InternalCubeDSL.g:16719:2: ()
+            // InternalCubeDSL.g:16719:3: 
             {
             }
 
@@ -54768,14 +55590,14 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1"
-    // InternalCubeDSL.g:16482:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
+    // InternalCubeDSL.g:16727:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
     public final void rule__XNullLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16486:1: ( rule__XNullLiteral__Group__1__Impl )
-            // InternalCubeDSL.g:16487:2: rule__XNullLiteral__Group__1__Impl
+            // InternalCubeDSL.g:16731:1: ( rule__XNullLiteral__Group__1__Impl )
+            // InternalCubeDSL.g:16732:2: rule__XNullLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNullLiteral__Group__1__Impl();
@@ -54801,17 +55623,17 @@
 
 
     // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
-    // InternalCubeDSL.g:16493:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
+    // InternalCubeDSL.g:16738:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
     public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16497:1: ( ( 'null' ) )
-            // InternalCubeDSL.g:16498:1: ( 'null' )
+            // InternalCubeDSL.g:16742:1: ( ( 'null' ) )
+            // InternalCubeDSL.g:16743:1: ( 'null' )
             {
-            // InternalCubeDSL.g:16498:1: ( 'null' )
-            // InternalCubeDSL.g:16499:2: 'null'
+            // InternalCubeDSL.g:16743:1: ( 'null' )
+            // InternalCubeDSL.g:16744:2: 'null'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
@@ -54842,14 +55664,14 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0"
-    // InternalCubeDSL.g:16509:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
+    // InternalCubeDSL.g:16754:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
     public final void rule__XNumberLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16513:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
-            // InternalCubeDSL.g:16514:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
+            // InternalCubeDSL.g:16758:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
+            // InternalCubeDSL.g:16759:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
             {
             pushFollow(FOLLOW_114);
             rule__XNumberLiteral__Group__0__Impl();
@@ -54880,23 +55702,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
-    // InternalCubeDSL.g:16521:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:16766:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16525:1: ( ( () ) )
-            // InternalCubeDSL.g:16526:1: ( () )
+            // InternalCubeDSL.g:16770:1: ( ( () ) )
+            // InternalCubeDSL.g:16771:1: ( () )
             {
-            // InternalCubeDSL.g:16526:1: ( () )
-            // InternalCubeDSL.g:16527:2: ()
+            // InternalCubeDSL.g:16771:1: ( () )
+            // InternalCubeDSL.g:16772:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
             }
-            // InternalCubeDSL.g:16528:2: ()
-            // InternalCubeDSL.g:16528:3: 
+            // InternalCubeDSL.g:16773:2: ()
+            // InternalCubeDSL.g:16773:3: 
             {
             }
 
@@ -54921,14 +55743,14 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1"
-    // InternalCubeDSL.g:16536:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
+    // InternalCubeDSL.g:16781:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
     public final void rule__XNumberLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16540:1: ( rule__XNumberLiteral__Group__1__Impl )
-            // InternalCubeDSL.g:16541:2: rule__XNumberLiteral__Group__1__Impl
+            // InternalCubeDSL.g:16785:1: ( rule__XNumberLiteral__Group__1__Impl )
+            // InternalCubeDSL.g:16786:2: rule__XNumberLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__Group__1__Impl();
@@ -54954,23 +55776,23 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
-    // InternalCubeDSL.g:16547:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
+    // InternalCubeDSL.g:16792:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16551:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
-            // InternalCubeDSL.g:16552:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalCubeDSL.g:16796:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
+            // InternalCubeDSL.g:16797:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
             {
-            // InternalCubeDSL.g:16552:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
-            // InternalCubeDSL.g:16553:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalCubeDSL.g:16797:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalCubeDSL.g:16798:2: ( rule__XNumberLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalCubeDSL.g:16554:2: ( rule__XNumberLiteral__ValueAssignment_1 )
-            // InternalCubeDSL.g:16554:3: rule__XNumberLiteral__ValueAssignment_1
+            // InternalCubeDSL.g:16799:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalCubeDSL.g:16799:3: rule__XNumberLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XNumberLiteral__ValueAssignment_1();
@@ -55005,14 +55827,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0"
-    // InternalCubeDSL.g:16563:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
+    // InternalCubeDSL.g:16808:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
     public final void rule__XStringLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16567:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
-            // InternalCubeDSL.g:16568:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
+            // InternalCubeDSL.g:16812:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
+            // InternalCubeDSL.g:16813:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
             {
             pushFollow(FOLLOW_14);
             rule__XStringLiteral__Group__0__Impl();
@@ -55043,23 +55865,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
-    // InternalCubeDSL.g:16575:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:16820:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16579:1: ( ( () ) )
-            // InternalCubeDSL.g:16580:1: ( () )
+            // InternalCubeDSL.g:16824:1: ( ( () ) )
+            // InternalCubeDSL.g:16825:1: ( () )
             {
-            // InternalCubeDSL.g:16580:1: ( () )
-            // InternalCubeDSL.g:16581:2: ()
+            // InternalCubeDSL.g:16825:1: ( () )
+            // InternalCubeDSL.g:16826:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
             }
-            // InternalCubeDSL.g:16582:2: ()
-            // InternalCubeDSL.g:16582:3: 
+            // InternalCubeDSL.g:16827:2: ()
+            // InternalCubeDSL.g:16827:3: 
             {
             }
 
@@ -55084,14 +55906,14 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1"
-    // InternalCubeDSL.g:16590:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
+    // InternalCubeDSL.g:16835:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
     public final void rule__XStringLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16594:1: ( rule__XStringLiteral__Group__1__Impl )
-            // InternalCubeDSL.g:16595:2: rule__XStringLiteral__Group__1__Impl
+            // InternalCubeDSL.g:16839:1: ( rule__XStringLiteral__Group__1__Impl )
+            // InternalCubeDSL.g:16840:2: rule__XStringLiteral__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__Group__1__Impl();
@@ -55117,23 +55939,23 @@
 
 
     // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
-    // InternalCubeDSL.g:16601:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
+    // InternalCubeDSL.g:16846:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
     public final void rule__XStringLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16605:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
-            // InternalCubeDSL.g:16606:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalCubeDSL.g:16850:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
+            // InternalCubeDSL.g:16851:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
             {
-            // InternalCubeDSL.g:16606:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
-            // InternalCubeDSL.g:16607:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalCubeDSL.g:16851:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalCubeDSL.g:16852:2: ( rule__XStringLiteral__ValueAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
             }
-            // InternalCubeDSL.g:16608:2: ( rule__XStringLiteral__ValueAssignment_1 )
-            // InternalCubeDSL.g:16608:3: rule__XStringLiteral__ValueAssignment_1
+            // InternalCubeDSL.g:16853:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalCubeDSL.g:16853:3: rule__XStringLiteral__ValueAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XStringLiteral__ValueAssignment_1();
@@ -55168,14 +55990,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0"
-    // InternalCubeDSL.g:16617:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
+    // InternalCubeDSL.g:16862:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
     public final void rule__XTypeLiteral__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16621:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
-            // InternalCubeDSL.g:16622:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
+            // InternalCubeDSL.g:16866:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
+            // InternalCubeDSL.g:16867:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
             {
             pushFollow(FOLLOW_115);
             rule__XTypeLiteral__Group__0__Impl();
@@ -55206,23 +56028,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
-    // InternalCubeDSL.g:16629:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:16874:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
     public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16633:1: ( ( () ) )
-            // InternalCubeDSL.g:16634:1: ( () )
+            // InternalCubeDSL.g:16878:1: ( ( () ) )
+            // InternalCubeDSL.g:16879:1: ( () )
             {
-            // InternalCubeDSL.g:16634:1: ( () )
-            // InternalCubeDSL.g:16635:2: ()
+            // InternalCubeDSL.g:16879:1: ( () )
+            // InternalCubeDSL.g:16880:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
             }
-            // InternalCubeDSL.g:16636:2: ()
-            // InternalCubeDSL.g:16636:3: 
+            // InternalCubeDSL.g:16881:2: ()
+            // InternalCubeDSL.g:16881:3: 
             {
             }
 
@@ -55247,14 +56069,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1"
-    // InternalCubeDSL.g:16644:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
+    // InternalCubeDSL.g:16889:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
     public final void rule__XTypeLiteral__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16648:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
-            // InternalCubeDSL.g:16649:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
+            // InternalCubeDSL.g:16893:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
+            // InternalCubeDSL.g:16894:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
             {
             pushFollow(FOLLOW_44);
             rule__XTypeLiteral__Group__1__Impl();
@@ -55285,17 +56107,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
-    // InternalCubeDSL.g:16656:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
+    // InternalCubeDSL.g:16901:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
     public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16660:1: ( ( 'typeof' ) )
-            // InternalCubeDSL.g:16661:1: ( 'typeof' )
+            // InternalCubeDSL.g:16905:1: ( ( 'typeof' ) )
+            // InternalCubeDSL.g:16906:1: ( 'typeof' )
             {
-            // InternalCubeDSL.g:16661:1: ( 'typeof' )
-            // InternalCubeDSL.g:16662:2: 'typeof'
+            // InternalCubeDSL.g:16906:1: ( 'typeof' )
+            // InternalCubeDSL.g:16907:2: 'typeof'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
@@ -55326,14 +56148,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2"
-    // InternalCubeDSL.g:16671:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
+    // InternalCubeDSL.g:16916:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
     public final void rule__XTypeLiteral__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16675:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
-            // InternalCubeDSL.g:16676:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
+            // InternalCubeDSL.g:16920:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
+            // InternalCubeDSL.g:16921:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
             {
             pushFollow(FOLLOW_6);
             rule__XTypeLiteral__Group__2__Impl();
@@ -55364,17 +56186,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
-    // InternalCubeDSL.g:16683:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:16928:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
     public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16687:1: ( ( '(' ) )
-            // InternalCubeDSL.g:16688:1: ( '(' )
+            // InternalCubeDSL.g:16932:1: ( ( '(' ) )
+            // InternalCubeDSL.g:16933:1: ( '(' )
             {
-            // InternalCubeDSL.g:16688:1: ( '(' )
-            // InternalCubeDSL.g:16689:2: '('
+            // InternalCubeDSL.g:16933:1: ( '(' )
+            // InternalCubeDSL.g:16934:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
@@ -55405,14 +56227,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3"
-    // InternalCubeDSL.g:16698:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
+    // InternalCubeDSL.g:16943:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
     public final void rule__XTypeLiteral__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16702:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
-            // InternalCubeDSL.g:16703:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
+            // InternalCubeDSL.g:16947:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
+            // InternalCubeDSL.g:16948:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
             {
             pushFollow(FOLLOW_116);
             rule__XTypeLiteral__Group__3__Impl();
@@ -55443,23 +56265,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
-    // InternalCubeDSL.g:16710:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
+    // InternalCubeDSL.g:16955:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
     public final void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16714:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
-            // InternalCubeDSL.g:16715:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalCubeDSL.g:16959:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
+            // InternalCubeDSL.g:16960:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
             {
-            // InternalCubeDSL.g:16715:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
-            // InternalCubeDSL.g:16716:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalCubeDSL.g:16960:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalCubeDSL.g:16961:2: ( rule__XTypeLiteral__TypeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
             }
-            // InternalCubeDSL.g:16717:2: ( rule__XTypeLiteral__TypeAssignment_3 )
-            // InternalCubeDSL.g:16717:3: rule__XTypeLiteral__TypeAssignment_3
+            // InternalCubeDSL.g:16962:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalCubeDSL.g:16962:3: rule__XTypeLiteral__TypeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__TypeAssignment_3();
@@ -55494,14 +56316,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4"
-    // InternalCubeDSL.g:16725:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
+    // InternalCubeDSL.g:16970:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
     public final void rule__XTypeLiteral__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16729:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
-            // InternalCubeDSL.g:16730:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
+            // InternalCubeDSL.g:16974:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
+            // InternalCubeDSL.g:16975:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
             {
             pushFollow(FOLLOW_116);
             rule__XTypeLiteral__Group__4__Impl();
@@ -55532,35 +56354,35 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
-    // InternalCubeDSL.g:16737:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
+    // InternalCubeDSL.g:16982:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
     public final void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16741:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
-            // InternalCubeDSL.g:16742:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalCubeDSL.g:16986:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
+            // InternalCubeDSL.g:16987:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
             {
-            // InternalCubeDSL.g:16742:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
-            // InternalCubeDSL.g:16743:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            // InternalCubeDSL.g:16987:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalCubeDSL.g:16988:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
             }
-            // InternalCubeDSL.g:16744:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
-            loop141:
+            // InternalCubeDSL.g:16989:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            loop144:
             do {
-                int alt141=2;
-                int LA141_0 = input.LA(1);
+                int alt144=2;
+                int LA144_0 = input.LA(1);
 
-                if ( (LA141_0==93) ) {
-                    alt141=1;
+                if ( (LA144_0==93) ) {
+                    alt144=1;
                 }
 
 
-                switch (alt141) {
+                switch (alt144) {
             	case 1 :
-            	    // InternalCubeDSL.g:16744:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
+            	    // InternalCubeDSL.g:16989:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
             	    {
             	    pushFollow(FOLLOW_117);
             	    rule__XTypeLiteral__ArrayDimensionsAssignment_4();
@@ -55572,7 +56394,7 @@
             	    break;
 
             	default :
-            	    break loop141;
+            	    break loop144;
                 }
             } while (true);
 
@@ -55601,14 +56423,14 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5"
-    // InternalCubeDSL.g:16752:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
+    // InternalCubeDSL.g:16997:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
     public final void rule__XTypeLiteral__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16756:1: ( rule__XTypeLiteral__Group__5__Impl )
-            // InternalCubeDSL.g:16757:2: rule__XTypeLiteral__Group__5__Impl
+            // InternalCubeDSL.g:17001:1: ( rule__XTypeLiteral__Group__5__Impl )
+            // InternalCubeDSL.g:17002:2: rule__XTypeLiteral__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTypeLiteral__Group__5__Impl();
@@ -55634,17 +56456,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
-    // InternalCubeDSL.g:16763:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:17008:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
     public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16767:1: ( ( ')' ) )
-            // InternalCubeDSL.g:16768:1: ( ')' )
+            // InternalCubeDSL.g:17012:1: ( ( ')' ) )
+            // InternalCubeDSL.g:17013:1: ( ')' )
             {
-            // InternalCubeDSL.g:16768:1: ( ')' )
-            // InternalCubeDSL.g:16769:2: ')'
+            // InternalCubeDSL.g:17013:1: ( ')' )
+            // InternalCubeDSL.g:17014:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
@@ -55675,14 +56497,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0"
-    // InternalCubeDSL.g:16779:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
+    // InternalCubeDSL.g:17024:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
     public final void rule__XThrowExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16783:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
-            // InternalCubeDSL.g:16784:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
+            // InternalCubeDSL.g:17028:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
+            // InternalCubeDSL.g:17029:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
             {
             pushFollow(FOLLOW_118);
             rule__XThrowExpression__Group__0__Impl();
@@ -55713,23 +56535,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
-    // InternalCubeDSL.g:16791:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:17036:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
     public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16795:1: ( ( () ) )
-            // InternalCubeDSL.g:16796:1: ( () )
+            // InternalCubeDSL.g:17040:1: ( ( () ) )
+            // InternalCubeDSL.g:17041:1: ( () )
             {
-            // InternalCubeDSL.g:16796:1: ( () )
-            // InternalCubeDSL.g:16797:2: ()
+            // InternalCubeDSL.g:17041:1: ( () )
+            // InternalCubeDSL.g:17042:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:16798:2: ()
-            // InternalCubeDSL.g:16798:3: 
+            // InternalCubeDSL.g:17043:2: ()
+            // InternalCubeDSL.g:17043:3: 
             {
             }
 
@@ -55754,14 +56576,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1"
-    // InternalCubeDSL.g:16806:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
+    // InternalCubeDSL.g:17051:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
     public final void rule__XThrowExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16810:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
-            // InternalCubeDSL.g:16811:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
+            // InternalCubeDSL.g:17055:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
+            // InternalCubeDSL.g:17056:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
             {
             pushFollow(FOLLOW_48);
             rule__XThrowExpression__Group__1__Impl();
@@ -55792,17 +56614,17 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
-    // InternalCubeDSL.g:16818:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
+    // InternalCubeDSL.g:17063:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
     public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16822:1: ( ( 'throw' ) )
-            // InternalCubeDSL.g:16823:1: ( 'throw' )
+            // InternalCubeDSL.g:17067:1: ( ( 'throw' ) )
+            // InternalCubeDSL.g:17068:1: ( 'throw' )
             {
-            // InternalCubeDSL.g:16823:1: ( 'throw' )
-            // InternalCubeDSL.g:16824:2: 'throw'
+            // InternalCubeDSL.g:17068:1: ( 'throw' )
+            // InternalCubeDSL.g:17069:2: 'throw'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
@@ -55833,14 +56655,14 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2"
-    // InternalCubeDSL.g:16833:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
+    // InternalCubeDSL.g:17078:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
     public final void rule__XThrowExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16837:1: ( rule__XThrowExpression__Group__2__Impl )
-            // InternalCubeDSL.g:16838:2: rule__XThrowExpression__Group__2__Impl
+            // InternalCubeDSL.g:17082:1: ( rule__XThrowExpression__Group__2__Impl )
+            // InternalCubeDSL.g:17083:2: rule__XThrowExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__Group__2__Impl();
@@ -55866,23 +56688,23 @@
 
 
     // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
-    // InternalCubeDSL.g:16844:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
+    // InternalCubeDSL.g:17089:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XThrowExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16848:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
-            // InternalCubeDSL.g:16849:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalCubeDSL.g:17093:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
+            // InternalCubeDSL.g:17094:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
             {
-            // InternalCubeDSL.g:16849:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
-            // InternalCubeDSL.g:16850:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalCubeDSL.g:17094:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalCubeDSL.g:17095:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalCubeDSL.g:16851:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
-            // InternalCubeDSL.g:16851:3: rule__XThrowExpression__ExpressionAssignment_2
+            // InternalCubeDSL.g:17096:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalCubeDSL.g:17096:3: rule__XThrowExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XThrowExpression__ExpressionAssignment_2();
@@ -55917,14 +56739,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0"
-    // InternalCubeDSL.g:16860:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
+    // InternalCubeDSL.g:17105:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
     public final void rule__XReturnExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16864:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
-            // InternalCubeDSL.g:16865:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
+            // InternalCubeDSL.g:17109:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
+            // InternalCubeDSL.g:17110:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
             {
             pushFollow(FOLLOW_119);
             rule__XReturnExpression__Group__0__Impl();
@@ -55955,23 +56777,23 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
-    // InternalCubeDSL.g:16872:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:17117:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
     public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16876:1: ( ( () ) )
-            // InternalCubeDSL.g:16877:1: ( () )
+            // InternalCubeDSL.g:17121:1: ( ( () ) )
+            // InternalCubeDSL.g:17122:1: ( () )
             {
-            // InternalCubeDSL.g:16877:1: ( () )
-            // InternalCubeDSL.g:16878:2: ()
+            // InternalCubeDSL.g:17122:1: ( () )
+            // InternalCubeDSL.g:17123:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:16879:2: ()
-            // InternalCubeDSL.g:16879:3: 
+            // InternalCubeDSL.g:17124:2: ()
+            // InternalCubeDSL.g:17124:3: 
             {
             }
 
@@ -55996,14 +56818,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1"
-    // InternalCubeDSL.g:16887:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
+    // InternalCubeDSL.g:17132:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
     public final void rule__XReturnExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16891:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
-            // InternalCubeDSL.g:16892:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
+            // InternalCubeDSL.g:17136:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
+            // InternalCubeDSL.g:17137:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
             {
             pushFollow(FOLLOW_48);
             rule__XReturnExpression__Group__1__Impl();
@@ -56034,17 +56856,17 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
-    // InternalCubeDSL.g:16899:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
+    // InternalCubeDSL.g:17144:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
     public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16903:1: ( ( 'return' ) )
-            // InternalCubeDSL.g:16904:1: ( 'return' )
+            // InternalCubeDSL.g:17148:1: ( ( 'return' ) )
+            // InternalCubeDSL.g:17149:1: ( 'return' )
             {
-            // InternalCubeDSL.g:16904:1: ( 'return' )
-            // InternalCubeDSL.g:16905:2: 'return'
+            // InternalCubeDSL.g:17149:1: ( 'return' )
+            // InternalCubeDSL.g:17150:2: 'return'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
@@ -56075,14 +56897,14 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2"
-    // InternalCubeDSL.g:16914:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
+    // InternalCubeDSL.g:17159:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
     public final void rule__XReturnExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16918:1: ( rule__XReturnExpression__Group__2__Impl )
-            // InternalCubeDSL.g:16919:2: rule__XReturnExpression__Group__2__Impl
+            // InternalCubeDSL.g:17163:1: ( rule__XReturnExpression__Group__2__Impl )
+            // InternalCubeDSL.g:17164:2: rule__XReturnExpression__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XReturnExpression__Group__2__Impl();
@@ -56108,27 +56930,27 @@
 
 
     // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
-    // InternalCubeDSL.g:16925:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
+    // InternalCubeDSL.g:17170:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
     public final void rule__XReturnExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16929:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
-            // InternalCubeDSL.g:16930:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalCubeDSL.g:17174:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
+            // InternalCubeDSL.g:17175:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
             {
-            // InternalCubeDSL.g:16930:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
-            // InternalCubeDSL.g:16931:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            // InternalCubeDSL.g:17175:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalCubeDSL.g:17176:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalCubeDSL.g:16932:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
-            int alt142=2;
-            alt142 = dfa142.predict(input);
-            switch (alt142) {
+            // InternalCubeDSL.g:17177:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            int alt145=2;
+            alt145 = dfa145.predict(input);
+            switch (alt145) {
                 case 1 :
-                    // InternalCubeDSL.g:16932:3: rule__XReturnExpression__ExpressionAssignment_2
+                    // InternalCubeDSL.g:17177:3: rule__XReturnExpression__ExpressionAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__XReturnExpression__ExpressionAssignment_2();
@@ -56166,14 +56988,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
-    // InternalCubeDSL.g:16941:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
+    // InternalCubeDSL.g:17186:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
     public final void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16945:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
-            // InternalCubeDSL.g:16946:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
+            // InternalCubeDSL.g:17190:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
+            // InternalCubeDSL.g:17191:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
             {
             pushFollow(FOLLOW_120);
             rule__XTryCatchFinallyExpression__Group__0__Impl();
@@ -56204,23 +57026,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
-    // InternalCubeDSL.g:16953:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:17198:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
     public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16957:1: ( ( () ) )
-            // InternalCubeDSL.g:16958:1: ( () )
+            // InternalCubeDSL.g:17202:1: ( ( () ) )
+            // InternalCubeDSL.g:17203:1: ( () )
             {
-            // InternalCubeDSL.g:16958:1: ( () )
-            // InternalCubeDSL.g:16959:2: ()
+            // InternalCubeDSL.g:17203:1: ( () )
+            // InternalCubeDSL.g:17204:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
             }
-            // InternalCubeDSL.g:16960:2: ()
-            // InternalCubeDSL.g:16960:3: 
+            // InternalCubeDSL.g:17205:2: ()
+            // InternalCubeDSL.g:17205:3: 
             {
             }
 
@@ -56245,14 +57067,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
-    // InternalCubeDSL.g:16968:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
+    // InternalCubeDSL.g:17213:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
     public final void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16972:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
-            // InternalCubeDSL.g:16973:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
+            // InternalCubeDSL.g:17217:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
+            // InternalCubeDSL.g:17218:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
             {
             pushFollow(FOLLOW_48);
             rule__XTryCatchFinallyExpression__Group__1__Impl();
@@ -56283,17 +57105,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
-    // InternalCubeDSL.g:16980:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
+    // InternalCubeDSL.g:17225:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
     public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16984:1: ( ( 'try' ) )
-            // InternalCubeDSL.g:16985:1: ( 'try' )
+            // InternalCubeDSL.g:17229:1: ( ( 'try' ) )
+            // InternalCubeDSL.g:17230:1: ( 'try' )
             {
-            // InternalCubeDSL.g:16985:1: ( 'try' )
-            // InternalCubeDSL.g:16986:2: 'try'
+            // InternalCubeDSL.g:17230:1: ( 'try' )
+            // InternalCubeDSL.g:17231:2: 'try'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
@@ -56324,14 +57146,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
-    // InternalCubeDSL.g:16995:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
+    // InternalCubeDSL.g:17240:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
     public final void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:16999:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
-            // InternalCubeDSL.g:17000:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
+            // InternalCubeDSL.g:17244:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
+            // InternalCubeDSL.g:17245:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
             {
             pushFollow(FOLLOW_121);
             rule__XTryCatchFinallyExpression__Group__2__Impl();
@@ -56362,23 +57184,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
-    // InternalCubeDSL.g:17007:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
+    // InternalCubeDSL.g:17252:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17011:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
-            // InternalCubeDSL.g:17012:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalCubeDSL.g:17256:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
+            // InternalCubeDSL.g:17257:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
             {
-            // InternalCubeDSL.g:17012:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
-            // InternalCubeDSL.g:17013:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalCubeDSL.g:17257:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalCubeDSL.g:17258:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
             }
-            // InternalCubeDSL.g:17014:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
-            // InternalCubeDSL.g:17014:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+            // InternalCubeDSL.g:17259:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalCubeDSL.g:17259:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__ExpressionAssignment_2();
@@ -56413,14 +57235,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
-    // InternalCubeDSL.g:17022:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
+    // InternalCubeDSL.g:17267:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17026:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
-            // InternalCubeDSL.g:17027:2: rule__XTryCatchFinallyExpression__Group__3__Impl
+            // InternalCubeDSL.g:17271:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
+            // InternalCubeDSL.g:17272:2: rule__XTryCatchFinallyExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group__3__Impl();
@@ -56446,23 +57268,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
-    // InternalCubeDSL.g:17033:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
+    // InternalCubeDSL.g:17278:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17037:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
-            // InternalCubeDSL.g:17038:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalCubeDSL.g:17282:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
+            // InternalCubeDSL.g:17283:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
             {
-            // InternalCubeDSL.g:17038:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
-            // InternalCubeDSL.g:17039:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalCubeDSL.g:17283:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalCubeDSL.g:17284:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
             }
-            // InternalCubeDSL.g:17040:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
-            // InternalCubeDSL.g:17040:3: rule__XTryCatchFinallyExpression__Alternatives_3
+            // InternalCubeDSL.g:17285:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalCubeDSL.g:17285:3: rule__XTryCatchFinallyExpression__Alternatives_3
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Alternatives_3();
@@ -56497,14 +57319,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
-    // InternalCubeDSL.g:17049:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
+    // InternalCubeDSL.g:17294:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17053:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
-            // InternalCubeDSL.g:17054:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
+            // InternalCubeDSL.g:17298:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
+            // InternalCubeDSL.g:17299:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
             {
             pushFollow(FOLLOW_122);
             rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();
@@ -56535,26 +57357,26 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
-    // InternalCubeDSL.g:17061:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
+    // InternalCubeDSL.g:17306:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17065:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
-            // InternalCubeDSL.g:17066:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalCubeDSL.g:17310:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
+            // InternalCubeDSL.g:17311:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
             {
-            // InternalCubeDSL.g:17066:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
-            // InternalCubeDSL.g:17067:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalCubeDSL.g:17311:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalCubeDSL.g:17312:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
             {
-            // InternalCubeDSL.g:17067:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
-            // InternalCubeDSL.g:17068:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalCubeDSL.g:17312:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
+            // InternalCubeDSL.g:17313:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalCubeDSL.g:17069:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-            // InternalCubeDSL.g:17069:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            // InternalCubeDSL.g:17314:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalCubeDSL.g:17314:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             {
             pushFollow(FOLLOW_123);
             rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
@@ -56570,32 +57392,32 @@
 
             }
 
-            // InternalCubeDSL.g:17072:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
-            // InternalCubeDSL.g:17073:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            // InternalCubeDSL.g:17317:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalCubeDSL.g:17318:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
             }
-            // InternalCubeDSL.g:17074:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
-            loop143:
+            // InternalCubeDSL.g:17319:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            loop146:
             do {
-                int alt143=2;
-                int LA143_0 = input.LA(1);
+                int alt146=2;
+                int LA146_0 = input.LA(1);
 
-                if ( (LA143_0==113) ) {
-                    int LA143_2 = input.LA(2);
+                if ( (LA146_0==113) ) {
+                    int LA146_2 = input.LA(2);
 
-                    if ( (synpred204_InternalCubeDSL()) ) {
-                        alt143=1;
+                    if ( (synpred207_InternalCubeDSL()) ) {
+                        alt146=1;
                     }
 
 
                 }
 
 
-                switch (alt143) {
+                switch (alt146) {
             	case 1 :
-            	    // InternalCubeDSL.g:17074:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            	    // InternalCubeDSL.g:17319:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
             	    {
             	    pushFollow(FOLLOW_123);
             	    rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
@@ -56607,7 +57429,7 @@
             	    break;
 
             	default :
-            	    break loop143;
+            	    break loop146;
                 }
             } while (true);
 
@@ -56639,14 +57461,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
-    // InternalCubeDSL.g:17083:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
+    // InternalCubeDSL.g:17328:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17087:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
-            // InternalCubeDSL.g:17088:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+            // InternalCubeDSL.g:17332:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
+            // InternalCubeDSL.g:17333:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();
@@ -56672,35 +57494,35 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
-    // InternalCubeDSL.g:17094:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
+    // InternalCubeDSL.g:17339:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17098:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
-            // InternalCubeDSL.g:17099:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalCubeDSL.g:17343:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
+            // InternalCubeDSL.g:17344:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
             {
-            // InternalCubeDSL.g:17099:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
-            // InternalCubeDSL.g:17100:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            // InternalCubeDSL.g:17344:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalCubeDSL.g:17345:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
             }
-            // InternalCubeDSL.g:17101:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
-            int alt144=2;
-            int LA144_0 = input.LA(1);
+            // InternalCubeDSL.g:17346:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            int alt147=2;
+            int LA147_0 = input.LA(1);
 
-            if ( (LA144_0==111) ) {
-                int LA144_1 = input.LA(2);
+            if ( (LA147_0==111) ) {
+                int LA147_1 = input.LA(2);
 
-                if ( (synpred205_InternalCubeDSL()) ) {
-                    alt144=1;
+                if ( (synpred208_InternalCubeDSL()) ) {
+                    alt147=1;
                 }
             }
-            switch (alt144) {
+            switch (alt147) {
                 case 1 :
-                    // InternalCubeDSL.g:17101:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+                    // InternalCubeDSL.g:17346:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -56738,14 +57560,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
-    // InternalCubeDSL.g:17110:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
+    // InternalCubeDSL.g:17355:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17114:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
-            // InternalCubeDSL.g:17115:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
+            // InternalCubeDSL.g:17359:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
+            // InternalCubeDSL.g:17360:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();
@@ -56776,23 +57598,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
-    // InternalCubeDSL.g:17122:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
+    // InternalCubeDSL.g:17367:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17126:1: ( ( ( 'finally' ) ) )
-            // InternalCubeDSL.g:17127:1: ( ( 'finally' ) )
+            // InternalCubeDSL.g:17371:1: ( ( ( 'finally' ) ) )
+            // InternalCubeDSL.g:17372:1: ( ( 'finally' ) )
             {
-            // InternalCubeDSL.g:17127:1: ( ( 'finally' ) )
-            // InternalCubeDSL.g:17128:2: ( 'finally' )
+            // InternalCubeDSL.g:17372:1: ( ( 'finally' ) )
+            // InternalCubeDSL.g:17373:2: ( 'finally' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
             }
-            // InternalCubeDSL.g:17129:2: ( 'finally' )
-            // InternalCubeDSL.g:17129:3: 'finally'
+            // InternalCubeDSL.g:17374:2: ( 'finally' )
+            // InternalCubeDSL.g:17374:3: 'finally'
             {
             match(input,111,FOLLOW_2); if (state.failed) return ;
 
@@ -56823,14 +57645,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
-    // InternalCubeDSL.g:17137:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
+    // InternalCubeDSL.g:17382:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17141:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
-            // InternalCubeDSL.g:17142:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+            // InternalCubeDSL.g:17386:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
+            // InternalCubeDSL.g:17387:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();
@@ -56856,23 +57678,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
-    // InternalCubeDSL.g:17148:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
+    // InternalCubeDSL.g:17393:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17152:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
-            // InternalCubeDSL.g:17153:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalCubeDSL.g:17397:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
+            // InternalCubeDSL.g:17398:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
             {
-            // InternalCubeDSL.g:17153:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
-            // InternalCubeDSL.g:17154:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalCubeDSL.g:17398:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalCubeDSL.g:17399:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
             }
-            // InternalCubeDSL.g:17155:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
-            // InternalCubeDSL.g:17155:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+            // InternalCubeDSL.g:17400:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalCubeDSL.g:17400:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();
@@ -56907,14 +57729,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
-    // InternalCubeDSL.g:17164:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
+    // InternalCubeDSL.g:17409:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17168:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
-            // InternalCubeDSL.g:17169:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
+            // InternalCubeDSL.g:17413:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
+            // InternalCubeDSL.g:17414:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
             {
             pushFollow(FOLLOW_48);
             rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();
@@ -56945,17 +57767,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
-    // InternalCubeDSL.g:17176:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
+    // InternalCubeDSL.g:17421:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17180:1: ( ( 'finally' ) )
-            // InternalCubeDSL.g:17181:1: ( 'finally' )
+            // InternalCubeDSL.g:17425:1: ( ( 'finally' ) )
+            // InternalCubeDSL.g:17426:1: ( 'finally' )
             {
-            // InternalCubeDSL.g:17181:1: ( 'finally' )
-            // InternalCubeDSL.g:17182:2: 'finally'
+            // InternalCubeDSL.g:17426:1: ( 'finally' )
+            // InternalCubeDSL.g:17427:2: 'finally'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
@@ -56986,14 +57808,14 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
-    // InternalCubeDSL.g:17191:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
+    // InternalCubeDSL.g:17436:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17195:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
-            // InternalCubeDSL.g:17196:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+            // InternalCubeDSL.g:17440:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
+            // InternalCubeDSL.g:17441:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();
@@ -57019,23 +57841,23 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
-    // InternalCubeDSL.g:17202:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
+    // InternalCubeDSL.g:17447:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
     public final void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17206:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
-            // InternalCubeDSL.g:17207:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalCubeDSL.g:17451:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
+            // InternalCubeDSL.g:17452:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
             {
-            // InternalCubeDSL.g:17207:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
-            // InternalCubeDSL.g:17208:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalCubeDSL.g:17452:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalCubeDSL.g:17453:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
             }
-            // InternalCubeDSL.g:17209:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
-            // InternalCubeDSL.g:17209:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+            // InternalCubeDSL.g:17454:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalCubeDSL.g:17454:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();
@@ -57070,14 +57892,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0"
-    // InternalCubeDSL.g:17218:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
+    // InternalCubeDSL.g:17463:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
     public final void rule__XSynchronizedExpression__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17222:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
-            // InternalCubeDSL.g:17223:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
+            // InternalCubeDSL.g:17467:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
+            // InternalCubeDSL.g:17468:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
             {
             pushFollow(FOLLOW_48);
             rule__XSynchronizedExpression__Group__0__Impl();
@@ -57108,23 +57930,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__0__Impl"
-    // InternalCubeDSL.g:17230:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
+    // InternalCubeDSL.g:17475:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
     public final void rule__XSynchronizedExpression__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17234:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
-            // InternalCubeDSL.g:17235:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalCubeDSL.g:17479:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
+            // InternalCubeDSL.g:17480:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
             {
-            // InternalCubeDSL.g:17235:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
-            // InternalCubeDSL.g:17236:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalCubeDSL.g:17480:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalCubeDSL.g:17481:2: ( rule__XSynchronizedExpression__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
             }
-            // InternalCubeDSL.g:17237:2: ( rule__XSynchronizedExpression__Group_0__0 )
-            // InternalCubeDSL.g:17237:3: rule__XSynchronizedExpression__Group_0__0
+            // InternalCubeDSL.g:17482:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalCubeDSL.g:17482:3: rule__XSynchronizedExpression__Group_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0();
@@ -57159,14 +57981,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1"
-    // InternalCubeDSL.g:17245:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
+    // InternalCubeDSL.g:17490:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
     public final void rule__XSynchronizedExpression__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17249:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
-            // InternalCubeDSL.g:17250:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
+            // InternalCubeDSL.g:17494:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
+            // InternalCubeDSL.g:17495:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
             {
             pushFollow(FOLLOW_93);
             rule__XSynchronizedExpression__Group__1__Impl();
@@ -57197,23 +58019,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__1__Impl"
-    // InternalCubeDSL.g:17257:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
+    // InternalCubeDSL.g:17502:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
     public final void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17261:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
-            // InternalCubeDSL.g:17262:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalCubeDSL.g:17506:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
+            // InternalCubeDSL.g:17507:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
             {
-            // InternalCubeDSL.g:17262:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
-            // InternalCubeDSL.g:17263:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalCubeDSL.g:17507:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalCubeDSL.g:17508:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
             }
-            // InternalCubeDSL.g:17264:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
-            // InternalCubeDSL.g:17264:3: rule__XSynchronizedExpression__ParamAssignment_1
+            // InternalCubeDSL.g:17509:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalCubeDSL.g:17509:3: rule__XSynchronizedExpression__ParamAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ParamAssignment_1();
@@ -57248,14 +58070,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2"
-    // InternalCubeDSL.g:17272:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
+    // InternalCubeDSL.g:17517:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
     public final void rule__XSynchronizedExpression__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17276:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
-            // InternalCubeDSL.g:17277:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
+            // InternalCubeDSL.g:17521:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
+            // InternalCubeDSL.g:17522:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
             {
             pushFollow(FOLLOW_48);
             rule__XSynchronizedExpression__Group__2__Impl();
@@ -57286,17 +58108,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__2__Impl"
-    // InternalCubeDSL.g:17284:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:17529:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
     public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17288:1: ( ( ')' ) )
-            // InternalCubeDSL.g:17289:1: ( ')' )
+            // InternalCubeDSL.g:17533:1: ( ( ')' ) )
+            // InternalCubeDSL.g:17534:1: ( ')' )
             {
-            // InternalCubeDSL.g:17289:1: ( ')' )
-            // InternalCubeDSL.g:17290:2: ')'
+            // InternalCubeDSL.g:17534:1: ( ')' )
+            // InternalCubeDSL.g:17535:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
@@ -57327,14 +58149,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3"
-    // InternalCubeDSL.g:17299:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
+    // InternalCubeDSL.g:17544:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
     public final void rule__XSynchronizedExpression__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17303:1: ( rule__XSynchronizedExpression__Group__3__Impl )
-            // InternalCubeDSL.g:17304:2: rule__XSynchronizedExpression__Group__3__Impl
+            // InternalCubeDSL.g:17548:1: ( rule__XSynchronizedExpression__Group__3__Impl )
+            // InternalCubeDSL.g:17549:2: rule__XSynchronizedExpression__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group__3__Impl();
@@ -57360,23 +58182,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group__3__Impl"
-    // InternalCubeDSL.g:17310:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
+    // InternalCubeDSL.g:17555:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
     public final void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17314:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
-            // InternalCubeDSL.g:17315:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalCubeDSL.g:17559:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
+            // InternalCubeDSL.g:17560:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
             {
-            // InternalCubeDSL.g:17315:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
-            // InternalCubeDSL.g:17316:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalCubeDSL.g:17560:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalCubeDSL.g:17561:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
             }
-            // InternalCubeDSL.g:17317:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
-            // InternalCubeDSL.g:17317:3: rule__XSynchronizedExpression__ExpressionAssignment_3
+            // InternalCubeDSL.g:17562:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalCubeDSL.g:17562:3: rule__XSynchronizedExpression__ExpressionAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__ExpressionAssignment_3();
@@ -57411,14 +58233,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0"
-    // InternalCubeDSL.g:17326:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
+    // InternalCubeDSL.g:17571:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
     public final void rule__XSynchronizedExpression__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17330:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
-            // InternalCubeDSL.g:17331:2: rule__XSynchronizedExpression__Group_0__0__Impl
+            // InternalCubeDSL.g:17575:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
+            // InternalCubeDSL.g:17576:2: rule__XSynchronizedExpression__Group_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0__0__Impl();
@@ -57444,23 +58266,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0__0__Impl"
-    // InternalCubeDSL.g:17337:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
+    // InternalCubeDSL.g:17582:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
     public final void rule__XSynchronizedExpression__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17341:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
-            // InternalCubeDSL.g:17342:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalCubeDSL.g:17586:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
+            // InternalCubeDSL.g:17587:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
             {
-            // InternalCubeDSL.g:17342:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
-            // InternalCubeDSL.g:17343:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalCubeDSL.g:17587:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalCubeDSL.g:17588:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
             }
-            // InternalCubeDSL.g:17344:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
-            // InternalCubeDSL.g:17344:3: rule__XSynchronizedExpression__Group_0_0__0
+            // InternalCubeDSL.g:17589:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalCubeDSL.g:17589:3: rule__XSynchronizedExpression__Group_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__0();
@@ -57495,14 +58317,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0"
-    // InternalCubeDSL.g:17353:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
+    // InternalCubeDSL.g:17598:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
     public final void rule__XSynchronizedExpression__Group_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17357:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
-            // InternalCubeDSL.g:17358:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
+            // InternalCubeDSL.g:17602:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
+            // InternalCubeDSL.g:17603:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
             {
             pushFollow(FOLLOW_124);
             rule__XSynchronizedExpression__Group_0_0__0__Impl();
@@ -57533,23 +58355,23 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0__Impl"
-    // InternalCubeDSL.g:17365:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:17610:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17369:1: ( ( () ) )
-            // InternalCubeDSL.g:17370:1: ( () )
+            // InternalCubeDSL.g:17614:1: ( ( () ) )
+            // InternalCubeDSL.g:17615:1: ( () )
             {
-            // InternalCubeDSL.g:17370:1: ( () )
-            // InternalCubeDSL.g:17371:2: ()
+            // InternalCubeDSL.g:17615:1: ( () )
+            // InternalCubeDSL.g:17616:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
             }
-            // InternalCubeDSL.g:17372:2: ()
-            // InternalCubeDSL.g:17372:3: 
+            // InternalCubeDSL.g:17617:2: ()
+            // InternalCubeDSL.g:17617:3: 
             {
             }
 
@@ -57574,14 +58396,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1"
-    // InternalCubeDSL.g:17380:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
+    // InternalCubeDSL.g:17625:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
     public final void rule__XSynchronizedExpression__Group_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17384:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
-            // InternalCubeDSL.g:17385:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
+            // InternalCubeDSL.g:17629:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
+            // InternalCubeDSL.g:17630:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
             {
             pushFollow(FOLLOW_44);
             rule__XSynchronizedExpression__Group_0_0__1__Impl();
@@ -57612,17 +58434,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1__Impl"
-    // InternalCubeDSL.g:17392:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
+    // InternalCubeDSL.g:17637:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17396:1: ( ( 'synchronized' ) )
-            // InternalCubeDSL.g:17397:1: ( 'synchronized' )
+            // InternalCubeDSL.g:17641:1: ( ( 'synchronized' ) )
+            // InternalCubeDSL.g:17642:1: ( 'synchronized' )
             {
-            // InternalCubeDSL.g:17397:1: ( 'synchronized' )
-            // InternalCubeDSL.g:17398:2: 'synchronized'
+            // InternalCubeDSL.g:17642:1: ( 'synchronized' )
+            // InternalCubeDSL.g:17643:2: 'synchronized'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
@@ -57653,14 +58475,14 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2"
-    // InternalCubeDSL.g:17407:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
+    // InternalCubeDSL.g:17652:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
     public final void rule__XSynchronizedExpression__Group_0_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17411:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
-            // InternalCubeDSL.g:17412:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
+            // InternalCubeDSL.g:17656:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
+            // InternalCubeDSL.g:17657:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XSynchronizedExpression__Group_0_0__2__Impl();
@@ -57686,17 +58508,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2__Impl"
-    // InternalCubeDSL.g:17418:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:17663:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
     public final void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17422:1: ( ( '(' ) )
-            // InternalCubeDSL.g:17423:1: ( '(' )
+            // InternalCubeDSL.g:17667:1: ( ( '(' ) )
+            // InternalCubeDSL.g:17668:1: ( '(' )
             {
-            // InternalCubeDSL.g:17423:1: ( '(' )
-            // InternalCubeDSL.g:17424:2: '('
+            // InternalCubeDSL.g:17668:1: ( '(' )
+            // InternalCubeDSL.g:17669:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
@@ -57727,14 +58549,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0"
-    // InternalCubeDSL.g:17434:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
+    // InternalCubeDSL.g:17679:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
     public final void rule__XCatchClause__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17438:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
-            // InternalCubeDSL.g:17439:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
+            // InternalCubeDSL.g:17683:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
+            // InternalCubeDSL.g:17684:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
             {
             pushFollow(FOLLOW_44);
             rule__XCatchClause__Group__0__Impl();
@@ -57765,23 +58587,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__0__Impl"
-    // InternalCubeDSL.g:17446:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
+    // InternalCubeDSL.g:17691:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
     public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17450:1: ( ( ( 'catch' ) ) )
-            // InternalCubeDSL.g:17451:1: ( ( 'catch' ) )
+            // InternalCubeDSL.g:17695:1: ( ( ( 'catch' ) ) )
+            // InternalCubeDSL.g:17696:1: ( ( 'catch' ) )
             {
-            // InternalCubeDSL.g:17451:1: ( ( 'catch' ) )
-            // InternalCubeDSL.g:17452:2: ( 'catch' )
+            // InternalCubeDSL.g:17696:1: ( ( 'catch' ) )
+            // InternalCubeDSL.g:17697:2: ( 'catch' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
             }
-            // InternalCubeDSL.g:17453:2: ( 'catch' )
-            // InternalCubeDSL.g:17453:3: 'catch'
+            // InternalCubeDSL.g:17698:2: ( 'catch' )
+            // InternalCubeDSL.g:17698:3: 'catch'
             {
             match(input,113,FOLLOW_2); if (state.failed) return ;
 
@@ -57812,14 +58634,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1"
-    // InternalCubeDSL.g:17461:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
+    // InternalCubeDSL.g:17706:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
     public final void rule__XCatchClause__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17465:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
-            // InternalCubeDSL.g:17466:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
+            // InternalCubeDSL.g:17710:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
+            // InternalCubeDSL.g:17711:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
             {
             pushFollow(FOLLOW_65);
             rule__XCatchClause__Group__1__Impl();
@@ -57850,17 +58672,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__1__Impl"
-    // InternalCubeDSL.g:17473:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:17718:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
     public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17477:1: ( ( '(' ) )
-            // InternalCubeDSL.g:17478:1: ( '(' )
+            // InternalCubeDSL.g:17722:1: ( ( '(' ) )
+            // InternalCubeDSL.g:17723:1: ( '(' )
             {
-            // InternalCubeDSL.g:17478:1: ( '(' )
-            // InternalCubeDSL.g:17479:2: '('
+            // InternalCubeDSL.g:17723:1: ( '(' )
+            // InternalCubeDSL.g:17724:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
@@ -57891,14 +58713,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2"
-    // InternalCubeDSL.g:17488:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
+    // InternalCubeDSL.g:17733:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
     public final void rule__XCatchClause__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17492:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
-            // InternalCubeDSL.g:17493:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
+            // InternalCubeDSL.g:17737:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
+            // InternalCubeDSL.g:17738:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
             {
             pushFollow(FOLLOW_93);
             rule__XCatchClause__Group__2__Impl();
@@ -57929,23 +58751,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__2__Impl"
-    // InternalCubeDSL.g:17500:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
+    // InternalCubeDSL.g:17745:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
     public final void rule__XCatchClause__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17504:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
-            // InternalCubeDSL.g:17505:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalCubeDSL.g:17749:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
+            // InternalCubeDSL.g:17750:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
             {
-            // InternalCubeDSL.g:17505:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
-            // InternalCubeDSL.g:17506:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalCubeDSL.g:17750:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalCubeDSL.g:17751:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
             }
-            // InternalCubeDSL.g:17507:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
-            // InternalCubeDSL.g:17507:3: rule__XCatchClause__DeclaredParamAssignment_2
+            // InternalCubeDSL.g:17752:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalCubeDSL.g:17752:3: rule__XCatchClause__DeclaredParamAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__DeclaredParamAssignment_2();
@@ -57980,14 +58802,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3"
-    // InternalCubeDSL.g:17515:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
+    // InternalCubeDSL.g:17760:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
     public final void rule__XCatchClause__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17519:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
-            // InternalCubeDSL.g:17520:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
+            // InternalCubeDSL.g:17764:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
+            // InternalCubeDSL.g:17765:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
             {
             pushFollow(FOLLOW_48);
             rule__XCatchClause__Group__3__Impl();
@@ -58018,17 +58840,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__3__Impl"
-    // InternalCubeDSL.g:17527:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:17772:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
     public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17531:1: ( ( ')' ) )
-            // InternalCubeDSL.g:17532:1: ( ')' )
+            // InternalCubeDSL.g:17776:1: ( ( ')' ) )
+            // InternalCubeDSL.g:17777:1: ( ')' )
             {
-            // InternalCubeDSL.g:17532:1: ( ')' )
-            // InternalCubeDSL.g:17533:2: ')'
+            // InternalCubeDSL.g:17777:1: ( ')' )
+            // InternalCubeDSL.g:17778:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
@@ -58059,14 +58881,14 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4"
-    // InternalCubeDSL.g:17542:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
+    // InternalCubeDSL.g:17787:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
     public final void rule__XCatchClause__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17546:1: ( rule__XCatchClause__Group__4__Impl )
-            // InternalCubeDSL.g:17547:2: rule__XCatchClause__Group__4__Impl
+            // InternalCubeDSL.g:17791:1: ( rule__XCatchClause__Group__4__Impl )
+            // InternalCubeDSL.g:17792:2: rule__XCatchClause__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__Group__4__Impl();
@@ -58092,23 +58914,23 @@
 
 
     // $ANTLR start "rule__XCatchClause__Group__4__Impl"
-    // InternalCubeDSL.g:17553:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
+    // InternalCubeDSL.g:17798:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
     public final void rule__XCatchClause__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17557:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
-            // InternalCubeDSL.g:17558:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalCubeDSL.g:17802:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
+            // InternalCubeDSL.g:17803:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
             {
-            // InternalCubeDSL.g:17558:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
-            // InternalCubeDSL.g:17559:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalCubeDSL.g:17803:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalCubeDSL.g:17804:2: ( rule__XCatchClause__ExpressionAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
             }
-            // InternalCubeDSL.g:17560:2: ( rule__XCatchClause__ExpressionAssignment_4 )
-            // InternalCubeDSL.g:17560:3: rule__XCatchClause__ExpressionAssignment_4
+            // InternalCubeDSL.g:17805:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalCubeDSL.g:17805:3: rule__XCatchClause__ExpressionAssignment_4
             {
             pushFollow(FOLLOW_2);
             rule__XCatchClause__ExpressionAssignment_4();
@@ -58143,14 +58965,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalCubeDSL.g:17569:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalCubeDSL.g:17814:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
     public final void rule__QualifiedName__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17573:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalCubeDSL.g:17574:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalCubeDSL.g:17818:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalCubeDSL.g:17819:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__QualifiedName__Group__0__Impl();
@@ -58181,17 +59003,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalCubeDSL.g:17581:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
+    // InternalCubeDSL.g:17826:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17585:1: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:17586:1: ( ruleValidID )
+            // InternalCubeDSL.g:17830:1: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:17831:1: ( ruleValidID )
             {
-            // InternalCubeDSL.g:17586:1: ( ruleValidID )
-            // InternalCubeDSL.g:17587:2: ruleValidID
+            // InternalCubeDSL.g:17831:1: ( ruleValidID )
+            // InternalCubeDSL.g:17832:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
@@ -58226,14 +59048,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalCubeDSL.g:17596:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalCubeDSL.g:17841:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17600:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalCubeDSL.g:17601:2: rule__QualifiedName__Group__1__Impl
+            // InternalCubeDSL.g:17845:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalCubeDSL.g:17846:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -58259,35 +59081,35 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalCubeDSL.g:17607:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalCubeDSL.g:17852:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
     public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17611:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalCubeDSL.g:17612:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalCubeDSL.g:17856:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalCubeDSL.g:17857:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalCubeDSL.g:17612:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalCubeDSL.g:17613:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalCubeDSL.g:17857:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalCubeDSL.g:17858:2: ( rule__QualifiedName__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:17614:2: ( rule__QualifiedName__Group_1__0 )*
-            loop145:
+            // InternalCubeDSL.g:17859:2: ( rule__QualifiedName__Group_1__0 )*
+            loop148:
             do {
-                int alt145=2;
-                int LA145_0 = input.LA(1);
+                int alt148=2;
+                int LA148_0 = input.LA(1);
 
-                if ( (LA145_0==43) ) {
-                    int LA145_2 = input.LA(2);
+                if ( (LA148_0==43) ) {
+                    int LA148_2 = input.LA(2);
 
-                    if ( (LA145_2==RULE_ID) ) {
-                        int LA145_3 = input.LA(3);
+                    if ( (LA148_2==RULE_ID) ) {
+                        int LA148_3 = input.LA(3);
 
-                        if ( (synpred206_InternalCubeDSL()) ) {
-                            alt145=1;
+                        if ( (synpred209_InternalCubeDSL()) ) {
+                            alt148=1;
                         }
 
 
@@ -58297,9 +59119,9 @@
                 }
 
 
-                switch (alt145) {
+                switch (alt148) {
             	case 1 :
-            	    // InternalCubeDSL.g:17614:3: rule__QualifiedName__Group_1__0
+            	    // InternalCubeDSL.g:17859:3: rule__QualifiedName__Group_1__0
             	    {
             	    pushFollow(FOLLOW_37);
             	    rule__QualifiedName__Group_1__0();
@@ -58311,7 +59133,7 @@
             	    break;
 
             	default :
-            	    break loop145;
+            	    break loop148;
                 }
             } while (true);
 
@@ -58340,14 +59162,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalCubeDSL.g:17623:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalCubeDSL.g:17868:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
     public final void rule__QualifiedName__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17627:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalCubeDSL.g:17628:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalCubeDSL.g:17872:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalCubeDSL.g:17873:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_6);
             rule__QualifiedName__Group_1__0__Impl();
@@ -58378,23 +59200,23 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalCubeDSL.g:17635:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
+    // InternalCubeDSL.g:17880:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17639:1: ( ( ( '.' ) ) )
-            // InternalCubeDSL.g:17640:1: ( ( '.' ) )
+            // InternalCubeDSL.g:17884:1: ( ( ( '.' ) ) )
+            // InternalCubeDSL.g:17885:1: ( ( '.' ) )
             {
-            // InternalCubeDSL.g:17640:1: ( ( '.' ) )
-            // InternalCubeDSL.g:17641:2: ( '.' )
+            // InternalCubeDSL.g:17885:1: ( ( '.' ) )
+            // InternalCubeDSL.g:17886:2: ( '.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
-            // InternalCubeDSL.g:17642:2: ( '.' )
-            // InternalCubeDSL.g:17642:3: '.'
+            // InternalCubeDSL.g:17887:2: ( '.' )
+            // InternalCubeDSL.g:17887:3: '.'
             {
             match(input,43,FOLLOW_2); if (state.failed) return ;
 
@@ -58425,14 +59247,14 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalCubeDSL.g:17650:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalCubeDSL.g:17895:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
     public final void rule__QualifiedName__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17654:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalCubeDSL.g:17655:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalCubeDSL.g:17899:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalCubeDSL.g:17900:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -58458,17 +59280,17 @@
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalCubeDSL.g:17661:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
+    // InternalCubeDSL.g:17906:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17665:1: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:17666:1: ( ruleValidID )
+            // InternalCubeDSL.g:17910:1: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:17911:1: ( ruleValidID )
             {
-            // InternalCubeDSL.g:17666:1: ( ruleValidID )
-            // InternalCubeDSL.g:17667:2: ruleValidID
+            // InternalCubeDSL.g:17911:1: ( ruleValidID )
+            // InternalCubeDSL.g:17912:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
@@ -58503,14 +59325,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0"
-    // InternalCubeDSL.g:17677:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
+    // InternalCubeDSL.g:17922:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
     public final void rule__Number__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17681:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
-            // InternalCubeDSL.g:17682:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
+            // InternalCubeDSL.g:17926:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
+            // InternalCubeDSL.g:17927:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
             {
             pushFollow(FOLLOW_36);
             rule__Number__Group_1__0__Impl();
@@ -58541,23 +59363,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1__0__Impl"
-    // InternalCubeDSL.g:17689:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
+    // InternalCubeDSL.g:17934:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
     public final void rule__Number__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17693:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
-            // InternalCubeDSL.g:17694:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalCubeDSL.g:17938:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
+            // InternalCubeDSL.g:17939:1: ( ( rule__Number__Alternatives_1_0 ) )
             {
-            // InternalCubeDSL.g:17694:1: ( ( rule__Number__Alternatives_1_0 ) )
-            // InternalCubeDSL.g:17695:2: ( rule__Number__Alternatives_1_0 )
+            // InternalCubeDSL.g:17939:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalCubeDSL.g:17940:2: ( rule__Number__Alternatives_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
             }
-            // InternalCubeDSL.g:17696:2: ( rule__Number__Alternatives_1_0 )
-            // InternalCubeDSL.g:17696:3: rule__Number__Alternatives_1_0
+            // InternalCubeDSL.g:17941:2: ( rule__Number__Alternatives_1_0 )
+            // InternalCubeDSL.g:17941:3: rule__Number__Alternatives_1_0
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_0();
@@ -58592,14 +59414,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1"
-    // InternalCubeDSL.g:17704:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
+    // InternalCubeDSL.g:17949:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
     public final void rule__Number__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17708:1: ( rule__Number__Group_1__1__Impl )
-            // InternalCubeDSL.g:17709:2: rule__Number__Group_1__1__Impl
+            // InternalCubeDSL.g:17953:1: ( rule__Number__Group_1__1__Impl )
+            // InternalCubeDSL.g:17954:2: rule__Number__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1__1__Impl();
@@ -58625,35 +59447,35 @@
 
 
     // $ANTLR start "rule__Number__Group_1__1__Impl"
-    // InternalCubeDSL.g:17715:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
+    // InternalCubeDSL.g:17960:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
     public final void rule__Number__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17719:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
-            // InternalCubeDSL.g:17720:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalCubeDSL.g:17964:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
+            // InternalCubeDSL.g:17965:1: ( ( rule__Number__Group_1_1__0 )? )
             {
-            // InternalCubeDSL.g:17720:1: ( ( rule__Number__Group_1_1__0 )? )
-            // InternalCubeDSL.g:17721:2: ( rule__Number__Group_1_1__0 )?
+            // InternalCubeDSL.g:17965:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalCubeDSL.g:17966:2: ( rule__Number__Group_1_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getGroup_1_1()); 
             }
-            // InternalCubeDSL.g:17722:2: ( rule__Number__Group_1_1__0 )?
-            int alt146=2;
-            int LA146_0 = input.LA(1);
+            // InternalCubeDSL.g:17967:2: ( rule__Number__Group_1_1__0 )?
+            int alt149=2;
+            int LA149_0 = input.LA(1);
 
-            if ( (LA146_0==43) ) {
-                int LA146_1 = input.LA(2);
+            if ( (LA149_0==43) ) {
+                int LA149_1 = input.LA(2);
 
-                if ( ((LA146_1>=RULE_INT && LA146_1<=RULE_DECIMAL)) ) {
-                    alt146=1;
+                if ( ((LA149_1>=RULE_INT && LA149_1<=RULE_DECIMAL)) ) {
+                    alt149=1;
                 }
             }
-            switch (alt146) {
+            switch (alt149) {
                 case 1 :
-                    // InternalCubeDSL.g:17722:3: rule__Number__Group_1_1__0
+                    // InternalCubeDSL.g:17967:3: rule__Number__Group_1_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__Number__Group_1_1__0();
@@ -58691,14 +59513,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0"
-    // InternalCubeDSL.g:17731:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
+    // InternalCubeDSL.g:17976:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
     public final void rule__Number__Group_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17735:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
-            // InternalCubeDSL.g:17736:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
+            // InternalCubeDSL.g:17980:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
+            // InternalCubeDSL.g:17981:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
             {
             pushFollow(FOLLOW_125);
             rule__Number__Group_1_1__0__Impl();
@@ -58729,17 +59551,17 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__0__Impl"
-    // InternalCubeDSL.g:17743:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
+    // InternalCubeDSL.g:17988:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
     public final void rule__Number__Group_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17747:1: ( ( '.' ) )
-            // InternalCubeDSL.g:17748:1: ( '.' )
+            // InternalCubeDSL.g:17992:1: ( ( '.' ) )
+            // InternalCubeDSL.g:17993:1: ( '.' )
             {
-            // InternalCubeDSL.g:17748:1: ( '.' )
-            // InternalCubeDSL.g:17749:2: '.'
+            // InternalCubeDSL.g:17993:1: ( '.' )
+            // InternalCubeDSL.g:17994:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
@@ -58770,14 +59592,14 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1"
-    // InternalCubeDSL.g:17758:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
+    // InternalCubeDSL.g:18003:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
     public final void rule__Number__Group_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17762:1: ( rule__Number__Group_1_1__1__Impl )
-            // InternalCubeDSL.g:17763:2: rule__Number__Group_1_1__1__Impl
+            // InternalCubeDSL.g:18007:1: ( rule__Number__Group_1_1__1__Impl )
+            // InternalCubeDSL.g:18008:2: rule__Number__Group_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__Number__Group_1_1__1__Impl();
@@ -58803,23 +59625,23 @@
 
 
     // $ANTLR start "rule__Number__Group_1_1__1__Impl"
-    // InternalCubeDSL.g:17769:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
+    // InternalCubeDSL.g:18014:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
     public final void rule__Number__Group_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17773:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
-            // InternalCubeDSL.g:17774:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalCubeDSL.g:18018:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
+            // InternalCubeDSL.g:18019:1: ( ( rule__Number__Alternatives_1_1_1 ) )
             {
-            // InternalCubeDSL.g:17774:1: ( ( rule__Number__Alternatives_1_1_1 ) )
-            // InternalCubeDSL.g:17775:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalCubeDSL.g:18019:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalCubeDSL.g:18020:2: ( rule__Number__Alternatives_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
             }
-            // InternalCubeDSL.g:17776:2: ( rule__Number__Alternatives_1_1_1 )
-            // InternalCubeDSL.g:17776:3: rule__Number__Alternatives_1_1_1
+            // InternalCubeDSL.g:18021:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalCubeDSL.g:18021:3: rule__Number__Alternatives_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__Number__Alternatives_1_1_1();
@@ -58854,14 +59676,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0"
-    // InternalCubeDSL.g:17785:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
+    // InternalCubeDSL.g:18030:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
     public final void rule__JvmTypeReference__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17789:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
-            // InternalCubeDSL.g:17790:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
+            // InternalCubeDSL.g:18034:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
+            // InternalCubeDSL.g:18035:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
             {
             pushFollow(FOLLOW_52);
             rule__JvmTypeReference__Group_0__0__Impl();
@@ -58892,17 +59714,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
-    // InternalCubeDSL.g:17797:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
+    // InternalCubeDSL.g:18042:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
     public final void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17801:1: ( ( ruleJvmParameterizedTypeReference ) )
-            // InternalCubeDSL.g:17802:1: ( ruleJvmParameterizedTypeReference )
+            // InternalCubeDSL.g:18046:1: ( ( ruleJvmParameterizedTypeReference ) )
+            // InternalCubeDSL.g:18047:1: ( ruleJvmParameterizedTypeReference )
             {
-            // InternalCubeDSL.g:17802:1: ( ruleJvmParameterizedTypeReference )
-            // InternalCubeDSL.g:17803:2: ruleJvmParameterizedTypeReference
+            // InternalCubeDSL.g:18047:1: ( ruleJvmParameterizedTypeReference )
+            // InternalCubeDSL.g:18048:2: ruleJvmParameterizedTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
@@ -58937,14 +59759,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1"
-    // InternalCubeDSL.g:17812:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
+    // InternalCubeDSL.g:18057:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
     public final void rule__JvmTypeReference__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17816:1: ( rule__JvmTypeReference__Group_0__1__Impl )
-            // InternalCubeDSL.g:17817:2: rule__JvmTypeReference__Group_0__1__Impl
+            // InternalCubeDSL.g:18061:1: ( rule__JvmTypeReference__Group_0__1__Impl )
+            // InternalCubeDSL.g:18062:2: rule__JvmTypeReference__Group_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0__1__Impl();
@@ -58970,35 +59792,35 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
-    // InternalCubeDSL.g:17823:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
+    // InternalCubeDSL.g:18068:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
     public final void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17827:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
-            // InternalCubeDSL.g:17828:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalCubeDSL.g:18072:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
+            // InternalCubeDSL.g:18073:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
             {
-            // InternalCubeDSL.g:17828:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
-            // InternalCubeDSL.g:17829:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            // InternalCubeDSL.g:18073:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalCubeDSL.g:18074:2: ( rule__JvmTypeReference__Group_0_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
             }
-            // InternalCubeDSL.g:17830:2: ( rule__JvmTypeReference__Group_0_1__0 )*
-            loop147:
+            // InternalCubeDSL.g:18075:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            loop150:
             do {
-                int alt147=2;
-                int LA147_0 = input.LA(1);
+                int alt150=2;
+                int LA150_0 = input.LA(1);
 
-                if ( (LA147_0==93) ) {
-                    int LA147_2 = input.LA(2);
+                if ( (LA150_0==93) ) {
+                    int LA150_2 = input.LA(2);
 
-                    if ( (LA147_2==91) ) {
-                        int LA147_3 = input.LA(3);
+                    if ( (LA150_2==91) ) {
+                        int LA150_3 = input.LA(3);
 
-                        if ( (synpred208_InternalCubeDSL()) ) {
-                            alt147=1;
+                        if ( (synpred211_InternalCubeDSL()) ) {
+                            alt150=1;
                         }
 
 
@@ -59008,9 +59830,9 @@
                 }
 
 
-                switch (alt147) {
+                switch (alt150) {
             	case 1 :
-            	    // InternalCubeDSL.g:17830:3: rule__JvmTypeReference__Group_0_1__0
+            	    // InternalCubeDSL.g:18075:3: rule__JvmTypeReference__Group_0_1__0
             	    {
             	    pushFollow(FOLLOW_117);
             	    rule__JvmTypeReference__Group_0_1__0();
@@ -59022,7 +59844,7 @@
             	    break;
 
             	default :
-            	    break loop147;
+            	    break loop150;
                 }
             } while (true);
 
@@ -59051,14 +59873,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
-    // InternalCubeDSL.g:17839:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
+    // InternalCubeDSL.g:18084:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
     public final void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17843:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
-            // InternalCubeDSL.g:17844:2: rule__JvmTypeReference__Group_0_1__0__Impl
+            // InternalCubeDSL.g:18088:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
+            // InternalCubeDSL.g:18089:2: rule__JvmTypeReference__Group_0_1__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1__0__Impl();
@@ -59084,23 +59906,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
-    // InternalCubeDSL.g:17850:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
+    // InternalCubeDSL.g:18095:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
     public final void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17854:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
-            // InternalCubeDSL.g:17855:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalCubeDSL.g:18099:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
+            // InternalCubeDSL.g:18100:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
             {
-            // InternalCubeDSL.g:17855:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
-            // InternalCubeDSL.g:17856:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalCubeDSL.g:18100:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalCubeDSL.g:18101:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
             }
-            // InternalCubeDSL.g:17857:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
-            // InternalCubeDSL.g:17857:3: rule__JvmTypeReference__Group_0_1_0__0
+            // InternalCubeDSL.g:18102:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalCubeDSL.g:18102:3: rule__JvmTypeReference__Group_0_1_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__0();
@@ -59135,14 +59957,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
-    // InternalCubeDSL.g:17866:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
+    // InternalCubeDSL.g:18111:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
     public final void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17870:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
-            // InternalCubeDSL.g:17871:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
+            // InternalCubeDSL.g:18115:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
+            // InternalCubeDSL.g:18116:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
             {
             pushFollow(FOLLOW_52);
             rule__JvmTypeReference__Group_0_1_0__0__Impl();
@@ -59173,23 +59995,23 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
-    // InternalCubeDSL.g:17878:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:18123:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
     public final void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17882:1: ( ( () ) )
-            // InternalCubeDSL.g:17883:1: ( () )
+            // InternalCubeDSL.g:18127:1: ( ( () ) )
+            // InternalCubeDSL.g:18128:1: ( () )
             {
-            // InternalCubeDSL.g:17883:1: ( () )
-            // InternalCubeDSL.g:17884:2: ()
+            // InternalCubeDSL.g:18128:1: ( () )
+            // InternalCubeDSL.g:18129:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
             }
-            // InternalCubeDSL.g:17885:2: ()
-            // InternalCubeDSL.g:17885:3: 
+            // InternalCubeDSL.g:18130:2: ()
+            // InternalCubeDSL.g:18130:3: 
             {
             }
 
@@ -59214,14 +60036,14 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
-    // InternalCubeDSL.g:17893:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
+    // InternalCubeDSL.g:18138:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
     public final void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17897:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
-            // InternalCubeDSL.g:17898:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
+            // InternalCubeDSL.g:18142:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
+            // InternalCubeDSL.g:18143:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmTypeReference__Group_0_1_0__1__Impl();
@@ -59247,17 +60069,17 @@
 
 
     // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
-    // InternalCubeDSL.g:17904:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
+    // InternalCubeDSL.g:18149:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
     public final void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17908:1: ( ( ruleArrayBrackets ) )
-            // InternalCubeDSL.g:17909:1: ( ruleArrayBrackets )
+            // InternalCubeDSL.g:18153:1: ( ( ruleArrayBrackets ) )
+            // InternalCubeDSL.g:18154:1: ( ruleArrayBrackets )
             {
-            // InternalCubeDSL.g:17909:1: ( ruleArrayBrackets )
-            // InternalCubeDSL.g:17910:2: ruleArrayBrackets
+            // InternalCubeDSL.g:18154:1: ( ruleArrayBrackets )
+            // InternalCubeDSL.g:18155:2: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
@@ -59292,14 +60114,14 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0"
-    // InternalCubeDSL.g:17920:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
+    // InternalCubeDSL.g:18165:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
     public final void rule__ArrayBrackets__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17924:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
-            // InternalCubeDSL.g:17925:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
+            // InternalCubeDSL.g:18169:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
+            // InternalCubeDSL.g:18170:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
             {
             pushFollow(FOLLOW_90);
             rule__ArrayBrackets__Group__0__Impl();
@@ -59330,17 +60152,17 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
-    // InternalCubeDSL.g:17932:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
+    // InternalCubeDSL.g:18177:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
     public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17936:1: ( ( '[' ) )
-            // InternalCubeDSL.g:17937:1: ( '[' )
+            // InternalCubeDSL.g:18181:1: ( ( '[' ) )
+            // InternalCubeDSL.g:18182:1: ( '[' )
             {
-            // InternalCubeDSL.g:17937:1: ( '[' )
-            // InternalCubeDSL.g:17938:2: '['
+            // InternalCubeDSL.g:18182:1: ( '[' )
+            // InternalCubeDSL.g:18183:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
@@ -59371,14 +60193,14 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1"
-    // InternalCubeDSL.g:17947:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
+    // InternalCubeDSL.g:18192:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
     public final void rule__ArrayBrackets__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17951:1: ( rule__ArrayBrackets__Group__1__Impl )
-            // InternalCubeDSL.g:17952:2: rule__ArrayBrackets__Group__1__Impl
+            // InternalCubeDSL.g:18196:1: ( rule__ArrayBrackets__Group__1__Impl )
+            // InternalCubeDSL.g:18197:2: rule__ArrayBrackets__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayBrackets__Group__1__Impl();
@@ -59404,17 +60226,17 @@
 
 
     // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
-    // InternalCubeDSL.g:17958:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
+    // InternalCubeDSL.g:18203:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
     public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17962:1: ( ( ']' ) )
-            // InternalCubeDSL.g:17963:1: ( ']' )
+            // InternalCubeDSL.g:18207:1: ( ( ']' ) )
+            // InternalCubeDSL.g:18208:1: ( ']' )
             {
-            // InternalCubeDSL.g:17963:1: ( ']' )
-            // InternalCubeDSL.g:17964:2: ']'
+            // InternalCubeDSL.g:18208:1: ( ']' )
+            // InternalCubeDSL.g:18209:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
@@ -59445,14 +60267,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0"
-    // InternalCubeDSL.g:17974:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
+    // InternalCubeDSL.g:18219:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
     public final void rule__XFunctionTypeRef__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17978:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
-            // InternalCubeDSL.g:17979:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
+            // InternalCubeDSL.g:18223:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
+            // InternalCubeDSL.g:18224:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__XFunctionTypeRef__Group__0__Impl();
@@ -59483,31 +60305,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
-    // InternalCubeDSL.g:17986:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
+    // InternalCubeDSL.g:18231:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
     public final void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:17990:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
-            // InternalCubeDSL.g:17991:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalCubeDSL.g:18235:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
+            // InternalCubeDSL.g:18236:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
             {
-            // InternalCubeDSL.g:17991:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
-            // InternalCubeDSL.g:17992:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            // InternalCubeDSL.g:18236:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalCubeDSL.g:18237:2: ( rule__XFunctionTypeRef__Group_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
             }
-            // InternalCubeDSL.g:17993:2: ( rule__XFunctionTypeRef__Group_0__0 )?
-            int alt148=2;
-            int LA148_0 = input.LA(1);
+            // InternalCubeDSL.g:18238:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            int alt151=2;
+            int LA151_0 = input.LA(1);
 
-            if ( (LA148_0==88) ) {
-                alt148=1;
+            if ( (LA151_0==88) ) {
+                alt151=1;
             }
-            switch (alt148) {
+            switch (alt151) {
                 case 1 :
-                    // InternalCubeDSL.g:17993:3: rule__XFunctionTypeRef__Group_0__0
+                    // InternalCubeDSL.g:18238:3: rule__XFunctionTypeRef__Group_0__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0__0();
@@ -59545,14 +60367,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1"
-    // InternalCubeDSL.g:18001:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
+    // InternalCubeDSL.g:18246:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
     public final void rule__XFunctionTypeRef__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18005:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
-            // InternalCubeDSL.g:18006:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
+            // InternalCubeDSL.g:18250:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
+            // InternalCubeDSL.g:18251:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
             {
             pushFollow(FOLLOW_65);
             rule__XFunctionTypeRef__Group__1__Impl();
@@ -59583,17 +60405,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
-    // InternalCubeDSL.g:18013:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
+    // InternalCubeDSL.g:18258:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
     public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18017:1: ( ( '=>' ) )
-            // InternalCubeDSL.g:18018:1: ( '=>' )
+            // InternalCubeDSL.g:18262:1: ( ( '=>' ) )
+            // InternalCubeDSL.g:18263:1: ( '=>' )
             {
-            // InternalCubeDSL.g:18018:1: ( '=>' )
-            // InternalCubeDSL.g:18019:2: '=>'
+            // InternalCubeDSL.g:18263:1: ( '=>' )
+            // InternalCubeDSL.g:18264:2: '=>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
@@ -59624,14 +60446,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2"
-    // InternalCubeDSL.g:18028:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
+    // InternalCubeDSL.g:18273:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
     public final void rule__XFunctionTypeRef__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18032:1: ( rule__XFunctionTypeRef__Group__2__Impl )
-            // InternalCubeDSL.g:18033:2: rule__XFunctionTypeRef__Group__2__Impl
+            // InternalCubeDSL.g:18277:1: ( rule__XFunctionTypeRef__Group__2__Impl )
+            // InternalCubeDSL.g:18278:2: rule__XFunctionTypeRef__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group__2__Impl();
@@ -59657,23 +60479,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
-    // InternalCubeDSL.g:18039:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
+    // InternalCubeDSL.g:18284:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
     public final void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18043:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
-            // InternalCubeDSL.g:18044:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalCubeDSL.g:18288:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
+            // InternalCubeDSL.g:18289:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
             {
-            // InternalCubeDSL.g:18044:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
-            // InternalCubeDSL.g:18045:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalCubeDSL.g:18289:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalCubeDSL.g:18290:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
             }
-            // InternalCubeDSL.g:18046:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
-            // InternalCubeDSL.g:18046:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
+            // InternalCubeDSL.g:18291:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalCubeDSL.g:18291:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ReturnTypeAssignment_2();
@@ -59708,14 +60530,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
-    // InternalCubeDSL.g:18055:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
+    // InternalCubeDSL.g:18300:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
     public final void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18059:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
-            // InternalCubeDSL.g:18060:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
+            // InternalCubeDSL.g:18304:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
+            // InternalCubeDSL.g:18305:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
             {
             pushFollow(FOLLOW_126);
             rule__XFunctionTypeRef__Group_0__0__Impl();
@@ -59746,17 +60568,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
-    // InternalCubeDSL.g:18067:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
+    // InternalCubeDSL.g:18312:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
     public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18071:1: ( ( '(' ) )
-            // InternalCubeDSL.g:18072:1: ( '(' )
+            // InternalCubeDSL.g:18316:1: ( ( '(' ) )
+            // InternalCubeDSL.g:18317:1: ( '(' )
             {
-            // InternalCubeDSL.g:18072:1: ( '(' )
-            // InternalCubeDSL.g:18073:2: '('
+            // InternalCubeDSL.g:18317:1: ( '(' )
+            // InternalCubeDSL.g:18318:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
@@ -59787,14 +60609,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
-    // InternalCubeDSL.g:18082:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
+    // InternalCubeDSL.g:18327:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
     public final void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18086:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
-            // InternalCubeDSL.g:18087:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
+            // InternalCubeDSL.g:18331:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
+            // InternalCubeDSL.g:18332:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
             {
             pushFollow(FOLLOW_126);
             rule__XFunctionTypeRef__Group_0__1__Impl();
@@ -59825,31 +60647,31 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
-    // InternalCubeDSL.g:18094:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
+    // InternalCubeDSL.g:18339:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
     public final void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18098:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
-            // InternalCubeDSL.g:18099:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalCubeDSL.g:18343:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
+            // InternalCubeDSL.g:18344:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
             {
-            // InternalCubeDSL.g:18099:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
-            // InternalCubeDSL.g:18100:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            // InternalCubeDSL.g:18344:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalCubeDSL.g:18345:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
             }
-            // InternalCubeDSL.g:18101:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
-            int alt149=2;
-            int LA149_0 = input.LA(1);
+            // InternalCubeDSL.g:18346:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            int alt152=2;
+            int LA152_0 = input.LA(1);
 
-            if ( (LA149_0==RULE_ID||LA149_0==31||LA149_0==88) ) {
-                alt149=1;
+            if ( (LA152_0==RULE_ID||LA152_0==31||LA152_0==88) ) {
+                alt152=1;
             }
-            switch (alt149) {
+            switch (alt152) {
                 case 1 :
-                    // InternalCubeDSL.g:18101:3: rule__XFunctionTypeRef__Group_0_1__0
+                    // InternalCubeDSL.g:18346:3: rule__XFunctionTypeRef__Group_0_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__XFunctionTypeRef__Group_0_1__0();
@@ -59887,14 +60709,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
-    // InternalCubeDSL.g:18109:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
+    // InternalCubeDSL.g:18354:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
     public final void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18113:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
-            // InternalCubeDSL.g:18114:2: rule__XFunctionTypeRef__Group_0__2__Impl
+            // InternalCubeDSL.g:18358:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
+            // InternalCubeDSL.g:18359:2: rule__XFunctionTypeRef__Group_0__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0__2__Impl();
@@ -59920,17 +60742,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
-    // InternalCubeDSL.g:18120:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
+    // InternalCubeDSL.g:18365:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
     public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18124:1: ( ( ')' ) )
-            // InternalCubeDSL.g:18125:1: ( ')' )
+            // InternalCubeDSL.g:18369:1: ( ( ')' ) )
+            // InternalCubeDSL.g:18370:1: ( ')' )
             {
-            // InternalCubeDSL.g:18125:1: ( ')' )
-            // InternalCubeDSL.g:18126:2: ')'
+            // InternalCubeDSL.g:18370:1: ( ')' )
+            // InternalCubeDSL.g:18371:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
@@ -59961,14 +60783,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
-    // InternalCubeDSL.g:18136:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
+    // InternalCubeDSL.g:18381:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
     public final void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18140:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
-            // InternalCubeDSL.g:18141:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
+            // InternalCubeDSL.g:18385:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
+            // InternalCubeDSL.g:18386:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
             {
             pushFollow(FOLLOW_46);
             rule__XFunctionTypeRef__Group_0_1__0__Impl();
@@ -59999,23 +60821,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
-    // InternalCubeDSL.g:18148:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
+    // InternalCubeDSL.g:18393:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
     public final void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18152:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
-            // InternalCubeDSL.g:18153:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalCubeDSL.g:18397:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
+            // InternalCubeDSL.g:18398:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
             {
-            // InternalCubeDSL.g:18153:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
-            // InternalCubeDSL.g:18154:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalCubeDSL.g:18398:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalCubeDSL.g:18399:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
             }
-            // InternalCubeDSL.g:18155:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
-            // InternalCubeDSL.g:18155:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+            // InternalCubeDSL.g:18400:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalCubeDSL.g:18400:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();
@@ -60050,14 +60872,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
-    // InternalCubeDSL.g:18163:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
+    // InternalCubeDSL.g:18408:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
     public final void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18167:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
-            // InternalCubeDSL.g:18168:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
+            // InternalCubeDSL.g:18412:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
+            // InternalCubeDSL.g:18413:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1__1__Impl();
@@ -60083,35 +60905,35 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
-    // InternalCubeDSL.g:18174:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
+    // InternalCubeDSL.g:18419:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
     public final void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18178:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
-            // InternalCubeDSL.g:18179:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalCubeDSL.g:18423:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
+            // InternalCubeDSL.g:18424:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
             {
-            // InternalCubeDSL.g:18179:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
-            // InternalCubeDSL.g:18180:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            // InternalCubeDSL.g:18424:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalCubeDSL.g:18425:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
             }
-            // InternalCubeDSL.g:18181:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
-            loop150:
+            // InternalCubeDSL.g:18426:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            loop153:
             do {
-                int alt150=2;
-                int LA150_0 = input.LA(1);
+                int alt153=2;
+                int LA153_0 = input.LA(1);
 
-                if ( (LA150_0==90) ) {
-                    alt150=1;
+                if ( (LA153_0==90) ) {
+                    alt153=1;
                 }
 
 
-                switch (alt150) {
+                switch (alt153) {
             	case 1 :
-            	    // InternalCubeDSL.g:18181:3: rule__XFunctionTypeRef__Group_0_1_1__0
+            	    // InternalCubeDSL.g:18426:3: rule__XFunctionTypeRef__Group_0_1_1__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__XFunctionTypeRef__Group_0_1_1__0();
@@ -60123,7 +60945,7 @@
             	    break;
 
             	default :
-            	    break loop150;
+            	    break loop153;
                 }
             } while (true);
 
@@ -60152,14 +60974,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
-    // InternalCubeDSL.g:18190:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
+    // InternalCubeDSL.g:18435:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18194:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
-            // InternalCubeDSL.g:18195:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
+            // InternalCubeDSL.g:18439:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
+            // InternalCubeDSL.g:18440:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
             {
             pushFollow(FOLLOW_65);
             rule__XFunctionTypeRef__Group_0_1_1__0__Impl();
@@ -60190,17 +61012,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
-    // InternalCubeDSL.g:18202:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:18447:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18206:1: ( ( ',' ) )
-            // InternalCubeDSL.g:18207:1: ( ',' )
+            // InternalCubeDSL.g:18451:1: ( ( ',' ) )
+            // InternalCubeDSL.g:18452:1: ( ',' )
             {
-            // InternalCubeDSL.g:18207:1: ( ',' )
-            // InternalCubeDSL.g:18208:2: ','
+            // InternalCubeDSL.g:18452:1: ( ',' )
+            // InternalCubeDSL.g:18453:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
@@ -60231,14 +61053,14 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
-    // InternalCubeDSL.g:18217:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
+    // InternalCubeDSL.g:18462:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18221:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
-            // InternalCubeDSL.g:18222:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+            // InternalCubeDSL.g:18466:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
+            // InternalCubeDSL.g:18467:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__Group_0_1_1__1__Impl();
@@ -60264,23 +61086,23 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
-    // InternalCubeDSL.g:18228:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
+    // InternalCubeDSL.g:18473:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
     public final void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18232:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
-            // InternalCubeDSL.g:18233:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalCubeDSL.g:18477:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
+            // InternalCubeDSL.g:18478:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
             {
-            // InternalCubeDSL.g:18233:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
-            // InternalCubeDSL.g:18234:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalCubeDSL.g:18478:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalCubeDSL.g:18479:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
             }
-            // InternalCubeDSL.g:18235:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
-            // InternalCubeDSL.g:18235:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+            // InternalCubeDSL.g:18480:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalCubeDSL.g:18480:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();
@@ -60315,14 +61137,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
-    // InternalCubeDSL.g:18244:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
+    // InternalCubeDSL.g:18489:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
     public final void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18248:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
-            // InternalCubeDSL.g:18249:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
+            // InternalCubeDSL.g:18493:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
+            // InternalCubeDSL.g:18494:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
             {
             pushFollow(FOLLOW_55);
             rule__JvmParameterizedTypeReference__Group__0__Impl();
@@ -60353,23 +61175,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
-    // InternalCubeDSL.g:18256:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
+    // InternalCubeDSL.g:18501:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18260:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
-            // InternalCubeDSL.g:18261:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalCubeDSL.g:18505:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
+            // InternalCubeDSL.g:18506:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
             {
-            // InternalCubeDSL.g:18261:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
-            // InternalCubeDSL.g:18262:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalCubeDSL.g:18506:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalCubeDSL.g:18507:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
             }
-            // InternalCubeDSL.g:18263:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
-            // InternalCubeDSL.g:18263:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
+            // InternalCubeDSL.g:18508:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalCubeDSL.g:18508:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_0();
@@ -60404,14 +61226,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
-    // InternalCubeDSL.g:18271:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
+    // InternalCubeDSL.g:18516:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18275:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
-            // InternalCubeDSL.g:18276:2: rule__JvmParameterizedTypeReference__Group__1__Impl
+            // InternalCubeDSL.g:18520:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
+            // InternalCubeDSL.g:18521:2: rule__JvmParameterizedTypeReference__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group__1__Impl();
@@ -60437,27 +61259,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
-    // InternalCubeDSL.g:18282:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
+    // InternalCubeDSL.g:18527:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
     public final void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18286:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
-            // InternalCubeDSL.g:18287:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalCubeDSL.g:18531:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
+            // InternalCubeDSL.g:18532:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
             {
-            // InternalCubeDSL.g:18287:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
-            // InternalCubeDSL.g:18288:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            // InternalCubeDSL.g:18532:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalCubeDSL.g:18533:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
             }
-            // InternalCubeDSL.g:18289:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
-            int alt151=2;
-            alt151 = dfa151.predict(input);
-            switch (alt151) {
+            // InternalCubeDSL.g:18534:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            int alt154=2;
+            alt154 = dfa154.predict(input);
+            switch (alt154) {
                 case 1 :
-                    // InternalCubeDSL.g:18289:3: rule__JvmParameterizedTypeReference__Group_1__0
+                    // InternalCubeDSL.g:18534:3: rule__JvmParameterizedTypeReference__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1__0();
@@ -60495,14 +61317,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
-    // InternalCubeDSL.g:18298:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
+    // InternalCubeDSL.g:18543:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18302:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
-            // InternalCubeDSL.g:18303:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
+            // InternalCubeDSL.g:18547:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
+            // InternalCubeDSL.g:18548:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
             {
             pushFollow(FOLLOW_85);
             rule__JvmParameterizedTypeReference__Group_1__0__Impl();
@@ -60533,23 +61355,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
-    // InternalCubeDSL.g:18310:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
+    // InternalCubeDSL.g:18555:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18314:1: ( ( ( '<' ) ) )
-            // InternalCubeDSL.g:18315:1: ( ( '<' ) )
+            // InternalCubeDSL.g:18559:1: ( ( ( '<' ) ) )
+            // InternalCubeDSL.g:18560:1: ( ( '<' ) )
             {
-            // InternalCubeDSL.g:18315:1: ( ( '<' ) )
-            // InternalCubeDSL.g:18316:2: ( '<' )
+            // InternalCubeDSL.g:18560:1: ( ( '<' ) )
+            // InternalCubeDSL.g:18561:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
             }
-            // InternalCubeDSL.g:18317:2: ( '<' )
-            // InternalCubeDSL.g:18317:3: '<'
+            // InternalCubeDSL.g:18562:2: ( '<' )
+            // InternalCubeDSL.g:18562:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -60580,14 +61402,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
-    // InternalCubeDSL.g:18325:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
+    // InternalCubeDSL.g:18570:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18329:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
-            // InternalCubeDSL.g:18330:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
+            // InternalCubeDSL.g:18574:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
+            // InternalCubeDSL.g:18575:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
             {
             pushFollow(FOLLOW_86);
             rule__JvmParameterizedTypeReference__Group_1__1__Impl();
@@ -60618,23 +61440,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
-    // InternalCubeDSL.g:18337:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
+    // InternalCubeDSL.g:18582:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18341:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
-            // InternalCubeDSL.g:18342:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalCubeDSL.g:18586:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
+            // InternalCubeDSL.g:18587:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
             {
-            // InternalCubeDSL.g:18342:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
-            // InternalCubeDSL.g:18343:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalCubeDSL.g:18587:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalCubeDSL.g:18588:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
             }
-            // InternalCubeDSL.g:18344:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
-            // InternalCubeDSL.g:18344:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+            // InternalCubeDSL.g:18589:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalCubeDSL.g:18589:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();
@@ -60669,14 +61491,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
-    // InternalCubeDSL.g:18352:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
+    // InternalCubeDSL.g:18597:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18356:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
-            // InternalCubeDSL.g:18357:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
+            // InternalCubeDSL.g:18601:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
+            // InternalCubeDSL.g:18602:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
             {
             pushFollow(FOLLOW_86);
             rule__JvmParameterizedTypeReference__Group_1__2__Impl();
@@ -60707,35 +61529,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
-    // InternalCubeDSL.g:18364:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
+    // InternalCubeDSL.g:18609:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18368:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
-            // InternalCubeDSL.g:18369:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalCubeDSL.g:18613:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
+            // InternalCubeDSL.g:18614:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
             {
-            // InternalCubeDSL.g:18369:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
-            // InternalCubeDSL.g:18370:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            // InternalCubeDSL.g:18614:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalCubeDSL.g:18615:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
             }
-            // InternalCubeDSL.g:18371:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
-            loop152:
+            // InternalCubeDSL.g:18616:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            loop155:
             do {
-                int alt152=2;
-                int LA152_0 = input.LA(1);
+                int alt155=2;
+                int LA155_0 = input.LA(1);
 
-                if ( (LA152_0==90) ) {
-                    alt152=1;
+                if ( (LA155_0==90) ) {
+                    alt155=1;
                 }
 
 
-                switch (alt152) {
+                switch (alt155) {
             	case 1 :
-            	    // InternalCubeDSL.g:18371:3: rule__JvmParameterizedTypeReference__Group_1_2__0
+            	    // InternalCubeDSL.g:18616:3: rule__JvmParameterizedTypeReference__Group_1_2__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__JvmParameterizedTypeReference__Group_1_2__0();
@@ -60747,7 +61569,7 @@
             	    break;
 
             	default :
-            	    break loop152;
+            	    break loop155;
                 }
             } while (true);
 
@@ -60776,14 +61598,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
-    // InternalCubeDSL.g:18379:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
+    // InternalCubeDSL.g:18624:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18383:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
-            // InternalCubeDSL.g:18384:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
+            // InternalCubeDSL.g:18628:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
+            // InternalCubeDSL.g:18629:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
             {
             pushFollow(FOLLOW_36);
             rule__JvmParameterizedTypeReference__Group_1__3__Impl();
@@ -60814,17 +61636,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
-    // InternalCubeDSL.g:18391:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:18636:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18395:1: ( ( '>' ) )
-            // InternalCubeDSL.g:18396:1: ( '>' )
+            // InternalCubeDSL.g:18640:1: ( ( '>' ) )
+            // InternalCubeDSL.g:18641:1: ( '>' )
             {
-            // InternalCubeDSL.g:18396:1: ( '>' )
-            // InternalCubeDSL.g:18397:2: '>'
+            // InternalCubeDSL.g:18641:1: ( '>' )
+            // InternalCubeDSL.g:18642:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
@@ -60855,14 +61677,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4"
-    // InternalCubeDSL.g:18406:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
+    // InternalCubeDSL.g:18651:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18410:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
-            // InternalCubeDSL.g:18411:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
+            // InternalCubeDSL.g:18655:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
+            // InternalCubeDSL.g:18656:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1__4__Impl();
@@ -60888,35 +61710,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
-    // InternalCubeDSL.g:18417:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
+    // InternalCubeDSL.g:18662:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18421:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
-            // InternalCubeDSL.g:18422:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalCubeDSL.g:18666:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
+            // InternalCubeDSL.g:18667:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
             {
-            // InternalCubeDSL.g:18422:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
-            // InternalCubeDSL.g:18423:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            // InternalCubeDSL.g:18667:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalCubeDSL.g:18668:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
             }
-            // InternalCubeDSL.g:18424:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
-            loop153:
+            // InternalCubeDSL.g:18669:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            loop156:
             do {
-                int alt153=2;
-                int LA153_0 = input.LA(1);
+                int alt156=2;
+                int LA156_0 = input.LA(1);
 
-                if ( (LA153_0==43) ) {
-                    int LA153_2 = input.LA(2);
+                if ( (LA156_0==43) ) {
+                    int LA156_2 = input.LA(2);
 
-                    if ( (LA153_2==RULE_ID) ) {
-                        int LA153_3 = input.LA(3);
+                    if ( (LA156_2==RULE_ID) ) {
+                        int LA156_3 = input.LA(3);
 
-                        if ( (synpred214_InternalCubeDSL()) ) {
-                            alt153=1;
+                        if ( (synpred217_InternalCubeDSL()) ) {
+                            alt156=1;
                         }
 
 
@@ -60926,9 +61748,9 @@
                 }
 
 
-                switch (alt153) {
+                switch (alt156) {
             	case 1 :
-            	    // InternalCubeDSL.g:18424:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+            	    // InternalCubeDSL.g:18669:3: rule__JvmParameterizedTypeReference__Group_1_4__0
             	    {
             	    pushFollow(FOLLOW_37);
             	    rule__JvmParameterizedTypeReference__Group_1_4__0();
@@ -60940,7 +61762,7 @@
             	    break;
 
             	default :
-            	    break loop153;
+            	    break loop156;
                 }
             } while (true);
 
@@ -60969,14 +61791,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
-    // InternalCubeDSL.g:18433:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
+    // InternalCubeDSL.g:18678:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18437:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
-            // InternalCubeDSL.g:18438:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
+            // InternalCubeDSL.g:18682:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
+            // InternalCubeDSL.g:18683:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
             {
             pushFollow(FOLLOW_85);
             rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();
@@ -61007,17 +61829,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
-    // InternalCubeDSL.g:18445:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:18690:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18449:1: ( ( ',' ) )
-            // InternalCubeDSL.g:18450:1: ( ',' )
+            // InternalCubeDSL.g:18694:1: ( ( ',' ) )
+            // InternalCubeDSL.g:18695:1: ( ',' )
             {
-            // InternalCubeDSL.g:18450:1: ( ',' )
-            // InternalCubeDSL.g:18451:2: ','
+            // InternalCubeDSL.g:18695:1: ( ',' )
+            // InternalCubeDSL.g:18696:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
@@ -61048,14 +61870,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
-    // InternalCubeDSL.g:18460:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
+    // InternalCubeDSL.g:18705:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18464:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
-            // InternalCubeDSL.g:18465:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+            // InternalCubeDSL.g:18709:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
+            // InternalCubeDSL.g:18710:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();
@@ -61081,23 +61903,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
-    // InternalCubeDSL.g:18471:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
+    // InternalCubeDSL.g:18716:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18475:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
-            // InternalCubeDSL.g:18476:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalCubeDSL.g:18720:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
+            // InternalCubeDSL.g:18721:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
             {
-            // InternalCubeDSL.g:18476:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
-            // InternalCubeDSL.g:18477:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalCubeDSL.g:18721:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalCubeDSL.g:18722:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
             }
-            // InternalCubeDSL.g:18478:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
-            // InternalCubeDSL.g:18478:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+            // InternalCubeDSL.g:18723:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalCubeDSL.g:18723:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();
@@ -61132,14 +61954,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0"
-    // InternalCubeDSL.g:18487:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
+    // InternalCubeDSL.g:18732:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18491:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
-            // InternalCubeDSL.g:18492:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
+            // InternalCubeDSL.g:18736:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
+            // InternalCubeDSL.g:18737:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
             {
             pushFollow(FOLLOW_6);
             rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();
@@ -61170,23 +61992,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
-    // InternalCubeDSL.g:18499:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
+    // InternalCubeDSL.g:18744:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18503:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
-            // InternalCubeDSL.g:18504:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalCubeDSL.g:18748:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
+            // InternalCubeDSL.g:18749:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
             {
-            // InternalCubeDSL.g:18504:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
-            // InternalCubeDSL.g:18505:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalCubeDSL.g:18749:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalCubeDSL.g:18750:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
             }
-            // InternalCubeDSL.g:18506:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
-            // InternalCubeDSL.g:18506:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
+            // InternalCubeDSL.g:18751:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalCubeDSL.g:18751:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0();
@@ -61221,14 +62043,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1"
-    // InternalCubeDSL.g:18514:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
+    // InternalCubeDSL.g:18759:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18518:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
-            // InternalCubeDSL.g:18519:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
+            // InternalCubeDSL.g:18763:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
+            // InternalCubeDSL.g:18764:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
             {
             pushFollow(FOLLOW_55);
             rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();
@@ -61259,23 +62081,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
-    // InternalCubeDSL.g:18526:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
+    // InternalCubeDSL.g:18771:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18530:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
-            // InternalCubeDSL.g:18531:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalCubeDSL.g:18775:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
+            // InternalCubeDSL.g:18776:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
             {
-            // InternalCubeDSL.g:18531:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
-            // InternalCubeDSL.g:18532:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalCubeDSL.g:18776:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalCubeDSL.g:18777:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
             }
-            // InternalCubeDSL.g:18533:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
-            // InternalCubeDSL.g:18533:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
+            // InternalCubeDSL.g:18778:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalCubeDSL.g:18778:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1();
@@ -61310,14 +62132,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2"
-    // InternalCubeDSL.g:18541:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
+    // InternalCubeDSL.g:18786:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18545:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
-            // InternalCubeDSL.g:18546:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+            // InternalCubeDSL.g:18790:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
+            // InternalCubeDSL.g:18791:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4__2__Impl();
@@ -61343,27 +62165,27 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
-    // InternalCubeDSL.g:18552:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
+    // InternalCubeDSL.g:18797:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18556:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
-            // InternalCubeDSL.g:18557:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalCubeDSL.g:18801:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
+            // InternalCubeDSL.g:18802:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
             {
-            // InternalCubeDSL.g:18557:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
-            // InternalCubeDSL.g:18558:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            // InternalCubeDSL.g:18802:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalCubeDSL.g:18803:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
             }
-            // InternalCubeDSL.g:18559:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
-            int alt154=2;
-            alt154 = dfa154.predict(input);
-            switch (alt154) {
+            // InternalCubeDSL.g:18804:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            int alt157=2;
+            alt157 = dfa157.predict(input);
+            switch (alt157) {
                 case 1 :
-                    // InternalCubeDSL.g:18559:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+                    // InternalCubeDSL.g:18804:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -61401,14 +62223,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
-    // InternalCubeDSL.g:18568:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
+    // InternalCubeDSL.g:18813:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18572:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
-            // InternalCubeDSL.g:18573:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+            // InternalCubeDSL.g:18817:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
+            // InternalCubeDSL.g:18818:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl();
@@ -61434,23 +62256,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
-    // InternalCubeDSL.g:18579:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
+    // InternalCubeDSL.g:18824:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18583:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
-            // InternalCubeDSL.g:18584:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalCubeDSL.g:18828:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
+            // InternalCubeDSL.g:18829:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
             {
-            // InternalCubeDSL.g:18584:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
-            // InternalCubeDSL.g:18585:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalCubeDSL.g:18829:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalCubeDSL.g:18830:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
             }
-            // InternalCubeDSL.g:18586:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
-            // InternalCubeDSL.g:18586:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
+            // InternalCubeDSL.g:18831:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalCubeDSL.g:18831:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0();
@@ -61485,14 +62307,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
-    // InternalCubeDSL.g:18595:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
+    // InternalCubeDSL.g:18840:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18599:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
-            // InternalCubeDSL.g:18600:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+            // InternalCubeDSL.g:18844:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
+            // InternalCubeDSL.g:18845:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
             {
             pushFollow(FOLLOW_36);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();
@@ -61523,23 +62345,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
-    // InternalCubeDSL.g:18607:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:18852:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18611:1: ( ( () ) )
-            // InternalCubeDSL.g:18612:1: ( () )
+            // InternalCubeDSL.g:18856:1: ( ( () ) )
+            // InternalCubeDSL.g:18857:1: ( () )
             {
-            // InternalCubeDSL.g:18612:1: ( () )
-            // InternalCubeDSL.g:18613:2: ()
+            // InternalCubeDSL.g:18857:1: ( () )
+            // InternalCubeDSL.g:18858:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
             }
-            // InternalCubeDSL.g:18614:2: ()
-            // InternalCubeDSL.g:18614:3: 
+            // InternalCubeDSL.g:18859:2: ()
+            // InternalCubeDSL.g:18859:3: 
             {
             }
 
@@ -61564,14 +62386,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
-    // InternalCubeDSL.g:18622:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
+    // InternalCubeDSL.g:18867:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18626:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
-            // InternalCubeDSL.g:18627:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+            // InternalCubeDSL.g:18871:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
+            // InternalCubeDSL.g:18872:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl();
@@ -61597,17 +62419,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
-    // InternalCubeDSL.g:18633:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
+    // InternalCubeDSL.g:18878:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18637:1: ( ( '.' ) )
-            // InternalCubeDSL.g:18638:1: ( '.' )
+            // InternalCubeDSL.g:18882:1: ( ( '.' ) )
+            // InternalCubeDSL.g:18883:1: ( '.' )
             {
-            // InternalCubeDSL.g:18638:1: ( '.' )
-            // InternalCubeDSL.g:18639:2: '.'
+            // InternalCubeDSL.g:18883:1: ( '.' )
+            // InternalCubeDSL.g:18884:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
@@ -61638,14 +62460,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
-    // InternalCubeDSL.g:18649:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
+    // InternalCubeDSL.g:18894:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18653:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
-            // InternalCubeDSL.g:18654:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
+            // InternalCubeDSL.g:18898:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
+            // InternalCubeDSL.g:18899:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
             {
             pushFollow(FOLLOW_85);
             rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();
@@ -61676,23 +62498,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
-    // InternalCubeDSL.g:18661:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
+    // InternalCubeDSL.g:18906:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18665:1: ( ( ( '<' ) ) )
-            // InternalCubeDSL.g:18666:1: ( ( '<' ) )
+            // InternalCubeDSL.g:18910:1: ( ( ( '<' ) ) )
+            // InternalCubeDSL.g:18911:1: ( ( '<' ) )
             {
-            // InternalCubeDSL.g:18666:1: ( ( '<' ) )
-            // InternalCubeDSL.g:18667:2: ( '<' )
+            // InternalCubeDSL.g:18911:1: ( ( '<' ) )
+            // InternalCubeDSL.g:18912:2: ( '<' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
             }
-            // InternalCubeDSL.g:18668:2: ( '<' )
-            // InternalCubeDSL.g:18668:3: '<'
+            // InternalCubeDSL.g:18913:2: ( '<' )
+            // InternalCubeDSL.g:18913:3: '<'
             {
             match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -61723,14 +62545,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
-    // InternalCubeDSL.g:18676:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
+    // InternalCubeDSL.g:18921:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18680:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
-            // InternalCubeDSL.g:18681:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
+            // InternalCubeDSL.g:18925:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
+            // InternalCubeDSL.g:18926:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
             {
             pushFollow(FOLLOW_86);
             rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();
@@ -61761,23 +62583,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
-    // InternalCubeDSL.g:18688:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
+    // InternalCubeDSL.g:18933:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18692:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
-            // InternalCubeDSL.g:18693:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalCubeDSL.g:18937:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
+            // InternalCubeDSL.g:18938:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
             {
-            // InternalCubeDSL.g:18693:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
-            // InternalCubeDSL.g:18694:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalCubeDSL.g:18938:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalCubeDSL.g:18939:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
             }
-            // InternalCubeDSL.g:18695:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
-            // InternalCubeDSL.g:18695:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
+            // InternalCubeDSL.g:18940:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalCubeDSL.g:18940:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1();
@@ -61812,14 +62634,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
-    // InternalCubeDSL.g:18703:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
+    // InternalCubeDSL.g:18948:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18707:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
-            // InternalCubeDSL.g:18708:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
+            // InternalCubeDSL.g:18952:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
+            // InternalCubeDSL.g:18953:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
             {
             pushFollow(FOLLOW_86);
             rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();
@@ -61850,35 +62672,35 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
-    // InternalCubeDSL.g:18715:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
+    // InternalCubeDSL.g:18960:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18719:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
-            // InternalCubeDSL.g:18720:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalCubeDSL.g:18964:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
+            // InternalCubeDSL.g:18965:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
             {
-            // InternalCubeDSL.g:18720:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
-            // InternalCubeDSL.g:18721:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            // InternalCubeDSL.g:18965:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalCubeDSL.g:18966:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
             }
-            // InternalCubeDSL.g:18722:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
-            loop155:
+            // InternalCubeDSL.g:18967:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            loop158:
             do {
-                int alt155=2;
-                int LA155_0 = input.LA(1);
+                int alt158=2;
+                int LA158_0 = input.LA(1);
 
-                if ( (LA155_0==90) ) {
-                    alt155=1;
+                if ( (LA158_0==90) ) {
+                    alt158=1;
                 }
 
 
-                switch (alt155) {
+                switch (alt158) {
             	case 1 :
-            	    // InternalCubeDSL.g:18722:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
+            	    // InternalCubeDSL.g:18967:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
             	    {
             	    pushFollow(FOLLOW_47);
             	    rule__JvmParameterizedTypeReference__Group_1_4_2_2__0();
@@ -61890,7 +62712,7 @@
             	    break;
 
             	default :
-            	    break loop155;
+            	    break loop158;
                 }
             } while (true);
 
@@ -61919,14 +62741,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
-    // InternalCubeDSL.g:18730:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
+    // InternalCubeDSL.g:18975:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18734:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
-            // InternalCubeDSL.g:18735:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+            // InternalCubeDSL.g:18979:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
+            // InternalCubeDSL.g:18980:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl();
@@ -61952,17 +62774,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
-    // InternalCubeDSL.g:18741:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
+    // InternalCubeDSL.g:18986:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18745:1: ( ( '>' ) )
-            // InternalCubeDSL.g:18746:1: ( '>' )
+            // InternalCubeDSL.g:18990:1: ( ( '>' ) )
+            // InternalCubeDSL.g:18991:1: ( '>' )
             {
-            // InternalCubeDSL.g:18746:1: ( '>' )
-            // InternalCubeDSL.g:18747:2: '>'
+            // InternalCubeDSL.g:18991:1: ( '>' )
+            // InternalCubeDSL.g:18992:2: '>'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
@@ -61993,14 +62815,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
-    // InternalCubeDSL.g:18757:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
+    // InternalCubeDSL.g:19002:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18761:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
-            // InternalCubeDSL.g:18762:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+            // InternalCubeDSL.g:19006:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
+            // InternalCubeDSL.g:19007:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
             {
             pushFollow(FOLLOW_85);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();
@@ -62031,17 +62853,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
-    // InternalCubeDSL.g:18769:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
+    // InternalCubeDSL.g:19014:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18773:1: ( ( ',' ) )
-            // InternalCubeDSL.g:18774:1: ( ',' )
+            // InternalCubeDSL.g:19018:1: ( ( ',' ) )
+            // InternalCubeDSL.g:19019:1: ( ',' )
             {
-            // InternalCubeDSL.g:18774:1: ( ',' )
-            // InternalCubeDSL.g:18775:2: ','
+            // InternalCubeDSL.g:19019:1: ( ',' )
+            // InternalCubeDSL.g:19020:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
@@ -62072,14 +62894,14 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
-    // InternalCubeDSL.g:18784:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
+    // InternalCubeDSL.g:19029:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18788:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
-            // InternalCubeDSL.g:18789:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+            // InternalCubeDSL.g:19033:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
+            // InternalCubeDSL.g:19034:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl();
@@ -62105,23 +62927,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
-    // InternalCubeDSL.g:18795:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
+    // InternalCubeDSL.g:19040:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
     public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18799:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
-            // InternalCubeDSL.g:18800:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalCubeDSL.g:19044:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
+            // InternalCubeDSL.g:19045:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
             {
-            // InternalCubeDSL.g:18800:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
-            // InternalCubeDSL.g:18801:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalCubeDSL.g:19045:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalCubeDSL.g:19046:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
             }
-            // InternalCubeDSL.g:18802:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
-            // InternalCubeDSL.g:18802:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
+            // InternalCubeDSL.g:19047:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalCubeDSL.g:19047:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1();
@@ -62156,14 +62978,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
-    // InternalCubeDSL.g:18811:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
+    // InternalCubeDSL.g:19056:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
     public final void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18815:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
-            // InternalCubeDSL.g:18816:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
+            // InternalCubeDSL.g:19060:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
+            // InternalCubeDSL.g:19061:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
             {
             pushFollow(FOLLOW_85);
             rule__JvmWildcardTypeReference__Group__0__Impl();
@@ -62194,23 +63016,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
-    // InternalCubeDSL.g:18823:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
+    // InternalCubeDSL.g:19068:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
     public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18827:1: ( ( () ) )
-            // InternalCubeDSL.g:18828:1: ( () )
+            // InternalCubeDSL.g:19072:1: ( ( () ) )
+            // InternalCubeDSL.g:19073:1: ( () )
             {
-            // InternalCubeDSL.g:18828:1: ( () )
-            // InternalCubeDSL.g:18829:2: ()
+            // InternalCubeDSL.g:19073:1: ( () )
+            // InternalCubeDSL.g:19074:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
             }
-            // InternalCubeDSL.g:18830:2: ()
-            // InternalCubeDSL.g:18830:3: 
+            // InternalCubeDSL.g:19075:2: ()
+            // InternalCubeDSL.g:19075:3: 
             {
             }
 
@@ -62235,14 +63057,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
-    // InternalCubeDSL.g:18838:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
+    // InternalCubeDSL.g:19083:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
     public final void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18842:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
-            // InternalCubeDSL.g:18843:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
+            // InternalCubeDSL.g:19087:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
+            // InternalCubeDSL.g:19088:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
             {
             pushFollow(FOLLOW_127);
             rule__JvmWildcardTypeReference__Group__1__Impl();
@@ -62273,17 +63095,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
-    // InternalCubeDSL.g:18850:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
+    // InternalCubeDSL.g:19095:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
     public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18854:1: ( ( '?' ) )
-            // InternalCubeDSL.g:18855:1: ( '?' )
+            // InternalCubeDSL.g:19099:1: ( ( '?' ) )
+            // InternalCubeDSL.g:19100:1: ( '?' )
             {
-            // InternalCubeDSL.g:18855:1: ( '?' )
-            // InternalCubeDSL.g:18856:2: '?'
+            // InternalCubeDSL.g:19100:1: ( '?' )
+            // InternalCubeDSL.g:19101:2: '?'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
@@ -62314,14 +63136,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
-    // InternalCubeDSL.g:18865:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
+    // InternalCubeDSL.g:19110:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
     public final void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18869:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
-            // InternalCubeDSL.g:18870:2: rule__JvmWildcardTypeReference__Group__2__Impl
+            // InternalCubeDSL.g:19114:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
+            // InternalCubeDSL.g:19115:2: rule__JvmWildcardTypeReference__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group__2__Impl();
@@ -62347,31 +63169,31 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
-    // InternalCubeDSL.g:18876:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
+    // InternalCubeDSL.g:19121:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
     public final void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18880:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
-            // InternalCubeDSL.g:18881:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalCubeDSL.g:19125:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
+            // InternalCubeDSL.g:19126:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
             {
-            // InternalCubeDSL.g:18881:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
-            // InternalCubeDSL.g:18882:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            // InternalCubeDSL.g:19126:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalCubeDSL.g:19127:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
             }
-            // InternalCubeDSL.g:18883:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
-            int alt156=2;
-            int LA156_0 = input.LA(1);
+            // InternalCubeDSL.g:19128:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            int alt159=2;
+            int LA159_0 = input.LA(1);
 
-            if ( (LA156_0==45||LA156_0==49) ) {
-                alt156=1;
+            if ( (LA159_0==45||LA159_0==49) ) {
+                alt159=1;
             }
-            switch (alt156) {
+            switch (alt159) {
                 case 1 :
-                    // InternalCubeDSL.g:18883:3: rule__JvmWildcardTypeReference__Alternatives_2
+                    // InternalCubeDSL.g:19128:3: rule__JvmWildcardTypeReference__Alternatives_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__JvmWildcardTypeReference__Alternatives_2();
@@ -62409,14 +63231,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0"
-    // InternalCubeDSL.g:18892:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
+    // InternalCubeDSL.g:19137:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18896:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
-            // InternalCubeDSL.g:18897:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
+            // InternalCubeDSL.g:19141:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
+            // InternalCubeDSL.g:19142:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
             {
             pushFollow(FOLLOW_128);
             rule__JvmWildcardTypeReference__Group_2_0__0__Impl();
@@ -62447,23 +63269,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
-    // InternalCubeDSL.g:18904:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
+    // InternalCubeDSL.g:19149:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18908:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
-            // InternalCubeDSL.g:18909:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalCubeDSL.g:19153:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
+            // InternalCubeDSL.g:19154:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
             {
-            // InternalCubeDSL.g:18909:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
-            // InternalCubeDSL.g:18910:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalCubeDSL.g:19154:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalCubeDSL.g:19155:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
             }
-            // InternalCubeDSL.g:18911:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
-            // InternalCubeDSL.g:18911:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
+            // InternalCubeDSL.g:19156:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalCubeDSL.g:19156:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0();
@@ -62498,14 +63320,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1"
-    // InternalCubeDSL.g:18919:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
+    // InternalCubeDSL.g:19164:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18923:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
-            // InternalCubeDSL.g:18924:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+            // InternalCubeDSL.g:19168:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
+            // InternalCubeDSL.g:19169:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_0__1__Impl();
@@ -62531,35 +63353,35 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
-    // InternalCubeDSL.g:18930:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
+    // InternalCubeDSL.g:19175:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_0__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18934:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
-            // InternalCubeDSL.g:18935:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalCubeDSL.g:19179:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
+            // InternalCubeDSL.g:19180:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
             {
-            // InternalCubeDSL.g:18935:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
-            // InternalCubeDSL.g:18936:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            // InternalCubeDSL.g:19180:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalCubeDSL.g:19181:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
             }
-            // InternalCubeDSL.g:18937:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
-            loop157:
+            // InternalCubeDSL.g:19182:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            loop160:
             do {
-                int alt157=2;
-                int LA157_0 = input.LA(1);
+                int alt160=2;
+                int LA160_0 = input.LA(1);
 
-                if ( (LA157_0==115) ) {
-                    alt157=1;
+                if ( (LA160_0==115) ) {
+                    alt160=1;
                 }
 
 
-                switch (alt157) {
+                switch (alt160) {
             	case 1 :
-            	    // InternalCubeDSL.g:18937:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
+            	    // InternalCubeDSL.g:19182:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
             	    {
             	    pushFollow(FOLLOW_129);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1();
@@ -62571,7 +63393,7 @@
             	    break;
 
             	default :
-            	    break loop157;
+            	    break loop160;
                 }
             } while (true);
 
@@ -62600,14 +63422,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0"
-    // InternalCubeDSL.g:18946:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
+    // InternalCubeDSL.g:19191:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18950:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
-            // InternalCubeDSL.g:18951:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
+            // InternalCubeDSL.g:19195:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
+            // InternalCubeDSL.g:19196:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
             {
             pushFollow(FOLLOW_128);
             rule__JvmWildcardTypeReference__Group_2_1__0__Impl();
@@ -62638,23 +63460,23 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
-    // InternalCubeDSL.g:18958:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
+    // InternalCubeDSL.g:19203:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18962:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
-            // InternalCubeDSL.g:18963:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalCubeDSL.g:19207:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
+            // InternalCubeDSL.g:19208:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
             {
-            // InternalCubeDSL.g:18963:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
-            // InternalCubeDSL.g:18964:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalCubeDSL.g:19208:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalCubeDSL.g:19209:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
             }
-            // InternalCubeDSL.g:18965:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
-            // InternalCubeDSL.g:18965:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
+            // InternalCubeDSL.g:19210:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalCubeDSL.g:19210:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0();
@@ -62689,14 +63511,14 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1"
-    // InternalCubeDSL.g:18973:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
+    // InternalCubeDSL.g:19218:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18977:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
-            // InternalCubeDSL.g:18978:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+            // InternalCubeDSL.g:19222:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
+            // InternalCubeDSL.g:19223:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmWildcardTypeReference__Group_2_1__1__Impl();
@@ -62722,35 +63544,35 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
-    // InternalCubeDSL.g:18984:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
+    // InternalCubeDSL.g:19229:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
     public final void rule__JvmWildcardTypeReference__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:18988:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
-            // InternalCubeDSL.g:18989:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalCubeDSL.g:19233:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
+            // InternalCubeDSL.g:19234:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
             {
-            // InternalCubeDSL.g:18989:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
-            // InternalCubeDSL.g:18990:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            // InternalCubeDSL.g:19234:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalCubeDSL.g:19235:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
             }
-            // InternalCubeDSL.g:18991:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
-            loop158:
+            // InternalCubeDSL.g:19236:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            loop161:
             do {
-                int alt158=2;
-                int LA158_0 = input.LA(1);
+                int alt161=2;
+                int LA161_0 = input.LA(1);
 
-                if ( (LA158_0==115) ) {
-                    alt158=1;
+                if ( (LA161_0==115) ) {
+                    alt161=1;
                 }
 
 
-                switch (alt158) {
+                switch (alt161) {
             	case 1 :
-            	    // InternalCubeDSL.g:18991:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
+            	    // InternalCubeDSL.g:19236:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
             	    {
             	    pushFollow(FOLLOW_129);
             	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1();
@@ -62762,7 +63584,7 @@
             	    break;
 
             	default :
-            	    break loop158;
+            	    break loop161;
                 }
             } while (true);
 
@@ -62791,14 +63613,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0"
-    // InternalCubeDSL.g:19000:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
+    // InternalCubeDSL.g:19245:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
     public final void rule__JvmUpperBound__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19004:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
-            // InternalCubeDSL.g:19005:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
+            // InternalCubeDSL.g:19249:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
+            // InternalCubeDSL.g:19250:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__JvmUpperBound__Group__0__Impl();
@@ -62829,17 +63651,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
-    // InternalCubeDSL.g:19012:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
+    // InternalCubeDSL.g:19257:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
     public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19016:1: ( ( 'extends' ) )
-            // InternalCubeDSL.g:19017:1: ( 'extends' )
+            // InternalCubeDSL.g:19261:1: ( ( 'extends' ) )
+            // InternalCubeDSL.g:19262:1: ( 'extends' )
             {
-            // InternalCubeDSL.g:19017:1: ( 'extends' )
-            // InternalCubeDSL.g:19018:2: 'extends'
+            // InternalCubeDSL.g:19262:1: ( 'extends' )
+            // InternalCubeDSL.g:19263:2: 'extends'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
@@ -62870,14 +63692,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1"
-    // InternalCubeDSL.g:19027:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
+    // InternalCubeDSL.g:19272:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
     public final void rule__JvmUpperBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19031:1: ( rule__JvmUpperBound__Group__1__Impl )
-            // InternalCubeDSL.g:19032:2: rule__JvmUpperBound__Group__1__Impl
+            // InternalCubeDSL.g:19276:1: ( rule__JvmUpperBound__Group__1__Impl )
+            // InternalCubeDSL.g:19277:2: rule__JvmUpperBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__Group__1__Impl();
@@ -62903,23 +63725,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
-    // InternalCubeDSL.g:19038:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalCubeDSL.g:19283:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19042:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
-            // InternalCubeDSL.g:19043:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalCubeDSL.g:19287:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
+            // InternalCubeDSL.g:19288:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalCubeDSL.g:19043:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
-            // InternalCubeDSL.g:19044:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalCubeDSL.g:19288:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalCubeDSL.g:19289:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalCubeDSL.g:19045:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
-            // InternalCubeDSL.g:19045:3: rule__JvmUpperBound__TypeReferenceAssignment_1
+            // InternalCubeDSL.g:19290:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalCubeDSL.g:19290:3: rule__JvmUpperBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBound__TypeReferenceAssignment_1();
@@ -62954,14 +63776,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
-    // InternalCubeDSL.g:19054:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
+    // InternalCubeDSL.g:19299:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
     public final void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19058:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
-            // InternalCubeDSL.g:19059:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
+            // InternalCubeDSL.g:19303:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
+            // InternalCubeDSL.g:19304:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__JvmUpperBoundAnded__Group__0__Impl();
@@ -62992,17 +63814,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
-    // InternalCubeDSL.g:19066:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalCubeDSL.g:19311:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19070:1: ( ( '&' ) )
-            // InternalCubeDSL.g:19071:1: ( '&' )
+            // InternalCubeDSL.g:19315:1: ( ( '&' ) )
+            // InternalCubeDSL.g:19316:1: ( '&' )
             {
-            // InternalCubeDSL.g:19071:1: ( '&' )
-            // InternalCubeDSL.g:19072:2: '&'
+            // InternalCubeDSL.g:19316:1: ( '&' )
+            // InternalCubeDSL.g:19317:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
@@ -63033,14 +63855,14 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
-    // InternalCubeDSL.g:19081:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
+    // InternalCubeDSL.g:19326:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
     public final void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19085:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
-            // InternalCubeDSL.g:19086:2: rule__JvmUpperBoundAnded__Group__1__Impl
+            // InternalCubeDSL.g:19330:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
+            // InternalCubeDSL.g:19331:2: rule__JvmUpperBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__Group__1__Impl();
@@ -63066,23 +63888,23 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
-    // InternalCubeDSL.g:19092:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalCubeDSL.g:19337:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19096:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalCubeDSL.g:19097:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalCubeDSL.g:19341:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalCubeDSL.g:19342:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalCubeDSL.g:19097:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalCubeDSL.g:19098:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalCubeDSL.g:19342:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalCubeDSL.g:19343:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalCubeDSL.g:19099:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
-            // InternalCubeDSL.g:19099:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+            // InternalCubeDSL.g:19344:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalCubeDSL.g:19344:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();
@@ -63117,14 +63939,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0"
-    // InternalCubeDSL.g:19108:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
+    // InternalCubeDSL.g:19353:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
     public final void rule__JvmLowerBound__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19112:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
-            // InternalCubeDSL.g:19113:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
+            // InternalCubeDSL.g:19357:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
+            // InternalCubeDSL.g:19358:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__JvmLowerBound__Group__0__Impl();
@@ -63155,17 +63977,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
-    // InternalCubeDSL.g:19120:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
+    // InternalCubeDSL.g:19365:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
     public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19124:1: ( ( 'super' ) )
-            // InternalCubeDSL.g:19125:1: ( 'super' )
+            // InternalCubeDSL.g:19369:1: ( ( 'super' ) )
+            // InternalCubeDSL.g:19370:1: ( 'super' )
             {
-            // InternalCubeDSL.g:19125:1: ( 'super' )
-            // InternalCubeDSL.g:19126:2: 'super'
+            // InternalCubeDSL.g:19370:1: ( 'super' )
+            // InternalCubeDSL.g:19371:2: 'super'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
@@ -63196,14 +64018,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1"
-    // InternalCubeDSL.g:19135:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
+    // InternalCubeDSL.g:19380:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
     public final void rule__JvmLowerBound__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19139:1: ( rule__JvmLowerBound__Group__1__Impl )
-            // InternalCubeDSL.g:19140:2: rule__JvmLowerBound__Group__1__Impl
+            // InternalCubeDSL.g:19384:1: ( rule__JvmLowerBound__Group__1__Impl )
+            // InternalCubeDSL.g:19385:2: rule__JvmLowerBound__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__Group__1__Impl();
@@ -63229,23 +64051,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
-    // InternalCubeDSL.g:19146:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
+    // InternalCubeDSL.g:19391:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19150:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
-            // InternalCubeDSL.g:19151:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalCubeDSL.g:19395:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
+            // InternalCubeDSL.g:19396:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
             {
-            // InternalCubeDSL.g:19151:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
-            // InternalCubeDSL.g:19152:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalCubeDSL.g:19396:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalCubeDSL.g:19397:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalCubeDSL.g:19153:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
-            // InternalCubeDSL.g:19153:3: rule__JvmLowerBound__TypeReferenceAssignment_1
+            // InternalCubeDSL.g:19398:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalCubeDSL.g:19398:3: rule__JvmLowerBound__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBound__TypeReferenceAssignment_1();
@@ -63280,14 +64102,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0"
-    // InternalCubeDSL.g:19162:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
+    // InternalCubeDSL.g:19407:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
     public final void rule__JvmLowerBoundAnded__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19166:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
-            // InternalCubeDSL.g:19167:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
+            // InternalCubeDSL.g:19411:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
+            // InternalCubeDSL.g:19412:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__JvmLowerBoundAnded__Group__0__Impl();
@@ -63318,17 +64140,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__0__Impl"
-    // InternalCubeDSL.g:19174:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
+    // InternalCubeDSL.g:19419:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
     public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19178:1: ( ( '&' ) )
-            // InternalCubeDSL.g:19179:1: ( '&' )
+            // InternalCubeDSL.g:19423:1: ( ( '&' ) )
+            // InternalCubeDSL.g:19424:1: ( '&' )
             {
-            // InternalCubeDSL.g:19179:1: ( '&' )
-            // InternalCubeDSL.g:19180:2: '&'
+            // InternalCubeDSL.g:19424:1: ( '&' )
+            // InternalCubeDSL.g:19425:2: '&'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
@@ -63359,14 +64181,14 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1"
-    // InternalCubeDSL.g:19189:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
+    // InternalCubeDSL.g:19434:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
     public final void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19193:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
-            // InternalCubeDSL.g:19194:2: rule__JvmLowerBoundAnded__Group__1__Impl
+            // InternalCubeDSL.g:19438:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
+            // InternalCubeDSL.g:19439:2: rule__JvmLowerBoundAnded__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__Group__1__Impl();
@@ -63392,23 +64214,23 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__Group__1__Impl"
-    // InternalCubeDSL.g:19200:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    // InternalCubeDSL.g:19445:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
     public final void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19204:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
-            // InternalCubeDSL.g:19205:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalCubeDSL.g:19449:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalCubeDSL.g:19450:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
             {
-            // InternalCubeDSL.g:19205:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
-            // InternalCubeDSL.g:19206:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalCubeDSL.g:19450:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalCubeDSL.g:19451:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
             }
-            // InternalCubeDSL.g:19207:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
-            // InternalCubeDSL.g:19207:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
+            // InternalCubeDSL.g:19452:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalCubeDSL.g:19452:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__JvmLowerBoundAnded__TypeReferenceAssignment_1();
@@ -63443,14 +64265,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
-    // InternalCubeDSL.g:19216:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+    // InternalCubeDSL.g:19461:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
     public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19220:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
-            // InternalCubeDSL.g:19221:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+            // InternalCubeDSL.g:19465:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+            // InternalCubeDSL.g:19466:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__QualifiedNameWithWildcard__Group__0__Impl();
@@ -63481,17 +64303,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
-    // InternalCubeDSL.g:19228:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+    // InternalCubeDSL.g:19473:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
     public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19232:1: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:19233:1: ( ruleQualifiedName )
+            // InternalCubeDSL.g:19477:1: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:19478:1: ( ruleQualifiedName )
             {
-            // InternalCubeDSL.g:19233:1: ( ruleQualifiedName )
-            // InternalCubeDSL.g:19234:2: ruleQualifiedName
+            // InternalCubeDSL.g:19478:1: ( ruleQualifiedName )
+            // InternalCubeDSL.g:19479:2: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
@@ -63526,14 +64348,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
-    // InternalCubeDSL.g:19243:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
+    // InternalCubeDSL.g:19488:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
     public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19247:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
-            // InternalCubeDSL.g:19248:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
+            // InternalCubeDSL.g:19492:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
+            // InternalCubeDSL.g:19493:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
             {
             pushFollow(FOLLOW_130);
             rule__QualifiedNameWithWildcard__Group__1__Impl();
@@ -63564,17 +64386,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
-    // InternalCubeDSL.g:19255:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
+    // InternalCubeDSL.g:19500:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19259:1: ( ( '.' ) )
-            // InternalCubeDSL.g:19260:1: ( '.' )
+            // InternalCubeDSL.g:19504:1: ( ( '.' ) )
+            // InternalCubeDSL.g:19505:1: ( '.' )
             {
-            // InternalCubeDSL.g:19260:1: ( '.' )
-            // InternalCubeDSL.g:19261:2: '.'
+            // InternalCubeDSL.g:19505:1: ( '.' )
+            // InternalCubeDSL.g:19506:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
@@ -63605,14 +64427,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
-    // InternalCubeDSL.g:19270:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
+    // InternalCubeDSL.g:19515:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
     public final void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19274:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
-            // InternalCubeDSL.g:19275:2: rule__QualifiedNameWithWildcard__Group__2__Impl
+            // InternalCubeDSL.g:19519:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
+            // InternalCubeDSL.g:19520:2: rule__QualifiedNameWithWildcard__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameWithWildcard__Group__2__Impl();
@@ -63638,17 +64460,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
-    // InternalCubeDSL.g:19281:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
+    // InternalCubeDSL.g:19526:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
     public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19285:1: ( ( '*' ) )
-            // InternalCubeDSL.g:19286:1: ( '*' )
+            // InternalCubeDSL.g:19530:1: ( ( '*' ) )
+            // InternalCubeDSL.g:19531:1: ( '*' )
             {
-            // InternalCubeDSL.g:19286:1: ( '*' )
-            // InternalCubeDSL.g:19287:2: '*'
+            // InternalCubeDSL.g:19531:1: ( '*' )
+            // InternalCubeDSL.g:19532:2: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
@@ -63679,14 +64501,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0"
-    // InternalCubeDSL.g:19297:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
+    // InternalCubeDSL.g:19542:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
     public final void rule__QualifiedNameInStaticImport__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19301:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
-            // InternalCubeDSL.g:19302:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
+            // InternalCubeDSL.g:19546:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
+            // InternalCubeDSL.g:19547:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__QualifiedNameInStaticImport__Group__0__Impl();
@@ -63717,17 +64539,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0__Impl"
-    // InternalCubeDSL.g:19309:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
+    // InternalCubeDSL.g:19554:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
     public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19313:1: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:19314:1: ( ruleValidID )
+            // InternalCubeDSL.g:19558:1: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:19559:1: ( ruleValidID )
             {
-            // InternalCubeDSL.g:19314:1: ( ruleValidID )
-            // InternalCubeDSL.g:19315:2: ruleValidID
+            // InternalCubeDSL.g:19559:1: ( ruleValidID )
+            // InternalCubeDSL.g:19560:2: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
@@ -63762,14 +64584,14 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1"
-    // InternalCubeDSL.g:19324:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
+    // InternalCubeDSL.g:19569:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
     public final void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19328:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
-            // InternalCubeDSL.g:19329:2: rule__QualifiedNameInStaticImport__Group__1__Impl
+            // InternalCubeDSL.g:19573:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
+            // InternalCubeDSL.g:19574:2: rule__QualifiedNameInStaticImport__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedNameInStaticImport__Group__1__Impl();
@@ -63795,17 +64617,17 @@
 
 
     // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1__Impl"
-    // InternalCubeDSL.g:19335:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
+    // InternalCubeDSL.g:19580:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
     public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19339:1: ( ( '.' ) )
-            // InternalCubeDSL.g:19340:1: ( '.' )
+            // InternalCubeDSL.g:19584:1: ( ( '.' ) )
+            // InternalCubeDSL.g:19585:1: ( '.' )
             {
-            // InternalCubeDSL.g:19340:1: ( '.' )
-            // InternalCubeDSL.g:19341:2: '.'
+            // InternalCubeDSL.g:19585:1: ( '.' )
+            // InternalCubeDSL.g:19586:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
@@ -63836,17 +64658,17 @@
 
 
     // $ANTLR start "rule__CubeModel__ImportSectionAssignment_1"
-    // InternalCubeDSL.g:19351:1: rule__CubeModel__ImportSectionAssignment_1 : ( ruleXImportSection ) ;
+    // InternalCubeDSL.g:19596:1: rule__CubeModel__ImportSectionAssignment_1 : ( ruleXImportSection ) ;
     public final void rule__CubeModel__ImportSectionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19355:1: ( ( ruleXImportSection ) )
-            // InternalCubeDSL.g:19356:2: ( ruleXImportSection )
+            // InternalCubeDSL.g:19600:1: ( ( ruleXImportSection ) )
+            // InternalCubeDSL.g:19601:2: ( ruleXImportSection )
             {
-            // InternalCubeDSL.g:19356:2: ( ruleXImportSection )
-            // InternalCubeDSL.g:19357:3: ruleXImportSection
+            // InternalCubeDSL.g:19601:2: ( ruleXImportSection )
+            // InternalCubeDSL.g:19602:3: ruleXImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeModelAccess().getImportSectionXImportSectionParserRuleCall_1_0()); 
@@ -63881,17 +64703,17 @@
 
 
     // $ANTLR start "rule__CubeModel__PckgAssignment_2"
-    // InternalCubeDSL.g:19366:1: rule__CubeModel__PckgAssignment_2 : ( ruleCubePackage ) ;
+    // InternalCubeDSL.g:19611:1: rule__CubeModel__PckgAssignment_2 : ( ruleCubePackage ) ;
     public final void rule__CubeModel__PckgAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19370:1: ( ( ruleCubePackage ) )
-            // InternalCubeDSL.g:19371:2: ( ruleCubePackage )
+            // InternalCubeDSL.g:19615:1: ( ( ruleCubePackage ) )
+            // InternalCubeDSL.g:19616:2: ( ruleCubePackage )
             {
-            // InternalCubeDSL.g:19371:2: ( ruleCubePackage )
-            // InternalCubeDSL.g:19372:3: ruleCubePackage
+            // InternalCubeDSL.g:19616:2: ( ruleCubePackage )
+            // InternalCubeDSL.g:19617:3: ruleCubePackage
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeModelAccess().getPckgCubePackageParserRuleCall_2_0()); 
@@ -63926,17 +64748,17 @@
 
 
     // $ANTLR start "rule__CubePackage__NameAssignment_1"
-    // InternalCubeDSL.g:19381:1: rule__CubePackage__NameAssignment_1 : ( ruleQualifiedName ) ;
+    // InternalCubeDSL.g:19626:1: rule__CubePackage__NameAssignment_1 : ( ruleQualifiedName ) ;
     public final void rule__CubePackage__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19385:1: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:19386:2: ( ruleQualifiedName )
+            // InternalCubeDSL.g:19630:1: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:19631:2: ( ruleQualifiedName )
             {
-            // InternalCubeDSL.g:19386:2: ( ruleQualifiedName )
-            // InternalCubeDSL.g:19387:3: ruleQualifiedName
+            // InternalCubeDSL.g:19631:2: ( ruleQualifiedName )
+            // InternalCubeDSL.g:19632:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getNameQualifiedNameParserRuleCall_1_0()); 
@@ -63971,17 +64793,17 @@
 
 
     // $ANTLR start "rule__CubePackage__DimensionsAssignment_2_1"
-    // InternalCubeDSL.g:19396:1: rule__CubePackage__DimensionsAssignment_2_1 : ( ruleCubeDimension ) ;
+    // InternalCubeDSL.g:19641:1: rule__CubePackage__DimensionsAssignment_2_1 : ( ruleCubeDimension ) ;
     public final void rule__CubePackage__DimensionsAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19400:1: ( ( ruleCubeDimension ) )
-            // InternalCubeDSL.g:19401:2: ( ruleCubeDimension )
+            // InternalCubeDSL.g:19645:1: ( ( ruleCubeDimension ) )
+            // InternalCubeDSL.g:19646:2: ( ruleCubeDimension )
             {
-            // InternalCubeDSL.g:19401:2: ( ruleCubeDimension )
-            // InternalCubeDSL.g:19402:3: ruleCubeDimension
+            // InternalCubeDSL.g:19646:2: ( ruleCubeDimension )
+            // InternalCubeDSL.g:19647:3: ruleCubeDimension
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getDimensionsCubeDimensionParserRuleCall_2_1_0()); 
@@ -64016,17 +64838,17 @@
 
 
     // $ANTLR start "rule__CubePackage__CubesAssignment_2_2"
-    // InternalCubeDSL.g:19411:1: rule__CubePackage__CubesAssignment_2_2 : ( ruleCubeType ) ;
+    // InternalCubeDSL.g:19656:1: rule__CubePackage__CubesAssignment_2_2 : ( ruleCubeType ) ;
     public final void rule__CubePackage__CubesAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19415:1: ( ( ruleCubeType ) )
-            // InternalCubeDSL.g:19416:2: ( ruleCubeType )
+            // InternalCubeDSL.g:19660:1: ( ( ruleCubeType ) )
+            // InternalCubeDSL.g:19661:2: ( ruleCubeType )
             {
-            // InternalCubeDSL.g:19416:2: ( ruleCubeType )
-            // InternalCubeDSL.g:19417:3: ruleCubeType
+            // InternalCubeDSL.g:19661:2: ( ruleCubeType )
+            // InternalCubeDSL.g:19662:3: ruleCubeType
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubePackageAccess().getCubesCubeTypeParserRuleCall_2_2_0()); 
@@ -64061,17 +64883,17 @@
 
 
     // $ANTLR start "rule__CubeType__NameAssignment_1"
-    // InternalCubeDSL.g:19426:1: rule__CubeType__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalCubeDSL.g:19671:1: rule__CubeType__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__CubeType__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19430:1: ( ( RULE_ID ) )
-            // InternalCubeDSL.g:19431:2: ( RULE_ID )
+            // InternalCubeDSL.g:19675:1: ( ( RULE_ID ) )
+            // InternalCubeDSL.g:19676:2: ( RULE_ID )
             {
-            // InternalCubeDSL.g:19431:2: ( RULE_ID )
-            // InternalCubeDSL.g:19432:3: RULE_ID
+            // InternalCubeDSL.g:19676:2: ( RULE_ID )
+            // InternalCubeDSL.g:19677:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getNameIDTerminalRuleCall_1_0()); 
@@ -64102,23 +64924,23 @@
 
 
     // $ANTLR start "rule__CubeType__DefaultMeasureAssignment_2_0"
-    // InternalCubeDSL.g:19441:1: rule__CubeType__DefaultMeasureAssignment_2_0 : ( ( 'defaultMeasure' ) ) ;
+    // InternalCubeDSL.g:19686:1: rule__CubeType__DefaultMeasureAssignment_2_0 : ( ( 'defaultMeasure' ) ) ;
     public final void rule__CubeType__DefaultMeasureAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19445:1: ( ( ( 'defaultMeasure' ) ) )
-            // InternalCubeDSL.g:19446:2: ( ( 'defaultMeasure' ) )
+            // InternalCubeDSL.g:19690:1: ( ( ( 'defaultMeasure' ) ) )
+            // InternalCubeDSL.g:19691:2: ( ( 'defaultMeasure' ) )
             {
-            // InternalCubeDSL.g:19446:2: ( ( 'defaultMeasure' ) )
-            // InternalCubeDSL.g:19447:3: ( 'defaultMeasure' )
+            // InternalCubeDSL.g:19691:2: ( ( 'defaultMeasure' ) )
+            // InternalCubeDSL.g:19692:3: ( 'defaultMeasure' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getDefaultMeasureDefaultMeasureKeyword_2_0_0()); 
             }
-            // InternalCubeDSL.g:19448:3: ( 'defaultMeasure' )
-            // InternalCubeDSL.g:19449:4: 'defaultMeasure'
+            // InternalCubeDSL.g:19693:3: ( 'defaultMeasure' )
+            // InternalCubeDSL.g:19694:4: 'defaultMeasure'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getDefaultMeasureDefaultMeasureKeyword_2_0_0()); 
@@ -64155,17 +64977,17 @@
 
 
     // $ANTLR start "rule__CubeType__DefaultMeasureValueAssignment_2_1"
-    // InternalCubeDSL.g:19460:1: rule__CubeType__DefaultMeasureValueAssignment_2_1 : ( RULE_STRING ) ;
+    // InternalCubeDSL.g:19705:1: rule__CubeType__DefaultMeasureValueAssignment_2_1 : ( RULE_STRING ) ;
     public final void rule__CubeType__DefaultMeasureValueAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19464:1: ( ( RULE_STRING ) )
-            // InternalCubeDSL.g:19465:2: ( RULE_STRING )
+            // InternalCubeDSL.g:19709:1: ( ( RULE_STRING ) )
+            // InternalCubeDSL.g:19710:2: ( RULE_STRING )
             {
-            // InternalCubeDSL.g:19465:2: ( RULE_STRING )
-            // InternalCubeDSL.g:19466:3: RULE_STRING
+            // InternalCubeDSL.g:19710:2: ( RULE_STRING )
+            // InternalCubeDSL.g:19711:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getDefaultMeasureValueSTRINGTerminalRuleCall_2_1_0()); 
@@ -64196,17 +65018,17 @@
 
 
     // $ANTLR start "rule__CubeType__CubeTypeEntityAssignment_4"
-    // InternalCubeDSL.g:19475:1: rule__CubeType__CubeTypeEntityAssignment_4 : ( ruleCubeTypeEntity ) ;
+    // InternalCubeDSL.g:19720:1: rule__CubeType__CubeTypeEntityAssignment_4 : ( ruleCubeTypeEntity ) ;
     public final void rule__CubeType__CubeTypeEntityAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19479:1: ( ( ruleCubeTypeEntity ) )
-            // InternalCubeDSL.g:19480:2: ( ruleCubeTypeEntity )
+            // InternalCubeDSL.g:19724:1: ( ( ruleCubeTypeEntity ) )
+            // InternalCubeDSL.g:19725:2: ( ruleCubeTypeEntity )
             {
-            // InternalCubeDSL.g:19480:2: ( ruleCubeTypeEntity )
-            // InternalCubeDSL.g:19481:3: ruleCubeTypeEntity
+            // InternalCubeDSL.g:19725:2: ( ruleCubeTypeEntity )
+            // InternalCubeDSL.g:19726:3: ruleCubeTypeEntity
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeAccess().getCubeTypeEntityCubeTypeEntityParserRuleCall_4_0()); 
@@ -64241,23 +65063,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__SourceValueAssignment_1"
-    // InternalCubeDSL.g:19490:1: rule__CubeDimensionUsage__SourceValueAssignment_1 : ( ( RULE_ID ) ) ;
+    // InternalCubeDSL.g:19735:1: rule__CubeDimensionUsage__SourceValueAssignment_1 : ( ( RULE_ID ) ) ;
     public final void rule__CubeDimensionUsage__SourceValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19494:1: ( ( ( RULE_ID ) ) )
-            // InternalCubeDSL.g:19495:2: ( ( RULE_ID ) )
+            // InternalCubeDSL.g:19739:1: ( ( ( RULE_ID ) ) )
+            // InternalCubeDSL.g:19740:2: ( ( RULE_ID ) )
             {
-            // InternalCubeDSL.g:19495:2: ( ( RULE_ID ) )
-            // InternalCubeDSL.g:19496:3: ( RULE_ID )
+            // InternalCubeDSL.g:19740:2: ( ( RULE_ID ) )
+            // InternalCubeDSL.g:19741:3: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getSourceValueCubeDimensionCrossReference_1_0()); 
             }
-            // InternalCubeDSL.g:19497:3: ( RULE_ID )
-            // InternalCubeDSL.g:19498:4: RULE_ID
+            // InternalCubeDSL.g:19742:3: ( RULE_ID )
+            // InternalCubeDSL.g:19743:4: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getSourceValueCubeDimensionIDTerminalRuleCall_1_0_1()); 
@@ -64294,23 +65116,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionUsage__OverValueAssignment_3"
-    // InternalCubeDSL.g:19509:1: rule__CubeDimensionUsage__OverValueAssignment_3 : ( ( ruleLFQN ) ) ;
+    // InternalCubeDSL.g:19754:1: rule__CubeDimensionUsage__OverValueAssignment_3 : ( ( ruleLFQN ) ) ;
     public final void rule__CubeDimensionUsage__OverValueAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19513:1: ( ( ( ruleLFQN ) ) )
-            // InternalCubeDSL.g:19514:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:19758:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:19759:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:19514:2: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:19515:3: ( ruleLFQN )
+            // InternalCubeDSL.g:19759:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:19760:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getOverValueLEntityFeatureCrossReference_3_0()); 
             }
-            // InternalCubeDSL.g:19516:3: ( ruleLFQN )
-            // InternalCubeDSL.g:19517:4: ruleLFQN
+            // InternalCubeDSL.g:19761:3: ( ruleLFQN )
+            // InternalCubeDSL.g:19762:4: ruleLFQN
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionUsageAccess().getOverValueLEntityFeatureLFQNParserRuleCall_3_0_1()); 
@@ -64351,17 +65173,17 @@
 
 
     // $ANTLR start "rule__CubeDimension__NameAssignment_1"
-    // InternalCubeDSL.g:19528:1: rule__CubeDimension__NameAssignment_1 : ( ruleTRANSLATABLEID ) ;
+    // InternalCubeDSL.g:19773:1: rule__CubeDimension__NameAssignment_1 : ( ruleTRANSLATABLEID ) ;
     public final void rule__CubeDimension__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19532:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:19533:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:19777:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:19778:2: ( ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:19533:2: ( ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:19534:3: ruleTRANSLATABLEID
+            // InternalCubeDSL.g:19778:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:19779:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getNameTRANSLATABLEIDParserRuleCall_1_0()); 
@@ -64396,23 +65218,23 @@
 
 
     // $ANTLR start "rule__CubeDimension__TypeTimeAssignment_2"
-    // InternalCubeDSL.g:19543:1: rule__CubeDimension__TypeTimeAssignment_2 : ( ( 'typeTime' ) ) ;
+    // InternalCubeDSL.g:19788:1: rule__CubeDimension__TypeTimeAssignment_2 : ( ( 'typeTime' ) ) ;
     public final void rule__CubeDimension__TypeTimeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19547:1: ( ( ( 'typeTime' ) ) )
-            // InternalCubeDSL.g:19548:2: ( ( 'typeTime' ) )
+            // InternalCubeDSL.g:19792:1: ( ( ( 'typeTime' ) ) )
+            // InternalCubeDSL.g:19793:2: ( ( 'typeTime' ) )
             {
-            // InternalCubeDSL.g:19548:2: ( ( 'typeTime' ) )
-            // InternalCubeDSL.g:19549:3: ( 'typeTime' )
+            // InternalCubeDSL.g:19793:2: ( ( 'typeTime' ) )
+            // InternalCubeDSL.g:19794:3: ( 'typeTime' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getTypeTimeTypeTimeKeyword_2_0()); 
             }
-            // InternalCubeDSL.g:19550:3: ( 'typeTime' )
-            // InternalCubeDSL.g:19551:4: 'typeTime'
+            // InternalCubeDSL.g:19795:3: ( 'typeTime' )
+            // InternalCubeDSL.g:19796:4: 'typeTime'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getTypeTimeTypeTimeKeyword_2_0()); 
@@ -64449,17 +65271,17 @@
 
 
     // $ANTLR start "rule__CubeDimension__HierarchiesAssignment_4"
-    // InternalCubeDSL.g:19562:1: rule__CubeDimension__HierarchiesAssignment_4 : ( ruleCubeHierarchy ) ;
+    // InternalCubeDSL.g:19807:1: rule__CubeDimension__HierarchiesAssignment_4 : ( ruleCubeHierarchy ) ;
     public final void rule__CubeDimension__HierarchiesAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19566:1: ( ( ruleCubeHierarchy ) )
-            // InternalCubeDSL.g:19567:2: ( ruleCubeHierarchy )
+            // InternalCubeDSL.g:19811:1: ( ( ruleCubeHierarchy ) )
+            // InternalCubeDSL.g:19812:2: ( ruleCubeHierarchy )
             {
-            // InternalCubeDSL.g:19567:2: ( ruleCubeHierarchy )
-            // InternalCubeDSL.g:19568:3: ruleCubeHierarchy
+            // InternalCubeDSL.g:19812:2: ( ruleCubeHierarchy )
+            // InternalCubeDSL.g:19813:3: ruleCubeHierarchy
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionAccess().getHierarchiesCubeHierarchyParserRuleCall_4_0()); 
@@ -64494,17 +65316,17 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__NameAssignment_2"
-    // InternalCubeDSL.g:19577:1: rule__CubeHierarchy__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
+    // InternalCubeDSL.g:19822:1: rule__CubeHierarchy__NameAssignment_2 : ( ruleTRANSLATABLEID ) ;
     public final void rule__CubeHierarchy__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19581:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:19582:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:19826:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:19827:2: ( ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:19582:2: ( ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:19583:3: ruleTRANSLATABLEID
+            // InternalCubeDSL.g:19827:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:19828:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
@@ -64539,23 +65361,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__HasAllAssignment_3"
-    // InternalCubeDSL.g:19592:1: rule__CubeHierarchy__HasAllAssignment_3 : ( ( 'hasAll' ) ) ;
+    // InternalCubeDSL.g:19837:1: rule__CubeHierarchy__HasAllAssignment_3 : ( ( 'hasAll' ) ) ;
     public final void rule__CubeHierarchy__HasAllAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19596:1: ( ( ( 'hasAll' ) ) )
-            // InternalCubeDSL.g:19597:2: ( ( 'hasAll' ) )
+            // InternalCubeDSL.g:19841:1: ( ( ( 'hasAll' ) ) )
+            // InternalCubeDSL.g:19842:2: ( ( 'hasAll' ) )
             {
-            // InternalCubeDSL.g:19597:2: ( ( 'hasAll' ) )
-            // InternalCubeDSL.g:19598:3: ( 'hasAll' )
+            // InternalCubeDSL.g:19842:2: ( ( 'hasAll' ) )
+            // InternalCubeDSL.g:19843:3: ( 'hasAll' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getHasAllHasAllKeyword_3_0()); 
             }
-            // InternalCubeDSL.g:19599:3: ( 'hasAll' )
-            // InternalCubeDSL.g:19600:4: 'hasAll'
+            // InternalCubeDSL.g:19844:3: ( 'hasAll' )
+            // InternalCubeDSL.g:19845:4: 'hasAll'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getHasAllHasAllKeyword_3_0()); 
@@ -64592,23 +65414,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__AllMemberNameAssignment_4_0"
-    // InternalCubeDSL.g:19611:1: rule__CubeHierarchy__AllMemberNameAssignment_4_0 : ( ( 'allMemberName' ) ) ;
+    // InternalCubeDSL.g:19856:1: rule__CubeHierarchy__AllMemberNameAssignment_4_0 : ( ( 'allMemberName' ) ) ;
     public final void rule__CubeHierarchy__AllMemberNameAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19615:1: ( ( ( 'allMemberName' ) ) )
-            // InternalCubeDSL.g:19616:2: ( ( 'allMemberName' ) )
+            // InternalCubeDSL.g:19860:1: ( ( ( 'allMemberName' ) ) )
+            // InternalCubeDSL.g:19861:2: ( ( 'allMemberName' ) )
             {
-            // InternalCubeDSL.g:19616:2: ( ( 'allMemberName' ) )
-            // InternalCubeDSL.g:19617:3: ( 'allMemberName' )
+            // InternalCubeDSL.g:19861:2: ( ( 'allMemberName' ) )
+            // InternalCubeDSL.g:19862:3: ( 'allMemberName' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getAllMemberNameAllMemberNameKeyword_4_0_0()); 
             }
-            // InternalCubeDSL.g:19618:3: ( 'allMemberName' )
-            // InternalCubeDSL.g:19619:4: 'allMemberName'
+            // InternalCubeDSL.g:19863:3: ( 'allMemberName' )
+            // InternalCubeDSL.g:19864:4: 'allMemberName'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getAllMemberNameAllMemberNameKeyword_4_0_0()); 
@@ -64645,17 +65467,17 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__AllMemberNameValueAssignment_4_1"
-    // InternalCubeDSL.g:19630:1: rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 : ( ruleTRANSLATABLESTRING ) ;
+    // InternalCubeDSL.g:19875:1: rule__CubeHierarchy__AllMemberNameValueAssignment_4_1 : ( ruleTRANSLATABLESTRING ) ;
     public final void rule__CubeHierarchy__AllMemberNameValueAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19634:1: ( ( ruleTRANSLATABLESTRING ) )
-            // InternalCubeDSL.g:19635:2: ( ruleTRANSLATABLESTRING )
+            // InternalCubeDSL.g:19879:1: ( ( ruleTRANSLATABLESTRING ) )
+            // InternalCubeDSL.g:19880:2: ( ruleTRANSLATABLESTRING )
             {
-            // InternalCubeDSL.g:19635:2: ( ruleTRANSLATABLESTRING )
-            // InternalCubeDSL.g:19636:3: ruleTRANSLATABLESTRING
+            // InternalCubeDSL.g:19880:2: ( ruleTRANSLATABLESTRING )
+            // InternalCubeDSL.g:19881:3: ruleTRANSLATABLESTRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getAllMemberNameValueTRANSLATABLESTRINGParserRuleCall_4_1_0()); 
@@ -64690,23 +65512,23 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__DefaultMemberAssignment_5_0"
-    // InternalCubeDSL.g:19645:1: rule__CubeHierarchy__DefaultMemberAssignment_5_0 : ( ( 'defaultMember' ) ) ;
+    // InternalCubeDSL.g:19890:1: rule__CubeHierarchy__DefaultMemberAssignment_5_0 : ( ( 'defaultMember' ) ) ;
     public final void rule__CubeHierarchy__DefaultMemberAssignment_5_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19649:1: ( ( ( 'defaultMember' ) ) )
-            // InternalCubeDSL.g:19650:2: ( ( 'defaultMember' ) )
+            // InternalCubeDSL.g:19894:1: ( ( ( 'defaultMember' ) ) )
+            // InternalCubeDSL.g:19895:2: ( ( 'defaultMember' ) )
             {
-            // InternalCubeDSL.g:19650:2: ( ( 'defaultMember' ) )
-            // InternalCubeDSL.g:19651:3: ( 'defaultMember' )
+            // InternalCubeDSL.g:19895:2: ( ( 'defaultMember' ) )
+            // InternalCubeDSL.g:19896:3: ( 'defaultMember' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getDefaultMemberDefaultMemberKeyword_5_0_0()); 
             }
-            // InternalCubeDSL.g:19652:3: ( 'defaultMember' )
-            // InternalCubeDSL.g:19653:4: 'defaultMember'
+            // InternalCubeDSL.g:19897:3: ( 'defaultMember' )
+            // InternalCubeDSL.g:19898:4: 'defaultMember'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getDefaultMemberDefaultMemberKeyword_5_0_0()); 
@@ -64743,17 +65565,17 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__DefaultMemberValueAssignment_5_1"
-    // InternalCubeDSL.g:19664:1: rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 : ( ruleTRANSLATABLESTRING ) ;
+    // InternalCubeDSL.g:19909:1: rule__CubeHierarchy__DefaultMemberValueAssignment_5_1 : ( ruleTRANSLATABLESTRING ) ;
     public final void rule__CubeHierarchy__DefaultMemberValueAssignment_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19668:1: ( ( ruleTRANSLATABLESTRING ) )
-            // InternalCubeDSL.g:19669:2: ( ruleTRANSLATABLESTRING )
+            // InternalCubeDSL.g:19913:1: ( ( ruleTRANSLATABLESTRING ) )
+            // InternalCubeDSL.g:19914:2: ( ruleTRANSLATABLESTRING )
             {
-            // InternalCubeDSL.g:19669:2: ( ruleTRANSLATABLESTRING )
-            // InternalCubeDSL.g:19670:3: ruleTRANSLATABLESTRING
+            // InternalCubeDSL.g:19914:2: ( ruleTRANSLATABLESTRING )
+            // InternalCubeDSL.g:19915:3: ruleTRANSLATABLESTRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getDefaultMemberValueTRANSLATABLESTRINGParserRuleCall_5_1_0()); 
@@ -64788,17 +65610,17 @@
 
 
     // $ANTLR start "rule__CubeHierarchy__CubeDimEntityAssignment_7"
-    // InternalCubeDSL.g:19679:1: rule__CubeHierarchy__CubeDimEntityAssignment_7 : ( ruleCubeDimensionEntity ) ;
+    // InternalCubeDSL.g:19924:1: rule__CubeHierarchy__CubeDimEntityAssignment_7 : ( ruleCubeDimensionEntity ) ;
     public final void rule__CubeHierarchy__CubeDimEntityAssignment_7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19683:1: ( ( ruleCubeDimensionEntity ) )
-            // InternalCubeDSL.g:19684:2: ( ruleCubeDimensionEntity )
+            // InternalCubeDSL.g:19928:1: ( ( ruleCubeDimensionEntity ) )
+            // InternalCubeDSL.g:19929:2: ( ruleCubeDimensionEntity )
             {
-            // InternalCubeDSL.g:19684:2: ( ruleCubeDimensionEntity )
-            // InternalCubeDSL.g:19685:3: ruleCubeDimensionEntity
+            // InternalCubeDSL.g:19929:2: ( ruleCubeDimensionEntity )
+            // InternalCubeDSL.g:19930:3: ruleCubeDimensionEntity
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeHierarchyAccess().getCubeDimEntityCubeDimensionEntityParserRuleCall_7_0()); 
@@ -64833,23 +65655,23 @@
 
 
     // $ANTLR start "rule__CubeEntity__EntityValueAssignment_1"
-    // InternalCubeDSL.g:19694:1: rule__CubeEntity__EntityValueAssignment_1 : ( ( ruleLFQN ) ) ;
+    // InternalCubeDSL.g:19939:1: rule__CubeEntity__EntityValueAssignment_1 : ( ( ruleLFQN ) ) ;
     public final void rule__CubeEntity__EntityValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19698:1: ( ( ( ruleLFQN ) ) )
-            // InternalCubeDSL.g:19699:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:19943:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:19944:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:19699:2: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:19700:3: ( ruleLFQN )
+            // InternalCubeDSL.g:19944:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:19945:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getEntityValueLEntityCrossReference_1_0()); 
             }
-            // InternalCubeDSL.g:19701:3: ( ruleLFQN )
-            // InternalCubeDSL.g:19702:4: ruleLFQN
+            // InternalCubeDSL.g:19946:3: ( ruleLFQN )
+            // InternalCubeDSL.g:19947:4: ruleLFQN
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getEntityValueLEntityLFQNParserRuleCall_1_0_1()); 
@@ -64890,23 +65712,23 @@
 
 
     // $ANTLR start "rule__CubeEntity__KeyAssignment_2_0"
-    // InternalCubeDSL.g:19713:1: rule__CubeEntity__KeyAssignment_2_0 : ( ( 'key' ) ) ;
+    // InternalCubeDSL.g:19958:1: rule__CubeEntity__KeyAssignment_2_0 : ( ( 'key' ) ) ;
     public final void rule__CubeEntity__KeyAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19717:1: ( ( ( 'key' ) ) )
-            // InternalCubeDSL.g:19718:2: ( ( 'key' ) )
+            // InternalCubeDSL.g:19962:1: ( ( ( 'key' ) ) )
+            // InternalCubeDSL.g:19963:2: ( ( 'key' ) )
             {
-            // InternalCubeDSL.g:19718:2: ( ( 'key' ) )
-            // InternalCubeDSL.g:19719:3: ( 'key' )
+            // InternalCubeDSL.g:19963:2: ( ( 'key' ) )
+            // InternalCubeDSL.g:19964:3: ( 'key' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getKeyKeyKeyword_2_0_0()); 
             }
-            // InternalCubeDSL.g:19720:3: ( 'key' )
-            // InternalCubeDSL.g:19721:4: 'key'
+            // InternalCubeDSL.g:19965:3: ( 'key' )
+            // InternalCubeDSL.g:19966:4: 'key'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getKeyKeyKeyword_2_0_0()); 
@@ -64943,23 +65765,23 @@
 
 
     // $ANTLR start "rule__CubeEntity__KeyValueAssignment_2_1"
-    // InternalCubeDSL.g:19732:1: rule__CubeEntity__KeyValueAssignment_2_1 : ( ( ruleLFQN ) ) ;
+    // InternalCubeDSL.g:19977:1: rule__CubeEntity__KeyValueAssignment_2_1 : ( ( ruleLFQN ) ) ;
     public final void rule__CubeEntity__KeyValueAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19736:1: ( ( ( ruleLFQN ) ) )
-            // InternalCubeDSL.g:19737:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:19981:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:19982:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:19737:2: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:19738:3: ( ruleLFQN )
+            // InternalCubeDSL.g:19982:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:19983:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getKeyValueLEntityFeatureCrossReference_2_1_0()); 
             }
-            // InternalCubeDSL.g:19739:3: ( ruleLFQN )
-            // InternalCubeDSL.g:19740:4: ruleLFQN
+            // InternalCubeDSL.g:19984:3: ( ruleLFQN )
+            // InternalCubeDSL.g:19985:4: ruleLFQN
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeEntityAccess().getKeyValueLEntityFeatureLFQNParserRuleCall_2_1_0_1()); 
@@ -65000,17 +65822,17 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__EntityRefAssignment_0"
-    // InternalCubeDSL.g:19751:1: rule__CubeTypeEntity__EntityRefAssignment_0 : ( ruleCubeEntity ) ;
+    // InternalCubeDSL.g:19996:1: rule__CubeTypeEntity__EntityRefAssignment_0 : ( ruleCubeEntity ) ;
     public final void rule__CubeTypeEntity__EntityRefAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19755:1: ( ( ruleCubeEntity ) )
-            // InternalCubeDSL.g:19756:2: ( ruleCubeEntity )
+            // InternalCubeDSL.g:20000:1: ( ( ruleCubeEntity ) )
+            // InternalCubeDSL.g:20001:2: ( ruleCubeEntity )
             {
-            // InternalCubeDSL.g:19756:2: ( ruleCubeEntity )
-            // InternalCubeDSL.g:19757:3: ruleCubeEntity
+            // InternalCubeDSL.g:20001:2: ( ruleCubeEntity )
+            // InternalCubeDSL.g:20002:3: ruleCubeEntity
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getEntityRefCubeEntityParserRuleCall_0_0()); 
@@ -65045,17 +65867,17 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__DimensionUsagesAssignment_2"
-    // InternalCubeDSL.g:19766:1: rule__CubeTypeEntity__DimensionUsagesAssignment_2 : ( ruleCubeDimensionUsage ) ;
+    // InternalCubeDSL.g:20011:1: rule__CubeTypeEntity__DimensionUsagesAssignment_2 : ( ruleCubeDimensionUsage ) ;
     public final void rule__CubeTypeEntity__DimensionUsagesAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19770:1: ( ( ruleCubeDimensionUsage ) )
-            // InternalCubeDSL.g:19771:2: ( ruleCubeDimensionUsage )
+            // InternalCubeDSL.g:20015:1: ( ( ruleCubeDimensionUsage ) )
+            // InternalCubeDSL.g:20016:2: ( ruleCubeDimensionUsage )
             {
-            // InternalCubeDSL.g:19771:2: ( ruleCubeDimensionUsage )
-            // InternalCubeDSL.g:19772:3: ruleCubeDimensionUsage
+            // InternalCubeDSL.g:20016:2: ( ruleCubeDimensionUsage )
+            // InternalCubeDSL.g:20017:3: ruleCubeDimensionUsage
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getDimensionUsagesCubeDimensionUsageParserRuleCall_2_0()); 
@@ -65090,17 +65912,17 @@
 
 
     // $ANTLR start "rule__CubeTypeEntity__MeasuresAssignment_3"
-    // InternalCubeDSL.g:19781:1: rule__CubeTypeEntity__MeasuresAssignment_3 : ( ruleCubeMeasure ) ;
+    // InternalCubeDSL.g:20026:1: rule__CubeTypeEntity__MeasuresAssignment_3 : ( ruleCubeMeasure ) ;
     public final void rule__CubeTypeEntity__MeasuresAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19785:1: ( ( ruleCubeMeasure ) )
-            // InternalCubeDSL.g:19786:2: ( ruleCubeMeasure )
+            // InternalCubeDSL.g:20030:1: ( ( ruleCubeMeasure ) )
+            // InternalCubeDSL.g:20031:2: ( ruleCubeMeasure )
             {
-            // InternalCubeDSL.g:19786:2: ( ruleCubeMeasure )
-            // InternalCubeDSL.g:19787:3: ruleCubeMeasure
+            // InternalCubeDSL.g:20031:2: ( ruleCubeMeasure )
+            // InternalCubeDSL.g:20032:3: ruleCubeMeasure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeTypeEntityAccess().getMeasuresCubeMeasureParserRuleCall_3_0()); 
@@ -65135,17 +65957,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__EntityRefAssignment_1"
-    // InternalCubeDSL.g:19796:1: rule__CubeDimensionEntity__EntityRefAssignment_1 : ( ruleCubeEntity ) ;
+    // InternalCubeDSL.g:20041:1: rule__CubeDimensionEntity__EntityRefAssignment_1 : ( ruleCubeEntity ) ;
     public final void rule__CubeDimensionEntity__EntityRefAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19800:1: ( ( ruleCubeEntity ) )
-            // InternalCubeDSL.g:19801:2: ( ruleCubeEntity )
+            // InternalCubeDSL.g:20045:1: ( ( ruleCubeEntity ) )
+            // InternalCubeDSL.g:20046:2: ( ruleCubeEntity )
             {
-            // InternalCubeDSL.g:19801:2: ( ruleCubeEntity )
-            // InternalCubeDSL.g:19802:3: ruleCubeEntity
+            // InternalCubeDSL.g:20046:2: ( ruleCubeEntity )
+            // InternalCubeDSL.g:20047:3: ruleCubeEntity
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getEntityRefCubeEntityParserRuleCall_1_0()); 
@@ -65180,17 +66002,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__HierarchLevelsAssignment_3"
-    // InternalCubeDSL.g:19811:1: rule__CubeDimensionEntity__HierarchLevelsAssignment_3 : ( ruleCubeLevel ) ;
+    // InternalCubeDSL.g:20056:1: rule__CubeDimensionEntity__HierarchLevelsAssignment_3 : ( ruleCubeLevel ) ;
     public final void rule__CubeDimensionEntity__HierarchLevelsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19815:1: ( ( ruleCubeLevel ) )
-            // InternalCubeDSL.g:19816:2: ( ruleCubeLevel )
+            // InternalCubeDSL.g:20060:1: ( ( ruleCubeLevel ) )
+            // InternalCubeDSL.g:20061:2: ( ruleCubeLevel )
             {
-            // InternalCubeDSL.g:19816:2: ( ruleCubeLevel )
-            // InternalCubeDSL.g:19817:3: ruleCubeLevel
+            // InternalCubeDSL.g:20061:2: ( ruleCubeLevel )
+            // InternalCubeDSL.g:20062:3: ruleCubeLevel
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getHierarchLevelsCubeLevelParserRuleCall_3_0()); 
@@ -65225,17 +66047,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntity__DimEntityAssignment_4"
-    // InternalCubeDSL.g:19826:1: rule__CubeDimensionEntity__DimEntityAssignment_4 : ( ruleCubeDimensionEntityEntity ) ;
+    // InternalCubeDSL.g:20071:1: rule__CubeDimensionEntity__DimEntityAssignment_4 : ( ruleCubeDimensionEntityEntity ) ;
     public final void rule__CubeDimensionEntity__DimEntityAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19830:1: ( ( ruleCubeDimensionEntityEntity ) )
-            // InternalCubeDSL.g:19831:2: ( ruleCubeDimensionEntityEntity )
+            // InternalCubeDSL.g:20075:1: ( ( ruleCubeDimensionEntityEntity ) )
+            // InternalCubeDSL.g:20076:2: ( ruleCubeDimensionEntityEntity )
             {
-            // InternalCubeDSL.g:19831:2: ( ruleCubeDimensionEntityEntity )
-            // InternalCubeDSL.g:19832:3: ruleCubeDimensionEntityEntity
+            // InternalCubeDSL.g:20076:2: ( ruleCubeDimensionEntityEntity )
+            // InternalCubeDSL.g:20077:3: ruleCubeDimensionEntityEntity
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityAccess().getDimEntityCubeDimensionEntityEntityParserRuleCall_4_0()); 
@@ -65270,17 +66092,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__EntityRefAssignment_1"
-    // InternalCubeDSL.g:19841:1: rule__CubeDimensionEntityEntity__EntityRefAssignment_1 : ( ruleCubeEntity ) ;
+    // InternalCubeDSL.g:20086:1: rule__CubeDimensionEntityEntity__EntityRefAssignment_1 : ( ruleCubeEntity ) ;
     public final void rule__CubeDimensionEntityEntity__EntityRefAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19845:1: ( ( ruleCubeEntity ) )
-            // InternalCubeDSL.g:19846:2: ( ruleCubeEntity )
+            // InternalCubeDSL.g:20090:1: ( ( ruleCubeEntity ) )
+            // InternalCubeDSL.g:20091:2: ( ruleCubeEntity )
             {
-            // InternalCubeDSL.g:19846:2: ( ruleCubeEntity )
-            // InternalCubeDSL.g:19847:3: ruleCubeEntity
+            // InternalCubeDSL.g:20091:2: ( ruleCubeEntity )
+            // InternalCubeDSL.g:20092:3: ruleCubeEntity
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getEntityRefCubeEntityParserRuleCall_1_0()); 
@@ -65315,23 +66137,23 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__OverValueAssignment_4"
-    // InternalCubeDSL.g:19856:1: rule__CubeDimensionEntityEntity__OverValueAssignment_4 : ( ( ruleLFQN ) ) ;
+    // InternalCubeDSL.g:20101:1: rule__CubeDimensionEntityEntity__OverValueAssignment_4 : ( ( ruleLFQN ) ) ;
     public final void rule__CubeDimensionEntityEntity__OverValueAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19860:1: ( ( ( ruleLFQN ) ) )
-            // InternalCubeDSL.g:19861:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20105:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:20106:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:19861:2: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:19862:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20106:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20107:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getOverValueLEntityFeatureCrossReference_4_0()); 
             }
-            // InternalCubeDSL.g:19863:3: ( ruleLFQN )
-            // InternalCubeDSL.g:19864:4: ruleLFQN
+            // InternalCubeDSL.g:20108:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20109:4: ruleLFQN
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getOverValueLEntityFeatureLFQNParserRuleCall_4_0_1()); 
@@ -65372,17 +66194,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5"
-    // InternalCubeDSL.g:19875:1: rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 : ( ruleCubeLevel ) ;
+    // InternalCubeDSL.g:20120:1: rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5 : ( ruleCubeLevel ) ;
     public final void rule__CubeDimensionEntityEntity__HierarchLevelsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19879:1: ( ( ruleCubeLevel ) )
-            // InternalCubeDSL.g:19880:2: ( ruleCubeLevel )
+            // InternalCubeDSL.g:20124:1: ( ( ruleCubeLevel ) )
+            // InternalCubeDSL.g:20125:2: ( ruleCubeLevel )
             {
-            // InternalCubeDSL.g:19880:2: ( ruleCubeLevel )
-            // InternalCubeDSL.g:19881:3: ruleCubeLevel
+            // InternalCubeDSL.g:20125:2: ( ruleCubeLevel )
+            // InternalCubeDSL.g:20126:3: ruleCubeLevel
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getHierarchLevelsCubeLevelParserRuleCall_5_0()); 
@@ -65417,17 +66239,17 @@
 
 
     // $ANTLR start "rule__CubeDimensionEntityEntity__DimEntityAssignment_6"
-    // InternalCubeDSL.g:19890:1: rule__CubeDimensionEntityEntity__DimEntityAssignment_6 : ( ruleCubeDimensionEntityEntity ) ;
+    // InternalCubeDSL.g:20135:1: rule__CubeDimensionEntityEntity__DimEntityAssignment_6 : ( ruleCubeDimensionEntityEntity ) ;
     public final void rule__CubeDimensionEntityEntity__DimEntityAssignment_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19894:1: ( ( ruleCubeDimensionEntityEntity ) )
-            // InternalCubeDSL.g:19895:2: ( ruleCubeDimensionEntityEntity )
+            // InternalCubeDSL.g:20139:1: ( ( ruleCubeDimensionEntityEntity ) )
+            // InternalCubeDSL.g:20140:2: ( ruleCubeDimensionEntityEntity )
             {
-            // InternalCubeDSL.g:19895:2: ( ruleCubeDimensionEntityEntity )
-            // InternalCubeDSL.g:19896:3: ruleCubeDimensionEntityEntity
+            // InternalCubeDSL.g:20140:2: ( ruleCubeDimensionEntityEntity )
+            // InternalCubeDSL.g:20141:3: ruleCubeDimensionEntityEntity
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeDimensionEntityEntityAccess().getDimEntityCubeDimensionEntityEntityParserRuleCall_6_0()); 
@@ -65462,17 +66284,17 @@
 
 
     // $ANTLR start "rule__CubeLevel__NameAssignment_1"
-    // InternalCubeDSL.g:19905:1: rule__CubeLevel__NameAssignment_1 : ( ruleTRANSLATABLEID ) ;
+    // InternalCubeDSL.g:20150:1: rule__CubeLevel__NameAssignment_1 : ( ruleTRANSLATABLEID ) ;
     public final void rule__CubeLevel__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19909:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:19910:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:20154:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:20155:2: ( ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:19910:2: ( ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:19911:3: ruleTRANSLATABLEID
+            // InternalCubeDSL.g:20155:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:20156:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getNameTRANSLATABLEIDParserRuleCall_1_0()); 
@@ -65507,23 +66329,23 @@
 
 
     // $ANTLR start "rule__CubeLevel__LevelColValueAssignment_3"
-    // InternalCubeDSL.g:19920:1: rule__CubeLevel__LevelColValueAssignment_3 : ( ( ruleLFQN ) ) ;
+    // InternalCubeDSL.g:20165:1: rule__CubeLevel__LevelColValueAssignment_3 : ( ( ruleLFQN ) ) ;
     public final void rule__CubeLevel__LevelColValueAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19924:1: ( ( ( ruleLFQN ) ) )
-            // InternalCubeDSL.g:19925:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20169:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:20170:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:19925:2: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:19926:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20170:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20171:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getLevelColValueLEntityFeatureCrossReference_3_0()); 
             }
-            // InternalCubeDSL.g:19927:3: ( ruleLFQN )
-            // InternalCubeDSL.g:19928:4: ruleLFQN
+            // InternalCubeDSL.g:20172:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20173:4: ruleLFQN
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelAccess().getLevelColValueLEntityFeatureLFQNParserRuleCall_3_0_1()); 
@@ -65563,37 +66385,37 @@
     // $ANTLR end "rule__CubeLevel__LevelColValueAssignment_3"
 
 
-    // $ANTLR start "rule__CubeLevel__UniqueMembersAssignment_4"
-    // InternalCubeDSL.g:19939:1: rule__CubeLevel__UniqueMembersAssignment_4 : ( ( 'uniqueMembers' ) ) ;
-    public final void rule__CubeLevel__UniqueMembersAssignment_4() throws RecognitionException {
+    // $ANTLR start "rule__CubeLevel__NameColumnAssignment_4_0"
+    // InternalCubeDSL.g:20184:1: rule__CubeLevel__NameColumnAssignment_4_0 : ( ( 'nameColumn' ) ) ;
+    public final void rule__CubeLevel__NameColumnAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19943:1: ( ( ( 'uniqueMembers' ) ) )
-            // InternalCubeDSL.g:19944:2: ( ( 'uniqueMembers' ) )
+            // InternalCubeDSL.g:20188:1: ( ( ( 'nameColumn' ) ) )
+            // InternalCubeDSL.g:20189:2: ( ( 'nameColumn' ) )
             {
-            // InternalCubeDSL.g:19944:2: ( ( 'uniqueMembers' ) )
-            // InternalCubeDSL.g:19945:3: ( 'uniqueMembers' )
+            // InternalCubeDSL.g:20189:2: ( ( 'nameColumn' ) )
+            // InternalCubeDSL.g:20190:3: ( 'nameColumn' )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0()); 
+               before(grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0()); 
             }
-            // InternalCubeDSL.g:19946:3: ( 'uniqueMembers' )
-            // InternalCubeDSL.g:19947:4: 'uniqueMembers'
+            // InternalCubeDSL.g:20191:3: ( 'nameColumn' )
+            // InternalCubeDSL.g:20192:4: 'nameColumn'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0()); 
+               before(grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0()); 
             }
             match(input,122,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0()); 
+               after(grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0()); 
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0()); 
+               after(grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0()); 
             }
 
             }
@@ -65613,40 +66435,97 @@
         }
         return ;
     }
-    // $ANTLR end "rule__CubeLevel__UniqueMembersAssignment_4"
+    // $ANTLR end "rule__CubeLevel__NameColumnAssignment_4_0"
 
 
-    // $ANTLR start "rule__CubeLevel__LevelTypeAssignment_5_0"
-    // InternalCubeDSL.g:19958:1: rule__CubeLevel__LevelTypeAssignment_5_0 : ( ( 'levelType' ) ) ;
-    public final void rule__CubeLevel__LevelTypeAssignment_5_0() throws RecognitionException {
+    // $ANTLR start "rule__CubeLevel__LevelNameColValueAssignment_4_1"
+    // InternalCubeDSL.g:20203:1: rule__CubeLevel__LevelNameColValueAssignment_4_1 : ( ( ruleLFQN ) ) ;
+    public final void rule__CubeLevel__LevelNameColValueAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19962:1: ( ( ( 'levelType' ) ) )
-            // InternalCubeDSL.g:19963:2: ( ( 'levelType' ) )
+            // InternalCubeDSL.g:20207:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:20208:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:19963:2: ( ( 'levelType' ) )
-            // InternalCubeDSL.g:19964:3: ( 'levelType' )
+            // InternalCubeDSL.g:20208:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20209:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0()); 
+               before(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureCrossReference_4_1_0()); 
             }
-            // InternalCubeDSL.g:19965:3: ( 'levelType' )
-            // InternalCubeDSL.g:19966:4: 'levelType'
+            // InternalCubeDSL.g:20210:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20211:4: ruleLFQN
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0()); 
+               before(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureLFQNParserRuleCall_4_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleLFQN();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureLFQNParserRuleCall_4_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureCrossReference_4_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__LevelNameColValueAssignment_4_1"
+
+
+    // $ANTLR start "rule__CubeLevel__CaptionColumnAssignment_5_0"
+    // InternalCubeDSL.g:20222:1: rule__CubeLevel__CaptionColumnAssignment_5_0 : ( ( 'captionColumn' ) ) ;
+    public final void rule__CubeLevel__CaptionColumnAssignment_5_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:20226:1: ( ( ( 'captionColumn' ) ) )
+            // InternalCubeDSL.g:20227:2: ( ( 'captionColumn' ) )
+            {
+            // InternalCubeDSL.g:20227:2: ( ( 'captionColumn' ) )
+            // InternalCubeDSL.g:20228:3: ( 'captionColumn' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0()); 
+            }
+            // InternalCubeDSL.g:20229:3: ( 'captionColumn' )
+            // InternalCubeDSL.g:20230:4: 'captionColumn'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0()); 
             }
             match(input,123,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0()); 
+               after(grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0()); 
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0()); 
+               after(grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0()); 
             }
 
             }
@@ -65666,24 +66545,297 @@
         }
         return ;
     }
-    // $ANTLR end "rule__CubeLevel__LevelTypeAssignment_5_0"
+    // $ANTLR end "rule__CubeLevel__CaptionColumnAssignment_5_0"
 
 
-    // $ANTLR start "rule__CubeLevel__LevelTypeValueAssignment_5_1"
-    // InternalCubeDSL.g:19977:1: rule__CubeLevel__LevelTypeValueAssignment_5_1 : ( ruleCubeLevelLevelType ) ;
-    public final void rule__CubeLevel__LevelTypeValueAssignment_5_1() throws RecognitionException {
+    // $ANTLR start "rule__CubeLevel__LevelCaptionColValueAssignment_5_1"
+    // InternalCubeDSL.g:20241:1: rule__CubeLevel__LevelCaptionColValueAssignment_5_1 : ( ( ruleLFQN ) ) ;
+    public final void rule__CubeLevel__LevelCaptionColValueAssignment_5_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19981:1: ( ( ruleCubeLevelLevelType ) )
-            // InternalCubeDSL.g:19982:2: ( ruleCubeLevelLevelType )
+            // InternalCubeDSL.g:20245:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:20246:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:19982:2: ( ruleCubeLevelLevelType )
-            // InternalCubeDSL.g:19983:3: ruleCubeLevelLevelType
+            // InternalCubeDSL.g:20246:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20247:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0()); 
+               before(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureCrossReference_5_1_0()); 
+            }
+            // InternalCubeDSL.g:20248:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20249:4: ruleLFQN
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureLFQNParserRuleCall_5_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleLFQN();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureLFQNParserRuleCall_5_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureCrossReference_5_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__LevelCaptionColValueAssignment_5_1"
+
+
+    // $ANTLR start "rule__CubeLevel__OrdinalColumnAssignment_6_0"
+    // InternalCubeDSL.g:20260:1: rule__CubeLevel__OrdinalColumnAssignment_6_0 : ( ( 'ordinalColumn' ) ) ;
+    public final void rule__CubeLevel__OrdinalColumnAssignment_6_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:20264:1: ( ( ( 'ordinalColumn' ) ) )
+            // InternalCubeDSL.g:20265:2: ( ( 'ordinalColumn' ) )
+            {
+            // InternalCubeDSL.g:20265:2: ( ( 'ordinalColumn' ) )
+            // InternalCubeDSL.g:20266:3: ( 'ordinalColumn' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0()); 
+            }
+            // InternalCubeDSL.g:20267:3: ( 'ordinalColumn' )
+            // InternalCubeDSL.g:20268:4: 'ordinalColumn'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0()); 
+            }
+            match(input,124,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__OrdinalColumnAssignment_6_0"
+
+
+    // $ANTLR start "rule__CubeLevel__LevelOrdinalColValueAssignment_6_1"
+    // InternalCubeDSL.g:20279:1: rule__CubeLevel__LevelOrdinalColValueAssignment_6_1 : ( ( ruleLFQN ) ) ;
+    public final void rule__CubeLevel__LevelOrdinalColValueAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:20283:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:20284:2: ( ( ruleLFQN ) )
+            {
+            // InternalCubeDSL.g:20284:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20285:3: ( ruleLFQN )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0()); 
+            }
+            // InternalCubeDSL.g:20286:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20287:4: ruleLFQN
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureLFQNParserRuleCall_6_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleLFQN();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureLFQNParserRuleCall_6_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__LevelOrdinalColValueAssignment_6_1"
+
+
+    // $ANTLR start "rule__CubeLevel__UniqueMembersAssignment_7"
+    // InternalCubeDSL.g:20298:1: rule__CubeLevel__UniqueMembersAssignment_7 : ( ( 'uniqueMembers' ) ) ;
+    public final void rule__CubeLevel__UniqueMembersAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:20302:1: ( ( ( 'uniqueMembers' ) ) )
+            // InternalCubeDSL.g:20303:2: ( ( 'uniqueMembers' ) )
+            {
+            // InternalCubeDSL.g:20303:2: ( ( 'uniqueMembers' ) )
+            // InternalCubeDSL.g:20304:3: ( 'uniqueMembers' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0()); 
+            }
+            // InternalCubeDSL.g:20305:3: ( 'uniqueMembers' )
+            // InternalCubeDSL.g:20306:4: 'uniqueMembers'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0()); 
+            }
+            match(input,125,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__UniqueMembersAssignment_7"
+
+
+    // $ANTLR start "rule__CubeLevel__LevelTypeAssignment_8_0"
+    // InternalCubeDSL.g:20317:1: rule__CubeLevel__LevelTypeAssignment_8_0 : ( ( 'levelType' ) ) ;
+    public final void rule__CubeLevel__LevelTypeAssignment_8_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:20321:1: ( ( ( 'levelType' ) ) )
+            // InternalCubeDSL.g:20322:2: ( ( 'levelType' ) )
+            {
+            // InternalCubeDSL.g:20322:2: ( ( 'levelType' ) )
+            // InternalCubeDSL.g:20323:3: ( 'levelType' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0()); 
+            }
+            // InternalCubeDSL.g:20324:3: ( 'levelType' )
+            // InternalCubeDSL.g:20325:4: 'levelType'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0()); 
+            }
+            match(input,126,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CubeLevel__LevelTypeAssignment_8_0"
+
+
+    // $ANTLR start "rule__CubeLevel__LevelTypeValueAssignment_8_1"
+    // InternalCubeDSL.g:20336:1: rule__CubeLevel__LevelTypeValueAssignment_8_1 : ( ruleCubeLevelLevelType ) ;
+    public final void rule__CubeLevel__LevelTypeValueAssignment_8_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalCubeDSL.g:20340:1: ( ( ruleCubeLevelLevelType ) )
+            // InternalCubeDSL.g:20341:2: ( ruleCubeLevelLevelType )
+            {
+            // InternalCubeDSL.g:20341:2: ( ruleCubeLevelLevelType )
+            // InternalCubeDSL.g:20342:3: ruleCubeLevelLevelType
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0()); 
             }
             pushFollow(FOLLOW_2);
             ruleCubeLevelLevelType();
@@ -65691,7 +66843,7 @@
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0()); 
+               after(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0()); 
             }
 
             }
@@ -65711,24 +66863,24 @@
         }
         return ;
     }
-    // $ANTLR end "rule__CubeLevel__LevelTypeValueAssignment_5_1"
+    // $ANTLR end "rule__CubeLevel__LevelTypeValueAssignment_8_1"
 
 
-    // $ANTLR start "rule__CubeLevel__PropertiesAssignment_6_1"
-    // InternalCubeDSL.g:19992:1: rule__CubeLevel__PropertiesAssignment_6_1 : ( ruleCubeLevelProp ) ;
-    public final void rule__CubeLevel__PropertiesAssignment_6_1() throws RecognitionException {
+    // $ANTLR start "rule__CubeLevel__PropertiesAssignment_9_1"
+    // InternalCubeDSL.g:20351:1: rule__CubeLevel__PropertiesAssignment_9_1 : ( ruleCubeLevelProp ) ;
+    public final void rule__CubeLevel__PropertiesAssignment_9_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:19996:1: ( ( ruleCubeLevelProp ) )
-            // InternalCubeDSL.g:19997:2: ( ruleCubeLevelProp )
+            // InternalCubeDSL.g:20355:1: ( ( ruleCubeLevelProp ) )
+            // InternalCubeDSL.g:20356:2: ( ruleCubeLevelProp )
             {
-            // InternalCubeDSL.g:19997:2: ( ruleCubeLevelProp )
-            // InternalCubeDSL.g:19998:3: ruleCubeLevelProp
+            // InternalCubeDSL.g:20356:2: ( ruleCubeLevelProp )
+            // InternalCubeDSL.g:20357:3: ruleCubeLevelProp
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_6_1_0()); 
+               before(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_9_1_0()); 
             }
             pushFollow(FOLLOW_2);
             ruleCubeLevelProp();
@@ -65736,7 +66888,7 @@
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_6_1_0()); 
+               after(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_9_1_0()); 
             }
 
             }
@@ -65756,21 +66908,21 @@
         }
         return ;
     }
-    // $ANTLR end "rule__CubeLevel__PropertiesAssignment_6_1"
+    // $ANTLR end "rule__CubeLevel__PropertiesAssignment_9_1"
 
 
     // $ANTLR start "rule__CubeLevelProp__NameAssignment_1"
-    // InternalCubeDSL.g:20007:1: rule__CubeLevelProp__NameAssignment_1 : ( ruleTRANSLATABLEID ) ;
+    // InternalCubeDSL.g:20366:1: rule__CubeLevelProp__NameAssignment_1 : ( ruleTRANSLATABLEID ) ;
     public final void rule__CubeLevelProp__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20011:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:20012:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:20370:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:20371:2: ( ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:20012:2: ( ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:20013:3: ruleTRANSLATABLEID
+            // InternalCubeDSL.g:20371:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:20372:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getNameTRANSLATABLEIDParserRuleCall_1_0()); 
@@ -65805,23 +66957,23 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__LevelPropColValueAssignment_3"
-    // InternalCubeDSL.g:20022:1: rule__CubeLevelProp__LevelPropColValueAssignment_3 : ( ( ruleLFQN ) ) ;
+    // InternalCubeDSL.g:20381:1: rule__CubeLevelProp__LevelPropColValueAssignment_3 : ( ( ruleLFQN ) ) ;
     public final void rule__CubeLevelProp__LevelPropColValueAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20026:1: ( ( ( ruleLFQN ) ) )
-            // InternalCubeDSL.g:20027:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20385:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:20386:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:20027:2: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:20028:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20386:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20387:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getLevelPropColValueLEntityFeatureCrossReference_3_0()); 
             }
-            // InternalCubeDSL.g:20029:3: ( ruleLFQN )
-            // InternalCubeDSL.g:20030:4: ruleLFQN
+            // InternalCubeDSL.g:20388:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20389:4: ruleLFQN
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getLevelPropColValueLEntityFeatureLFQNParserRuleCall_3_0_1()); 
@@ -65862,28 +67014,28 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__TypeAssignment_4_0"
-    // InternalCubeDSL.g:20041:1: rule__CubeLevelProp__TypeAssignment_4_0 : ( ( 'type' ) ) ;
+    // InternalCubeDSL.g:20400:1: rule__CubeLevelProp__TypeAssignment_4_0 : ( ( 'type' ) ) ;
     public final void rule__CubeLevelProp__TypeAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20045:1: ( ( ( 'type' ) ) )
-            // InternalCubeDSL.g:20046:2: ( ( 'type' ) )
+            // InternalCubeDSL.g:20404:1: ( ( ( 'type' ) ) )
+            // InternalCubeDSL.g:20405:2: ( ( 'type' ) )
             {
-            // InternalCubeDSL.g:20046:2: ( ( 'type' ) )
-            // InternalCubeDSL.g:20047:3: ( 'type' )
+            // InternalCubeDSL.g:20405:2: ( ( 'type' ) )
+            // InternalCubeDSL.g:20406:3: ( 'type' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getTypeTypeKeyword_4_0_0()); 
             }
-            // InternalCubeDSL.g:20048:3: ( 'type' )
-            // InternalCubeDSL.g:20049:4: 'type'
+            // InternalCubeDSL.g:20407:3: ( 'type' )
+            // InternalCubeDSL.g:20408:4: 'type'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getTypeTypeKeyword_4_0_0()); 
             }
-            match(input,124,FOLLOW_2); if (state.failed) return ;
+            match(input,127,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getCubeLevelPropAccess().getTypeTypeKeyword_4_0_0()); 
             }
@@ -65915,17 +67067,17 @@
 
 
     // $ANTLR start "rule__CubeLevelProp__TypeValueAssignment_4_1"
-    // InternalCubeDSL.g:20060:1: rule__CubeLevelProp__TypeValueAssignment_4_1 : ( ruleCubeLevelPropType ) ;
+    // InternalCubeDSL.g:20419:1: rule__CubeLevelProp__TypeValueAssignment_4_1 : ( ruleCubeLevelPropType ) ;
     public final void rule__CubeLevelProp__TypeValueAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20064:1: ( ( ruleCubeLevelPropType ) )
-            // InternalCubeDSL.g:20065:2: ( ruleCubeLevelPropType )
+            // InternalCubeDSL.g:20423:1: ( ( ruleCubeLevelPropType ) )
+            // InternalCubeDSL.g:20424:2: ( ruleCubeLevelPropType )
             {
-            // InternalCubeDSL.g:20065:2: ( ruleCubeLevelPropType )
-            // InternalCubeDSL.g:20066:3: ruleCubeLevelPropType
+            // InternalCubeDSL.g:20424:2: ( ruleCubeLevelPropType )
+            // InternalCubeDSL.g:20425:3: ruleCubeLevelPropType
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeLevelPropAccess().getTypeValueCubeLevelPropTypeEnumRuleCall_4_1_0()); 
@@ -65960,17 +67112,17 @@
 
 
     // $ANTLR start "rule__CubeMeasure__NameAssignment_1"
-    // InternalCubeDSL.g:20075:1: rule__CubeMeasure__NameAssignment_1 : ( ruleTRANSLATABLEID ) ;
+    // InternalCubeDSL.g:20434:1: rule__CubeMeasure__NameAssignment_1 : ( ruleTRANSLATABLEID ) ;
     public final void rule__CubeMeasure__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20079:1: ( ( ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:20080:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:20438:1: ( ( ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:20439:2: ( ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:20080:2: ( ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:20081:3: ruleTRANSLATABLEID
+            // InternalCubeDSL.g:20439:2: ( ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:20440:3: ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getNameTRANSLATABLEIDParserRuleCall_1_0()); 
@@ -66005,17 +67157,17 @@
 
 
     // $ANTLR start "rule__CubeMeasure__AggregatorAssignment_2"
-    // InternalCubeDSL.g:20090:1: rule__CubeMeasure__AggregatorAssignment_2 : ( ruleCubeAggregatorEnum ) ;
+    // InternalCubeDSL.g:20449:1: rule__CubeMeasure__AggregatorAssignment_2 : ( ruleCubeAggregatorEnum ) ;
     public final void rule__CubeMeasure__AggregatorAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20094:1: ( ( ruleCubeAggregatorEnum ) )
-            // InternalCubeDSL.g:20095:2: ( ruleCubeAggregatorEnum )
+            // InternalCubeDSL.g:20453:1: ( ( ruleCubeAggregatorEnum ) )
+            // InternalCubeDSL.g:20454:2: ( ruleCubeAggregatorEnum )
             {
-            // InternalCubeDSL.g:20095:2: ( ruleCubeAggregatorEnum )
-            // InternalCubeDSL.g:20096:3: ruleCubeAggregatorEnum
+            // InternalCubeDSL.g:20454:2: ( ruleCubeAggregatorEnum )
+            // InternalCubeDSL.g:20455:3: ruleCubeAggregatorEnum
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getAggregatorCubeAggregatorEnumEnumRuleCall_2_0()); 
@@ -66050,23 +67202,23 @@
 
 
     // $ANTLR start "rule__CubeMeasure__MeasureColAssignment_4"
-    // InternalCubeDSL.g:20105:1: rule__CubeMeasure__MeasureColAssignment_4 : ( ( ruleLFQN ) ) ;
+    // InternalCubeDSL.g:20464:1: rule__CubeMeasure__MeasureColAssignment_4 : ( ( ruleLFQN ) ) ;
     public final void rule__CubeMeasure__MeasureColAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20109:1: ( ( ( ruleLFQN ) ) )
-            // InternalCubeDSL.g:20110:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20468:1: ( ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:20469:2: ( ( ruleLFQN ) )
             {
-            // InternalCubeDSL.g:20110:2: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:20111:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20469:2: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:20470:3: ( ruleLFQN )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getMeasureColLEntityFeatureCrossReference_4_0()); 
             }
-            // InternalCubeDSL.g:20112:3: ( ruleLFQN )
-            // InternalCubeDSL.g:20113:4: ruleLFQN
+            // InternalCubeDSL.g:20471:3: ( ruleLFQN )
+            // InternalCubeDSL.g:20472:4: ruleLFQN
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getMeasureColLEntityFeatureLFQNParserRuleCall_4_0_1()); 
@@ -66107,28 +67259,28 @@
 
 
     // $ANTLR start "rule__CubeMeasure__NotVisibleAssignment_5"
-    // InternalCubeDSL.g:20124:1: rule__CubeMeasure__NotVisibleAssignment_5 : ( ( 'notVisible' ) ) ;
+    // InternalCubeDSL.g:20483:1: rule__CubeMeasure__NotVisibleAssignment_5 : ( ( 'notVisible' ) ) ;
     public final void rule__CubeMeasure__NotVisibleAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20128:1: ( ( ( 'notVisible' ) ) )
-            // InternalCubeDSL.g:20129:2: ( ( 'notVisible' ) )
+            // InternalCubeDSL.g:20487:1: ( ( ( 'notVisible' ) ) )
+            // InternalCubeDSL.g:20488:2: ( ( 'notVisible' ) )
             {
-            // InternalCubeDSL.g:20129:2: ( ( 'notVisible' ) )
-            // InternalCubeDSL.g:20130:3: ( 'notVisible' )
+            // InternalCubeDSL.g:20488:2: ( ( 'notVisible' ) )
+            // InternalCubeDSL.g:20489:3: ( 'notVisible' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getNotVisibleNotVisibleKeyword_5_0()); 
             }
-            // InternalCubeDSL.g:20131:3: ( 'notVisible' )
-            // InternalCubeDSL.g:20132:4: 'notVisible'
+            // InternalCubeDSL.g:20490:3: ( 'notVisible' )
+            // InternalCubeDSL.g:20491:4: 'notVisible'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCubeMeasureAccess().getNotVisibleNotVisibleKeyword_5_0()); 
             }
-            match(input,125,FOLLOW_2); if (state.failed) return ;
+            match(input,128,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getCubeMeasureAccess().getNotVisibleNotVisibleKeyword_5_0()); 
             }
@@ -66160,23 +67312,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__StaticAssignment_2_0_0"
-    // InternalCubeDSL.g:20143:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
+    // InternalCubeDSL.g:20502:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
     public final void rule__XImportDeclaration__StaticAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20147:1: ( ( ( 'static' ) ) )
-            // InternalCubeDSL.g:20148:2: ( ( 'static' ) )
+            // InternalCubeDSL.g:20506:1: ( ( ( 'static' ) ) )
+            // InternalCubeDSL.g:20507:2: ( ( 'static' ) )
             {
-            // InternalCubeDSL.g:20148:2: ( ( 'static' ) )
-            // InternalCubeDSL.g:20149:3: ( 'static' )
+            // InternalCubeDSL.g:20507:2: ( ( 'static' ) )
+            // InternalCubeDSL.g:20508:3: ( 'static' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
             }
-            // InternalCubeDSL.g:20150:3: ( 'static' )
-            // InternalCubeDSL.g:20151:4: 'static'
+            // InternalCubeDSL.g:20509:3: ( 'static' )
+            // InternalCubeDSL.g:20510:4: 'static'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
@@ -66213,23 +67365,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_2_0_1"
-    // InternalCubeDSL.g:20162:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
+    // InternalCubeDSL.g:20521:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
     public final void rule__XImportDeclaration__ExtensionAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20166:1: ( ( ( 'extension' ) ) )
-            // InternalCubeDSL.g:20167:2: ( ( 'extension' ) )
+            // InternalCubeDSL.g:20525:1: ( ( ( 'extension' ) ) )
+            // InternalCubeDSL.g:20526:2: ( ( 'extension' ) )
             {
-            // InternalCubeDSL.g:20167:2: ( ( 'extension' ) )
-            // InternalCubeDSL.g:20168:3: ( 'extension' )
+            // InternalCubeDSL.g:20526:2: ( ( 'extension' ) )
+            // InternalCubeDSL.g:20527:3: ( 'extension' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
             }
-            // InternalCubeDSL.g:20169:3: ( 'extension' )
-            // InternalCubeDSL.g:20170:4: 'extension'
+            // InternalCubeDSL.g:20528:3: ( 'extension' )
+            // InternalCubeDSL.g:20529:4: 'extension'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
@@ -66266,23 +67418,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2"
-    // InternalCubeDSL.g:20181:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
+    // InternalCubeDSL.g:20540:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20185:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
-            // InternalCubeDSL.g:20186:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalCubeDSL.g:20544:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
+            // InternalCubeDSL.g:20545:2: ( ( ruleQualifiedNameInStaticImport ) )
             {
-            // InternalCubeDSL.g:20186:2: ( ( ruleQualifiedNameInStaticImport ) )
-            // InternalCubeDSL.g:20187:3: ( ruleQualifiedNameInStaticImport )
+            // InternalCubeDSL.g:20545:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalCubeDSL.g:20546:3: ( ruleQualifiedNameInStaticImport )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); 
             }
-            // InternalCubeDSL.g:20188:3: ( ruleQualifiedNameInStaticImport )
-            // InternalCubeDSL.g:20189:4: ruleQualifiedNameInStaticImport
+            // InternalCubeDSL.g:20547:3: ( ruleQualifiedNameInStaticImport )
+            // InternalCubeDSL.g:20548:4: ruleQualifiedNameInStaticImport
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); 
@@ -66323,23 +67475,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__WildcardAssignment_2_0_3_0"
-    // InternalCubeDSL.g:20200:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
+    // InternalCubeDSL.g:20559:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
     public final void rule__XImportDeclaration__WildcardAssignment_2_0_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20204:1: ( ( ( '*' ) ) )
-            // InternalCubeDSL.g:20205:2: ( ( '*' ) )
+            // InternalCubeDSL.g:20563:1: ( ( ( '*' ) ) )
+            // InternalCubeDSL.g:20564:2: ( ( '*' ) )
             {
-            // InternalCubeDSL.g:20205:2: ( ( '*' ) )
-            // InternalCubeDSL.g:20206:3: ( '*' )
+            // InternalCubeDSL.g:20564:2: ( ( '*' ) )
+            // InternalCubeDSL.g:20565:3: ( '*' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
             }
-            // InternalCubeDSL.g:20207:3: ( '*' )
-            // InternalCubeDSL.g:20208:4: '*'
+            // InternalCubeDSL.g:20566:3: ( '*' )
+            // InternalCubeDSL.g:20567:4: '*'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
@@ -66376,17 +67528,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1"
-    // InternalCubeDSL.g:20219:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
+    // InternalCubeDSL.g:20578:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
     public final void rule__XImportDeclaration__MemberNameAssignment_2_0_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20223:1: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:20224:2: ( ruleValidID )
+            // InternalCubeDSL.g:20582:1: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:20583:2: ( ruleValidID )
             {
-            // InternalCubeDSL.g:20224:2: ( ruleValidID )
-            // InternalCubeDSL.g:20225:3: ruleValidID
+            // InternalCubeDSL.g:20583:2: ( ruleValidID )
+            // InternalCubeDSL.g:20584:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); 
@@ -66421,23 +67573,23 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_1"
-    // InternalCubeDSL.g:20234:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalCubeDSL.g:20593:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XImportDeclaration__ImportedTypeAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20238:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalCubeDSL.g:20239:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:20597:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalCubeDSL.g:20598:2: ( ( ruleQualifiedName ) )
             {
-            // InternalCubeDSL.g:20239:2: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:20240:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:20598:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:20599:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); 
             }
-            // InternalCubeDSL.g:20241:3: ( ruleQualifiedName )
-            // InternalCubeDSL.g:20242:4: ruleQualifiedName
+            // InternalCubeDSL.g:20600:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:20601:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); 
@@ -66478,17 +67630,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2"
-    // InternalCubeDSL.g:20253:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
+    // InternalCubeDSL.g:20612:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
     public final void rule__XImportDeclaration__ImportedNamespaceAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20257:1: ( ( ruleQualifiedNameWithWildcard ) )
-            // InternalCubeDSL.g:20258:2: ( ruleQualifiedNameWithWildcard )
+            // InternalCubeDSL.g:20616:1: ( ( ruleQualifiedNameWithWildcard ) )
+            // InternalCubeDSL.g:20617:2: ( ruleQualifiedNameWithWildcard )
             {
-            // InternalCubeDSL.g:20258:2: ( ruleQualifiedNameWithWildcard )
-            // InternalCubeDSL.g:20259:3: ruleQualifiedNameWithWildcard
+            // InternalCubeDSL.g:20617:2: ( ruleQualifiedNameWithWildcard )
+            // InternalCubeDSL.g:20618:3: ruleQualifiedNameWithWildcard
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); 
@@ -66523,28 +67675,28 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__FqnImportAssignment_2_3_0"
-    // InternalCubeDSL.g:20268:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
+    // InternalCubeDSL.g:20627:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
     public final void rule__XImportDeclaration__FqnImportAssignment_2_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20272:1: ( ( ( 'ns' ) ) )
-            // InternalCubeDSL.g:20273:2: ( ( 'ns' ) )
+            // InternalCubeDSL.g:20631:1: ( ( ( 'ns' ) ) )
+            // InternalCubeDSL.g:20632:2: ( ( 'ns' ) )
             {
-            // InternalCubeDSL.g:20273:2: ( ( 'ns' ) )
-            // InternalCubeDSL.g:20274:3: ( 'ns' )
+            // InternalCubeDSL.g:20632:2: ( ( 'ns' ) )
+            // InternalCubeDSL.g:20633:3: ( 'ns' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            // InternalCubeDSL.g:20275:3: ( 'ns' )
-            // InternalCubeDSL.g:20276:4: 'ns'
+            // InternalCubeDSL.g:20634:3: ( 'ns' )
+            // InternalCubeDSL.g:20635:4: 'ns'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
-            match(input,126,FOLLOW_2); if (state.failed) return ;
+            match(input,129,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
             }
@@ -66576,17 +67728,17 @@
 
 
     // $ANTLR start "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1"
-    // InternalCubeDSL.g:20287:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
+    // InternalCubeDSL.g:20646:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
     public final void rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20291:1: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:20292:2: ( ruleQualifiedName )
+            // InternalCubeDSL.g:20650:1: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:20651:2: ( ruleQualifiedName )
             {
-            // InternalCubeDSL.g:20292:2: ( ruleQualifiedName )
-            // InternalCubeDSL.g:20293:3: ruleQualifiedName
+            // InternalCubeDSL.g:20651:2: ( ruleQualifiedName )
+            // InternalCubeDSL.g:20652:3: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); 
@@ -66621,23 +67773,23 @@
 
 
     // $ANTLR start "rule__XAnnotation__AnnotationTypeAssignment_2"
-    // InternalCubeDSL.g:20302:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalCubeDSL.g:20661:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20306:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalCubeDSL.g:20307:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:20665:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalCubeDSL.g:20666:2: ( ( ruleQualifiedName ) )
             {
-            // InternalCubeDSL.g:20307:2: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:20308:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:20666:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:20667:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
             }
-            // InternalCubeDSL.g:20309:3: ( ruleQualifiedName )
-            // InternalCubeDSL.g:20310:4: ruleQualifiedName
+            // InternalCubeDSL.g:20668:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:20669:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); 
@@ -66678,17 +67830,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0"
-    // InternalCubeDSL.g:20321:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalCubeDSL.g:20680:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
     public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20325:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalCubeDSL.g:20326:2: ( ruleXAnnotationElementValuePair )
+            // InternalCubeDSL.g:20684:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalCubeDSL.g:20685:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalCubeDSL.g:20326:2: ( ruleXAnnotationElementValuePair )
-            // InternalCubeDSL.g:20327:3: ruleXAnnotationElementValuePair
+            // InternalCubeDSL.g:20685:2: ( ruleXAnnotationElementValuePair )
+            // InternalCubeDSL.g:20686:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
@@ -66723,17 +67875,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1"
-    // InternalCubeDSL.g:20336:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
+    // InternalCubeDSL.g:20695:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
     public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20340:1: ( ( ruleXAnnotationElementValuePair ) )
-            // InternalCubeDSL.g:20341:2: ( ruleXAnnotationElementValuePair )
+            // InternalCubeDSL.g:20699:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalCubeDSL.g:20700:2: ( ruleXAnnotationElementValuePair )
             {
-            // InternalCubeDSL.g:20341:2: ( ruleXAnnotationElementValuePair )
-            // InternalCubeDSL.g:20342:3: ruleXAnnotationElementValuePair
+            // InternalCubeDSL.g:20700:2: ( ruleXAnnotationElementValuePair )
+            // InternalCubeDSL.g:20701:3: ruleXAnnotationElementValuePair
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
@@ -66768,17 +67920,17 @@
 
 
     // $ANTLR start "rule__XAnnotation__ValueAssignment_3_1_1"
-    // InternalCubeDSL.g:20351:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
+    // InternalCubeDSL.g:20710:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
     public final void rule__XAnnotation__ValueAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20355:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
-            // InternalCubeDSL.g:20356:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalCubeDSL.g:20714:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
+            // InternalCubeDSL.g:20715:2: ( ruleXAnnotationElementValueOrCommaList )
             {
-            // InternalCubeDSL.g:20356:2: ( ruleXAnnotationElementValueOrCommaList )
-            // InternalCubeDSL.g:20357:3: ruleXAnnotationElementValueOrCommaList
+            // InternalCubeDSL.g:20715:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalCubeDSL.g:20716:3: ruleXAnnotationElementValueOrCommaList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
@@ -66813,23 +67965,23 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0"
-    // InternalCubeDSL.g:20366:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
+    // InternalCubeDSL.g:20725:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
     public final void rule__XAnnotationElementValuePair__ElementAssignment_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20370:1: ( ( ( ruleValidID ) ) )
-            // InternalCubeDSL.g:20371:2: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:20729:1: ( ( ( ruleValidID ) ) )
+            // InternalCubeDSL.g:20730:2: ( ( ruleValidID ) )
             {
-            // InternalCubeDSL.g:20371:2: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:20372:3: ( ruleValidID )
+            // InternalCubeDSL.g:20730:2: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:20731:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
             }
-            // InternalCubeDSL.g:20373:3: ( ruleValidID )
-            // InternalCubeDSL.g:20374:4: ruleValidID
+            // InternalCubeDSL.g:20732:3: ( ruleValidID )
+            // InternalCubeDSL.g:20733:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); 
@@ -66870,17 +68022,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValuePair__ValueAssignment_1"
-    // InternalCubeDSL.g:20385:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
+    // InternalCubeDSL.g:20744:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
     public final void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20389:1: ( ( ruleXAnnotationElementValue ) )
-            // InternalCubeDSL.g:20390:2: ( ruleXAnnotationElementValue )
+            // InternalCubeDSL.g:20748:1: ( ( ruleXAnnotationElementValue ) )
+            // InternalCubeDSL.g:20749:2: ( ruleXAnnotationElementValue )
             {
-            // InternalCubeDSL.g:20390:2: ( ruleXAnnotationElementValue )
-            // InternalCubeDSL.g:20391:3: ruleXAnnotationElementValue
+            // InternalCubeDSL.g:20749:2: ( ruleXAnnotationElementValue )
+            // InternalCubeDSL.g:20750:3: ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
@@ -66915,17 +68067,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0"
-    // InternalCubeDSL.g:20400:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalCubeDSL.g:20759:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20404:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalCubeDSL.g:20405:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20763:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalCubeDSL.g:20764:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalCubeDSL.g:20405:2: ( ruleXAnnotationOrExpression )
-            // InternalCubeDSL.g:20406:3: ruleXAnnotationOrExpression
+            // InternalCubeDSL.g:20764:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20765:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -66960,17 +68112,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1"
-    // InternalCubeDSL.g:20415:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalCubeDSL.g:20774:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20419:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalCubeDSL.g:20420:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20778:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalCubeDSL.g:20779:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalCubeDSL.g:20420:2: ( ruleXAnnotationOrExpression )
-            // InternalCubeDSL.g:20421:3: ruleXAnnotationOrExpression
+            // InternalCubeDSL.g:20779:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20780:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -67005,17 +68157,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1"
-    // InternalCubeDSL.g:20430:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalCubeDSL.g:20789:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20434:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalCubeDSL.g:20435:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20793:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalCubeDSL.g:20794:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalCubeDSL.g:20435:2: ( ruleXAnnotationOrExpression )
-            // InternalCubeDSL.g:20436:3: ruleXAnnotationOrExpression
+            // InternalCubeDSL.g:20794:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20795:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
@@ -67050,17 +68202,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_0"
-    // InternalCubeDSL.g:20445:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    // InternalCubeDSL.g:20804:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20449:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalCubeDSL.g:20450:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20808:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalCubeDSL.g:20809:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalCubeDSL.g:20450:2: ( ruleXAnnotationOrExpression )
-            // InternalCubeDSL.g:20451:3: ruleXAnnotationOrExpression
+            // InternalCubeDSL.g:20809:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20810:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
@@ -67095,17 +68247,17 @@
 
 
     // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1"
-    // InternalCubeDSL.g:20460:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    // InternalCubeDSL.g:20819:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
     public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20464:1: ( ( ruleXAnnotationOrExpression ) )
-            // InternalCubeDSL.g:20465:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20823:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalCubeDSL.g:20824:2: ( ruleXAnnotationOrExpression )
             {
-            // InternalCubeDSL.g:20465:2: ( ruleXAnnotationOrExpression )
-            // InternalCubeDSL.g:20466:3: ruleXAnnotationOrExpression
+            // InternalCubeDSL.g:20824:2: ( ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:20825:3: ruleXAnnotationOrExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
@@ -67140,23 +68292,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
-    // InternalCubeDSL.g:20475:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
+    // InternalCubeDSL.g:20834:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20479:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalCubeDSL.g:20480:2: ( ( ruleFeatureCallID ) )
+            // InternalCubeDSL.g:20838:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalCubeDSL.g:20839:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalCubeDSL.g:20480:2: ( ( ruleFeatureCallID ) )
-            // InternalCubeDSL.g:20481:3: ( ruleFeatureCallID )
+            // InternalCubeDSL.g:20839:2: ( ( ruleFeatureCallID ) )
+            // InternalCubeDSL.g:20840:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalCubeDSL.g:20482:3: ( ruleFeatureCallID )
-            // InternalCubeDSL.g:20483:4: ruleFeatureCallID
+            // InternalCubeDSL.g:20841:3: ( ruleFeatureCallID )
+            // InternalCubeDSL.g:20842:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
@@ -67197,17 +68349,17 @@
 
 
     // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
-    // InternalCubeDSL.g:20494:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
+    // InternalCubeDSL.g:20853:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20498:1: ( ( ruleXAssignment ) )
-            // InternalCubeDSL.g:20499:2: ( ruleXAssignment )
+            // InternalCubeDSL.g:20857:1: ( ( ruleXAssignment ) )
+            // InternalCubeDSL.g:20858:2: ( ruleXAssignment )
             {
-            // InternalCubeDSL.g:20499:2: ( ruleXAssignment )
-            // InternalCubeDSL.g:20500:3: ruleXAssignment
+            // InternalCubeDSL.g:20858:2: ( ruleXAssignment )
+            // InternalCubeDSL.g:20859:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
@@ -67242,23 +68394,23 @@
 
 
     // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
-    // InternalCubeDSL.g:20509:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
+    // InternalCubeDSL.g:20868:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
     public final void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20513:1: ( ( ( ruleOpMultiAssign ) ) )
-            // InternalCubeDSL.g:20514:2: ( ( ruleOpMultiAssign ) )
+            // InternalCubeDSL.g:20872:1: ( ( ( ruleOpMultiAssign ) ) )
+            // InternalCubeDSL.g:20873:2: ( ( ruleOpMultiAssign ) )
             {
-            // InternalCubeDSL.g:20514:2: ( ( ruleOpMultiAssign ) )
-            // InternalCubeDSL.g:20515:3: ( ruleOpMultiAssign )
+            // InternalCubeDSL.g:20873:2: ( ( ruleOpMultiAssign ) )
+            // InternalCubeDSL.g:20874:3: ( ruleOpMultiAssign )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:20516:3: ( ruleOpMultiAssign )
-            // InternalCubeDSL.g:20517:4: ruleOpMultiAssign
+            // InternalCubeDSL.g:20875:3: ( ruleOpMultiAssign )
+            // InternalCubeDSL.g:20876:4: ruleOpMultiAssign
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
@@ -67299,17 +68451,17 @@
 
 
     // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
-    // InternalCubeDSL.g:20528:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
+    // InternalCubeDSL.g:20887:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
     public final void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20532:1: ( ( ruleXAssignment ) )
-            // InternalCubeDSL.g:20533:2: ( ruleXAssignment )
+            // InternalCubeDSL.g:20891:1: ( ( ruleXAssignment ) )
+            // InternalCubeDSL.g:20892:2: ( ruleXAssignment )
             {
-            // InternalCubeDSL.g:20533:2: ( ruleXAssignment )
-            // InternalCubeDSL.g:20534:3: ruleXAssignment
+            // InternalCubeDSL.g:20892:2: ( ruleXAssignment )
+            // InternalCubeDSL.g:20893:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
@@ -67344,23 +68496,23 @@
 
 
     // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
-    // InternalCubeDSL.g:20543:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
+    // InternalCubeDSL.g:20902:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
     public final void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20547:1: ( ( ( ruleOpOr ) ) )
-            // InternalCubeDSL.g:20548:2: ( ( ruleOpOr ) )
+            // InternalCubeDSL.g:20906:1: ( ( ( ruleOpOr ) ) )
+            // InternalCubeDSL.g:20907:2: ( ( ruleOpOr ) )
             {
-            // InternalCubeDSL.g:20548:2: ( ( ruleOpOr ) )
-            // InternalCubeDSL.g:20549:3: ( ruleOpOr )
+            // InternalCubeDSL.g:20907:2: ( ( ruleOpOr ) )
+            // InternalCubeDSL.g:20908:3: ( ruleOpOr )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:20550:3: ( ruleOpOr )
-            // InternalCubeDSL.g:20551:4: ruleOpOr
+            // InternalCubeDSL.g:20909:3: ( ruleOpOr )
+            // InternalCubeDSL.g:20910:4: ruleOpOr
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
@@ -67401,17 +68553,17 @@
 
 
     // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
-    // InternalCubeDSL.g:20562:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
+    // InternalCubeDSL.g:20921:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
     public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20566:1: ( ( ruleXAndExpression ) )
-            // InternalCubeDSL.g:20567:2: ( ruleXAndExpression )
+            // InternalCubeDSL.g:20925:1: ( ( ruleXAndExpression ) )
+            // InternalCubeDSL.g:20926:2: ( ruleXAndExpression )
             {
-            // InternalCubeDSL.g:20567:2: ( ruleXAndExpression )
-            // InternalCubeDSL.g:20568:3: ruleXAndExpression
+            // InternalCubeDSL.g:20926:2: ( ruleXAndExpression )
+            // InternalCubeDSL.g:20927:3: ruleXAndExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
@@ -67446,23 +68598,23 @@
 
 
     // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
-    // InternalCubeDSL.g:20577:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
+    // InternalCubeDSL.g:20936:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
     public final void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20581:1: ( ( ( ruleOpAnd ) ) )
-            // InternalCubeDSL.g:20582:2: ( ( ruleOpAnd ) )
+            // InternalCubeDSL.g:20940:1: ( ( ( ruleOpAnd ) ) )
+            // InternalCubeDSL.g:20941:2: ( ( ruleOpAnd ) )
             {
-            // InternalCubeDSL.g:20582:2: ( ( ruleOpAnd ) )
-            // InternalCubeDSL.g:20583:3: ( ruleOpAnd )
+            // InternalCubeDSL.g:20941:2: ( ( ruleOpAnd ) )
+            // InternalCubeDSL.g:20942:3: ( ruleOpAnd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:20584:3: ( ruleOpAnd )
-            // InternalCubeDSL.g:20585:4: ruleOpAnd
+            // InternalCubeDSL.g:20943:3: ( ruleOpAnd )
+            // InternalCubeDSL.g:20944:4: ruleOpAnd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
@@ -67503,17 +68655,17 @@
 
 
     // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
-    // InternalCubeDSL.g:20596:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
+    // InternalCubeDSL.g:20955:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
     public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20600:1: ( ( ruleXEqualityExpression ) )
-            // InternalCubeDSL.g:20601:2: ( ruleXEqualityExpression )
+            // InternalCubeDSL.g:20959:1: ( ( ruleXEqualityExpression ) )
+            // InternalCubeDSL.g:20960:2: ( ruleXEqualityExpression )
             {
-            // InternalCubeDSL.g:20601:2: ( ruleXEqualityExpression )
-            // InternalCubeDSL.g:20602:3: ruleXEqualityExpression
+            // InternalCubeDSL.g:20960:2: ( ruleXEqualityExpression )
+            // InternalCubeDSL.g:20961:3: ruleXEqualityExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
@@ -67548,23 +68700,23 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
-    // InternalCubeDSL.g:20611:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
+    // InternalCubeDSL.g:20970:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
     public final void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20615:1: ( ( ( ruleOpEquality ) ) )
-            // InternalCubeDSL.g:20616:2: ( ( ruleOpEquality ) )
+            // InternalCubeDSL.g:20974:1: ( ( ( ruleOpEquality ) ) )
+            // InternalCubeDSL.g:20975:2: ( ( ruleOpEquality ) )
             {
-            // InternalCubeDSL.g:20616:2: ( ( ruleOpEquality ) )
-            // InternalCubeDSL.g:20617:3: ( ruleOpEquality )
+            // InternalCubeDSL.g:20975:2: ( ( ruleOpEquality ) )
+            // InternalCubeDSL.g:20976:3: ( ruleOpEquality )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:20618:3: ( ruleOpEquality )
-            // InternalCubeDSL.g:20619:4: ruleOpEquality
+            // InternalCubeDSL.g:20977:3: ( ruleOpEquality )
+            // InternalCubeDSL.g:20978:4: ruleOpEquality
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
@@ -67605,17 +68757,17 @@
 
 
     // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
-    // InternalCubeDSL.g:20630:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
+    // InternalCubeDSL.g:20989:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
     public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20634:1: ( ( ruleXRelationalExpression ) )
-            // InternalCubeDSL.g:20635:2: ( ruleXRelationalExpression )
+            // InternalCubeDSL.g:20993:1: ( ( ruleXRelationalExpression ) )
+            // InternalCubeDSL.g:20994:2: ( ruleXRelationalExpression )
             {
-            // InternalCubeDSL.g:20635:2: ( ruleXRelationalExpression )
-            // InternalCubeDSL.g:20636:3: ruleXRelationalExpression
+            // InternalCubeDSL.g:20994:2: ( ruleXRelationalExpression )
+            // InternalCubeDSL.g:20995:3: ruleXRelationalExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
@@ -67650,17 +68802,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
-    // InternalCubeDSL.g:20645:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:21004:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20649:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:20650:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:21008:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:21009:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:20650:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:20651:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:21009:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:21010:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
@@ -67695,23 +68847,23 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
-    // InternalCubeDSL.g:20660:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
+    // InternalCubeDSL.g:21019:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
     public final void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20664:1: ( ( ( ruleOpCompare ) ) )
-            // InternalCubeDSL.g:20665:2: ( ( ruleOpCompare ) )
+            // InternalCubeDSL.g:21023:1: ( ( ( ruleOpCompare ) ) )
+            // InternalCubeDSL.g:21024:2: ( ( ruleOpCompare ) )
             {
-            // InternalCubeDSL.g:20665:2: ( ( ruleOpCompare ) )
-            // InternalCubeDSL.g:20666:3: ( ruleOpCompare )
+            // InternalCubeDSL.g:21024:2: ( ( ruleOpCompare ) )
+            // InternalCubeDSL.g:21025:3: ( ruleOpCompare )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:20667:3: ( ruleOpCompare )
-            // InternalCubeDSL.g:20668:4: ruleOpCompare
+            // InternalCubeDSL.g:21026:3: ( ruleOpCompare )
+            // InternalCubeDSL.g:21027:4: ruleOpCompare
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
@@ -67752,17 +68904,17 @@
 
 
     // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
-    // InternalCubeDSL.g:20679:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
+    // InternalCubeDSL.g:21038:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
     public final void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20683:1: ( ( ruleXOtherOperatorExpression ) )
-            // InternalCubeDSL.g:20684:2: ( ruleXOtherOperatorExpression )
+            // InternalCubeDSL.g:21042:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalCubeDSL.g:21043:2: ( ruleXOtherOperatorExpression )
             {
-            // InternalCubeDSL.g:20684:2: ( ruleXOtherOperatorExpression )
-            // InternalCubeDSL.g:20685:3: ruleXOtherOperatorExpression
+            // InternalCubeDSL.g:21043:2: ( ruleXOtherOperatorExpression )
+            // InternalCubeDSL.g:21044:3: ruleXOtherOperatorExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
@@ -67797,23 +68949,23 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
-    // InternalCubeDSL.g:20694:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
+    // InternalCubeDSL.g:21053:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
     public final void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20698:1: ( ( ( ruleOpOther ) ) )
-            // InternalCubeDSL.g:20699:2: ( ( ruleOpOther ) )
+            // InternalCubeDSL.g:21057:1: ( ( ( ruleOpOther ) ) )
+            // InternalCubeDSL.g:21058:2: ( ( ruleOpOther ) )
             {
-            // InternalCubeDSL.g:20699:2: ( ( ruleOpOther ) )
-            // InternalCubeDSL.g:20700:3: ( ruleOpOther )
+            // InternalCubeDSL.g:21058:2: ( ( ruleOpOther ) )
+            // InternalCubeDSL.g:21059:3: ( ruleOpOther )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:20701:3: ( ruleOpOther )
-            // InternalCubeDSL.g:20702:4: ruleOpOther
+            // InternalCubeDSL.g:21060:3: ( ruleOpOther )
+            // InternalCubeDSL.g:21061:4: ruleOpOther
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
@@ -67854,17 +69006,17 @@
 
 
     // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
-    // InternalCubeDSL.g:20713:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
+    // InternalCubeDSL.g:21072:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
     public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20717:1: ( ( ruleXAdditiveExpression ) )
-            // InternalCubeDSL.g:20718:2: ( ruleXAdditiveExpression )
+            // InternalCubeDSL.g:21076:1: ( ( ruleXAdditiveExpression ) )
+            // InternalCubeDSL.g:21077:2: ( ruleXAdditiveExpression )
             {
-            // InternalCubeDSL.g:20718:2: ( ruleXAdditiveExpression )
-            // InternalCubeDSL.g:20719:3: ruleXAdditiveExpression
+            // InternalCubeDSL.g:21077:2: ( ruleXAdditiveExpression )
+            // InternalCubeDSL.g:21078:3: ruleXAdditiveExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
@@ -67899,23 +69051,23 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
-    // InternalCubeDSL.g:20728:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
+    // InternalCubeDSL.g:21087:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
     public final void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20732:1: ( ( ( ruleOpAdd ) ) )
-            // InternalCubeDSL.g:20733:2: ( ( ruleOpAdd ) )
+            // InternalCubeDSL.g:21091:1: ( ( ( ruleOpAdd ) ) )
+            // InternalCubeDSL.g:21092:2: ( ( ruleOpAdd ) )
             {
-            // InternalCubeDSL.g:20733:2: ( ( ruleOpAdd ) )
-            // InternalCubeDSL.g:20734:3: ( ruleOpAdd )
+            // InternalCubeDSL.g:21092:2: ( ( ruleOpAdd ) )
+            // InternalCubeDSL.g:21093:3: ( ruleOpAdd )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:20735:3: ( ruleOpAdd )
-            // InternalCubeDSL.g:20736:4: ruleOpAdd
+            // InternalCubeDSL.g:21094:3: ( ruleOpAdd )
+            // InternalCubeDSL.g:21095:4: ruleOpAdd
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
@@ -67956,17 +69108,17 @@
 
 
     // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
-    // InternalCubeDSL.g:20747:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
+    // InternalCubeDSL.g:21106:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
     public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20751:1: ( ( ruleXMultiplicativeExpression ) )
-            // InternalCubeDSL.g:20752:2: ( ruleXMultiplicativeExpression )
+            // InternalCubeDSL.g:21110:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalCubeDSL.g:21111:2: ( ruleXMultiplicativeExpression )
             {
-            // InternalCubeDSL.g:20752:2: ( ruleXMultiplicativeExpression )
-            // InternalCubeDSL.g:20753:3: ruleXMultiplicativeExpression
+            // InternalCubeDSL.g:21111:2: ( ruleXMultiplicativeExpression )
+            // InternalCubeDSL.g:21112:3: ruleXMultiplicativeExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
@@ -68001,23 +69153,23 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
-    // InternalCubeDSL.g:20762:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
+    // InternalCubeDSL.g:21121:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
     public final void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20766:1: ( ( ( ruleOpMulti ) ) )
-            // InternalCubeDSL.g:20767:2: ( ( ruleOpMulti ) )
+            // InternalCubeDSL.g:21125:1: ( ( ( ruleOpMulti ) ) )
+            // InternalCubeDSL.g:21126:2: ( ( ruleOpMulti ) )
             {
-            // InternalCubeDSL.g:20767:2: ( ( ruleOpMulti ) )
-            // InternalCubeDSL.g:20768:3: ( ruleOpMulti )
+            // InternalCubeDSL.g:21126:2: ( ( ruleOpMulti ) )
+            // InternalCubeDSL.g:21127:3: ( ruleOpMulti )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
             }
-            // InternalCubeDSL.g:20769:3: ( ruleOpMulti )
-            // InternalCubeDSL.g:20770:4: ruleOpMulti
+            // InternalCubeDSL.g:21128:3: ( ruleOpMulti )
+            // InternalCubeDSL.g:21129:4: ruleOpMulti
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
@@ -68058,17 +69210,17 @@
 
 
     // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
-    // InternalCubeDSL.g:20781:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
+    // InternalCubeDSL.g:21140:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
     public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20785:1: ( ( ruleXUnaryOperation ) )
-            // InternalCubeDSL.g:20786:2: ( ruleXUnaryOperation )
+            // InternalCubeDSL.g:21144:1: ( ( ruleXUnaryOperation ) )
+            // InternalCubeDSL.g:21145:2: ( ruleXUnaryOperation )
             {
-            // InternalCubeDSL.g:20786:2: ( ruleXUnaryOperation )
-            // InternalCubeDSL.g:20787:3: ruleXUnaryOperation
+            // InternalCubeDSL.g:21145:2: ( ruleXUnaryOperation )
+            // InternalCubeDSL.g:21146:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
@@ -68103,23 +69255,23 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
-    // InternalCubeDSL.g:20796:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
+    // InternalCubeDSL.g:21155:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
     public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20800:1: ( ( ( ruleOpUnary ) ) )
-            // InternalCubeDSL.g:20801:2: ( ( ruleOpUnary ) )
+            // InternalCubeDSL.g:21159:1: ( ( ( ruleOpUnary ) ) )
+            // InternalCubeDSL.g:21160:2: ( ( ruleOpUnary ) )
             {
-            // InternalCubeDSL.g:20801:2: ( ( ruleOpUnary ) )
-            // InternalCubeDSL.g:20802:3: ( ruleOpUnary )
+            // InternalCubeDSL.g:21160:2: ( ( ruleOpUnary ) )
+            // InternalCubeDSL.g:21161:3: ( ruleOpUnary )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
             }
-            // InternalCubeDSL.g:20803:3: ( ruleOpUnary )
-            // InternalCubeDSL.g:20804:4: ruleOpUnary
+            // InternalCubeDSL.g:21162:3: ( ruleOpUnary )
+            // InternalCubeDSL.g:21163:4: ruleOpUnary
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
@@ -68160,17 +69312,17 @@
 
 
     // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
-    // InternalCubeDSL.g:20815:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
+    // InternalCubeDSL.g:21174:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
     public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20819:1: ( ( ruleXUnaryOperation ) )
-            // InternalCubeDSL.g:20820:2: ( ruleXUnaryOperation )
+            // InternalCubeDSL.g:21178:1: ( ( ruleXUnaryOperation ) )
+            // InternalCubeDSL.g:21179:2: ( ruleXUnaryOperation )
             {
-            // InternalCubeDSL.g:20820:2: ( ruleXUnaryOperation )
-            // InternalCubeDSL.g:20821:3: ruleXUnaryOperation
+            // InternalCubeDSL.g:21179:2: ( ruleXUnaryOperation )
+            // InternalCubeDSL.g:21180:3: ruleXUnaryOperation
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
@@ -68205,17 +69357,17 @@
 
 
     // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
-    // InternalCubeDSL.g:20830:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:21189:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20834:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:20835:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:21193:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:21194:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:20835:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:20836:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:21194:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:21195:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
@@ -68250,23 +69402,23 @@
 
 
     // $ANTLR start "rule__XPostfixOperation__FeatureAssignment_1_0_1"
-    // InternalCubeDSL.g:20845:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
+    // InternalCubeDSL.g:21204:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
     public final void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20849:1: ( ( ( ruleOpPostfix ) ) )
-            // InternalCubeDSL.g:20850:2: ( ( ruleOpPostfix ) )
+            // InternalCubeDSL.g:21208:1: ( ( ( ruleOpPostfix ) ) )
+            // InternalCubeDSL.g:21209:2: ( ( ruleOpPostfix ) )
             {
-            // InternalCubeDSL.g:20850:2: ( ( ruleOpPostfix ) )
-            // InternalCubeDSL.g:20851:3: ( ruleOpPostfix )
+            // InternalCubeDSL.g:21209:2: ( ( ruleOpPostfix ) )
+            // InternalCubeDSL.g:21210:3: ( ruleOpPostfix )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
             }
-            // InternalCubeDSL.g:20852:3: ( ruleOpPostfix )
-            // InternalCubeDSL.g:20853:4: ruleOpPostfix
+            // InternalCubeDSL.g:21211:3: ( ruleOpPostfix )
+            // InternalCubeDSL.g:21212:4: ruleOpPostfix
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
@@ -68307,28 +69459,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
-    // InternalCubeDSL.g:20864:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
+    // InternalCubeDSL.g:21223:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20868:1: ( ( ( '::' ) ) )
-            // InternalCubeDSL.g:20869:2: ( ( '::' ) )
+            // InternalCubeDSL.g:21227:1: ( ( ( '::' ) ) )
+            // InternalCubeDSL.g:21228:2: ( ( '::' ) )
             {
-            // InternalCubeDSL.g:20869:2: ( ( '::' ) )
-            // InternalCubeDSL.g:20870:3: ( '::' )
+            // InternalCubeDSL.g:21228:2: ( ( '::' ) )
+            // InternalCubeDSL.g:21229:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            // InternalCubeDSL.g:20871:3: ( '::' )
-            // InternalCubeDSL.g:20872:4: '::'
+            // InternalCubeDSL.g:21230:3: ( '::' )
+            // InternalCubeDSL.g:21231:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
-            match(input,127,FOLLOW_2); if (state.failed) return ;
+            match(input,130,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
             }
@@ -68360,23 +69512,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
-    // InternalCubeDSL.g:20883:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
+    // InternalCubeDSL.g:21242:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20887:1: ( ( ( ruleFeatureCallID ) ) )
-            // InternalCubeDSL.g:20888:2: ( ( ruleFeatureCallID ) )
+            // InternalCubeDSL.g:21246:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalCubeDSL.g:21247:2: ( ( ruleFeatureCallID ) )
             {
-            // InternalCubeDSL.g:20888:2: ( ( ruleFeatureCallID ) )
-            // InternalCubeDSL.g:20889:3: ( ruleFeatureCallID )
+            // InternalCubeDSL.g:21247:2: ( ( ruleFeatureCallID ) )
+            // InternalCubeDSL.g:21248:3: ( ruleFeatureCallID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
             }
-            // InternalCubeDSL.g:20890:3: ( ruleFeatureCallID )
-            // InternalCubeDSL.g:20891:4: ruleFeatureCallID
+            // InternalCubeDSL.g:21249:3: ( ruleFeatureCallID )
+            // InternalCubeDSL.g:21250:4: ruleFeatureCallID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
@@ -68417,17 +69569,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
-    // InternalCubeDSL.g:20902:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
+    // InternalCubeDSL.g:21261:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
     public final void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20906:1: ( ( ruleXAssignment ) )
-            // InternalCubeDSL.g:20907:2: ( ruleXAssignment )
+            // InternalCubeDSL.g:21265:1: ( ( ruleXAssignment ) )
+            // InternalCubeDSL.g:21266:2: ( ruleXAssignment )
             {
-            // InternalCubeDSL.g:20907:2: ( ruleXAssignment )
-            // InternalCubeDSL.g:20908:3: ruleXAssignment
+            // InternalCubeDSL.g:21266:2: ( ruleXAssignment )
+            // InternalCubeDSL.g:21267:3: ruleXAssignment
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
@@ -68462,28 +69614,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
-    // InternalCubeDSL.g:20917:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
+    // InternalCubeDSL.g:21276:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
     public final void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20921:1: ( ( ( '?.' ) ) )
-            // InternalCubeDSL.g:20922:2: ( ( '?.' ) )
+            // InternalCubeDSL.g:21280:1: ( ( ( '?.' ) ) )
+            // InternalCubeDSL.g:21281:2: ( ( '?.' ) )
             {
-            // InternalCubeDSL.g:20922:2: ( ( '?.' ) )
-            // InternalCubeDSL.g:20923:3: ( '?.' )
+            // InternalCubeDSL.g:21281:2: ( ( '?.' ) )
+            // InternalCubeDSL.g:21282:3: ( '?.' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            // InternalCubeDSL.g:20924:3: ( '?.' )
-            // InternalCubeDSL.g:20925:4: '?.'
+            // InternalCubeDSL.g:21283:3: ( '?.' )
+            // InternalCubeDSL.g:21284:4: '?.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
-            match(input,128,FOLLOW_2); if (state.failed) return ;
+            match(input,131,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
             }
@@ -68515,28 +69667,28 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
-    // InternalCubeDSL.g:20936:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
+    // InternalCubeDSL.g:21295:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20940:1: ( ( ( '::' ) ) )
-            // InternalCubeDSL.g:20941:2: ( ( '::' ) )
+            // InternalCubeDSL.g:21299:1: ( ( ( '::' ) ) )
+            // InternalCubeDSL.g:21300:2: ( ( '::' ) )
             {
-            // InternalCubeDSL.g:20941:2: ( ( '::' ) )
-            // InternalCubeDSL.g:20942:3: ( '::' )
+            // InternalCubeDSL.g:21300:2: ( ( '::' ) )
+            // InternalCubeDSL.g:21301:3: ( '::' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            // InternalCubeDSL.g:20943:3: ( '::' )
-            // InternalCubeDSL.g:20944:4: '::'
+            // InternalCubeDSL.g:21302:3: ( '::' )
+            // InternalCubeDSL.g:21303:4: '::'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
-            match(input,127,FOLLOW_2); if (state.failed) return ;
+            match(input,130,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
             }
@@ -68568,17 +69720,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
-    // InternalCubeDSL.g:20955:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:21314:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20959:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:20960:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:21318:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:21319:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:20960:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:20961:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:21319:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:21320:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
@@ -68613,17 +69765,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
-    // InternalCubeDSL.g:20970:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:21329:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20974:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:20975:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:21333:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:21334:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:20975:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:20976:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:21334:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:21335:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
@@ -68658,23 +69810,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
-    // InternalCubeDSL.g:20985:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalCubeDSL.g:21344:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:20989:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalCubeDSL.g:20990:2: ( ( ruleIdOrSuper ) )
+            // InternalCubeDSL.g:21348:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalCubeDSL.g:21349:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalCubeDSL.g:20990:2: ( ( ruleIdOrSuper ) )
-            // InternalCubeDSL.g:20991:3: ( ruleIdOrSuper )
+            // InternalCubeDSL.g:21349:2: ( ( ruleIdOrSuper ) )
+            // InternalCubeDSL.g:21350:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
             }
-            // InternalCubeDSL.g:20992:3: ( ruleIdOrSuper )
-            // InternalCubeDSL.g:20993:4: ruleIdOrSuper
+            // InternalCubeDSL.g:21351:3: ( ruleIdOrSuper )
+            // InternalCubeDSL.g:21352:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
@@ -68715,23 +69867,23 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
-    // InternalCubeDSL.g:21004:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
+    // InternalCubeDSL.g:21363:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
     public final void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21008:1: ( ( ( '(' ) ) )
-            // InternalCubeDSL.g:21009:2: ( ( '(' ) )
+            // InternalCubeDSL.g:21367:1: ( ( ( '(' ) ) )
+            // InternalCubeDSL.g:21368:2: ( ( '(' ) )
             {
-            // InternalCubeDSL.g:21009:2: ( ( '(' ) )
-            // InternalCubeDSL.g:21010:3: ( '(' )
+            // InternalCubeDSL.g:21368:2: ( ( '(' ) )
+            // InternalCubeDSL.g:21369:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
             }
-            // InternalCubeDSL.g:21011:3: ( '(' )
-            // InternalCubeDSL.g:21012:4: '('
+            // InternalCubeDSL.g:21370:3: ( '(' )
+            // InternalCubeDSL.g:21371:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
@@ -68768,17 +69920,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
-    // InternalCubeDSL.g:21023:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalCubeDSL.g:21382:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21027:1: ( ( ruleXShortClosure ) )
-            // InternalCubeDSL.g:21028:2: ( ruleXShortClosure )
+            // InternalCubeDSL.g:21386:1: ( ( ruleXShortClosure ) )
+            // InternalCubeDSL.g:21387:2: ( ruleXShortClosure )
             {
-            // InternalCubeDSL.g:21028:2: ( ruleXShortClosure )
-            // InternalCubeDSL.g:21029:3: ruleXShortClosure
+            // InternalCubeDSL.g:21387:2: ( ruleXShortClosure )
+            // InternalCubeDSL.g:21388:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
@@ -68813,17 +69965,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
-    // InternalCubeDSL.g:21038:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21397:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21042:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21043:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21401:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21402:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21043:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21044:3: ruleXExpression
+            // InternalCubeDSL.g:21402:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21403:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
@@ -68858,17 +70010,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
-    // InternalCubeDSL.g:21053:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21412:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21057:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21058:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21416:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21417:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21058:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21059:3: ruleXExpression
+            // InternalCubeDSL.g:21417:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21418:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
@@ -68903,17 +70055,17 @@
 
 
     // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
-    // InternalCubeDSL.g:21068:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
+    // InternalCubeDSL.g:21427:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
     public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21072:1: ( ( ruleXClosure ) )
-            // InternalCubeDSL.g:21073:2: ( ruleXClosure )
+            // InternalCubeDSL.g:21431:1: ( ( ruleXClosure ) )
+            // InternalCubeDSL.g:21432:2: ( ruleXClosure )
             {
-            // InternalCubeDSL.g:21073:2: ( ruleXClosure )
-            // InternalCubeDSL.g:21074:3: ruleXClosure
+            // InternalCubeDSL.g:21432:2: ( ruleXClosure )
+            // InternalCubeDSL.g:21433:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
@@ -68948,17 +70100,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
-    // InternalCubeDSL.g:21083:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21442:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21087:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21088:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21446:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21447:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21088:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21089:3: ruleXExpression
+            // InternalCubeDSL.g:21447:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21448:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -68993,17 +70145,17 @@
 
 
     // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
-    // InternalCubeDSL.g:21098:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21457:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21102:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21103:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21461:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21462:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21103:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21104:3: ruleXExpression
+            // InternalCubeDSL.g:21462:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21463:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -69038,17 +70190,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
-    // InternalCubeDSL.g:21113:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21472:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21117:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21118:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21476:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21477:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21118:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21119:3: ruleXExpression
+            // InternalCubeDSL.g:21477:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21478:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
@@ -69083,17 +70235,17 @@
 
 
     // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
-    // InternalCubeDSL.g:21128:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21487:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21132:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21133:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21491:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21492:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21133:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21134:3: ruleXExpression
+            // InternalCubeDSL.g:21492:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21493:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
@@ -69128,17 +70280,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
-    // InternalCubeDSL.g:21143:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalCubeDSL.g:21502:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21147:1: ( ( ruleJvmFormalParameter ) )
-            // InternalCubeDSL.g:21148:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21506:1: ( ( ruleJvmFormalParameter ) )
+            // InternalCubeDSL.g:21507:2: ( ruleJvmFormalParameter )
             {
-            // InternalCubeDSL.g:21148:2: ( ruleJvmFormalParameter )
-            // InternalCubeDSL.g:21149:3: ruleJvmFormalParameter
+            // InternalCubeDSL.g:21507:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21508:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
@@ -69173,17 +70325,17 @@
 
 
     // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
-    // InternalCubeDSL.g:21158:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalCubeDSL.g:21517:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21162:1: ( ( ruleJvmFormalParameter ) )
-            // InternalCubeDSL.g:21163:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21521:1: ( ( ruleJvmFormalParameter ) )
+            // InternalCubeDSL.g:21522:2: ( ruleJvmFormalParameter )
             {
-            // InternalCubeDSL.g:21163:2: ( ruleJvmFormalParameter )
-            // InternalCubeDSL.g:21164:3: ruleJvmFormalParameter
+            // InternalCubeDSL.g:21522:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21523:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
@@ -69218,28 +70370,28 @@
 
 
     // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
-    // InternalCubeDSL.g:21173:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
+    // InternalCubeDSL.g:21532:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
     public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21177:1: ( ( ( '|' ) ) )
-            // InternalCubeDSL.g:21178:2: ( ( '|' ) )
+            // InternalCubeDSL.g:21536:1: ( ( ( '|' ) ) )
+            // InternalCubeDSL.g:21537:2: ( ( '|' ) )
             {
-            // InternalCubeDSL.g:21178:2: ( ( '|' ) )
-            // InternalCubeDSL.g:21179:3: ( '|' )
+            // InternalCubeDSL.g:21537:2: ( ( '|' ) )
+            // InternalCubeDSL.g:21538:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            // InternalCubeDSL.g:21180:3: ( '|' )
-            // InternalCubeDSL.g:21181:4: '|'
+            // InternalCubeDSL.g:21539:3: ( '|' )
+            // InternalCubeDSL.g:21540:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
-            match(input,129,FOLLOW_2); if (state.failed) return ;
+            match(input,132,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
             }
@@ -69271,17 +70423,17 @@
 
 
     // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
-    // InternalCubeDSL.g:21192:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
+    // InternalCubeDSL.g:21551:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
     public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21196:1: ( ( ruleXExpressionInClosure ) )
-            // InternalCubeDSL.g:21197:2: ( ruleXExpressionInClosure )
+            // InternalCubeDSL.g:21555:1: ( ( ruleXExpressionInClosure ) )
+            // InternalCubeDSL.g:21556:2: ( ruleXExpressionInClosure )
             {
-            // InternalCubeDSL.g:21197:2: ( ruleXExpressionInClosure )
-            // InternalCubeDSL.g:21198:3: ruleXExpressionInClosure
+            // InternalCubeDSL.g:21556:2: ( ruleXExpressionInClosure )
+            // InternalCubeDSL.g:21557:3: ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
@@ -69316,17 +70468,17 @@
 
 
     // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
-    // InternalCubeDSL.g:21207:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalCubeDSL.g:21566:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21211:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalCubeDSL.g:21212:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalCubeDSL.g:21570:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalCubeDSL.g:21571:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalCubeDSL.g:21212:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalCubeDSL.g:21213:3: ruleXExpressionOrVarDeclaration
+            // InternalCubeDSL.g:21571:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalCubeDSL.g:21572:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
@@ -69361,17 +70513,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
-    // InternalCubeDSL.g:21222:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
+    // InternalCubeDSL.g:21581:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21226:1: ( ( ruleJvmFormalParameter ) )
-            // InternalCubeDSL.g:21227:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21585:1: ( ( ruleJvmFormalParameter ) )
+            // InternalCubeDSL.g:21586:2: ( ruleJvmFormalParameter )
             {
-            // InternalCubeDSL.g:21227:2: ( ruleJvmFormalParameter )
-            // InternalCubeDSL.g:21228:3: ruleJvmFormalParameter
+            // InternalCubeDSL.g:21586:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21587:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
@@ -69406,17 +70558,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
-    // InternalCubeDSL.g:21237:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
+    // InternalCubeDSL.g:21596:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21241:1: ( ( ruleJvmFormalParameter ) )
-            // InternalCubeDSL.g:21242:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21600:1: ( ( ruleJvmFormalParameter ) )
+            // InternalCubeDSL.g:21601:2: ( ruleJvmFormalParameter )
             {
-            // InternalCubeDSL.g:21242:2: ( ruleJvmFormalParameter )
-            // InternalCubeDSL.g:21243:3: ruleJvmFormalParameter
+            // InternalCubeDSL.g:21601:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21602:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
@@ -69451,28 +70603,28 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
-    // InternalCubeDSL.g:21252:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
+    // InternalCubeDSL.g:21611:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
     public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21256:1: ( ( ( '|' ) ) )
-            // InternalCubeDSL.g:21257:2: ( ( '|' ) )
+            // InternalCubeDSL.g:21615:1: ( ( ( '|' ) ) )
+            // InternalCubeDSL.g:21616:2: ( ( '|' ) )
             {
-            // InternalCubeDSL.g:21257:2: ( ( '|' ) )
-            // InternalCubeDSL.g:21258:3: ( '|' )
+            // InternalCubeDSL.g:21616:2: ( ( '|' ) )
+            // InternalCubeDSL.g:21617:3: ( '|' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            // InternalCubeDSL.g:21259:3: ( '|' )
-            // InternalCubeDSL.g:21260:4: '|'
+            // InternalCubeDSL.g:21618:3: ( '|' )
+            // InternalCubeDSL.g:21619:4: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
-            match(input,129,FOLLOW_2); if (state.failed) return ;
+            match(input,132,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
             }
@@ -69504,17 +70656,17 @@
 
 
     // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
-    // InternalCubeDSL.g:21271:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21630:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21275:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21276:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21634:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21635:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21276:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21277:3: ruleXExpression
+            // InternalCubeDSL.g:21635:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21636:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
@@ -69549,17 +70701,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__IfAssignment_3"
-    // InternalCubeDSL.g:21286:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21645:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21290:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21291:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21649:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21650:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21291:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21292:3: ruleXExpression
+            // InternalCubeDSL.g:21650:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21651:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
@@ -69594,17 +70746,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
-    // InternalCubeDSL.g:21301:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21660:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21305:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21306:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21664:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21665:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21306:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21307:3: ruleXExpression
+            // InternalCubeDSL.g:21665:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21666:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
@@ -69639,17 +70791,17 @@
 
 
     // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
-    // InternalCubeDSL.g:21316:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21675:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
     public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21320:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21321:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21679:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21680:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21321:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21322:3: ruleXExpression
+            // InternalCubeDSL.g:21680:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21681:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
@@ -69684,17 +70836,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
-    // InternalCubeDSL.g:21331:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
+    // InternalCubeDSL.g:21690:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
     public final void rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21335:1: ( ( ruleJvmFormalParameter ) )
-            // InternalCubeDSL.g:21336:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21694:1: ( ( ruleJvmFormalParameter ) )
+            // InternalCubeDSL.g:21695:2: ( ruleJvmFormalParameter )
             {
-            // InternalCubeDSL.g:21336:2: ( ruleJvmFormalParameter )
-            // InternalCubeDSL.g:21337:3: ruleJvmFormalParameter
+            // InternalCubeDSL.g:21695:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21696:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
@@ -69729,17 +70881,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
-    // InternalCubeDSL.g:21346:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21705:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21350:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21351:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21709:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21710:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21351:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21352:3: ruleXExpression
+            // InternalCubeDSL.g:21710:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21711:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
@@ -69774,17 +70926,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
-    // InternalCubeDSL.g:21361:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    // InternalCubeDSL.g:21720:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
     public final void rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21365:1: ( ( ruleJvmFormalParameter ) )
-            // InternalCubeDSL.g:21366:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21724:1: ( ( ruleJvmFormalParameter ) )
+            // InternalCubeDSL.g:21725:2: ( ruleJvmFormalParameter )
             {
-            // InternalCubeDSL.g:21366:2: ( ruleJvmFormalParameter )
-            // InternalCubeDSL.g:21367:3: ruleJvmFormalParameter
+            // InternalCubeDSL.g:21725:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21726:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
@@ -69819,17 +70971,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
-    // InternalCubeDSL.g:21376:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21735:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21380:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21381:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21739:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21740:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21381:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21382:3: ruleXExpression
+            // InternalCubeDSL.g:21740:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21741:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
@@ -69864,17 +71016,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
-    // InternalCubeDSL.g:21391:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
+    // InternalCubeDSL.g:21750:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
     public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21395:1: ( ( ruleXCasePart ) )
-            // InternalCubeDSL.g:21396:2: ( ruleXCasePart )
+            // InternalCubeDSL.g:21754:1: ( ( ruleXCasePart ) )
+            // InternalCubeDSL.g:21755:2: ( ruleXCasePart )
             {
-            // InternalCubeDSL.g:21396:2: ( ruleXCasePart )
-            // InternalCubeDSL.g:21397:3: ruleXCasePart
+            // InternalCubeDSL.g:21755:2: ( ruleXCasePart )
+            // InternalCubeDSL.g:21756:3: ruleXCasePart
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
@@ -69909,17 +71061,17 @@
 
 
     // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
-    // InternalCubeDSL.g:21406:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21765:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
     public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21410:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21411:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21769:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21770:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21411:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21412:3: ruleXExpression
+            // InternalCubeDSL.g:21770:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21771:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
@@ -69954,17 +71106,17 @@
 
 
     // $ANTLR start "rule__XCasePart__TypeGuardAssignment_1"
-    // InternalCubeDSL.g:21421:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:21780:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21425:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:21426:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:21784:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:21785:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:21426:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:21427:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:21785:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:21786:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
@@ -69999,17 +71151,17 @@
 
 
     // $ANTLR start "rule__XCasePart__CaseAssignment_2_1"
-    // InternalCubeDSL.g:21436:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21795:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21440:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21441:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21799:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21800:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21441:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21442:3: ruleXExpression
+            // InternalCubeDSL.g:21800:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21801:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
@@ -70044,17 +71196,17 @@
 
 
     // $ANTLR start "rule__XCasePart__ThenAssignment_3_0_1"
-    // InternalCubeDSL.g:21451:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21810:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
     public final void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21455:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21456:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21814:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21815:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21456:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21457:3: ruleXExpression
+            // InternalCubeDSL.g:21815:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21816:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
@@ -70089,23 +71241,23 @@
 
 
     // $ANTLR start "rule__XCasePart__FallThroughAssignment_3_1"
-    // InternalCubeDSL.g:21466:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
+    // InternalCubeDSL.g:21825:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
     public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21470:1: ( ( ( ',' ) ) )
-            // InternalCubeDSL.g:21471:2: ( ( ',' ) )
+            // InternalCubeDSL.g:21829:1: ( ( ( ',' ) ) )
+            // InternalCubeDSL.g:21830:2: ( ( ',' ) )
             {
-            // InternalCubeDSL.g:21471:2: ( ( ',' ) )
-            // InternalCubeDSL.g:21472:3: ( ',' )
+            // InternalCubeDSL.g:21830:2: ( ( ',' ) )
+            // InternalCubeDSL.g:21831:3: ( ',' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
             }
-            // InternalCubeDSL.g:21473:3: ( ',' )
-            // InternalCubeDSL.g:21474:4: ','
+            // InternalCubeDSL.g:21832:3: ( ',' )
+            // InternalCubeDSL.g:21833:4: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
@@ -70142,17 +71294,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
-    // InternalCubeDSL.g:21485:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
+    // InternalCubeDSL.g:21844:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
     public final void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21489:1: ( ( ruleJvmFormalParameter ) )
-            // InternalCubeDSL.g:21490:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21848:1: ( ( ruleJvmFormalParameter ) )
+            // InternalCubeDSL.g:21849:2: ( ruleJvmFormalParameter )
             {
-            // InternalCubeDSL.g:21490:2: ( ruleJvmFormalParameter )
-            // InternalCubeDSL.g:21491:3: ruleJvmFormalParameter
+            // InternalCubeDSL.g:21849:2: ( ruleJvmFormalParameter )
+            // InternalCubeDSL.g:21850:3: ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
@@ -70187,17 +71339,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_1"
-    // InternalCubeDSL.g:21500:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21859:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21504:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21505:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21863:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21864:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21505:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21506:3: ruleXExpression
+            // InternalCubeDSL.g:21864:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21865:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
@@ -70232,17 +71384,17 @@
 
 
     // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_3"
-    // InternalCubeDSL.g:21515:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21874:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21519:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21520:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21878:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21879:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21520:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21521:3: ruleXExpression
+            // InternalCubeDSL.g:21879:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21880:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
@@ -70277,17 +71429,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
-    // InternalCubeDSL.g:21530:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalCubeDSL.g:21889:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21534:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalCubeDSL.g:21535:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalCubeDSL.g:21893:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalCubeDSL.g:21894:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalCubeDSL.g:21535:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalCubeDSL.g:21536:3: ruleXExpressionOrVarDeclaration
+            // InternalCubeDSL.g:21894:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalCubeDSL.g:21895:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
@@ -70322,17 +71474,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
-    // InternalCubeDSL.g:21545:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalCubeDSL.g:21904:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21549:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalCubeDSL.g:21550:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalCubeDSL.g:21908:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalCubeDSL.g:21909:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalCubeDSL.g:21550:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalCubeDSL.g:21551:3: ruleXExpressionOrVarDeclaration
+            // InternalCubeDSL.g:21909:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalCubeDSL.g:21910:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
@@ -70367,17 +71519,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__ExpressionAssignment_5"
-    // InternalCubeDSL.g:21560:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21919:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21564:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21565:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21923:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21924:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21565:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21566:3: ruleXExpression
+            // InternalCubeDSL.g:21924:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21925:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
@@ -70412,17 +71564,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
-    // InternalCubeDSL.g:21575:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21934:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21579:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21580:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21938:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21939:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21580:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21581:3: ruleXExpression
+            // InternalCubeDSL.g:21939:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21940:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
@@ -70457,17 +71609,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
-    // InternalCubeDSL.g:21590:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21949:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21594:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21595:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21953:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21954:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21595:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21596:3: ruleXExpression
+            // InternalCubeDSL.g:21954:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21955:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
@@ -70502,17 +71654,17 @@
 
 
     // $ANTLR start "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
-    // InternalCubeDSL.g:21605:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21964:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
     public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21609:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21610:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21968:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21969:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21610:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21611:3: ruleXExpression
+            // InternalCubeDSL.g:21969:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21970:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
@@ -70547,17 +71699,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
-    // InternalCubeDSL.g:21620:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21979:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21624:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21625:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21983:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21984:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21625:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21626:3: ruleXExpression
+            // InternalCubeDSL.g:21984:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21985:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
@@ -70592,17 +71744,17 @@
 
 
     // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
-    // InternalCubeDSL.g:21635:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:21994:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21639:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21640:2: ( ruleXExpression )
+            // InternalCubeDSL.g:21998:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:21999:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21640:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21641:3: ruleXExpression
+            // InternalCubeDSL.g:21999:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22000:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
@@ -70637,17 +71789,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
-    // InternalCubeDSL.g:21650:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22009:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21654:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21655:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22013:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22014:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21655:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21656:3: ruleXExpression
+            // InternalCubeDSL.g:22014:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22015:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
@@ -70682,17 +71834,17 @@
 
 
     // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
-    // InternalCubeDSL.g:21665:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22024:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
     public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21669:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21670:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22028:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22029:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21670:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21671:3: ruleXExpression
+            // InternalCubeDSL.g:22029:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22030:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
@@ -70727,17 +71879,17 @@
 
 
     // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
-    // InternalCubeDSL.g:21680:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    // InternalCubeDSL.g:22039:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
     public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21684:1: ( ( ruleXExpressionOrVarDeclaration ) )
-            // InternalCubeDSL.g:21685:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalCubeDSL.g:22043:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalCubeDSL.g:22044:2: ( ruleXExpressionOrVarDeclaration )
             {
-            // InternalCubeDSL.g:21685:2: ( ruleXExpressionOrVarDeclaration )
-            // InternalCubeDSL.g:21686:3: ruleXExpressionOrVarDeclaration
+            // InternalCubeDSL.g:22044:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalCubeDSL.g:22045:3: ruleXExpressionOrVarDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
@@ -70772,28 +71924,28 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
-    // InternalCubeDSL.g:21695:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
+    // InternalCubeDSL.g:22054:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
     public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21699:1: ( ( ( 'var' ) ) )
-            // InternalCubeDSL.g:21700:2: ( ( 'var' ) )
+            // InternalCubeDSL.g:22058:1: ( ( ( 'var' ) ) )
+            // InternalCubeDSL.g:22059:2: ( ( 'var' ) )
             {
-            // InternalCubeDSL.g:21700:2: ( ( 'var' ) )
-            // InternalCubeDSL.g:21701:3: ( 'var' )
+            // InternalCubeDSL.g:22059:2: ( ( 'var' ) )
+            // InternalCubeDSL.g:22060:3: ( 'var' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            // InternalCubeDSL.g:21702:3: ( 'var' )
-            // InternalCubeDSL.g:21703:4: 'var'
+            // InternalCubeDSL.g:22061:3: ( 'var' )
+            // InternalCubeDSL.g:22062:4: 'var'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
-            match(input,130,FOLLOW_2); if (state.failed) return ;
+            match(input,133,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
             }
@@ -70825,17 +71977,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
-    // InternalCubeDSL.g:21714:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22073:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21718:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:21719:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22077:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22078:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:21719:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:21720:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22078:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22079:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
@@ -70870,17 +72022,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
-    // InternalCubeDSL.g:21729:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
+    // InternalCubeDSL.g:22088:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21733:1: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:21734:2: ( ruleValidID )
+            // InternalCubeDSL.g:22092:1: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:22093:2: ( ruleValidID )
             {
-            // InternalCubeDSL.g:21734:2: ( ruleValidID )
-            // InternalCubeDSL.g:21735:3: ruleValidID
+            // InternalCubeDSL.g:22093:2: ( ruleValidID )
+            // InternalCubeDSL.g:22094:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
@@ -70915,17 +72067,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
-    // InternalCubeDSL.g:21744:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
+    // InternalCubeDSL.g:22103:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
     public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21748:1: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:21749:2: ( ruleValidID )
+            // InternalCubeDSL.g:22107:1: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:22108:2: ( ruleValidID )
             {
-            // InternalCubeDSL.g:21749:2: ( ruleValidID )
-            // InternalCubeDSL.g:21750:3: ruleValidID
+            // InternalCubeDSL.g:22108:2: ( ruleValidID )
+            // InternalCubeDSL.g:22109:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
@@ -70960,17 +72112,17 @@
 
 
     // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
-    // InternalCubeDSL.g:21759:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22118:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
     public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21763:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21764:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22122:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22123:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21764:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21765:3: ruleXExpression
+            // InternalCubeDSL.g:22123:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22124:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
@@ -71005,17 +72157,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalCubeDSL.g:21774:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22133:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21778:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:21779:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22137:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22138:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:21779:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:21780:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22138:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22139:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -71050,17 +72202,17 @@
 
 
     // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
-    // InternalCubeDSL.g:21789:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalCubeDSL.g:22148:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21793:1: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:21794:2: ( ruleValidID )
+            // InternalCubeDSL.g:22152:1: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:22153:2: ( ruleValidID )
             {
-            // InternalCubeDSL.g:21794:2: ( ruleValidID )
-            // InternalCubeDSL.g:21795:3: ruleValidID
+            // InternalCubeDSL.g:22153:2: ( ruleValidID )
+            // InternalCubeDSL.g:22154:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -71095,17 +72247,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
-    // InternalCubeDSL.g:21804:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22163:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
     public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21808:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:21809:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22167:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22168:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:21809:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:21810:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22168:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22169:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
@@ -71140,17 +72292,17 @@
 
 
     // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
-    // InternalCubeDSL.g:21819:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    // InternalCubeDSL.g:22178:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
     public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21823:1: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:21824:2: ( ruleValidID )
+            // InternalCubeDSL.g:22182:1: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:22183:2: ( ruleValidID )
             {
-            // InternalCubeDSL.g:21824:2: ( ruleValidID )
-            // InternalCubeDSL.g:21825:3: ruleValidID
+            // InternalCubeDSL.g:22183:2: ( ruleValidID )
+            // InternalCubeDSL.g:22184:3: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
@@ -71185,17 +72337,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
-    // InternalCubeDSL.g:21834:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:22193:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21838:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:21839:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22197:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:22198:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:21839:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:21840:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:22198:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22199:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -71230,17 +72382,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
-    // InternalCubeDSL.g:21849:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:22208:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21853:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:21854:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22212:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:22213:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:21854:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:21855:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:22213:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22214:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -71275,23 +72427,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
-    // InternalCubeDSL.g:21864:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
+    // InternalCubeDSL.g:22223:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
     public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21868:1: ( ( ( ruleIdOrSuper ) ) )
-            // InternalCubeDSL.g:21869:2: ( ( ruleIdOrSuper ) )
+            // InternalCubeDSL.g:22227:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalCubeDSL.g:22228:2: ( ( ruleIdOrSuper ) )
             {
-            // InternalCubeDSL.g:21869:2: ( ( ruleIdOrSuper ) )
-            // InternalCubeDSL.g:21870:3: ( ruleIdOrSuper )
+            // InternalCubeDSL.g:22228:2: ( ( ruleIdOrSuper ) )
+            // InternalCubeDSL.g:22229:3: ( ruleIdOrSuper )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
             }
-            // InternalCubeDSL.g:21871:3: ( ruleIdOrSuper )
-            // InternalCubeDSL.g:21872:4: ruleIdOrSuper
+            // InternalCubeDSL.g:22230:3: ( ruleIdOrSuper )
+            // InternalCubeDSL.g:22231:4: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
@@ -71332,23 +72484,23 @@
 
 
     // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
-    // InternalCubeDSL.g:21883:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
+    // InternalCubeDSL.g:22242:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
     public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21887:1: ( ( ( '(' ) ) )
-            // InternalCubeDSL.g:21888:2: ( ( '(' ) )
+            // InternalCubeDSL.g:22246:1: ( ( ( '(' ) ) )
+            // InternalCubeDSL.g:22247:2: ( ( '(' ) )
             {
-            // InternalCubeDSL.g:21888:2: ( ( '(' ) )
-            // InternalCubeDSL.g:21889:3: ( '(' )
+            // InternalCubeDSL.g:22247:2: ( ( '(' ) )
+            // InternalCubeDSL.g:22248:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
             }
-            // InternalCubeDSL.g:21890:3: ( '(' )
-            // InternalCubeDSL.g:21891:4: '('
+            // InternalCubeDSL.g:22249:3: ( '(' )
+            // InternalCubeDSL.g:22250:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
@@ -71385,17 +72537,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
-    // InternalCubeDSL.g:21902:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
+    // InternalCubeDSL.g:22261:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21906:1: ( ( ruleXShortClosure ) )
-            // InternalCubeDSL.g:21907:2: ( ruleXShortClosure )
+            // InternalCubeDSL.g:22265:1: ( ( ruleXShortClosure ) )
+            // InternalCubeDSL.g:22266:2: ( ruleXShortClosure )
             {
-            // InternalCubeDSL.g:21907:2: ( ruleXShortClosure )
-            // InternalCubeDSL.g:21908:3: ruleXShortClosure
+            // InternalCubeDSL.g:22266:2: ( ruleXShortClosure )
+            // InternalCubeDSL.g:22267:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
@@ -71430,17 +72582,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
-    // InternalCubeDSL.g:21917:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22276:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21921:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21922:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22280:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22281:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21922:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21923:3: ruleXExpression
+            // InternalCubeDSL.g:22281:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22282:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
@@ -71475,17 +72627,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
-    // InternalCubeDSL.g:21932:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22291:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21936:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:21937:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22295:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22296:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:21937:2: ( ruleXExpression )
-            // InternalCubeDSL.g:21938:3: ruleXExpression
+            // InternalCubeDSL.g:22296:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22297:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
@@ -71520,17 +72672,17 @@
 
 
     // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
-    // InternalCubeDSL.g:21947:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
+    // InternalCubeDSL.g:22306:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
     public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21951:1: ( ( ruleXClosure ) )
-            // InternalCubeDSL.g:21952:2: ( ruleXClosure )
+            // InternalCubeDSL.g:22310:1: ( ( ruleXClosure ) )
+            // InternalCubeDSL.g:22311:2: ( ruleXClosure )
             {
-            // InternalCubeDSL.g:21952:2: ( ruleXClosure )
-            // InternalCubeDSL.g:21953:3: ruleXClosure
+            // InternalCubeDSL.g:22311:2: ( ruleXClosure )
+            // InternalCubeDSL.g:22312:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
@@ -71565,23 +72717,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
-    // InternalCubeDSL.g:21962:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalCubeDSL.g:22321:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21966:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalCubeDSL.g:21967:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:22325:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalCubeDSL.g:22326:2: ( ( ruleQualifiedName ) )
             {
-            // InternalCubeDSL.g:21967:2: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:21968:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:22326:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:22327:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
             }
-            // InternalCubeDSL.g:21969:3: ( ruleQualifiedName )
-            // InternalCubeDSL.g:21970:4: ruleQualifiedName
+            // InternalCubeDSL.g:22328:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:22329:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
@@ -71622,17 +72774,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
-    // InternalCubeDSL.g:21981:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:22340:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:21985:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:21986:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22344:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:22345:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:21986:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:21987:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:22345:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22346:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
@@ -71667,17 +72819,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
-    // InternalCubeDSL.g:21996:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:22355:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22000:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:22001:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22359:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:22360:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:22001:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:22002:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:22360:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22361:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
@@ -71712,23 +72864,23 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
-    // InternalCubeDSL.g:22011:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
+    // InternalCubeDSL.g:22370:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
     public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22015:1: ( ( ( '(' ) ) )
-            // InternalCubeDSL.g:22016:2: ( ( '(' ) )
+            // InternalCubeDSL.g:22374:1: ( ( ( '(' ) ) )
+            // InternalCubeDSL.g:22375:2: ( ( '(' ) )
             {
-            // InternalCubeDSL.g:22016:2: ( ( '(' ) )
-            // InternalCubeDSL.g:22017:3: ( '(' )
+            // InternalCubeDSL.g:22375:2: ( ( '(' ) )
+            // InternalCubeDSL.g:22376:3: ( '(' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
             }
-            // InternalCubeDSL.g:22018:3: ( '(' )
-            // InternalCubeDSL.g:22019:4: '('
+            // InternalCubeDSL.g:22377:3: ( '(' )
+            // InternalCubeDSL.g:22378:4: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
@@ -71765,17 +72917,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
-    // InternalCubeDSL.g:22030:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
+    // InternalCubeDSL.g:22389:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22034:1: ( ( ruleXShortClosure ) )
-            // InternalCubeDSL.g:22035:2: ( ruleXShortClosure )
+            // InternalCubeDSL.g:22393:1: ( ( ruleXShortClosure ) )
+            // InternalCubeDSL.g:22394:2: ( ruleXShortClosure )
             {
-            // InternalCubeDSL.g:22035:2: ( ruleXShortClosure )
-            // InternalCubeDSL.g:22036:3: ruleXShortClosure
+            // InternalCubeDSL.g:22394:2: ( ruleXShortClosure )
+            // InternalCubeDSL.g:22395:3: ruleXShortClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
@@ -71810,17 +72962,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
-    // InternalCubeDSL.g:22045:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22404:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22049:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22050:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22408:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22409:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22050:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22051:3: ruleXExpression
+            // InternalCubeDSL.g:22409:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22410:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
@@ -71855,17 +73007,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
-    // InternalCubeDSL.g:22060:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22419:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22064:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22065:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22423:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22424:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22065:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22066:3: ruleXExpression
+            // InternalCubeDSL.g:22424:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22425:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
@@ -71900,17 +73052,17 @@
 
 
     // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
-    // InternalCubeDSL.g:22075:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
+    // InternalCubeDSL.g:22434:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
     public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22079:1: ( ( ruleXClosure ) )
-            // InternalCubeDSL.g:22080:2: ( ruleXClosure )
+            // InternalCubeDSL.g:22438:1: ( ( ruleXClosure ) )
+            // InternalCubeDSL.g:22439:2: ( ruleXClosure )
             {
-            // InternalCubeDSL.g:22080:2: ( ruleXClosure )
-            // InternalCubeDSL.g:22081:3: ruleXClosure
+            // InternalCubeDSL.g:22439:2: ( ruleXClosure )
+            // InternalCubeDSL.g:22440:3: ruleXClosure
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
@@ -71945,28 +73097,28 @@
 
 
     // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
-    // InternalCubeDSL.g:22090:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
+    // InternalCubeDSL.g:22449:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
     public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22094:1: ( ( ( 'true' ) ) )
-            // InternalCubeDSL.g:22095:2: ( ( 'true' ) )
+            // InternalCubeDSL.g:22453:1: ( ( ( 'true' ) ) )
+            // InternalCubeDSL.g:22454:2: ( ( 'true' ) )
             {
-            // InternalCubeDSL.g:22095:2: ( ( 'true' ) )
-            // InternalCubeDSL.g:22096:3: ( 'true' )
+            // InternalCubeDSL.g:22454:2: ( ( 'true' ) )
+            // InternalCubeDSL.g:22455:3: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            // InternalCubeDSL.g:22097:3: ( 'true' )
-            // InternalCubeDSL.g:22098:4: 'true'
+            // InternalCubeDSL.g:22456:3: ( 'true' )
+            // InternalCubeDSL.g:22457:4: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
-            match(input,131,FOLLOW_2); if (state.failed) return ;
+            match(input,134,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
             }
@@ -71998,17 +73150,17 @@
 
 
     // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
-    // InternalCubeDSL.g:22109:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
+    // InternalCubeDSL.g:22468:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
     public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22113:1: ( ( ruleNumber ) )
-            // InternalCubeDSL.g:22114:2: ( ruleNumber )
+            // InternalCubeDSL.g:22472:1: ( ( ruleNumber ) )
+            // InternalCubeDSL.g:22473:2: ( ruleNumber )
             {
-            // InternalCubeDSL.g:22114:2: ( ruleNumber )
-            // InternalCubeDSL.g:22115:3: ruleNumber
+            // InternalCubeDSL.g:22473:2: ( ruleNumber )
+            // InternalCubeDSL.g:22474:3: ruleNumber
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
@@ -72043,17 +73195,17 @@
 
 
     // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
-    // InternalCubeDSL.g:22124:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
+    // InternalCubeDSL.g:22483:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
     public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22128:1: ( ( RULE_STRING ) )
-            // InternalCubeDSL.g:22129:2: ( RULE_STRING )
+            // InternalCubeDSL.g:22487:1: ( ( RULE_STRING ) )
+            // InternalCubeDSL.g:22488:2: ( RULE_STRING )
             {
-            // InternalCubeDSL.g:22129:2: ( RULE_STRING )
-            // InternalCubeDSL.g:22130:3: RULE_STRING
+            // InternalCubeDSL.g:22488:2: ( RULE_STRING )
+            // InternalCubeDSL.g:22489:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
@@ -72084,23 +73236,23 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
-    // InternalCubeDSL.g:22139:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
+    // InternalCubeDSL.g:22498:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
     public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22143:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalCubeDSL.g:22144:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:22502:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalCubeDSL.g:22503:2: ( ( ruleQualifiedName ) )
             {
-            // InternalCubeDSL.g:22144:2: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:22145:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:22503:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:22504:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
             }
-            // InternalCubeDSL.g:22146:3: ( ruleQualifiedName )
-            // InternalCubeDSL.g:22147:4: ruleQualifiedName
+            // InternalCubeDSL.g:22505:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:22506:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
@@ -72141,17 +73293,17 @@
 
 
     // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
-    // InternalCubeDSL.g:22158:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
+    // InternalCubeDSL.g:22517:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
     public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22162:1: ( ( ruleArrayBrackets ) )
-            // InternalCubeDSL.g:22163:2: ( ruleArrayBrackets )
+            // InternalCubeDSL.g:22521:1: ( ( ruleArrayBrackets ) )
+            // InternalCubeDSL.g:22522:2: ( ruleArrayBrackets )
             {
-            // InternalCubeDSL.g:22163:2: ( ruleArrayBrackets )
-            // InternalCubeDSL.g:22164:3: ruleArrayBrackets
+            // InternalCubeDSL.g:22522:2: ( ruleArrayBrackets )
+            // InternalCubeDSL.g:22523:3: ruleArrayBrackets
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
@@ -72186,17 +73338,17 @@
 
 
     // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
-    // InternalCubeDSL.g:22173:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22532:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22177:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22178:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22536:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22537:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22178:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22179:3: ruleXExpression
+            // InternalCubeDSL.g:22537:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22538:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -72231,17 +73383,17 @@
 
 
     // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
-    // InternalCubeDSL.g:22188:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22547:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22192:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22193:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22551:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22552:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22193:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22194:3: ruleXExpression
+            // InternalCubeDSL.g:22552:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22553:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -72276,17 +73428,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
-    // InternalCubeDSL.g:22203:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22562:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22207:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22208:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22566:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22567:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22208:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22209:3: ruleXExpression
+            // InternalCubeDSL.g:22567:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22568:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
@@ -72321,17 +73473,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
-    // InternalCubeDSL.g:22218:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
+    // InternalCubeDSL.g:22577:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
     public final void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22222:1: ( ( ruleXCatchClause ) )
-            // InternalCubeDSL.g:22223:2: ( ruleXCatchClause )
+            // InternalCubeDSL.g:22581:1: ( ( ruleXCatchClause ) )
+            // InternalCubeDSL.g:22582:2: ( ruleXCatchClause )
             {
-            // InternalCubeDSL.g:22223:2: ( ruleXCatchClause )
-            // InternalCubeDSL.g:22224:3: ruleXCatchClause
+            // InternalCubeDSL.g:22582:2: ( ruleXCatchClause )
+            // InternalCubeDSL.g:22583:3: ruleXCatchClause
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
@@ -72366,17 +73518,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
-    // InternalCubeDSL.g:22233:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22592:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22237:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22238:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22596:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22597:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22238:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22239:3: ruleXExpression
+            // InternalCubeDSL.g:22597:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22598:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
@@ -72411,17 +73563,17 @@
 
 
     // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
-    // InternalCubeDSL.g:22248:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22607:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
     public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22252:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22253:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22611:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22612:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22253:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22254:3: ruleXExpression
+            // InternalCubeDSL.g:22612:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22613:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
@@ -72456,17 +73608,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ParamAssignment_1"
-    // InternalCubeDSL.g:22263:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22622:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22267:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22268:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22626:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22627:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22268:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22269:3: ruleXExpression
+            // InternalCubeDSL.g:22627:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22628:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
@@ -72501,17 +73653,17 @@
 
 
     // $ANTLR start "rule__XSynchronizedExpression__ExpressionAssignment_3"
-    // InternalCubeDSL.g:22278:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22637:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
     public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22282:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22283:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22641:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22642:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22283:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22284:3: ruleXExpression
+            // InternalCubeDSL.g:22642:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22643:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
@@ -72546,17 +73698,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
-    // InternalCubeDSL.g:22293:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
+    // InternalCubeDSL.g:22652:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
     public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22297:1: ( ( ruleFullJvmFormalParameter ) )
-            // InternalCubeDSL.g:22298:2: ( ruleFullJvmFormalParameter )
+            // InternalCubeDSL.g:22656:1: ( ( ruleFullJvmFormalParameter ) )
+            // InternalCubeDSL.g:22657:2: ( ruleFullJvmFormalParameter )
             {
-            // InternalCubeDSL.g:22298:2: ( ruleFullJvmFormalParameter )
-            // InternalCubeDSL.g:22299:3: ruleFullJvmFormalParameter
+            // InternalCubeDSL.g:22657:2: ( ruleFullJvmFormalParameter )
+            // InternalCubeDSL.g:22658:3: ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
@@ -72591,17 +73743,17 @@
 
 
     // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
-    // InternalCubeDSL.g:22308:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
+    // InternalCubeDSL.g:22667:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
     public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22312:1: ( ( ruleXExpression ) )
-            // InternalCubeDSL.g:22313:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22671:1: ( ( ruleXExpression ) )
+            // InternalCubeDSL.g:22672:2: ( ruleXExpression )
             {
-            // InternalCubeDSL.g:22313:2: ( ruleXExpression )
-            // InternalCubeDSL.g:22314:3: ruleXExpression
+            // InternalCubeDSL.g:22672:2: ( ruleXExpression )
+            // InternalCubeDSL.g:22673:3: ruleXExpression
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
@@ -72636,17 +73788,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
-    // InternalCubeDSL.g:22323:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22682:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22327:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:22328:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22686:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22687:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:22328:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:22329:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22687:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22688:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
@@ -72681,17 +73833,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
-    // InternalCubeDSL.g:22338:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22697:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22342:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:22343:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22701:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22702:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:22343:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:22344:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22702:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22703:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
@@ -72726,17 +73878,17 @@
 
 
     // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
-    // InternalCubeDSL.g:22353:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22712:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
     public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22357:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:22358:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22716:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22717:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:22358:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:22359:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22717:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22718:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
@@ -72771,23 +73923,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
-    // InternalCubeDSL.g:22368:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
+    // InternalCubeDSL.g:22727:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22372:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalCubeDSL.g:22373:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:22731:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalCubeDSL.g:22732:2: ( ( ruleQualifiedName ) )
             {
-            // InternalCubeDSL.g:22373:2: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:22374:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:22732:2: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:22733:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
             }
-            // InternalCubeDSL.g:22375:3: ( ruleQualifiedName )
-            // InternalCubeDSL.g:22376:4: ruleQualifiedName
+            // InternalCubeDSL.g:22734:3: ( ruleQualifiedName )
+            // InternalCubeDSL.g:22735:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
@@ -72828,17 +73980,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
-    // InternalCubeDSL.g:22387:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:22746:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22391:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:22392:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22750:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:22751:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:22392:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:22393:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:22751:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22752:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
@@ -72873,17 +74025,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
-    // InternalCubeDSL.g:22402:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:22761:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22406:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:22407:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22765:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:22766:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:22407:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:22408:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:22766:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22767:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
@@ -72918,23 +74070,23 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
-    // InternalCubeDSL.g:22417:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
+    // InternalCubeDSL.g:22776:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
     public final void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22421:1: ( ( ( ruleValidID ) ) )
-            // InternalCubeDSL.g:22422:2: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:22780:1: ( ( ( ruleValidID ) ) )
+            // InternalCubeDSL.g:22781:2: ( ( ruleValidID ) )
             {
-            // InternalCubeDSL.g:22422:2: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:22423:3: ( ruleValidID )
+            // InternalCubeDSL.g:22781:2: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:22782:3: ( ruleValidID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
             }
-            // InternalCubeDSL.g:22424:3: ( ruleValidID )
-            // InternalCubeDSL.g:22425:4: ruleValidID
+            // InternalCubeDSL.g:22783:3: ( ruleValidID )
+            // InternalCubeDSL.g:22784:4: ruleValidID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
@@ -72975,17 +74127,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
-    // InternalCubeDSL.g:22436:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:22795:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22440:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:22441:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22799:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:22800:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:22441:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:22442:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:22800:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22801:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
@@ -73020,17 +74172,17 @@
 
 
     // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
-    // InternalCubeDSL.g:22451:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    // InternalCubeDSL.g:22810:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
     public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22455:1: ( ( ruleJvmArgumentTypeReference ) )
-            // InternalCubeDSL.g:22456:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22814:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalCubeDSL.g:22815:2: ( ruleJvmArgumentTypeReference )
             {
-            // InternalCubeDSL.g:22456:2: ( ruleJvmArgumentTypeReference )
-            // InternalCubeDSL.g:22457:3: ruleJvmArgumentTypeReference
+            // InternalCubeDSL.g:22815:2: ( ruleJvmArgumentTypeReference )
+            // InternalCubeDSL.g:22816:3: ruleJvmArgumentTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
@@ -73065,17 +74217,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
-    // InternalCubeDSL.g:22466:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
+    // InternalCubeDSL.g:22825:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22470:1: ( ( ruleJvmUpperBound ) )
-            // InternalCubeDSL.g:22471:2: ( ruleJvmUpperBound )
+            // InternalCubeDSL.g:22829:1: ( ( ruleJvmUpperBound ) )
+            // InternalCubeDSL.g:22830:2: ( ruleJvmUpperBound )
             {
-            // InternalCubeDSL.g:22471:2: ( ruleJvmUpperBound )
-            // InternalCubeDSL.g:22472:3: ruleJvmUpperBound
+            // InternalCubeDSL.g:22830:2: ( ruleJvmUpperBound )
+            // InternalCubeDSL.g:22831:3: ruleJvmUpperBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
@@ -73110,17 +74262,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
-    // InternalCubeDSL.g:22481:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
+    // InternalCubeDSL.g:22840:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22485:1: ( ( ruleJvmUpperBoundAnded ) )
-            // InternalCubeDSL.g:22486:2: ( ruleJvmUpperBoundAnded )
+            // InternalCubeDSL.g:22844:1: ( ( ruleJvmUpperBoundAnded ) )
+            // InternalCubeDSL.g:22845:2: ( ruleJvmUpperBoundAnded )
             {
-            // InternalCubeDSL.g:22486:2: ( ruleJvmUpperBoundAnded )
-            // InternalCubeDSL.g:22487:3: ruleJvmUpperBoundAnded
+            // InternalCubeDSL.g:22845:2: ( ruleJvmUpperBoundAnded )
+            // InternalCubeDSL.g:22846:3: ruleJvmUpperBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
@@ -73155,17 +74307,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
-    // InternalCubeDSL.g:22496:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
+    // InternalCubeDSL.g:22855:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22500:1: ( ( ruleJvmLowerBound ) )
-            // InternalCubeDSL.g:22501:2: ( ruleJvmLowerBound )
+            // InternalCubeDSL.g:22859:1: ( ( ruleJvmLowerBound ) )
+            // InternalCubeDSL.g:22860:2: ( ruleJvmLowerBound )
             {
-            // InternalCubeDSL.g:22501:2: ( ruleJvmLowerBound )
-            // InternalCubeDSL.g:22502:3: ruleJvmLowerBound
+            // InternalCubeDSL.g:22860:2: ( ruleJvmLowerBound )
+            // InternalCubeDSL.g:22861:3: ruleJvmLowerBound
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
@@ -73200,17 +74352,17 @@
 
 
     // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
-    // InternalCubeDSL.g:22511:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
+    // InternalCubeDSL.g:22870:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
     public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22515:1: ( ( ruleJvmLowerBoundAnded ) )
-            // InternalCubeDSL.g:22516:2: ( ruleJvmLowerBoundAnded )
+            // InternalCubeDSL.g:22874:1: ( ( ruleJvmLowerBoundAnded ) )
+            // InternalCubeDSL.g:22875:2: ( ruleJvmLowerBoundAnded )
             {
-            // InternalCubeDSL.g:22516:2: ( ruleJvmLowerBoundAnded )
-            // InternalCubeDSL.g:22517:3: ruleJvmLowerBoundAnded
+            // InternalCubeDSL.g:22875:2: ( ruleJvmLowerBoundAnded )
+            // InternalCubeDSL.g:22876:3: ruleJvmLowerBoundAnded
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
@@ -73245,17 +74397,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
-    // InternalCubeDSL.g:22526:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22885:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22530:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:22531:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22889:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22890:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:22531:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:22532:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22890:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22891:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -73290,17 +74442,17 @@
 
 
     // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
-    // InternalCubeDSL.g:22541:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22900:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22545:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:22546:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22904:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22905:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:22546:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:22547:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22905:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22906:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -73335,17 +74487,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
-    // InternalCubeDSL.g:22556:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22915:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22560:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:22561:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22919:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22920:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:22561:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:22562:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22920:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22921:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -73380,17 +74532,17 @@
 
 
     // $ANTLR start "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
-    // InternalCubeDSL.g:22571:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    // InternalCubeDSL.g:22930:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
     public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22575:1: ( ( ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:22576:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22934:1: ( ( ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:22935:2: ( ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:22576:2: ( ruleJvmTypeReference )
-            // InternalCubeDSL.g:22577:3: ruleJvmTypeReference
+            // InternalCubeDSL.g:22935:2: ( ruleJvmTypeReference )
+            // InternalCubeDSL.g:22936:3: ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
@@ -73425,17 +74577,17 @@
 
 
     // $ANTLR start "rule__XImportSection__ImportDeclarationsAssignment"
-    // InternalCubeDSL.g:22586:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
+    // InternalCubeDSL.g:22945:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
     public final void rule__XImportSection__ImportDeclarationsAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalCubeDSL.g:22590:1: ( ( ruleXImportDeclaration ) )
-            // InternalCubeDSL.g:22591:2: ( ruleXImportDeclaration )
+            // InternalCubeDSL.g:22949:1: ( ( ruleXImportDeclaration ) )
+            // InternalCubeDSL.g:22950:2: ( ruleXImportDeclaration )
             {
-            // InternalCubeDSL.g:22591:2: ( ruleXImportDeclaration )
-            // InternalCubeDSL.g:22592:3: ruleXImportDeclaration
+            // InternalCubeDSL.g:22950:2: ( ruleXImportDeclaration )
+            // InternalCubeDSL.g:22951:3: ruleXImportDeclaration
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); 
@@ -73470,17 +74622,17 @@
 
     // $ANTLR start synpred7_InternalCubeDSL
     public final void synpred7_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2620:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
-        // InternalCubeDSL.g:2620:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalCubeDSL.g:2622:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
+        // InternalCubeDSL.g:2622:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
         {
-        // InternalCubeDSL.g:2620:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
-        // InternalCubeDSL.g:2621:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalCubeDSL.g:2622:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalCubeDSL.g:2623:3: ( rule__XAnnotation__Group_3_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
         }
-        // InternalCubeDSL.g:2622:3: ( rule__XAnnotation__Group_3_1_0__0 )
-        // InternalCubeDSL.g:2622:4: rule__XAnnotation__Group_3_1_0__0
+        // InternalCubeDSL.g:2624:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalCubeDSL.g:2624:4: rule__XAnnotation__Group_3_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotation__Group_3_1_0__0();
@@ -73500,17 +74652,17 @@
 
     // $ANTLR start synpred8_InternalCubeDSL
     public final void synpred8_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2641:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
-        // InternalCubeDSL.g:2641:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalCubeDSL.g:2643:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
+        // InternalCubeDSL.g:2643:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
         {
-        // InternalCubeDSL.g:2641:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
-        // InternalCubeDSL.g:2642:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalCubeDSL.g:2643:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalCubeDSL.g:2644:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
         }
-        // InternalCubeDSL.g:2643:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
-        // InternalCubeDSL.g:2643:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+        // InternalCubeDSL.g:2645:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalCubeDSL.g:2645:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValueOrCommaList__Group_0__0();
@@ -73530,17 +74682,17 @@
 
     // $ANTLR start synpred9_InternalCubeDSL
     public final void synpred9_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2662:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
-        // InternalCubeDSL.g:2662:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalCubeDSL.g:2664:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
+        // InternalCubeDSL.g:2664:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
         {
-        // InternalCubeDSL.g:2662:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
-        // InternalCubeDSL.g:2663:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalCubeDSL.g:2664:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalCubeDSL.g:2665:3: ( rule__XAnnotationElementValue__Group_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
         }
-        // InternalCubeDSL.g:2664:3: ( rule__XAnnotationElementValue__Group_0__0 )
-        // InternalCubeDSL.g:2664:4: rule__XAnnotationElementValue__Group_0__0
+        // InternalCubeDSL.g:2666:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalCubeDSL.g:2666:4: rule__XAnnotationElementValue__Group_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XAnnotationElementValue__Group_0__0();
@@ -73560,17 +74712,17 @@
 
     // $ANTLR start synpred34_InternalCubeDSL
     public final void synpred34_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2947:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
-        // InternalCubeDSL.g:2947:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalCubeDSL.g:2949:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
+        // InternalCubeDSL.g:2949:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
         {
-        // InternalCubeDSL.g:2947:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
-        // InternalCubeDSL.g:2948:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalCubeDSL.g:2949:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalCubeDSL.g:2950:3: ( rule__OpOther__Group_6_1_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
         }
-        // InternalCubeDSL.g:2949:3: ( rule__OpOther__Group_6_1_0__0 )
-        // InternalCubeDSL.g:2949:4: rule__OpOther__Group_6_1_0__0
+        // InternalCubeDSL.g:2951:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalCubeDSL.g:2951:4: rule__OpOther__Group_6_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__OpOther__Group_6_1_0__0();
@@ -73590,11 +74742,11 @@
 
     // $ANTLR start synpred35_InternalCubeDSL
     public final void synpred35_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2953:2: ( ( '<' ) )
-        // InternalCubeDSL.g:2953:2: ( '<' )
+        // InternalCubeDSL.g:2955:2: ( ( '<' ) )
+        // InternalCubeDSL.g:2955:2: ( '<' )
         {
-        // InternalCubeDSL.g:2953:2: ( '<' )
-        // InternalCubeDSL.g:2954:3: '<'
+        // InternalCubeDSL.g:2955:2: ( '<' )
+        // InternalCubeDSL.g:2956:3: '<'
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
@@ -73610,17 +74762,17 @@
 
     // $ANTLR start synpred48_InternalCubeDSL
     public final void synpred48_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3166:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
-        // InternalCubeDSL.g:3166:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalCubeDSL.g:3168:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
+        // InternalCubeDSL.g:3168:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
         {
-        // InternalCubeDSL.g:3166:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
-        // InternalCubeDSL.g:3167:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalCubeDSL.g:3168:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalCubeDSL.g:3169:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
         }
-        // InternalCubeDSL.g:3168:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
-        // InternalCubeDSL.g:3168:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+        // InternalCubeDSL.g:3170:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalCubeDSL.g:3170:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
@@ -73640,17 +74792,17 @@
 
     // $ANTLR start synpred56_InternalCubeDSL
     public final void synpred56_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3229:2: ( ( ( ruleXForLoopExpression ) ) )
-        // InternalCubeDSL.g:3229:2: ( ( ruleXForLoopExpression ) )
+        // InternalCubeDSL.g:3231:2: ( ( ( ruleXForLoopExpression ) ) )
+        // InternalCubeDSL.g:3231:2: ( ( ruleXForLoopExpression ) )
         {
-        // InternalCubeDSL.g:3229:2: ( ( ruleXForLoopExpression ) )
-        // InternalCubeDSL.g:3230:3: ( ruleXForLoopExpression )
+        // InternalCubeDSL.g:3231:2: ( ( ruleXForLoopExpression ) )
+        // InternalCubeDSL.g:3232:3: ( ruleXForLoopExpression )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
         }
-        // InternalCubeDSL.g:3231:3: ( ruleXForLoopExpression )
-        // InternalCubeDSL.g:3231:4: ruleXForLoopExpression
+        // InternalCubeDSL.g:3233:3: ( ruleXForLoopExpression )
+        // InternalCubeDSL.g:3233:4: ruleXForLoopExpression
         {
         pushFollow(FOLLOW_2);
         ruleXForLoopExpression();
@@ -73670,11 +74822,11 @@
 
     // $ANTLR start synpred57_InternalCubeDSL
     public final void synpred57_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3235:2: ( ( ruleXBasicForLoopExpression ) )
-        // InternalCubeDSL.g:3235:2: ( ruleXBasicForLoopExpression )
+        // InternalCubeDSL.g:3237:2: ( ( ruleXBasicForLoopExpression ) )
+        // InternalCubeDSL.g:3237:2: ( ruleXBasicForLoopExpression )
         {
-        // InternalCubeDSL.g:3235:2: ( ruleXBasicForLoopExpression )
-        // InternalCubeDSL.g:3236:3: ruleXBasicForLoopExpression
+        // InternalCubeDSL.g:3237:2: ( ruleXBasicForLoopExpression )
+        // InternalCubeDSL.g:3238:3: ruleXBasicForLoopExpression
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
@@ -73694,17 +74846,17 @@
 
     // $ANTLR start synpred70_InternalCubeDSL
     public final void synpred70_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3358:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
-        // InternalCubeDSL.g:3358:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalCubeDSL.g:3360:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
+        // InternalCubeDSL.g:3360:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
         {
-        // InternalCubeDSL.g:3358:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
-        // InternalCubeDSL.g:3359:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalCubeDSL.g:3360:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalCubeDSL.g:3361:3: ( rule__XSwitchExpression__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
         }
-        // InternalCubeDSL.g:3360:3: ( rule__XSwitchExpression__Group_2_0__0 )
-        // InternalCubeDSL.g:3360:4: rule__XSwitchExpression__Group_2_0__0
+        // InternalCubeDSL.g:3362:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalCubeDSL.g:3362:4: rule__XSwitchExpression__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_0__0();
@@ -73724,17 +74876,17 @@
 
     // $ANTLR start synpred74_InternalCubeDSL
     public final void synpred74_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3442:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
-        // InternalCubeDSL.g:3442:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalCubeDSL.g:3444:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
+        // InternalCubeDSL.g:3444:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
         {
-        // InternalCubeDSL.g:3442:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
-        // InternalCubeDSL.g:3443:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalCubeDSL.g:3444:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalCubeDSL.g:3445:3: ( rule__XVariableDeclaration__Group_2_0__0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
         }
-        // InternalCubeDSL.g:3444:3: ( rule__XVariableDeclaration__Group_2_0__0 )
-        // InternalCubeDSL.g:3444:4: rule__XVariableDeclaration__Group_2_0__0
+        // InternalCubeDSL.g:3446:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalCubeDSL.g:3446:4: rule__XVariableDeclaration__Group_2_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XVariableDeclaration__Group_2_0__0();
@@ -73754,17 +74906,17 @@
 
     // $ANTLR start synpred75_InternalCubeDSL
     public final void synpred75_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3463:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
-        // InternalCubeDSL.g:3463:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalCubeDSL.g:3465:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
+        // InternalCubeDSL.g:3465:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
         {
-        // InternalCubeDSL.g:3463:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
-        // InternalCubeDSL.g:3464:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalCubeDSL.g:3465:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalCubeDSL.g:3466:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
         }
-        // InternalCubeDSL.g:3465:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
-        // InternalCubeDSL.g:3465:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+        // InternalCubeDSL.g:3467:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalCubeDSL.g:3467:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
@@ -73784,17 +74936,17 @@
 
     // $ANTLR start synpred81_InternalCubeDSL
     public final void synpred81_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3544:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
-        // InternalCubeDSL.g:3544:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalCubeDSL.g:3546:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
+        // InternalCubeDSL.g:3546:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
         {
-        // InternalCubeDSL.g:3544:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
-        // InternalCubeDSL.g:3545:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalCubeDSL.g:3546:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalCubeDSL.g:3547:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
         }
-        // InternalCubeDSL.g:3546:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
-        // InternalCubeDSL.g:3546:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+        // InternalCubeDSL.g:3548:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalCubeDSL.g:3548:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_4_1_0();
@@ -73812,10 +74964,10 @@
     }
     // $ANTLR end synpred81_InternalCubeDSL
 
-    // $ANTLR start synpred146_InternalCubeDSL
-    public final void synpred146_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:8049:3: ( rule__XAssignment__Group_1_1__0 )
-        // InternalCubeDSL.g:8049:3: rule__XAssignment__Group_1_1__0
+    // $ANTLR start synpred149_InternalCubeDSL
+    public final void synpred149_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:8294:3: ( rule__XAssignment__Group_1_1__0 )
+        // InternalCubeDSL.g:8294:3: rule__XAssignment__Group_1_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XAssignment__Group_1_1__0();
@@ -73825,60 +74977,15 @@
 
         }
     }
-    // $ANTLR end synpred146_InternalCubeDSL
-
-    // $ANTLR start synpred148_InternalCubeDSL
-    public final void synpred148_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:8400:3: ( rule__XOrExpression__Group_1__0 )
-        // InternalCubeDSL.g:8400:3: rule__XOrExpression__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XOrExpression__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred148_InternalCubeDSL
-
-    // $ANTLR start synpred149_InternalCubeDSL
-    public final void synpred149_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:8589:3: ( rule__XAndExpression__Group_1__0 )
-        // InternalCubeDSL.g:8589:3: rule__XAndExpression__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XAndExpression__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
     // $ANTLR end synpred149_InternalCubeDSL
 
-    // $ANTLR start synpred150_InternalCubeDSL
-    public final void synpred150_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:8778:3: ( rule__XEqualityExpression__Group_1__0 )
-        // InternalCubeDSL.g:8778:3: rule__XEqualityExpression__Group_1__0
-        {
-        pushFollow(FOLLOW_2);
-        rule__XEqualityExpression__Group_1__0();
-
-        state._fsp--;
-        if (state.failed) return ;
-
-        }
-    }
-    // $ANTLR end synpred150_InternalCubeDSL
-
     // $ANTLR start synpred151_InternalCubeDSL
     public final void synpred151_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:8967:3: ( rule__XRelationalExpression__Alternatives_1 )
-        // InternalCubeDSL.g:8967:3: rule__XRelationalExpression__Alternatives_1
+        // InternalCubeDSL.g:8645:3: ( rule__XOrExpression__Group_1__0 )
+        // InternalCubeDSL.g:8645:3: rule__XOrExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XRelationalExpression__Alternatives_1();
+        rule__XOrExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -73889,11 +74996,11 @@
 
     // $ANTLR start synpred152_InternalCubeDSL
     public final void synpred152_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:9345:3: ( rule__XOtherOperatorExpression__Group_1__0 )
-        // InternalCubeDSL.g:9345:3: rule__XOtherOperatorExpression__Group_1__0
+        // InternalCubeDSL.g:8834:3: ( rule__XAndExpression__Group_1__0 )
+        // InternalCubeDSL.g:8834:3: rule__XAndExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XOtherOperatorExpression__Group_1__0();
+        rule__XAndExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -73904,11 +75011,11 @@
 
     // $ANTLR start synpred153_InternalCubeDSL
     public final void synpred153_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:9858:3: ( rule__XAdditiveExpression__Group_1__0 )
-        // InternalCubeDSL.g:9858:3: rule__XAdditiveExpression__Group_1__0
+        // InternalCubeDSL.g:9023:3: ( rule__XEqualityExpression__Group_1__0 )
+        // InternalCubeDSL.g:9023:3: rule__XEqualityExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XAdditiveExpression__Group_1__0();
+        rule__XEqualityExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -73919,11 +75026,11 @@
 
     // $ANTLR start synpred154_InternalCubeDSL
     public final void synpred154_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:10047:3: ( rule__XMultiplicativeExpression__Group_1__0 )
-        // InternalCubeDSL.g:10047:3: rule__XMultiplicativeExpression__Group_1__0
+        // InternalCubeDSL.g:9212:3: ( rule__XRelationalExpression__Alternatives_1 )
+        // InternalCubeDSL.g:9212:3: rule__XRelationalExpression__Alternatives_1
         {
         pushFollow(FOLLOW_2);
-        rule__XMultiplicativeExpression__Group_1__0();
+        rule__XRelationalExpression__Alternatives_1();
 
         state._fsp--;
         if (state.failed) return ;
@@ -73934,11 +75041,11 @@
 
     // $ANTLR start synpred155_InternalCubeDSL
     public final void synpred155_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:10317:3: ( rule__XCastedExpression__Group_1__0 )
-        // InternalCubeDSL.g:10317:3: rule__XCastedExpression__Group_1__0
+        // InternalCubeDSL.g:9590:3: ( rule__XOtherOperatorExpression__Group_1__0 )
+        // InternalCubeDSL.g:9590:3: rule__XOtherOperatorExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XCastedExpression__Group_1__0();
+        rule__XOtherOperatorExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -73949,11 +75056,11 @@
 
     // $ANTLR start synpred156_InternalCubeDSL
     public final void synpred156_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:10506:3: ( rule__XPostfixOperation__Group_1__0 )
-        // InternalCubeDSL.g:10506:3: rule__XPostfixOperation__Group_1__0
+        // InternalCubeDSL.g:10103:3: ( rule__XAdditiveExpression__Group_1__0 )
+        // InternalCubeDSL.g:10103:3: rule__XAdditiveExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XPostfixOperation__Group_1__0();
+        rule__XAdditiveExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -73964,11 +75071,11 @@
 
     // $ANTLR start synpred157_InternalCubeDSL
     public final void synpred157_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:10641:3: ( rule__XMemberFeatureCall__Alternatives_1 )
-        // InternalCubeDSL.g:10641:3: rule__XMemberFeatureCall__Alternatives_1
+        // InternalCubeDSL.g:10292:3: ( rule__XMultiplicativeExpression__Group_1__0 )
+        // InternalCubeDSL.g:10292:3: rule__XMultiplicativeExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XMemberFeatureCall__Alternatives_1();
+        rule__XMultiplicativeExpression__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -73977,13 +75084,28 @@
     }
     // $ANTLR end synpred157_InternalCubeDSL
 
-    // $ANTLR start synpred159_InternalCubeDSL
-    public final void synpred159_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:10939:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
-        // InternalCubeDSL.g:10939:3: rule__XMemberFeatureCall__Group_1_1_3__0
+    // $ANTLR start synpred158_InternalCubeDSL
+    public final void synpred158_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:10562:3: ( rule__XCastedExpression__Group_1__0 )
+        // InternalCubeDSL.g:10562:3: rule__XCastedExpression__Group_1__0
         {
         pushFollow(FOLLOW_2);
-        rule__XMemberFeatureCall__Group_1_1_3__0();
+        rule__XCastedExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred158_InternalCubeDSL
+
+    // $ANTLR start synpred159_InternalCubeDSL
+    public final void synpred159_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:10751:3: ( rule__XPostfixOperation__Group_1__0 )
+        // InternalCubeDSL.g:10751:3: rule__XPostfixOperation__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XPostfixOperation__Group_1__0();
 
         state._fsp--;
         if (state.failed) return ;
@@ -73994,8 +75116,38 @@
 
     // $ANTLR start synpred160_InternalCubeDSL
     public final void synpred160_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:10965:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
-        // InternalCubeDSL.g:10965:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+        // InternalCubeDSL.g:10886:3: ( rule__XMemberFeatureCall__Alternatives_1 )
+        // InternalCubeDSL.g:10886:3: rule__XMemberFeatureCall__Alternatives_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMemberFeatureCall__Alternatives_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred160_InternalCubeDSL
+
+    // $ANTLR start synpred162_InternalCubeDSL
+    public final void synpred162_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:11184:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
+        // InternalCubeDSL.g:11184:3: rule__XMemberFeatureCall__Group_1_1_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMemberFeatureCall__Group_1_1_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred162_InternalCubeDSL
+
+    // $ANTLR start synpred163_InternalCubeDSL
+    public final void synpred163_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:11210:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
+        // InternalCubeDSL.g:11210:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
         {
         pushFollow(FOLLOW_2);
         rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
@@ -74005,12 +75157,12 @@
 
         }
     }
-    // $ANTLR end synpred160_InternalCubeDSL
+    // $ANTLR end synpred163_InternalCubeDSL
 
-    // $ANTLR start synpred168_InternalCubeDSL
-    public final void synpred168_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:11938:3: ( rule__XClosure__Group_1__0 )
-        // InternalCubeDSL.g:11938:3: rule__XClosure__Group_1__0
+    // $ANTLR start synpred171_InternalCubeDSL
+    public final void synpred171_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:12183:3: ( rule__XClosure__Group_1__0 )
+        // InternalCubeDSL.g:12183:3: rule__XClosure__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XClosure__Group_1__0();
@@ -74020,12 +75172,12 @@
 
         }
     }
-    // $ANTLR end synpred168_InternalCubeDSL
+    // $ANTLR end synpred171_InternalCubeDSL
 
-    // $ANTLR start synpred175_InternalCubeDSL
-    public final void synpred175_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:12909:3: ( rule__XIfExpression__Group_6__0 )
-        // InternalCubeDSL.g:12909:3: rule__XIfExpression__Group_6__0
+    // $ANTLR start synpred178_InternalCubeDSL
+    public final void synpred178_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:13154:3: ( rule__XIfExpression__Group_6__0 )
+        // InternalCubeDSL.g:13154:3: rule__XIfExpression__Group_6__0
         {
         pushFollow(FOLLOW_2);
         rule__XIfExpression__Group_6__0();
@@ -74035,12 +75187,12 @@
 
         }
     }
-    // $ANTLR end synpred175_InternalCubeDSL
+    // $ANTLR end synpred178_InternalCubeDSL
 
-    // $ANTLR start synpred178_InternalCubeDSL
-    public final void synpred178_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:13369:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
-        // InternalCubeDSL.g:13369:3: rule__XSwitchExpression__Group_2_1_0__0
+    // $ANTLR start synpred181_InternalCubeDSL
+    public final void synpred181_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:13614:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
+        // InternalCubeDSL.g:13614:3: rule__XSwitchExpression__Group_2_1_0__0
         {
         pushFollow(FOLLOW_2);
         rule__XSwitchExpression__Group_2_1_0__0();
@@ -74050,12 +75202,12 @@
 
         }
     }
-    // $ANTLR end synpred178_InternalCubeDSL
+    // $ANTLR end synpred181_InternalCubeDSL
 
-    // $ANTLR start synpred191_InternalCubeDSL
-    public final void synpred191_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:15502:3: ( rule__XFeatureCall__Group_3__0 )
-        // InternalCubeDSL.g:15502:3: rule__XFeatureCall__Group_3__0
+    // $ANTLR start synpred194_InternalCubeDSL
+    public final void synpred194_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:15747:3: ( rule__XFeatureCall__Group_3__0 )
+        // InternalCubeDSL.g:15747:3: rule__XFeatureCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__Group_3__0();
@@ -74065,12 +75217,12 @@
 
         }
     }
-    // $ANTLR end synpred191_InternalCubeDSL
+    // $ANTLR end synpred194_InternalCubeDSL
 
-    // $ANTLR start synpred192_InternalCubeDSL
-    public final void synpred192_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:15528:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
-        // InternalCubeDSL.g:15528:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+    // $ANTLR start synpred195_InternalCubeDSL
+    public final void synpred195_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:15773:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
+        // InternalCubeDSL.g:15773:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
         {
         pushFollow(FOLLOW_2);
         rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
@@ -74080,12 +75232,12 @@
 
         }
     }
-    // $ANTLR end synpred192_InternalCubeDSL
+    // $ANTLR end synpred195_InternalCubeDSL
 
-    // $ANTLR start synpred196_InternalCubeDSL
-    public final void synpred196_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:15988:3: ( rule__XConstructorCall__Group_3__0 )
-        // InternalCubeDSL.g:15988:3: rule__XConstructorCall__Group_3__0
+    // $ANTLR start synpred199_InternalCubeDSL
+    public final void synpred199_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:16233:3: ( rule__XConstructorCall__Group_3__0 )
+        // InternalCubeDSL.g:16233:3: rule__XConstructorCall__Group_3__0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__Group_3__0();
@@ -74095,12 +75247,12 @@
 
         }
     }
-    // $ANTLR end synpred196_InternalCubeDSL
+    // $ANTLR end synpred199_InternalCubeDSL
 
-    // $ANTLR start synpred197_InternalCubeDSL
-    public final void synpred197_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:16015:3: ( rule__XConstructorCall__Group_4__0 )
-        // InternalCubeDSL.g:16015:3: rule__XConstructorCall__Group_4__0
+    // $ANTLR start synpred200_InternalCubeDSL
+    public final void synpred200_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:16260:3: ( rule__XConstructorCall__Group_4__0 )
+        // InternalCubeDSL.g:16260:3: rule__XConstructorCall__Group_4__0
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__Group_4__0();
@@ -74110,12 +75262,12 @@
 
         }
     }
-    // $ANTLR end synpred197_InternalCubeDSL
+    // $ANTLR end synpred200_InternalCubeDSL
 
-    // $ANTLR start synpred198_InternalCubeDSL
-    public final void synpred198_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:16041:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
-        // InternalCubeDSL.g:16041:3: rule__XConstructorCall__ArgumentsAssignment_5
+    // $ANTLR start synpred201_InternalCubeDSL
+    public final void synpred201_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:16286:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
+        // InternalCubeDSL.g:16286:3: rule__XConstructorCall__ArgumentsAssignment_5
         {
         pushFollow(FOLLOW_2);
         rule__XConstructorCall__ArgumentsAssignment_5();
@@ -74125,12 +75277,12 @@
 
         }
     }
-    // $ANTLR end synpred198_InternalCubeDSL
+    // $ANTLR end synpred201_InternalCubeDSL
 
-    // $ANTLR start synpred203_InternalCubeDSL
-    public final void synpred203_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:16932:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
-        // InternalCubeDSL.g:16932:3: rule__XReturnExpression__ExpressionAssignment_2
+    // $ANTLR start synpred206_InternalCubeDSL
+    public final void synpred206_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:17177:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
+        // InternalCubeDSL.g:17177:3: rule__XReturnExpression__ExpressionAssignment_2
         {
         pushFollow(FOLLOW_2);
         rule__XReturnExpression__ExpressionAssignment_2();
@@ -74140,12 +75292,12 @@
 
         }
     }
-    // $ANTLR end synpred203_InternalCubeDSL
+    // $ANTLR end synpred206_InternalCubeDSL
 
-    // $ANTLR start synpred204_InternalCubeDSL
-    public final void synpred204_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:17074:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
-        // InternalCubeDSL.g:17074:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+    // $ANTLR start synpred207_InternalCubeDSL
+    public final void synpred207_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:17319:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+        // InternalCubeDSL.g:17319:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
         {
         pushFollow(FOLLOW_2);
         rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
@@ -74155,12 +75307,12 @@
 
         }
     }
-    // $ANTLR end synpred204_InternalCubeDSL
+    // $ANTLR end synpred207_InternalCubeDSL
 
-    // $ANTLR start synpred205_InternalCubeDSL
-    public final void synpred205_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:17101:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
-        // InternalCubeDSL.g:17101:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+    // $ANTLR start synpred208_InternalCubeDSL
+    public final void synpred208_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:17346:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
+        // InternalCubeDSL.g:17346:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
         {
         pushFollow(FOLLOW_2);
         rule__XTryCatchFinallyExpression__Group_3_0_1__0();
@@ -74170,12 +75322,12 @@
 
         }
     }
-    // $ANTLR end synpred205_InternalCubeDSL
+    // $ANTLR end synpred208_InternalCubeDSL
 
-    // $ANTLR start synpred206_InternalCubeDSL
-    public final void synpred206_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:17614:3: ( rule__QualifiedName__Group_1__0 )
-        // InternalCubeDSL.g:17614:3: rule__QualifiedName__Group_1__0
+    // $ANTLR start synpred209_InternalCubeDSL
+    public final void synpred209_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:17859:3: ( rule__QualifiedName__Group_1__0 )
+        // InternalCubeDSL.g:17859:3: rule__QualifiedName__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__QualifiedName__Group_1__0();
@@ -74185,12 +75337,12 @@
 
         }
     }
-    // $ANTLR end synpred206_InternalCubeDSL
+    // $ANTLR end synpred209_InternalCubeDSL
 
-    // $ANTLR start synpred208_InternalCubeDSL
-    public final void synpred208_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:17830:3: ( rule__JvmTypeReference__Group_0_1__0 )
-        // InternalCubeDSL.g:17830:3: rule__JvmTypeReference__Group_0_1__0
+    // $ANTLR start synpred211_InternalCubeDSL
+    public final void synpred211_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:18075:3: ( rule__JvmTypeReference__Group_0_1__0 )
+        // InternalCubeDSL.g:18075:3: rule__JvmTypeReference__Group_0_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmTypeReference__Group_0_1__0();
@@ -74200,12 +75352,12 @@
 
         }
     }
-    // $ANTLR end synpred208_InternalCubeDSL
+    // $ANTLR end synpred211_InternalCubeDSL
 
-    // $ANTLR start synpred212_InternalCubeDSL
-    public final void synpred212_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:18289:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
-        // InternalCubeDSL.g:18289:3: rule__JvmParameterizedTypeReference__Group_1__0
+    // $ANTLR start synpred215_InternalCubeDSL
+    public final void synpred215_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:18534:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
+        // InternalCubeDSL.g:18534:3: rule__JvmParameterizedTypeReference__Group_1__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1__0();
@@ -74215,12 +75367,12 @@
 
         }
     }
-    // $ANTLR end synpred212_InternalCubeDSL
+    // $ANTLR end synpred215_InternalCubeDSL
 
-    // $ANTLR start synpred214_InternalCubeDSL
-    public final void synpred214_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:18424:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
-        // InternalCubeDSL.g:18424:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+    // $ANTLR start synpred217_InternalCubeDSL
+    public final void synpred217_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:18669:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
+        // InternalCubeDSL.g:18669:3: rule__JvmParameterizedTypeReference__Group_1_4__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4__0();
@@ -74230,12 +75382,12 @@
 
         }
     }
-    // $ANTLR end synpred214_InternalCubeDSL
+    // $ANTLR end synpred217_InternalCubeDSL
 
-    // $ANTLR start synpred215_InternalCubeDSL
-    public final void synpred215_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:18559:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
-        // InternalCubeDSL.g:18559:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+    // $ANTLR start synpred218_InternalCubeDSL
+    public final void synpred218_InternalCubeDSL_fragment() throws RecognitionException {   
+        // InternalCubeDSL.g:18804:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
+        // InternalCubeDSL.g:18804:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
         {
         pushFollow(FOLLOW_2);
         rule__JvmParameterizedTypeReference__Group_1_4_2__0();
@@ -74245,15 +75397,15 @@
 
         }
     }
-    // $ANTLR end synpred215_InternalCubeDSL
+    // $ANTLR end synpred218_InternalCubeDSL
 
     // Delegated rules
 
-    public final boolean synpred152_InternalCubeDSL() {
+    public final boolean synpred171_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred152_InternalCubeDSL_fragment(); // can never throw exception
+            synpred171_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74263,11 +75415,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred148_InternalCubeDSL() {
+    public final boolean synpred152_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred148_InternalCubeDSL_fragment(); // can never throw exception
+            synpred152_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74291,11 +75443,25 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred198_InternalCubeDSL() {
+    public final boolean synpred195_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred198_InternalCubeDSL_fragment(); // can never throw exception
+            synpred195_InternalCubeDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred207_InternalCubeDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred207_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74333,11 +75499,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred204_InternalCubeDSL() {
+    public final boolean synpred201_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred204_InternalCubeDSL_fragment(); // can never throw exception
+            synpred201_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74361,25 +75527,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred196_InternalCubeDSL() {
+    public final boolean synpred162_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred196_InternalCubeDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred214_InternalCubeDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred214_InternalCubeDSL_fragment(); // can never throw exception
+            synpred162_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74417,11 +75569,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred192_InternalCubeDSL() {
+    public final boolean synpred158_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred192_InternalCubeDSL_fragment(); // can never throw exception
+            synpred158_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74431,11 +75583,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred205_InternalCubeDSL() {
+    public final boolean synpred217_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred205_InternalCubeDSL_fragment(); // can never throw exception
+            synpred217_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74445,11 +75597,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred146_InternalCubeDSL() {
+    public final boolean synpred211_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred146_InternalCubeDSL_fragment(); // can never throw exception
+            synpred211_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74473,6 +75625,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred194_InternalCubeDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred194_InternalCubeDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred8_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -74501,20 +75667,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred212_InternalCubeDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred212_InternalCubeDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred56_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -74543,25 +75695,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred175_InternalCubeDSL() {
+    public final boolean synpred200_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred175_InternalCubeDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred168_InternalCubeDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred168_InternalCubeDSL_fragment(); // can never throw exception
+            synpred200_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74585,6 +75723,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred199_InternalCubeDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred199_InternalCubeDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred34_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -74599,6 +75751,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred218_InternalCubeDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred218_InternalCubeDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred153_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -74641,20 +75807,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred150_InternalCubeDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred150_InternalCubeDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred206_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -74697,6 +75849,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred181_InternalCubeDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred181_InternalCubeDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
     public final boolean synpred154_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -74711,11 +75877,11 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred203_InternalCubeDSL() {
+    public final boolean synpred209_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred203_InternalCubeDSL_fragment(); // can never throw exception
+            synpred209_InternalCubeDSL_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -74753,34 +75919,6 @@
         state.failed=false;
         return success;
     }
-    public final boolean synpred197_InternalCubeDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred197_InternalCubeDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
-    public final boolean synpred191_InternalCubeDSL() {
-        state.backtracking++;
-        int start = input.mark();
-        try {
-            synpred191_InternalCubeDSL_fragment(); // can never throw exception
-        } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
-        }
-        boolean success = !state.failed;
-        input.rewind(start);
-        state.backtracking--;
-        state.failed=false;
-        return success;
-    }
     public final boolean synpred9_InternalCubeDSL() {
         state.backtracking++;
         int start = input.mark();
@@ -74823,6 +75961,20 @@
         state.failed=false;
         return success;
     }
+    public final boolean synpred163_InternalCubeDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred163_InternalCubeDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
 
 
     protected DFA3 dfa3 = new DFA3(this);
@@ -74836,35 +75988,35 @@
     protected DFA29 dfa29 = new DFA29(this);
     protected DFA34 dfa34 = new DFA34(this);
     protected DFA37 dfa37 = new DFA37(this);
-    protected DFA85 dfa85 = new DFA85(this);
-    protected DFA91 dfa91 = new DFA91(this);
-    protected DFA98 dfa98 = new DFA98(this);
-    protected DFA99 dfa99 = new DFA99(this);
-    protected DFA107 dfa107 = new DFA107(this);
-    protected DFA117 dfa117 = new DFA117(this);
-    protected DFA130 dfa130 = new DFA130(this);
-    protected DFA131 dfa131 = new DFA131(this);
-    protected DFA135 dfa135 = new DFA135(this);
-    protected DFA136 dfa136 = new DFA136(this);
-    protected DFA137 dfa137 = new DFA137(this);
-    protected DFA142 dfa142 = new DFA142(this);
-    protected DFA151 dfa151 = new DFA151(this);
+    protected DFA88 dfa88 = new DFA88(this);
+    protected DFA94 dfa94 = new DFA94(this);
+    protected DFA101 dfa101 = new DFA101(this);
+    protected DFA102 dfa102 = new DFA102(this);
+    protected DFA110 dfa110 = new DFA110(this);
+    protected DFA120 dfa120 = new DFA120(this);
+    protected DFA133 dfa133 = new DFA133(this);
+    protected DFA134 dfa134 = new DFA134(this);
+    protected DFA138 dfa138 = new DFA138(this);
+    protected DFA139 dfa139 = new DFA139(this);
+    protected DFA140 dfa140 = new DFA140(this);
+    protected DFA145 dfa145 = new DFA145(this);
     protected DFA154 dfa154 = new DFA154(this);
+    protected DFA157 dfa157 = new DFA157(this);
     static final String dfa_1s = "\10\uffff";
-    static final String dfa_2s = "\2\uffff\1\5\4\uffff\1\5";
-    static final String dfa_3s = "\1\4\1\uffff\1\53\1\uffff\1\4\2\uffff\1\53";
-    static final String dfa_4s = "\1\176\1\uffff\1\126\1\uffff\1\44\2\uffff\1\126";
-    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\3\1\uffff";
+    static final String dfa_2s = "\2\uffff\1\5\3\uffff\1\5\1\uffff";
+    static final String dfa_3s = "\1\4\1\uffff\1\53\1\uffff\1\4\1\uffff\1\53\1\uffff";
+    static final String dfa_4s = "\1\u0081\1\uffff\1\126\1\uffff\1\44\1\uffff\1\126\1\uffff";
+    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\uffff\1\3";
     static final String dfa_6s = "\10\uffff}>";
     static final String[] dfa_7s = {
-            "\1\2\51\uffff\1\1\117\uffff\1\3",
+            "\1\2\51\uffff\1\1\122\uffff\1\3",
             "",
             "\1\4\3\uffff\1\5\31\uffff\1\5\14\uffff\1\5",
             "",
-            "\1\7\37\uffff\1\6",
+            "\1\6\37\uffff\1\7",
             "",
-            "",
-            "\1\4\3\uffff\1\5\31\uffff\1\5\14\uffff\1\5"
+            "\1\4\3\uffff\1\5\31\uffff\1\5\14\uffff\1\5",
+            ""
     };
 
     static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -74889,16 +76041,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "2561:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
+            return "2563:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
         }
     }
     static final String dfa_8s = "\43\uffff";
     static final String dfa_9s = "\1\4\1\0\41\uffff";
-    static final String dfa_10s = "\1\u0083\1\0\41\uffff";
+    static final String dfa_10s = "\1\u0086\1\0\41\uffff";
     static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\1";
     static final String dfa_12s = "\1\uffff\1\0\41\uffff}>";
     static final String[] dfa_13s = {
-            "\1\1\4\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\27\uffff\1\2\14\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\22\uffff\1\2",
+            "\1\1\4\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\27\uffff\1\2\14\uffff\2\2\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\25\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -74956,7 +76108,7 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "2615:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
+            return "2617:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -74986,7 +76138,7 @@
         }
     }
     static final String[] dfa_14s = {
-            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\27\uffff\1\2\14\uffff\2\2\3\uffff\1\1\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\22\uffff\1\2",
+            "\5\2\22\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\27\uffff\1\2\14\uffff\2\2\3\uffff\1\1\1\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\25\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -75038,7 +76190,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2636:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
+            return "2638:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -75082,7 +76234,7 @@
             this.transition = dfa_14;
         }
         public String getDescription() {
-            return "2657:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
+            return "2659:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -75151,25 +76303,25 @@
             this.transition = dfa_20;
         }
         public String getDescription() {
-            return "2858:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
+            return "2860:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
         }
     }
     static final String dfa_21s = "\12\uffff";
     static final String dfa_22s = "\4\uffff\5\3\1\uffff";
     static final String dfa_23s = "\1\53\2\4\1\uffff\5\4\1\uffff";
-    static final String dfa_24s = "\1\u0080\2\61\1\uffff\5\u0083\1\uffff";
+    static final String dfa_24s = "\1\u0083\2\61\1\uffff\5\u0086\1\uffff";
     static final String dfa_25s = "\3\uffff\1\2\5\uffff\1\1";
     static final String dfa_26s = "\12\uffff}>";
     static final String[] dfa_27s = {
-            "\1\1\123\uffff\1\2\1\3",
+            "\1\1\126\uffff\1\2\1\3",
             "\1\4\26\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
             "\1\4\26\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
             "",
-            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\15\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\15\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\15\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\15\uffff\2\3\1\uffff\2\3",
-            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\15\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\20\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\20\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\20\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\20\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\45\3\27\uffff\2\3\12\uffff\1\3\1\uffff\32\3\20\uffff\2\3\1\uffff\2\3",
             ""
     };
 
@@ -75195,15 +76347,15 @@
             this.transition = dfa_27;
         }
         public String getDescription() {
-            return "3092:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+            return "3094:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
         }
     }
     static final String dfa_28s = "\1\4\2\0\40\uffff";
-    static final String dfa_29s = "\1\u0083\2\0\40\uffff";
+    static final String dfa_29s = "\1\u0086\2\0\40\uffff";
     static final String dfa_30s = "\3\uffff\1\1\1\uffff\1\2\35\uffff";
     static final String dfa_31s = "\1\uffff\1\0\1\1\40\uffff}>";
     static final String[] dfa_32s = {
-            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\27\uffff\1\5\15\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\20\uffff\1\3\1\uffff\1\5",
+            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\4\uffff\6\5\27\uffff\1\5\15\uffff\1\2\3\uffff\2\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\23\uffff\1\3\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -75259,7 +76411,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3161:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
+            return "3163:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -75305,11 +76457,11 @@
     }
     static final String dfa_33s = "\40\uffff";
     static final String dfa_34s = "\1\4\26\uffff\1\0\10\uffff";
-    static final String dfa_35s = "\1\u0083\26\uffff\1\0\10\uffff";
+    static final String dfa_35s = "\1\u0086\26\uffff\1\0\10\uffff";
     static final String dfa_36s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
     static final String dfa_37s = "\27\uffff\1\0\10\uffff}>";
     static final String[] dfa_38s = {
-            "\1\5\4\14\22\uffff\1\5\21\uffff\5\5\1\14\27\uffff\1\2\15\uffff\1\35\3\uffff\2\14\2\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\22\uffff\1\14",
+            "\1\5\4\14\22\uffff\1\5\21\uffff\5\5\1\14\27\uffff\1\2\15\uffff\1\35\3\uffff\2\14\2\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\25\uffff\1\14",
             "",
             "",
             "",
@@ -75364,7 +76516,7 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "3182:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
+            return "3184:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -75394,7 +76546,7 @@
         }
     }
     static final String[] dfa_39s = {
-            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\27\uffff\1\2\15\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\22\uffff\1\2",
+            "\5\2\22\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff\6\2\27\uffff\1\2\15\uffff\1\1\3\uffff\2\2\2\uffff\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\25\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -75446,7 +76598,7 @@
             this.transition = dfa_39;
         }
         public String getDescription() {
-            return "3353:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
+            return "3355:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -75490,7 +76642,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3458:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
+            return "3460:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -75549,7 +76701,7 @@
             this.transition = dfa_32;
         }
         public String getDescription() {
-            return "3539:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
+            return "3541:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -75595,11 +76747,11 @@
     }
     static final String dfa_40s = "\1\10\11\uffff";
     static final String dfa_41s = "\1\4\7\0\2\uffff";
-    static final String dfa_42s = "\1\u0083\7\0\2\uffff";
+    static final String dfa_42s = "\1\u0086\7\0\2\uffff";
     static final String dfa_43s = "\10\uffff\1\2\1\1";
-    static final String dfa_44s = "\1\uffff\1\3\1\5\1\0\1\1\1\4\1\6\1\2\2\uffff}>";
+    static final String dfa_44s = "\1\uffff\1\3\1\0\1\6\1\5\1\4\1\1\1\2\2\uffff}>";
     static final String[] dfa_45s = {
-            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\27\uffff\2\10\12\uffff\1\10\1\uffff\32\10\15\uffff\2\10\1\uffff\2\10",
+            "\5\10\5\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\27\10\27\uffff\2\10\12\uffff\1\10\1\uffff\32\10\20\uffff\2\10\1\uffff\2\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -75617,11 +76769,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA85 extends DFA {
+    class DFA88 extends DFA {
 
-        public DFA85(BaseRecognizer recognizer) {
+        public DFA88(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 85;
+            this.decisionNumber = 88;
             this.eot = dfa_21;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -75631,132 +76783,132 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "8049:2: ( rule__XAssignment__Group_1_1__0 )?";
+            return "8294:2: ( rule__XAssignment__Group_1_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA85_3 = input.LA(1);
+                        int LA88_2 = input.LA(1);
 
                          
-                        int index85_3 = input.index();
+                        int index88_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalCubeDSL()) ) {s = 9;}
+                        if ( (synpred149_InternalCubeDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index85_3);
+                        input.seek(index88_2);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA85_4 = input.LA(1);
+                        int LA88_6 = input.LA(1);
 
                          
-                        int index85_4 = input.index();
+                        int index88_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalCubeDSL()) ) {s = 9;}
+                        if ( (synpred149_InternalCubeDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index85_4);
+                        input.seek(index88_6);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA85_7 = input.LA(1);
+                        int LA88_7 = input.LA(1);
 
                          
-                        int index85_7 = input.index();
+                        int index88_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalCubeDSL()) ) {s = 9;}
+                        if ( (synpred149_InternalCubeDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index85_7);
+                        input.seek(index88_7);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA85_1 = input.LA(1);
+                        int LA88_1 = input.LA(1);
 
                          
-                        int index85_1 = input.index();
+                        int index88_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalCubeDSL()) ) {s = 9;}
+                        if ( (synpred149_InternalCubeDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index85_1);
+                        input.seek(index88_1);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA85_5 = input.LA(1);
+                        int LA88_5 = input.LA(1);
 
                          
-                        int index85_5 = input.index();
+                        int index88_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalCubeDSL()) ) {s = 9;}
+                        if ( (synpred149_InternalCubeDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index85_5);
+                        input.seek(index88_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA85_2 = input.LA(1);
+                        int LA88_4 = input.LA(1);
 
                          
-                        int index85_2 = input.index();
+                        int index88_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalCubeDSL()) ) {s = 9;}
+                        if ( (synpred149_InternalCubeDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index85_2);
+                        input.seek(index88_4);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA85_6 = input.LA(1);
+                        int LA88_3 = input.LA(1);
 
                          
-                        int index85_6 = input.index();
+                        int index88_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred146_InternalCubeDSL()) ) {s = 9;}
+                        if ( (synpred149_InternalCubeDSL()) ) {s = 9;}
 
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index85_6);
+                        input.seek(index88_3);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 85, _s, input);
+                new NoViableAltException(getDescription(), 88, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_46s = "\1\1\12\uffff";
     static final String dfa_47s = "\1\4\1\uffff\10\0\1\uffff";
-    static final String dfa_48s = "\1\u0083\1\uffff\10\0\1\uffff";
+    static final String dfa_48s = "\1\u0086\1\uffff\10\0\1\uffff";
     static final String dfa_49s = "\1\uffff\1\2\10\uffff\1\1";
-    static final String dfa_50s = "\2\uffff\1\1\1\6\1\7\1\2\1\4\1\0\1\5\1\3\1\uffff}>";
+    static final String dfa_50s = "\2\uffff\1\0\1\1\1\2\1\5\1\7\1\3\1\4\1\6\1\uffff}>";
     static final String[] dfa_51s = {
-            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\27\uffff\2\1\12\uffff\1\1\1\uffff\32\1\15\uffff\2\1\1\uffff\2\1",
+            "\5\1\5\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\21\1\27\uffff\2\1\12\uffff\1\1\1\uffff\32\1\20\uffff\2\1\1\uffff\2\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -75775,11 +76927,11 @@
     static final short[] dfa_50 = DFA.unpackEncodedString(dfa_50s);
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA91 extends DFA {
+    class DFA94 extends DFA {
 
-        public DFA91(BaseRecognizer recognizer) {
+        public DFA94(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 91;
+            this.decisionNumber = 94;
             this.eot = dfa_15;
             this.eof = dfa_46;
             this.min = dfa_47;
@@ -75789,136 +76941,136 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "()* loopback of 9345:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
+            return "()* loopback of 9590:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA91_7 = input.LA(1);
+                        int LA94_2 = input.LA(1);
 
                          
-                        int index91_7 = input.index();
+                        int index94_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalCubeDSL()) ) {s = 10;}
+                        if ( (synpred155_InternalCubeDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index91_7);
+                        input.seek(index94_2);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA91_2 = input.LA(1);
+                        int LA94_3 = input.LA(1);
 
                          
-                        int index91_2 = input.index();
+                        int index94_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalCubeDSL()) ) {s = 10;}
+                        if ( (synpred155_InternalCubeDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index91_2);
+                        input.seek(index94_3);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA91_5 = input.LA(1);
+                        int LA94_4 = input.LA(1);
 
                          
-                        int index91_5 = input.index();
+                        int index94_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalCubeDSL()) ) {s = 10;}
+                        if ( (synpred155_InternalCubeDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index91_5);
+                        input.seek(index94_4);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA91_9 = input.LA(1);
+                        int LA94_7 = input.LA(1);
 
                          
-                        int index91_9 = input.index();
+                        int index94_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalCubeDSL()) ) {s = 10;}
+                        if ( (synpred155_InternalCubeDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index91_9);
+                        input.seek(index94_7);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA91_6 = input.LA(1);
+                        int LA94_8 = input.LA(1);
 
                          
-                        int index91_6 = input.index();
+                        int index94_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalCubeDSL()) ) {s = 10;}
+                        if ( (synpred155_InternalCubeDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index91_6);
+                        input.seek(index94_8);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA91_8 = input.LA(1);
+                        int LA94_5 = input.LA(1);
 
                          
-                        int index91_8 = input.index();
+                        int index94_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalCubeDSL()) ) {s = 10;}
+                        if ( (synpred155_InternalCubeDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index91_8);
+                        input.seek(index94_5);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA91_3 = input.LA(1);
+                        int LA94_9 = input.LA(1);
 
                          
-                        int index91_3 = input.index();
+                        int index94_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalCubeDSL()) ) {s = 10;}
+                        if ( (synpred155_InternalCubeDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index91_3);
+                        input.seek(index94_9);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA91_4 = input.LA(1);
+                        int LA94_6 = input.LA(1);
 
                          
-                        int index91_4 = input.index();
+                        int index94_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred152_InternalCubeDSL()) ) {s = 10;}
+                        if ( (synpred155_InternalCubeDSL()) ) {s = 10;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index91_4);
+                        input.seek(index94_6);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 91, _s, input);
+                new NoViableAltException(getDescription(), 94, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -75926,11 +77078,11 @@
     static final String dfa_52s = "\116\uffff";
     static final String dfa_53s = "\1\2\115\uffff";
     static final String dfa_54s = "\1\4\1\0\114\uffff";
-    static final String dfa_55s = "\1\u0083\1\0\114\uffff";
+    static final String dfa_55s = "\1\u0086\1\0\114\uffff";
     static final String dfa_56s = "\2\uffff\1\2\112\uffff\1\1";
     static final String dfa_57s = "\1\uffff\1\0\114\uffff}>";
     static final String[] dfa_58s = {
-            "\5\2\5\uffff\45\2\27\uffff\2\2\12\uffff\1\2\1\uffff\1\1\31\2\15\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\27\uffff\2\2\12\uffff\1\2\1\uffff\1\1\31\2\20\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -76018,11 +77170,11 @@
     static final short[] dfa_57 = DFA.unpackEncodedString(dfa_57s);
     static final short[][] dfa_58 = unpackEncodedStringArray(dfa_58s);
 
-    class DFA98 extends DFA {
+    class DFA101 extends DFA {
 
-        public DFA98(BaseRecognizer recognizer) {
+        public DFA101(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 98;
+            this.decisionNumber = 101;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -76032,37 +77184,37 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "10939:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
+            return "11184:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA98_1 = input.LA(1);
+                        int LA101_1 = input.LA(1);
 
                          
-                        int index98_1 = input.index();
+                        int index101_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred159_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred162_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index98_1);
+                        input.seek(index101_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 98, _s, input);
+                new NoViableAltException(getDescription(), 101, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_59s = {
-            "\5\2\5\uffff\45\2\27\uffff\2\2\12\uffff\1\2\1\uffff\5\2\1\1\24\2\15\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\45\2\27\uffff\2\2\12\uffff\1\2\1\uffff\5\2\1\1\24\2\20\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -76143,11 +77295,11 @@
     };
     static final short[][] dfa_59 = unpackEncodedStringArray(dfa_59s);
 
-    class DFA99 extends DFA {
+    class DFA102 extends DFA {
 
-        public DFA99(BaseRecognizer recognizer) {
+        public DFA102(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 99;
+            this.decisionNumber = 102;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -76157,42 +77309,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "10965:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
+            return "11210:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA99_1 = input.LA(1);
+                        int LA102_1 = input.LA(1);
 
                          
-                        int index99_1 = input.index();
+                        int index102_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred160_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred163_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index99_1);
+                        input.seek(index102_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 99, _s, input);
+                new NoViableAltException(getDescription(), 102, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_60s = "\46\uffff";
     static final String dfa_61s = "\1\4\2\0\43\uffff";
-    static final String dfa_62s = "\1\u0083\2\0\43\uffff";
+    static final String dfa_62s = "\1\u0086\2\0\43\uffff";
     static final String dfa_63s = "\3\uffff\1\1\1\uffff\1\2\40\uffff";
     static final String dfa_64s = "\1\uffff\1\0\1\1\43\uffff}>";
     static final String[] dfa_65s = {
-            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\27\uffff\1\5\15\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\20\uffff\1\3\2\5",
+            "\1\1\4\5\22\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1\5\3\uffff\7\5\27\uffff\1\5\15\uffff\1\2\2\uffff\3\5\2\uffff\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\23\uffff\1\3\2\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -76239,11 +77391,11 @@
     static final short[] dfa_64 = DFA.unpackEncodedString(dfa_64s);
     static final short[][] dfa_65 = unpackEncodedStringArray(dfa_65s);
 
-    class DFA107 extends DFA {
+    class DFA110 extends DFA {
 
-        public DFA107(BaseRecognizer recognizer) {
+        public DFA110(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 107;
+            this.decisionNumber = 110;
             this.eot = dfa_60;
             this.eof = dfa_60;
             this.min = dfa_61;
@@ -76253,57 +77405,57 @@
             this.transition = dfa_65;
         }
         public String getDescription() {
-            return "11938:2: ( rule__XClosure__Group_1__0 )?";
+            return "12183:2: ( rule__XClosure__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA107_1 = input.LA(1);
+                        int LA110_1 = input.LA(1);
 
                          
-                        int index107_1 = input.index();
+                        int index110_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred168_InternalCubeDSL()) ) {s = 3;}
+                        if ( (synpred171_InternalCubeDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index107_1);
+                        input.seek(index110_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA107_2 = input.LA(1);
+                        int LA110_2 = input.LA(1);
 
                          
-                        int index107_2 = input.index();
+                        int index110_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred168_InternalCubeDSL()) ) {s = 3;}
+                        if ( (synpred171_InternalCubeDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index107_2);
+                        input.seek(index110_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 107, _s, input);
+                new NoViableAltException(getDescription(), 110, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_66s = "\42\uffff";
     static final String dfa_67s = "\1\4\2\0\37\uffff";
-    static final String dfa_68s = "\1\u0083\2\0\37\uffff";
+    static final String dfa_68s = "\1\u0086\2\0\37\uffff";
     static final String dfa_69s = "\3\uffff\1\1\1\2\35\uffff";
     static final String dfa_70s = "\1\uffff\1\0\1\1\37\uffff}>";
     static final String[] dfa_71s = {
-            "\1\1\4\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\27\uffff\1\4\15\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\22\uffff\1\4",
+            "\1\1\4\4\22\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1\4\4\uffff\6\4\27\uffff\1\4\15\uffff\1\2\3\uffff\2\4\2\uffff\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\25\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -76346,11 +77498,11 @@
     static final short[] dfa_70 = DFA.unpackEncodedString(dfa_70s);
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    class DFA117 extends DFA {
+    class DFA120 extends DFA {
 
-        public DFA117(BaseRecognizer recognizer) {
+        public DFA120(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 117;
+            this.decisionNumber = 120;
             this.eot = dfa_66;
             this.eof = dfa_66;
             this.min = dfa_67;
@@ -76360,56 +77512,56 @@
             this.transition = dfa_71;
         }
         public String getDescription() {
-            return "13369:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
+            return "13614:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA117_1 = input.LA(1);
+                        int LA120_1 = input.LA(1);
 
                          
-                        int index117_1 = input.index();
+                        int index120_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred178_InternalCubeDSL()) ) {s = 3;}
+                        if ( (synpred181_InternalCubeDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index117_1);
+                        input.seek(index120_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA117_2 = input.LA(1);
+                        int LA120_2 = input.LA(1);
 
                          
-                        int index117_2 = input.index();
+                        int index120_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred178_InternalCubeDSL()) ) {s = 3;}
+                        if ( (synpred181_InternalCubeDSL()) ) {s = 3;}
 
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index117_2);
+                        input.seek(index120_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 117, _s, input);
+                new NoViableAltException(getDescription(), 120, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA130 extends DFA {
+    class DFA133 extends DFA {
 
-        public DFA130(BaseRecognizer recognizer) {
+        public DFA133(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 130;
+            this.decisionNumber = 133;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -76419,41 +77571,41 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "15502:2: ( rule__XFeatureCall__Group_3__0 )?";
+            return "15747:2: ( rule__XFeatureCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA130_1 = input.LA(1);
+                        int LA133_1 = input.LA(1);
 
                          
-                        int index130_1 = input.index();
+                        int index133_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred191_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred194_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index130_1);
+                        input.seek(index133_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 130, _s, input);
+                new NoViableAltException(getDescription(), 133, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA131 extends DFA {
+    class DFA134 extends DFA {
 
-        public DFA131(BaseRecognizer recognizer) {
+        public DFA134(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 131;
+            this.decisionNumber = 134;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -76463,37 +77615,37 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "15528:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
+            return "15773:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA131_1 = input.LA(1);
+                        int LA134_1 = input.LA(1);
 
                          
-                        int index131_1 = input.index();
+                        int index134_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred192_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred195_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index131_1);
+                        input.seek(index134_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 131, _s, input);
+                new NoViableAltException(getDescription(), 134, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_72s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\27\uffff\2\2\12\uffff\1\2\1\uffff\32\2\15\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\27\uffff\2\2\12\uffff\1\2\1\uffff\32\2\20\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -76574,11 +77726,11 @@
     };
     static final short[][] dfa_72 = unpackEncodedStringArray(dfa_72s);
 
-    class DFA135 extends DFA {
+    class DFA138 extends DFA {
 
-        public DFA135(BaseRecognizer recognizer) {
+        public DFA138(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 135;
+            this.decisionNumber = 138;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -76588,41 +77740,41 @@
             this.transition = dfa_72;
         }
         public String getDescription() {
-            return "15988:2: ( rule__XConstructorCall__Group_3__0 )?";
+            return "16233:2: ( rule__XConstructorCall__Group_3__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA135_1 = input.LA(1);
+                        int LA138_1 = input.LA(1);
 
                          
-                        int index135_1 = input.index();
+                        int index138_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred196_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred199_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index135_1);
+                        input.seek(index138_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 135, _s, input);
+                new NoViableAltException(getDescription(), 138, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA136 extends DFA {
+    class DFA139 extends DFA {
 
-        public DFA136(BaseRecognizer recognizer) {
+        public DFA139(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 136;
+            this.decisionNumber = 139;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -76632,41 +77784,41 @@
             this.transition = dfa_58;
         }
         public String getDescription() {
-            return "16015:2: ( rule__XConstructorCall__Group_4__0 )?";
+            return "16260:2: ( rule__XConstructorCall__Group_4__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA136_1 = input.LA(1);
+                        int LA139_1 = input.LA(1);
 
                          
-                        int index136_1 = input.index();
+                        int index139_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred197_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred200_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index136_1);
+                        input.seek(index139_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 136, _s, input);
+                new NoViableAltException(getDescription(), 139, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA137 extends DFA {
+    class DFA140 extends DFA {
 
-        public DFA137(BaseRecognizer recognizer) {
+        public DFA140(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 137;
+            this.decisionNumber = 140;
             this.eot = dfa_52;
             this.eof = dfa_53;
             this.min = dfa_54;
@@ -76676,42 +77828,42 @@
             this.transition = dfa_59;
         }
         public String getDescription() {
-            return "16041:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
+            return "16286:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA137_1 = input.LA(1);
+                        int LA140_1 = input.LA(1);
 
                          
-                        int index137_1 = input.index();
+                        int index140_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred198_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred201_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index137_1);
+                        input.seek(index140_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 137, _s, input);
+                new NoViableAltException(getDescription(), 140, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_73s = "\1\41\115\uffff";
     static final String dfa_74s = "\1\4\40\0\55\uffff";
-    static final String dfa_75s = "\1\u0083\40\0\55\uffff";
+    static final String dfa_75s = "\1\u0086\40\0\55\uffff";
     static final String dfa_76s = "\41\uffff\1\2\53\uffff\1\1";
     static final String dfa_77s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
     static final String[] dfa_78s = {
-            "\1\1\1\27\1\23\1\24\1\25\5\uffff\15\41\1\15\6\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\27\uffff\1\12\1\41\12\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\2\41\1\31\1\41\1\13\3\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\15\uffff\2\41\1\uffff\1\41\1\22",
+            "\1\1\1\27\1\23\1\24\1\25\5\uffff\15\41\1\15\6\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\27\uffff\1\12\1\41\12\uffff\1\41\1\uffff\1\40\3\41\1\17\1\20\2\41\1\31\1\41\1\13\3\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\20\uffff\2\41\1\uffff\1\41\1\22",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -76797,11 +77949,11 @@
     static final short[] dfa_77 = DFA.unpackEncodedString(dfa_77s);
     static final short[][] dfa_78 = unpackEncodedStringArray(dfa_78s);
 
-    class DFA142 extends DFA {
+    class DFA145 extends DFA {
 
-        public DFA142(BaseRecognizer recognizer) {
+        public DFA145(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 142;
+            this.decisionNumber = 145;
             this.eot = dfa_52;
             this.eof = dfa_73;
             this.min = dfa_74;
@@ -76811,496 +77963,496 @@
             this.transition = dfa_78;
         }
         public String getDescription() {
-            return "16932:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
+            return "17177:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA142_1 = input.LA(1);
+                        int LA145_1 = input.LA(1);
 
                          
-                        int index142_1 = input.index();
+                        int index145_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_1);
+                        input.seek(index145_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA142_2 = input.LA(1);
+                        int LA145_2 = input.LA(1);
 
                          
-                        int index142_2 = input.index();
+                        int index145_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_2);
+                        input.seek(index145_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA142_3 = input.LA(1);
+                        int LA145_3 = input.LA(1);
 
                          
-                        int index142_3 = input.index();
+                        int index145_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_3);
+                        input.seek(index145_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA142_4 = input.LA(1);
+                        int LA145_4 = input.LA(1);
 
                          
-                        int index142_4 = input.index();
+                        int index145_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_4);
+                        input.seek(index145_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA142_5 = input.LA(1);
+                        int LA145_5 = input.LA(1);
 
                          
-                        int index142_5 = input.index();
+                        int index145_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_5);
+                        input.seek(index145_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA142_6 = input.LA(1);
+                        int LA145_6 = input.LA(1);
 
                          
-                        int index142_6 = input.index();
+                        int index145_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_6);
+                        input.seek(index145_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA142_7 = input.LA(1);
+                        int LA145_7 = input.LA(1);
 
                          
-                        int index142_7 = input.index();
+                        int index145_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_7);
+                        input.seek(index145_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA142_8 = input.LA(1);
+                        int LA145_8 = input.LA(1);
 
                          
-                        int index142_8 = input.index();
+                        int index145_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_8);
+                        input.seek(index145_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA142_9 = input.LA(1);
+                        int LA145_9 = input.LA(1);
 
                          
-                        int index142_9 = input.index();
+                        int index145_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_9);
+                        input.seek(index145_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA142_10 = input.LA(1);
+                        int LA145_10 = input.LA(1);
 
                          
-                        int index142_10 = input.index();
+                        int index145_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_10);
+                        input.seek(index145_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA142_11 = input.LA(1);
+                        int LA145_11 = input.LA(1);
 
                          
-                        int index142_11 = input.index();
+                        int index145_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_11);
+                        input.seek(index145_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA142_12 = input.LA(1);
+                        int LA145_12 = input.LA(1);
 
                          
-                        int index142_12 = input.index();
+                        int index145_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_12);
+                        input.seek(index145_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA142_13 = input.LA(1);
+                        int LA145_13 = input.LA(1);
 
                          
-                        int index142_13 = input.index();
+                        int index145_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_13);
+                        input.seek(index145_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA142_14 = input.LA(1);
+                        int LA145_14 = input.LA(1);
 
                          
-                        int index142_14 = input.index();
+                        int index145_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_14);
+                        input.seek(index145_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA142_15 = input.LA(1);
+                        int LA145_15 = input.LA(1);
 
                          
-                        int index142_15 = input.index();
+                        int index145_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_15);
+                        input.seek(index145_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA142_16 = input.LA(1);
+                        int LA145_16 = input.LA(1);
 
                          
-                        int index142_16 = input.index();
+                        int index145_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_16);
+                        input.seek(index145_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA142_17 = input.LA(1);
+                        int LA145_17 = input.LA(1);
 
                          
-                        int index142_17 = input.index();
+                        int index145_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_17);
+                        input.seek(index145_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA142_18 = input.LA(1);
+                        int LA145_18 = input.LA(1);
 
                          
-                        int index142_18 = input.index();
+                        int index145_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_18);
+                        input.seek(index145_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA142_19 = input.LA(1);
+                        int LA145_19 = input.LA(1);
 
                          
-                        int index142_19 = input.index();
+                        int index145_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_19);
+                        input.seek(index145_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA142_20 = input.LA(1);
+                        int LA145_20 = input.LA(1);
 
                          
-                        int index142_20 = input.index();
+                        int index145_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_20);
+                        input.seek(index145_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA142_21 = input.LA(1);
+                        int LA145_21 = input.LA(1);
 
                          
-                        int index142_21 = input.index();
+                        int index145_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_21);
+                        input.seek(index145_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA142_22 = input.LA(1);
+                        int LA145_22 = input.LA(1);
 
                          
-                        int index142_22 = input.index();
+                        int index145_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_22);
+                        input.seek(index145_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA142_23 = input.LA(1);
+                        int LA145_23 = input.LA(1);
 
                          
-                        int index142_23 = input.index();
+                        int index145_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_23);
+                        input.seek(index145_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA142_24 = input.LA(1);
+                        int LA145_24 = input.LA(1);
 
                          
-                        int index142_24 = input.index();
+                        int index145_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_24);
+                        input.seek(index145_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA142_25 = input.LA(1);
+                        int LA145_25 = input.LA(1);
 
                          
-                        int index142_25 = input.index();
+                        int index145_25 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_25);
+                        input.seek(index145_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA142_26 = input.LA(1);
+                        int LA145_26 = input.LA(1);
 
                          
-                        int index142_26 = input.index();
+                        int index145_26 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_26);
+                        input.seek(index145_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA142_27 = input.LA(1);
+                        int LA145_27 = input.LA(1);
 
                          
-                        int index142_27 = input.index();
+                        int index145_27 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_27);
+                        input.seek(index145_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA142_28 = input.LA(1);
+                        int LA145_28 = input.LA(1);
 
                          
-                        int index142_28 = input.index();
+                        int index145_28 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_28);
+                        input.seek(index145_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA142_29 = input.LA(1);
+                        int LA145_29 = input.LA(1);
 
                          
-                        int index142_29 = input.index();
+                        int index145_29 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_29);
+                        input.seek(index145_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA142_30 = input.LA(1);
+                        int LA145_30 = input.LA(1);
 
                          
-                        int index142_30 = input.index();
+                        int index145_30 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_30);
+                        input.seek(index145_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA142_31 = input.LA(1);
+                        int LA145_31 = input.LA(1);
 
                          
-                        int index142_31 = input.index();
+                        int index145_31 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_31);
+                        input.seek(index145_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA142_32 = input.LA(1);
+                        int LA145_32 = input.LA(1);
 
                          
-                        int index142_32 = input.index();
+                        int index145_32 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred203_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred206_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index142_32);
+                        input.seek(index145_32);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 142, _s, input);
+                new NoViableAltException(getDescription(), 145, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -77308,11 +78460,11 @@
     static final String dfa_79s = "\117\uffff";
     static final String dfa_80s = "\1\2\116\uffff";
     static final String dfa_81s = "\1\4\1\0\115\uffff";
-    static final String dfa_82s = "\1\u0083\1\0\115\uffff";
+    static final String dfa_82s = "\1\u0086\1\0\115\uffff";
     static final String dfa_83s = "\2\uffff\1\2\113\uffff\1\1";
     static final String dfa_84s = "\1\uffff\1\0\115\uffff}>";
     static final String[] dfa_85s = {
-            "\5\2\5\uffff\15\2\1\1\27\2\27\uffff\2\2\12\uffff\1\2\1\uffff\32\2\1\uffff\1\2\13\uffff\2\2\1\uffff\2\2",
+            "\5\2\5\uffff\15\2\1\1\27\2\27\uffff\2\2\12\uffff\1\2\1\uffff\32\2\1\uffff\1\2\16\uffff\2\2\1\uffff\2\2",
             "\1\uffff",
             "",
             "",
@@ -77401,50 +78553,6 @@
     static final short[] dfa_84 = DFA.unpackEncodedString(dfa_84s);
     static final short[][] dfa_85 = unpackEncodedStringArray(dfa_85s);
 
-    class DFA151 extends DFA {
-
-        public DFA151(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 151;
-            this.eot = dfa_79;
-            this.eof = dfa_80;
-            this.min = dfa_81;
-            this.max = dfa_82;
-            this.accept = dfa_83;
-            this.special = dfa_84;
-            this.transition = dfa_85;
-        }
-        public String getDescription() {
-            return "18289:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
-        }
-        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            TokenStream input = (TokenStream)_input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA151_1 = input.LA(1);
-
-                         
-                        int index151_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred212_InternalCubeDSL()) ) {s = 78;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index151_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 151, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA154 extends DFA {
 
         public DFA154(BaseRecognizer recognizer) {
@@ -77459,7 +78567,7 @@
             this.transition = dfa_85;
         }
         public String getDescription() {
-            return "18559:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+            return "18534:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -77488,6 +78596,50 @@
             throw nvae;
         }
     }
+
+    class DFA157 extends DFA {
+
+        public DFA157(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 157;
+            this.eot = dfa_79;
+            this.eof = dfa_80;
+            this.min = dfa_81;
+            this.max = dfa_82;
+            this.accept = dfa_83;
+            this.special = dfa_84;
+            this.transition = dfa_85;
+        }
+        public String getDescription() {
+            return "18804:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA157_1 = input.LA(1);
+
+                         
+                        int index157_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred218_InternalCubeDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index157_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 157, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -77517,29 +78669,29 @@
     public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000060800L});
     public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
     public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000000L,0x0C00000000000400L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000000L,0x7C00000000000400L});
     public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x4000000000000000L,0x00000000000001FFL});
     public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100800L});
     public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
     public static final BitSet FOLLOW_33 = new BitSet(new long[]{0xFE00000000000000L});
     public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x01F8000000000000L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
     public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000080000000000L});
     public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000080000000002L});
     public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000400000000010L,0x4000000000000000L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000400000000010L,0x0000000000000000L,0x0000000000000002L});
     public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
     public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0001000000000010L});
     public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000001000000010L});
     public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
     public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC533800400L,0x0000000000000008L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC533800400L,0x0000000000000040L});
     public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
     public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000002L,0x0000000004000000L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC531800400L,0x0000000000000008L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC531800400L,0x0000000000000040L});
     public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC539800400L,0x0000000000000008L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC539800400L,0x0000000000000040L});
     public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
     public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
     public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0001E00000000010L});
@@ -77569,42 +78721,42 @@
     public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
     public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
     public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000060000000000L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000080000000000L,0x8000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000080000000002L,0x8000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000080000000000L,0x8000000000000000L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x000000000000000CL});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000080000000002L,0x0000000000000000L,0x000000000000000CL});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000000L,0x0000000000000004L});
     public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0003E00008000010L});
     public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000000L,0x0000000021000000L});
     public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000080000010L,0x0004000001000000L});
     public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000004000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0007E10C880001F0L,0x00017FC533800400L,0x000000000000000AL});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC531800C00L,0x0000000000000008L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0007F10C880001F0L,0x00017FC531800400L,0x000000000000000EL});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0007E10C880001F0L,0x00017FC533800400L,0x0000000000000050L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC531800C00L,0x0000000000000040L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0007F10C880001F0L,0x00017FC531800400L,0x0000000000000070L});
     public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000080000010L,0x0000000001000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0007F10C080001F2L,0x00017FC531800400L,0x000000000000000CL});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000080000010L,0x0000000001000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0007F10C080001F2L,0x00017FC531800400L,0x0000000000000060L});
     public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
     public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
     public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
     public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
-    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0007E10C880001F0L,0x00017FC531800400L,0x0000000000000008L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0007E10C880001F0L,0x00017FC531800400L,0x0000000000000040L});
     public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000080000010L,0x0000003805000800L});
     public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000080000012L,0x0000002805000000L});
     public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
     public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000080000010L,0x0000002805000000L});
     public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0007F10C080001F0L,0x00017FC531C00400L,0x000000000000000CL});
-    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC531C00400L,0x0000000000000008L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0007F10C080001F0L,0x00017FC531800400L,0x000000000000000CL});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0007F10C080001F0L,0x00017FC531C00400L,0x0000000000000060L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0007E10C080001F0L,0x00017FC531C00400L,0x0000000000000040L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0007F10C080001F0L,0x00017FC531800400L,0x0000000000000060L});
     public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
     public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0007F10C080001F0L,0x00017FC531800C00L,0x000000000000000CL});
-    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000100000000000L,0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0007F10C080001F0L,0x00017FC531800C00L,0x0000000000000060L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000100000000000L,0x0000000000000000L,0x0000000000000020L});
     public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
     public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000008000000L,0x0000000021000000L});
-    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
     public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x00000000000001C0L});
-    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x00040000000001E0L,0x00000C0030000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x00040000000001E0L,0x00000C0030000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000000000000L,0x0000000022000000L});
     public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
     public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
diff --git a/org.eclipse.osbp.xtext.cubedsl.tests/src-gen/org/eclipse/osbp/xtext/cubedsl/tests/CubeDSLInjectorProvider.java b/org.eclipse.osbp.xtext.cubedsl.tests/src-gen/org/eclipse/osbp/xtext/cubedsl/tests/CubeDSLInjectorProvider.java
index ebea7a9..fb829d0 100644
--- a/org.eclipse.osbp.xtext.cubedsl.tests/src-gen/org/eclipse/osbp/xtext/cubedsl/tests/CubeDSLInjectorProvider.java
+++ b/org.eclipse.osbp.xtext.cubedsl.tests/src-gen/org/eclipse/osbp/xtext/cubedsl/tests/CubeDSLInjectorProvider.java
@@ -15,6 +15,7 @@
  * generated by Xtext 2.11.0
  *
  */
+
 package org.eclipse.osbp.xtext.cubedsl.tests;
 
 import com.google.inject.Guice;
diff --git a/org.eclipse.osbp.xtext.cubedsl.ui/src-gen/org/eclipse/osbp/xtext/cubedsl/ui/contentassist/AbstractCubeDSLProposalProvider.java b/org.eclipse.osbp.xtext.cubedsl.ui/src-gen/org/eclipse/osbp/xtext/cubedsl/ui/contentassist/AbstractCubeDSLProposalProvider.java
index e557dbe..dce4715 100644
--- a/org.eclipse.osbp.xtext.cubedsl.ui/src-gen/org/eclipse/osbp/xtext/cubedsl/ui/contentassist/AbstractCubeDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.cubedsl.ui/src-gen/org/eclipse/osbp/xtext/cubedsl/ui/contentassist/AbstractCubeDSLProposalProvider.java
@@ -141,6 +141,24 @@
 	public void completeCubeLevel_LevelColValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeCubeLevel_NameColumn(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeCubeLevel_LevelNameColValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeCubeLevel_CaptionColumn(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeCubeLevel_LevelCaptionColValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeCubeLevel_OrdinalColumn(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeCubeLevel_LevelOrdinalColValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeCubeLevel_UniqueMembers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
diff --git a/org.eclipse.osbp.xtext.cubedsl/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.cubedsl/META-INF/MANIFEST.MF
index 03487bd..dc3917c 100644
--- a/org.eclipse.osbp.xtext.cubedsl/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.cubedsl/META-INF/MANIFEST.MF
@@ -41,9 +41,9 @@
  org.eclipse.osbp.xtext.builder.types.bundles;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.builder.types.loader.api;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.builder.types.loader.runtime;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.xtext.builder.xbase.setups;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.xtend.lib
+ org.eclipse.xtend.lib,
+ org.eclipse.osbp.xtext.builder.xbase.setups
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Export-Package: org.eclipse.osbp.xtext.cubedsl;version="0.9.0",
  org.eclipse.osbp.xtext.cubedsl.formatting;version="0.9.0",
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeAggregatorEnum.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeAggregatorEnum.java
index c5077a5..507eacc 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeAggregatorEnum.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeAggregatorEnum.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeBase.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeBase.java
index 5e06c3a..40b4305 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeBase.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeBase.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSLFactory.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSLFactory.java
index 24ce87b..44a48b1 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSLFactory.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSLFactory.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSLPackage.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSLPackage.java
index 01e31df..d96496b 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSLPackage.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSLPackage.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
@@ -39,9 +39,7 @@
  * <!-- end-user-doc -->
  * @see org.eclipse.osbp.xtext.cubedsl.CubeDSLFactory
  * @model kind="package"
-n https://www.eclipse.org/legal/epl-2.0/ \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tJos\351 C. Dom\355nguez - Initial implementation\r\n ' basePackage='org.eclipse.osbp.xtext'"
-n \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tJos\351 C. Dom\355nguez - Initial implementation\r\n ' basePackage='org.eclipse.osbp.xtext'"
-n SPDX-License-Identifier: EPL-2.0 \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tJos\351 C. Dom\355nguez - Initial implementation\r\n ' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='cube' modelName='CubeDSL' prefix='CubeDSL' updateClasspath='false' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\n All rights reserved. This program and the accompanying materials \n are made available under the terms of the Eclipse Public License 2.0  \n which accompanies this distribution, and is available at \n https://www.eclipse.org/legal/epl-2.0/ \n \n SPDX-License-Identifier: EPL-2.0 \n\n Based on ideas from Xtext, Xtend, Xcore\n  \n Contributors:  \n \t\tJos\351 C. Dom\355nguez - Initial implementation\n ' basePackage='org.eclipse.osbp.xtext'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='cubeDSL'"
  * @generated
  */
@@ -223,7 +221,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUBE_PACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int CUBE_PACKAGE___ERESOLVE_PROXY__OBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Cube Package</em>' class.
@@ -948,13 +946,67 @@
 	int CUBE_LEVEL__LEVEL_TYPE = CUBE_BASE_FEATURE_COUNT + 1;
 
 	/**
+	 * The feature id for the '<em><b>Name Column</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUBE_LEVEL__NAME_COLUMN = CUBE_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Caption Column</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUBE_LEVEL__CAPTION_COLUMN = CUBE_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Ordinal Column</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUBE_LEVEL__ORDINAL_COLUMN = CUBE_BASE_FEATURE_COUNT + 4;
+
+	/**
 	 * The feature id for the '<em><b>Level Col Value</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CUBE_LEVEL__LEVEL_COL_VALUE = CUBE_BASE_FEATURE_COUNT + 2;
+	int CUBE_LEVEL__LEVEL_COL_VALUE = CUBE_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Level Name Col Value</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUBE_LEVEL__LEVEL_NAME_COL_VALUE = CUBE_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Level Caption Col Value</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE = CUBE_BASE_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Level Ordinal Col Value</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE = CUBE_BASE_FEATURE_COUNT + 8;
 
 	/**
 	 * The feature id for the '<em><b>Level Type Value</b></em>' attribute.
@@ -963,7 +1015,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUBE_LEVEL__LEVEL_TYPE_VALUE = CUBE_BASE_FEATURE_COUNT + 3;
+	int CUBE_LEVEL__LEVEL_TYPE_VALUE = CUBE_BASE_FEATURE_COUNT + 9;
 
 	/**
 	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
@@ -972,7 +1024,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUBE_LEVEL__PROPERTIES = CUBE_BASE_FEATURE_COUNT + 4;
+	int CUBE_LEVEL__PROPERTIES = CUBE_BASE_FEATURE_COUNT + 10;
 
 	/**
 	 * The number of structural features of the '<em>Cube Level</em>' class.
@@ -981,7 +1033,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUBE_LEVEL_FEATURE_COUNT = CUBE_BASE_FEATURE_COUNT + 5;
+	int CUBE_LEVEL_FEATURE_COUNT = CUBE_BASE_FEATURE_COUNT + 11;
 
 	/**
 	 * The operation id for the '<em>EResolve Proxy</em>' operation.
@@ -1680,6 +1732,39 @@
 	EAttribute getCubeLevel_LevelType();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isNameColumn <em>Name Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name Column</em>'.
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeLevel#isNameColumn()
+	 * @see #getCubeLevel()
+	 * @generated
+	 */
+	EAttribute getCubeLevel_NameColumn();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isCaptionColumn <em>Caption Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Caption Column</em>'.
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeLevel#isCaptionColumn()
+	 * @see #getCubeLevel()
+	 * @generated
+	 */
+	EAttribute getCubeLevel_CaptionColumn();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isOrdinalColumn <em>Ordinal Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Ordinal Column</em>'.
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeLevel#isOrdinalColumn()
+	 * @see #getCubeLevel()
+	 * @generated
+	 */
+	EAttribute getCubeLevel_OrdinalColumn();
+
+	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelColValue <em>Level Col Value</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1691,6 +1776,39 @@
 	EReference getCubeLevel_LevelColValue();
 
 	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelNameColValue <em>Level Name Col Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Level Name Col Value</em>'.
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelNameColValue()
+	 * @see #getCubeLevel()
+	 * @generated
+	 */
+	EReference getCubeLevel_LevelNameColValue();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelCaptionColValue <em>Level Caption Col Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Level Caption Col Value</em>'.
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelCaptionColValue()
+	 * @see #getCubeLevel()
+	 * @generated
+	 */
+	EReference getCubeLevel_LevelCaptionColValue();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelOrdinalColValue <em>Level Ordinal Col Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Level Ordinal Col Value</em>'.
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelOrdinalColValue()
+	 * @see #getCubeLevel()
+	 * @generated
+	 */
+	EReference getCubeLevel_LevelOrdinalColValue();
+
+	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelTypeValue <em>Level Type Value</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2259,6 +2377,30 @@
 		EAttribute CUBE_LEVEL__LEVEL_TYPE = eINSTANCE.getCubeLevel_LevelType();
 
 		/**
+		 * The meta object literal for the '<em><b>Name Column</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CUBE_LEVEL__NAME_COLUMN = eINSTANCE.getCubeLevel_NameColumn();
+
+		/**
+		 * The meta object literal for the '<em><b>Caption Column</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CUBE_LEVEL__CAPTION_COLUMN = eINSTANCE.getCubeLevel_CaptionColumn();
+
+		/**
+		 * The meta object literal for the '<em><b>Ordinal Column</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CUBE_LEVEL__ORDINAL_COLUMN = eINSTANCE.getCubeLevel_OrdinalColumn();
+
+		/**
 		 * The meta object literal for the '<em><b>Level Col Value</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -2267,6 +2409,30 @@
 		EReference CUBE_LEVEL__LEVEL_COL_VALUE = eINSTANCE.getCubeLevel_LevelColValue();
 
 		/**
+		 * The meta object literal for the '<em><b>Level Name Col Value</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CUBE_LEVEL__LEVEL_NAME_COL_VALUE = eINSTANCE.getCubeLevel_LevelNameColValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Level Caption Col Value</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE = eINSTANCE.getCubeLevel_LevelCaptionColValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Level Ordinal Col Value</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE = eINSTANCE.getCubeLevel_LevelOrdinalColValue();
+
+		/**
 		 * The meta object literal for the '<em><b>Level Type Value</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimension.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimension.java
index 89ea5f2..4e3a796 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimension.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimension.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionEntity.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionEntity.java
index 69b88fb..5d3cfb5 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionEntity.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionEntity.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionEntityEntity.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionEntityEntity.java
index 7d52297..5db2b82 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionEntityEntity.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionEntityEntity.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionUsage.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionUsage.java
index 2777a54..e50eb94 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionUsage.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeDimensionUsage.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeEntity.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeEntity.java
index c940a72..2e028b7 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeEntity.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeEntity.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeEntityRef.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeEntityRef.java
index 3bd07b5..8ccf369 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeEntityRef.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeEntityRef.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeHierarchy.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeHierarchy.java
index efb33d3..b84af0d 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeHierarchy.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeHierarchy.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLazyResolver.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLazyResolver.java
index 0bc1d3a..f67dc1a 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLazyResolver.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLazyResolver.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevel.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevel.java
index 367ca2c..94b34f1 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevel.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevel.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
@@ -30,7 +30,13 @@
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isUniqueMembers <em>Unique Members</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isLevelType <em>Level Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isNameColumn <em>Name Column</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isCaptionColumn <em>Caption Column</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isOrdinalColumn <em>Ordinal Column</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelColValue <em>Level Col Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelNameColValue <em>Level Name Col Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelCaptionColValue <em>Level Caption Col Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelOrdinalColValue <em>Level Ordinal Col Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelTypeValue <em>Level Type Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getProperties <em>Properties</em>}</li>
  * </ul>
@@ -93,6 +99,84 @@
 	void setLevelType(boolean value);
 
 	/**
+	 * Returns the value of the '<em><b>Name Column</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name Column</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name Column</em>' attribute.
+	 * @see #setNameColumn(boolean)
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage#getCubeLevel_NameColumn()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isNameColumn();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isNameColumn <em>Name Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name Column</em>' attribute.
+	 * @see #isNameColumn()
+	 * @generated
+	 */
+	void setNameColumn(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Caption Column</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Caption Column</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Caption Column</em>' attribute.
+	 * @see #setCaptionColumn(boolean)
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage#getCubeLevel_CaptionColumn()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isCaptionColumn();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isCaptionColumn <em>Caption Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Caption Column</em>' attribute.
+	 * @see #isCaptionColumn()
+	 * @generated
+	 */
+	void setCaptionColumn(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Ordinal Column</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Ordinal Column</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ordinal Column</em>' attribute.
+	 * @see #setOrdinalColumn(boolean)
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage#getCubeLevel_OrdinalColumn()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isOrdinalColumn();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#isOrdinalColumn <em>Ordinal Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ordinal Column</em>' attribute.
+	 * @see #isOrdinalColumn()
+	 * @generated
+	 */
+	void setOrdinalColumn(boolean value);
+
+	/**
 	 * Returns the value of the '<em><b>Level Col Value</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -119,6 +203,84 @@
 	void setLevelColValue(LEntityFeature value);
 
 	/**
+	 * Returns the value of the '<em><b>Level Name Col Value</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Level Name Col Value</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Level Name Col Value</em>' reference.
+	 * @see #setLevelNameColValue(LEntityFeature)
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage#getCubeLevel_LevelNameColValue()
+	 * @model
+	 * @generated
+	 */
+	LEntityFeature getLevelNameColValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelNameColValue <em>Level Name Col Value</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Level Name Col Value</em>' reference.
+	 * @see #getLevelNameColValue()
+	 * @generated
+	 */
+	void setLevelNameColValue(LEntityFeature value);
+
+	/**
+	 * Returns the value of the '<em><b>Level Caption Col Value</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Level Caption Col Value</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Level Caption Col Value</em>' reference.
+	 * @see #setLevelCaptionColValue(LEntityFeature)
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage#getCubeLevel_LevelCaptionColValue()
+	 * @model
+	 * @generated
+	 */
+	LEntityFeature getLevelCaptionColValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelCaptionColValue <em>Level Caption Col Value</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Level Caption Col Value</em>' reference.
+	 * @see #getLevelCaptionColValue()
+	 * @generated
+	 */
+	void setLevelCaptionColValue(LEntityFeature value);
+
+	/**
+	 * Returns the value of the '<em><b>Level Ordinal Col Value</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Level Ordinal Col Value</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Level Ordinal Col Value</em>' reference.
+	 * @see #setLevelOrdinalColValue(LEntityFeature)
+	 * @see org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage#getCubeLevel_LevelOrdinalColValue()
+	 * @model
+	 * @generated
+	 */
+	LEntityFeature getLevelOrdinalColValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.cubedsl.CubeLevel#getLevelOrdinalColValue <em>Level Ordinal Col Value</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Level Ordinal Col Value</em>' reference.
+	 * @see #getLevelOrdinalColValue()
+	 * @generated
+	 */
+	void setLevelOrdinalColValue(LEntityFeature value);
+
+	/**
 	 * Returns the value of the '<em><b>Level Type Value</b></em>' attribute.
 	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.cubedsl.CubeLevelLevelType}.
 	 * <!-- begin-user-doc -->
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelLevelType.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelLevelType.java
index 8d3ee58..fc7eb8e 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelLevelType.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelLevelType.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelProp.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelProp.java
index b000463..e00411e 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelProp.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelProp.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelPropType.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelPropType.java
index b2af745..4d39f32 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelPropType.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeLevelPropType.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeMeasure.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeMeasure.java
index 684fcee..7f1404d 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeMeasure.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeMeasure.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeModel.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeModel.java
index e766583..7550001 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeModel.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeModel.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubePackage.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubePackage.java
index 60d61ec..8974ed4 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubePackage.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubePackage.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeType.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeType.java
index 3cfe8cc..453fcf5 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeType.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeType.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeTypeEntity.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeTypeEntity.java
index 116e470..c386ba1 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeTypeEntity.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/CubeTypeEntity.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeBaseImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeBaseImpl.java
index 59d3547..1eec7b0 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeBaseImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeBaseImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDSLFactoryImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDSLFactoryImpl.java
index b05cde8..50e5f3c 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDSLFactoryImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDSLFactoryImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDSLPackageImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDSLPackageImpl.java
index 9a4eecc..1911611 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDSLPackageImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDSLPackageImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
@@ -685,8 +685,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getCubeLevel_LevelColValue() {
-		return (EReference)cubeLevelEClass.getEStructuralFeatures().get(2);
+	public EAttribute getCubeLevel_NameColumn() {
+		return (EAttribute)cubeLevelEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -694,7 +694,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getCubeLevel_LevelTypeValue() {
+	public EAttribute getCubeLevel_CaptionColumn() {
 		return (EAttribute)cubeLevelEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -703,8 +703,62 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getCubeLevel_OrdinalColumn() {
+		return (EAttribute)cubeLevelEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCubeLevel_LevelColValue() {
+		return (EReference)cubeLevelEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCubeLevel_LevelNameColValue() {
+		return (EReference)cubeLevelEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCubeLevel_LevelCaptionColValue() {
+		return (EReference)cubeLevelEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCubeLevel_LevelOrdinalColValue() {
+		return (EReference)cubeLevelEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCubeLevel_LevelTypeValue() {
+		return (EAttribute)cubeLevelEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EReference getCubeLevel_Properties() {
-		return (EReference)cubeLevelEClass.getEStructuralFeatures().get(4);
+		return (EReference)cubeLevelEClass.getEStructuralFeatures().get(10);
 	}
 
 	/**
@@ -902,7 +956,13 @@
 		cubeLevelEClass = createEClass(CUBE_LEVEL);
 		createEAttribute(cubeLevelEClass, CUBE_LEVEL__UNIQUE_MEMBERS);
 		createEAttribute(cubeLevelEClass, CUBE_LEVEL__LEVEL_TYPE);
+		createEAttribute(cubeLevelEClass, CUBE_LEVEL__NAME_COLUMN);
+		createEAttribute(cubeLevelEClass, CUBE_LEVEL__CAPTION_COLUMN);
+		createEAttribute(cubeLevelEClass, CUBE_LEVEL__ORDINAL_COLUMN);
 		createEReference(cubeLevelEClass, CUBE_LEVEL__LEVEL_COL_VALUE);
+		createEReference(cubeLevelEClass, CUBE_LEVEL__LEVEL_NAME_COL_VALUE);
+		createEReference(cubeLevelEClass, CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE);
+		createEReference(cubeLevelEClass, CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE);
 		createEAttribute(cubeLevelEClass, CUBE_LEVEL__LEVEL_TYPE_VALUE);
 		createEReference(cubeLevelEClass, CUBE_LEVEL__PROPERTIES);
 
@@ -1037,7 +1097,13 @@
 		initEClass(cubeLevelEClass, CubeLevel.class, "CubeLevel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getCubeLevel_UniqueMembers(), theEcorePackage.getEBoolean(), "uniqueMembers", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getCubeLevel_LevelType(), theEcorePackage.getEBoolean(), "levelType", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCubeLevel_NameColumn(), theEcorePackage.getEBoolean(), "nameColumn", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCubeLevel_CaptionColumn(), theEcorePackage.getEBoolean(), "captionColumn", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCubeLevel_OrdinalColumn(), theEcorePackage.getEBoolean(), "ordinalColumn", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCubeLevel_LevelColValue(), theOSBPEntityPackage.getLEntityFeature(), null, "levelColValue", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getCubeLevel_LevelNameColValue(), theOSBPEntityPackage.getLEntityFeature(), null, "levelNameColValue", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getCubeLevel_LevelCaptionColValue(), theOSBPEntityPackage.getLEntityFeature(), null, "levelCaptionColValue", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getCubeLevel_LevelOrdinalColValue(), theOSBPEntityPackage.getLEntityFeature(), null, "levelOrdinalColValue", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getCubeLevel_LevelTypeValue(), this.getCubeLevelLevelType(), "levelTypeValue", null, 0, 1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCubeLevel_Properties(), this.getCubeLevelProp(), null, "properties", null, 0, -1, CubeLevel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionEntityEntityImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionEntityEntityImpl.java
index d0bdda4..854d75a 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionEntityEntityImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionEntityEntityImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionEntityImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionEntityImpl.java
index 37eb3dc..085336e 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionEntityImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionEntityImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionImpl.java
index 044d570..c1d4d8b 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionUsageImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionUsageImpl.java
index bded5d0..b805fbb 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionUsageImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeDimensionUsageImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeEntityImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeEntityImpl.java
index 9951e1f..b9580ff 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeEntityImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeEntityImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeEntityRefImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeEntityRefImpl.java
index e1e7f52..004e96a 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeEntityRefImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeEntityRefImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeHierarchyImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeHierarchyImpl.java
index 927f971..8ecefb0 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeHierarchyImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeHierarchyImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLazyResolverImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLazyResolverImpl.java
index 03c2393..9dc6803 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLazyResolverImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLazyResolverImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLevelImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLevelImpl.java
index 7540b8b..8e72452 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLevelImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLevelImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
@@ -47,7 +47,13 @@
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#isUniqueMembers <em>Unique Members</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#isLevelType <em>Level Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#isNameColumn <em>Name Column</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#isCaptionColumn <em>Caption Column</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#isOrdinalColumn <em>Ordinal Column</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#getLevelColValue <em>Level Col Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#getLevelNameColValue <em>Level Name Col Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#getLevelCaptionColValue <em>Level Caption Col Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#getLevelOrdinalColValue <em>Level Ordinal Col Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#getLevelTypeValue <em>Level Type Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.cubedsl.impl.CubeLevelImpl#getProperties <em>Properties</em>}</li>
  * </ul>
@@ -96,6 +102,66 @@
 	protected boolean levelType = LEVEL_TYPE_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #isNameColumn() <em>Name Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNameColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean NAME_COLUMN_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isNameColumn() <em>Name Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNameColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean nameColumn = NAME_COLUMN_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCaptionColumn() <em>Caption Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCaptionColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CAPTION_COLUMN_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCaptionColumn() <em>Caption Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCaptionColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean captionColumn = CAPTION_COLUMN_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isOrdinalColumn() <em>Ordinal Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOrdinalColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ORDINAL_COLUMN_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isOrdinalColumn() <em>Ordinal Column</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOrdinalColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean ordinalColumn = ORDINAL_COLUMN_EDEFAULT;
+
+	/**
 	 * The cached value of the '{@link #getLevelColValue() <em>Level Col Value</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -106,6 +172,36 @@
 	protected LEntityFeature levelColValue;
 
 	/**
+	 * The cached value of the '{@link #getLevelNameColValue() <em>Level Name Col Value</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLevelNameColValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityFeature levelNameColValue;
+
+	/**
+	 * The cached value of the '{@link #getLevelCaptionColValue() <em>Level Caption Col Value</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLevelCaptionColValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityFeature levelCaptionColValue;
+
+	/**
+	 * The cached value of the '{@link #getLevelOrdinalColValue() <em>Level Ordinal Col Value</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLevelOrdinalColValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityFeature levelOrdinalColValue;
+
+	/**
 	 * The default value of the '{@link #getLevelTypeValue() <em>Level Type Value</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -201,6 +297,69 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean isNameColumn() {
+		return nameColumn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNameColumn(boolean newNameColumn) {
+		boolean oldNameColumn = nameColumn;
+		nameColumn = newNameColumn;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CubeDSLPackage.CUBE_LEVEL__NAME_COLUMN, oldNameColumn, nameColumn));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCaptionColumn() {
+		return captionColumn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCaptionColumn(boolean newCaptionColumn) {
+		boolean oldCaptionColumn = captionColumn;
+		captionColumn = newCaptionColumn;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CubeDSLPackage.CUBE_LEVEL__CAPTION_COLUMN, oldCaptionColumn, captionColumn));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isOrdinalColumn() {
+		return ordinalColumn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrdinalColumn(boolean newOrdinalColumn) {
+		boolean oldOrdinalColumn = ordinalColumn;
+		ordinalColumn = newOrdinalColumn;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CubeDSLPackage.CUBE_LEVEL__ORDINAL_COLUMN, oldOrdinalColumn, ordinalColumn));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public LEntityFeature getLevelColValue() {
 		if (levelColValue != null && levelColValue.eIsProxy()) {
 			InternalEObject oldLevelColValue = (InternalEObject)levelColValue;
@@ -239,6 +398,120 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public LEntityFeature getLevelNameColValue() {
+		if (levelNameColValue != null && levelNameColValue.eIsProxy()) {
+			InternalEObject oldLevelNameColValue = (InternalEObject)levelNameColValue;
+			levelNameColValue = (LEntityFeature)eResolveProxy(oldLevelNameColValue);
+			if (levelNameColValue != oldLevelNameColValue) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CubeDSLPackage.CUBE_LEVEL__LEVEL_NAME_COL_VALUE, oldLevelNameColValue, levelNameColValue));
+			}
+		}
+		return levelNameColValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityFeature basicGetLevelNameColValue() {
+		return levelNameColValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLevelNameColValue(LEntityFeature newLevelNameColValue) {
+		LEntityFeature oldLevelNameColValue = levelNameColValue;
+		levelNameColValue = newLevelNameColValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CubeDSLPackage.CUBE_LEVEL__LEVEL_NAME_COL_VALUE, oldLevelNameColValue, levelNameColValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityFeature getLevelCaptionColValue() {
+		if (levelCaptionColValue != null && levelCaptionColValue.eIsProxy()) {
+			InternalEObject oldLevelCaptionColValue = (InternalEObject)levelCaptionColValue;
+			levelCaptionColValue = (LEntityFeature)eResolveProxy(oldLevelCaptionColValue);
+			if (levelCaptionColValue != oldLevelCaptionColValue) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CubeDSLPackage.CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE, oldLevelCaptionColValue, levelCaptionColValue));
+			}
+		}
+		return levelCaptionColValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityFeature basicGetLevelCaptionColValue() {
+		return levelCaptionColValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLevelCaptionColValue(LEntityFeature newLevelCaptionColValue) {
+		LEntityFeature oldLevelCaptionColValue = levelCaptionColValue;
+		levelCaptionColValue = newLevelCaptionColValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CubeDSLPackage.CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE, oldLevelCaptionColValue, levelCaptionColValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityFeature getLevelOrdinalColValue() {
+		if (levelOrdinalColValue != null && levelOrdinalColValue.eIsProxy()) {
+			InternalEObject oldLevelOrdinalColValue = (InternalEObject)levelOrdinalColValue;
+			levelOrdinalColValue = (LEntityFeature)eResolveProxy(oldLevelOrdinalColValue);
+			if (levelOrdinalColValue != oldLevelOrdinalColValue) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, CubeDSLPackage.CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE, oldLevelOrdinalColValue, levelOrdinalColValue));
+			}
+		}
+		return levelOrdinalColValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityFeature basicGetLevelOrdinalColValue() {
+		return levelOrdinalColValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLevelOrdinalColValue(LEntityFeature newLevelOrdinalColValue) {
+		LEntityFeature oldLevelOrdinalColValue = levelOrdinalColValue;
+		levelOrdinalColValue = newLevelOrdinalColValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CubeDSLPackage.CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE, oldLevelOrdinalColValue, levelOrdinalColValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public CubeLevelLevelType getLevelTypeValue() {
 		return levelTypeValue;
 	}
@@ -293,9 +566,24 @@
 				return isUniqueMembers();
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_TYPE:
 				return isLevelType();
+			case CubeDSLPackage.CUBE_LEVEL__NAME_COLUMN:
+				return isNameColumn();
+			case CubeDSLPackage.CUBE_LEVEL__CAPTION_COLUMN:
+				return isCaptionColumn();
+			case CubeDSLPackage.CUBE_LEVEL__ORDINAL_COLUMN:
+				return isOrdinalColumn();
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_COL_VALUE:
 				if (resolve) return getLevelColValue();
 				return basicGetLevelColValue();
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_NAME_COL_VALUE:
+				if (resolve) return getLevelNameColValue();
+				return basicGetLevelNameColValue();
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE:
+				if (resolve) return getLevelCaptionColValue();
+				return basicGetLevelCaptionColValue();
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE:
+				if (resolve) return getLevelOrdinalColValue();
+				return basicGetLevelOrdinalColValue();
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_TYPE_VALUE:
 				return getLevelTypeValue();
 			case CubeDSLPackage.CUBE_LEVEL__PROPERTIES:
@@ -319,9 +607,27 @@
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_TYPE:
 				setLevelType((Boolean)newValue);
 				return;
+			case CubeDSLPackage.CUBE_LEVEL__NAME_COLUMN:
+				setNameColumn((Boolean)newValue);
+				return;
+			case CubeDSLPackage.CUBE_LEVEL__CAPTION_COLUMN:
+				setCaptionColumn((Boolean)newValue);
+				return;
+			case CubeDSLPackage.CUBE_LEVEL__ORDINAL_COLUMN:
+				setOrdinalColumn((Boolean)newValue);
+				return;
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_COL_VALUE:
 				setLevelColValue((LEntityFeature)newValue);
 				return;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_NAME_COL_VALUE:
+				setLevelNameColValue((LEntityFeature)newValue);
+				return;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE:
+				setLevelCaptionColValue((LEntityFeature)newValue);
+				return;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE:
+				setLevelOrdinalColValue((LEntityFeature)newValue);
+				return;
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_TYPE_VALUE:
 				setLevelTypeValue((CubeLevelLevelType)newValue);
 				return;
@@ -347,9 +653,27 @@
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_TYPE:
 				setLevelType(LEVEL_TYPE_EDEFAULT);
 				return;
+			case CubeDSLPackage.CUBE_LEVEL__NAME_COLUMN:
+				setNameColumn(NAME_COLUMN_EDEFAULT);
+				return;
+			case CubeDSLPackage.CUBE_LEVEL__CAPTION_COLUMN:
+				setCaptionColumn(CAPTION_COLUMN_EDEFAULT);
+				return;
+			case CubeDSLPackage.CUBE_LEVEL__ORDINAL_COLUMN:
+				setOrdinalColumn(ORDINAL_COLUMN_EDEFAULT);
+				return;
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_COL_VALUE:
 				setLevelColValue((LEntityFeature)null);
 				return;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_NAME_COL_VALUE:
+				setLevelNameColValue((LEntityFeature)null);
+				return;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE:
+				setLevelCaptionColValue((LEntityFeature)null);
+				return;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE:
+				setLevelOrdinalColValue((LEntityFeature)null);
+				return;
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_TYPE_VALUE:
 				setLevelTypeValue(LEVEL_TYPE_VALUE_EDEFAULT);
 				return;
@@ -372,8 +696,20 @@
 				return uniqueMembers != UNIQUE_MEMBERS_EDEFAULT;
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_TYPE:
 				return levelType != LEVEL_TYPE_EDEFAULT;
+			case CubeDSLPackage.CUBE_LEVEL__NAME_COLUMN:
+				return nameColumn != NAME_COLUMN_EDEFAULT;
+			case CubeDSLPackage.CUBE_LEVEL__CAPTION_COLUMN:
+				return captionColumn != CAPTION_COLUMN_EDEFAULT;
+			case CubeDSLPackage.CUBE_LEVEL__ORDINAL_COLUMN:
+				return ordinalColumn != ORDINAL_COLUMN_EDEFAULT;
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_COL_VALUE:
 				return levelColValue != null;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_NAME_COL_VALUE:
+				return levelNameColValue != null;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE:
+				return levelCaptionColValue != null;
+			case CubeDSLPackage.CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE:
+				return levelOrdinalColValue != null;
 			case CubeDSLPackage.CUBE_LEVEL__LEVEL_TYPE_VALUE:
 				return levelTypeValue != LEVEL_TYPE_VALUE_EDEFAULT;
 			case CubeDSLPackage.CUBE_LEVEL__PROPERTIES:
@@ -396,6 +732,12 @@
 		result.append(uniqueMembers);
 		result.append(", levelType: ");
 		result.append(levelType);
+		result.append(", nameColumn: ");
+		result.append(nameColumn);
+		result.append(", captionColumn: ");
+		result.append(captionColumn);
+		result.append(", ordinalColumn: ");
+		result.append(ordinalColumn);
 		result.append(", levelTypeValue: ");
 		result.append(levelTypeValue);
 		result.append(')');
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLevelPropImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLevelPropImpl.java
index e3bba51..bdc926e 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLevelPropImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeLevelPropImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeMeasureImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeMeasureImpl.java
index e5bf02e..103cf90 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeMeasureImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeMeasureImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeModelImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeModelImpl.java
index 913caaa..4409752 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeModelImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeModelImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubePackageImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubePackageImpl.java
index d1db247..5900669 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubePackageImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubePackageImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeTypeEntityImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeTypeEntityImpl.java
index fbbd51e..b20ea91 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeTypeEntityImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeTypeEntityImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeTypeImpl.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeTypeImpl.java
index bcd4d0d..ffd1c2a 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeTypeImpl.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/impl/CubeTypeImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/util/CubeDSLAdapterFactory.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/util/CubeDSLAdapterFactory.java
index f0202d8..bb697fc 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/util/CubeDSLAdapterFactory.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/util/CubeDSLAdapterFactory.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/util/CubeDSLSwitch.java b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/util/CubeDSLSwitch.java
index 8f84f1b..cea7f37 100644
--- a/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/util/CubeDSLSwitch.java
+++ b/org.eclipse.osbp.xtext.cubedsl/emf-gen/org/eclipse/osbp/xtext/cubedsl/util/CubeDSLSwitch.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.cubedsl/model/CubeDSL.xcore b/org.eclipse.osbp.xtext.cubedsl/model/CubeDSL.xcore
index 424298e..ac83e6b 100644
--- a/org.eclipse.osbp.xtext.cubedsl/model/CubeDSL.xcore
+++ b/org.eclipse.osbp.xtext.cubedsl/model/CubeDSL.xcore
@@ -107,7 +107,13 @@
 class CubeLevel extends CubeBase {
 	boolean uniqueMembers
 	boolean levelType
+	boolean nameColumn
+	boolean captionColumn
+	boolean ordinalColumn
 	refers LEntityFeature levelColValue
+	refers LEntityFeature levelNameColValue
+	refers LEntityFeature levelCaptionColValue
+	refers LEntityFeature levelOrdinalColValue
 	CubeLevelLevelType levelTypeValue
 	contains CubeLevelProp[] properties
 }
diff --git a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSL.xtextbin b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSL.xtextbin
index 2ef5a2f..570929b 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSL.xtextbin
+++ b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/CubeDSL.xtextbin
Binary files differ
diff --git a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSL.g b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSL.g
index f1ffb3b..c910751 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSL.g
+++ b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSL.g
@@ -3,9 +3,11 @@
  *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
  *                                                                            
  *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
+ *  are made available under the terms of the Eclipse Public License 2.0        
  *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *  https://www.eclipse.org/legal/epl-2.0/                                 
+ *                                 
+ *  SPDX-License-Identifier: EPL-2.0                                 
  *                                                                            
  *  Contributors:                                                      
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
@@ -1047,9 +1049,105 @@
 		)
 		(
 			(
-				lv_uniqueMembers_4_0='uniqueMembers'
+				(
+					lv_nameColumn_4_0='nameColumn'
+					{
+						newLeafNode(lv_nameColumn_4_0, grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getCubeLevelRule());
+						}
+						setWithLastConsumed($current, "nameColumn", true, "nameColumn");
+					}
+				)
+			)
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getCubeLevelRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureCrossReference_4_1_0());
+					}
+					ruleLFQN
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		(
+			(
+				(
+					lv_captionColumn_6_0='captionColumn'
+					{
+						newLeafNode(lv_captionColumn_6_0, grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getCubeLevelRule());
+						}
+						setWithLastConsumed($current, "captionColumn", true, "captionColumn");
+					}
+				)
+			)
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getCubeLevelRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureCrossReference_5_1_0());
+					}
+					ruleLFQN
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		(
+			(
+				(
+					lv_ordinalColumn_8_0='ordinalColumn'
+					{
+						newLeafNode(lv_ordinalColumn_8_0, grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getCubeLevelRule());
+						}
+						setWithLastConsumed($current, "ordinalColumn", true, "ordinalColumn");
+					}
+				)
+			)
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getCubeLevelRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0());
+					}
+					ruleLFQN
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		(
+			(
+				lv_uniqueMembers_10_0='uniqueMembers'
 				{
-					newLeafNode(lv_uniqueMembers_4_0, grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0());
+					newLeafNode(lv_uniqueMembers_10_0, grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0());
 				}
 				{
 					if ($current==null) {
@@ -1062,9 +1160,9 @@
 		(
 			(
 				(
-					lv_levelType_5_0='levelType'
+					lv_levelType_11_0='levelType'
 					{
-						newLeafNode(lv_levelType_5_0, grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0());
+						newLeafNode(lv_levelType_11_0, grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0());
 					}
 					{
 						if ($current==null) {
@@ -1077,9 +1175,9 @@
 			(
 				(
 					{
-						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0());
+						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0());
 					}
-					lv_levelTypeValue_6_0=ruleCubeLevelLevelType
+					lv_levelTypeValue_12_0=ruleCubeLevelLevelType
 					{
 						if ($current==null) {
 							$current = createModelElementForParent(grammarAccess.getCubeLevelRule());
@@ -1087,7 +1185,7 @@
 						set(
 							$current,
 							"levelTypeValue",
-							lv_levelTypeValue_6_0,
+							lv_levelTypeValue_12_0,
 							"org.eclipse.osbp.xtext.cubedsl.CubeDSL.CubeLevelLevelType");
 						afterParserOrEnumRuleCall();
 					}
@@ -1095,16 +1193,16 @@
 			)
 		)?
 		(
-			otherlv_7='{'
+			otherlv_13='{'
 			{
-				newLeafNode(otherlv_7, grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_6_0());
+				newLeafNode(otherlv_13, grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_9_0());
 			}
 			(
 				(
 					{
-						newCompositeNode(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_6_1_0());
+						newCompositeNode(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_9_1_0());
 					}
-					lv_properties_8_0=ruleCubeLevelProp
+					lv_properties_14_0=ruleCubeLevelProp
 					{
 						if ($current==null) {
 							$current = createModelElementForParent(grammarAccess.getCubeLevelRule());
@@ -1112,15 +1210,15 @@
 						add(
 							$current,
 							"properties",
-							lv_properties_8_0,
+							lv_properties_14_0,
 							"org.eclipse.osbp.xtext.cubedsl.CubeDSL.CubeLevelProp");
 						afterParserOrEnumRuleCall();
 					}
 				)
 			)*
-			otherlv_9='}'
+			otherlv_15='}'
 			{
-				newLeafNode(otherlv_9, grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_6_2());
+				newLeafNode(otherlv_15, grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_9_2());
 			}
 		)?
 	)
diff --git a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSL.tokens b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSL.tokens
index 79d3b48..7877219 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSL.tokens
+++ b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSL.tokens
@@ -1,121 +1,124 @@
-'!'=77
-'!='=62
-'!=='=64
-'#'=48
-'%'=76
-'%='=55
-'&&'=60
-'&'=109
-'('=44
-')'=46
-'*'=40
-'**'=74
-'*='=53
-'+'=72
-'++'=79
-'+='=51
-','=45
-'-'=73
-'--'=80
-'-='=52
-'->'=66
-'.'=36
-'..'=68
-'..<'=67
-'/'=75
-'/='=54
-':'=87
-'::'=81
-';'=42
-'<'=56
-'<>'=70
-'='=47
-'=='=61
-'==='=63
-'=>'=69
-'>'=57
-'>='=58
-'?'=108
-'?.'=82
-'?:'=71
-'@'=43
-'Boolean'=119
-'Date'=120
-'Integer'=118
-'Numeric'=117
-'String'=116
-'Time'=121
-'TimeDays'=128
-'TimeHalfYears'=124
-'TimeHours'=129
-'TimeMinutes'=130
-'TimeMonths'=126
-'TimeQuarters'=125
-'TimeSeconds'=131
-'TimeWeeks'=127
-'TimeYears'=123
-'Timestamp'=122
-'['=49
-']'=50
+'!'=80
+'!='=65
+'!=='=67
+'#'=51
+'%'=79
+'%='=58
+'&&'=63
+'&'=112
+'('=47
+')'=49
+'*'=43
+'**'=77
+'*='=56
+'+'=75
+'++'=82
+'+='=54
+','=48
+'-'=76
+'--'=83
+'-='=55
+'->'=69
+'.'=39
+'..'=71
+'..<'=70
+'/'=78
+'/='=57
+':'=90
+'::'=84
+';'=45
+'<'=59
+'<>'=73
+'='=50
+'=='=64
+'==='=66
+'=>'=72
+'>'=60
+'>='=61
+'?'=111
+'?.'=85
+'?:'=74
+'@'=46
+'Boolean'=122
+'Date'=123
+'Integer'=121
+'Numeric'=120
+'String'=119
+'Time'=124
+'TimeDays'=131
+'TimeHalfYears'=127
+'TimeHours'=132
+'TimeMinutes'=133
+'TimeMonths'=129
+'TimeQuarters'=128
+'TimeSeconds'=134
+'TimeWeeks'=130
+'TimeYears'=126
+'Timestamp'=125
+'['=52
+']'=53
 'allMemberName'=24
-'as'=78
-'avg'=114
-'case'=89
-'catch'=107
+'as'=81
+'avg'=117
+'captionColumn'=31
+'case'=92
+'catch'=110
 'column'=29
-'count'=111
+'count'=114
 'cube'=16
-'default'=88
+'default'=91
 'defaultMeasure'=17
 'defaultMember'=25
 'dimension'=20
 'dimensionUsage'=18
-'distinct-count'=115
-'do'=92
-'else'=85
+'distinct-count'=118
+'do'=95
+'else'=88
 'entity'=26
-'extends'=95
-'extension'=39
-'false'=98
-'finally'=105
-'for'=90
+'extends'=98
+'extension'=42
+'false'=101
+'finally'=108
+'for'=93
 'hasAll'=23
 'hierarchy'=22
-'if'=84
-'import'=37
-'instanceof'=65
+'if'=87
+'import'=40
+'instanceof'=68
 'key'=27
 'level'=28
-'levelType'=31
-'max'=113
-'measure'=34
-'min'=112
-'new'=97
-'notVisible'=35
-'ns'=41
-'null'=100
+'levelType'=34
+'max'=116
+'measure'=37
+'min'=115
+'nameColumn'=30
+'new'=100
+'notVisible'=38
+'ns'=44
+'null'=103
+'ordinalColumn'=32
 'over'=19
 'package'=13
-'property'=32
-'return'=103
-'static'=38
-'sum'=110
-'super'=96
-'switch'=86
-'synchronized'=106
-'throw'=102
-'true'=99
-'try'=104
-'type'=33
+'property'=35
+'return'=106
+'static'=41
+'sum'=113
+'super'=99
+'switch'=89
+'synchronized'=109
+'throw'=105
+'true'=102
+'try'=107
+'type'=36
 'typeTime'=21
-'typeof'=101
-'uniqueMembers'=30
-'val'=94
-'var'=93
-'while'=91
+'typeof'=104
+'uniqueMembers'=33
+'val'=97
+'var'=96
+'while'=94
 '{'=14
-'|'=83
-'||'=59
+'|'=86
+'||'=62
 '}'=15
 RULE_ANY_OTHER=12
 RULE_DECIMAL=8
@@ -158,6 +161,9 @@
 T__129=129
 T__130=130
 T__131=131
+T__132=132
+T__133=133
+T__134=134
 T__13=13
 T__14=14
 T__15=15
diff --git a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSLLexer.java b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSLLexer.java
index 3b5d6c6..c5fedd8 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSLLexer.java
+++ b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSLLexer.java
@@ -1,20 +1,3 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License 2.0        
- *  which accompanies this distribution, and is available at                  
- *  https://www.eclipse.org/legal/epl-2.0/                                 
- *                                 
- *  SPDX-License-Identifier: EPL-2.0                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- * generated by Xtext 2.11.0
- *
- */
 package org.eclipse.osbp.xtext.cubedsl.parser.antlr.internal;
 
 // Hack: Use our own Lexer superclass by means of import. 
@@ -40,8 +23,11 @@
     public static final int T__52=52;
     public static final int T__53=53;
     public static final int T__54=54;
+    public static final int T__133=133;
+    public static final int T__132=132;
     public static final int T__60=60;
     public static final int T__61=61;
+    public static final int T__134=134;
     public static final int RULE_ID=4;
     public static final int T__131=131;
     public static final int T__130=130;
@@ -532,10 +518,10 @@
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:28:7: ( 'uniqueMembers' )
-            // InternalCubeDSL.g:28:9: 'uniqueMembers'
+            // InternalCubeDSL.g:28:7: ( 'nameColumn' )
+            // InternalCubeDSL.g:28:9: 'nameColumn'
             {
-            match("uniqueMembers"); 
+            match("nameColumn"); 
 
 
             }
@@ -553,10 +539,10 @@
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:29:7: ( 'levelType' )
-            // InternalCubeDSL.g:29:9: 'levelType'
+            // InternalCubeDSL.g:29:7: ( 'captionColumn' )
+            // InternalCubeDSL.g:29:9: 'captionColumn'
             {
-            match("levelType"); 
+            match("captionColumn"); 
 
 
             }
@@ -574,10 +560,10 @@
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:30:7: ( 'property' )
-            // InternalCubeDSL.g:30:9: 'property'
+            // InternalCubeDSL.g:30:7: ( 'ordinalColumn' )
+            // InternalCubeDSL.g:30:9: 'ordinalColumn'
             {
-            match("property"); 
+            match("ordinalColumn"); 
 
 
             }
@@ -595,10 +581,10 @@
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:31:7: ( 'type' )
-            // InternalCubeDSL.g:31:9: 'type'
+            // InternalCubeDSL.g:31:7: ( 'uniqueMembers' )
+            // InternalCubeDSL.g:31:9: 'uniqueMembers'
             {
-            match("type"); 
+            match("uniqueMembers"); 
 
 
             }
@@ -616,10 +602,10 @@
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:32:7: ( 'measure' )
-            // InternalCubeDSL.g:32:9: 'measure'
+            // InternalCubeDSL.g:32:7: ( 'levelType' )
+            // InternalCubeDSL.g:32:9: 'levelType'
             {
-            match("measure"); 
+            match("levelType"); 
 
 
             }
@@ -637,10 +623,10 @@
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:33:7: ( 'notVisible' )
-            // InternalCubeDSL.g:33:9: 'notVisible'
+            // InternalCubeDSL.g:33:7: ( 'property' )
+            // InternalCubeDSL.g:33:9: 'property'
             {
-            match("notVisible"); 
+            match("property"); 
 
 
             }
@@ -658,10 +644,11 @@
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:34:7: ( '.' )
-            // InternalCubeDSL.g:34:9: '.'
+            // InternalCubeDSL.g:34:7: ( 'type' )
+            // InternalCubeDSL.g:34:9: 'type'
             {
-            match('.'); 
+            match("type"); 
+
 
             }
 
@@ -678,10 +665,10 @@
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:35:7: ( 'import' )
-            // InternalCubeDSL.g:35:9: 'import'
+            // InternalCubeDSL.g:35:7: ( 'measure' )
+            // InternalCubeDSL.g:35:9: 'measure'
             {
-            match("import"); 
+            match("measure"); 
 
 
             }
@@ -699,10 +686,10 @@
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:36:7: ( 'static' )
-            // InternalCubeDSL.g:36:9: 'static'
+            // InternalCubeDSL.g:36:7: ( 'notVisible' )
+            // InternalCubeDSL.g:36:9: 'notVisible'
             {
-            match("static"); 
+            match("notVisible"); 
 
 
             }
@@ -720,11 +707,10 @@
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:37:7: ( 'extension' )
-            // InternalCubeDSL.g:37:9: 'extension'
+            // InternalCubeDSL.g:37:7: ( '.' )
+            // InternalCubeDSL.g:37:9: '.'
             {
-            match("extension"); 
-
+            match('.'); 
 
             }
 
@@ -741,10 +727,11 @@
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:38:7: ( '*' )
-            // InternalCubeDSL.g:38:9: '*'
+            // InternalCubeDSL.g:38:7: ( 'import' )
+            // InternalCubeDSL.g:38:9: 'import'
             {
-            match('*'); 
+            match("import"); 
+
 
             }
 
@@ -761,10 +748,10 @@
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:39:7: ( 'ns' )
-            // InternalCubeDSL.g:39:9: 'ns'
+            // InternalCubeDSL.g:39:7: ( 'static' )
+            // InternalCubeDSL.g:39:9: 'static'
             {
-            match("ns"); 
+            match("static"); 
 
 
             }
@@ -782,10 +769,11 @@
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:40:7: ( ';' )
-            // InternalCubeDSL.g:40:9: ';'
+            // InternalCubeDSL.g:40:7: ( 'extension' )
+            // InternalCubeDSL.g:40:9: 'extension'
             {
-            match(';'); 
+            match("extension"); 
+
 
             }
 
@@ -802,10 +790,10 @@
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:41:7: ( '@' )
-            // InternalCubeDSL.g:41:9: '@'
+            // InternalCubeDSL.g:41:7: ( '*' )
+            // InternalCubeDSL.g:41:9: '*'
             {
-            match('@'); 
+            match('*'); 
 
             }
 
@@ -822,10 +810,11 @@
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:42:7: ( '(' )
-            // InternalCubeDSL.g:42:9: '('
+            // InternalCubeDSL.g:42:7: ( 'ns' )
+            // InternalCubeDSL.g:42:9: 'ns'
             {
-            match('('); 
+            match("ns"); 
+
 
             }
 
@@ -842,10 +831,10 @@
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:43:7: ( ',' )
-            // InternalCubeDSL.g:43:9: ','
+            // InternalCubeDSL.g:43:7: ( ';' )
+            // InternalCubeDSL.g:43:9: ';'
             {
-            match(','); 
+            match(';'); 
 
             }
 
@@ -862,10 +851,10 @@
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:44:7: ( ')' )
-            // InternalCubeDSL.g:44:9: ')'
+            // InternalCubeDSL.g:44:7: ( '@' )
+            // InternalCubeDSL.g:44:9: '@'
             {
-            match(')'); 
+            match('@'); 
 
             }
 
@@ -882,10 +871,10 @@
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:45:7: ( '=' )
-            // InternalCubeDSL.g:45:9: '='
+            // InternalCubeDSL.g:45:7: ( '(' )
+            // InternalCubeDSL.g:45:9: '('
             {
-            match('='); 
+            match('('); 
 
             }
 
@@ -902,10 +891,10 @@
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:46:7: ( '#' )
-            // InternalCubeDSL.g:46:9: '#'
+            // InternalCubeDSL.g:46:7: ( ',' )
+            // InternalCubeDSL.g:46:9: ','
             {
-            match('#'); 
+            match(','); 
 
             }
 
@@ -922,10 +911,10 @@
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:47:7: ( '[' )
-            // InternalCubeDSL.g:47:9: '['
+            // InternalCubeDSL.g:47:7: ( ')' )
+            // InternalCubeDSL.g:47:9: ')'
             {
-            match('['); 
+            match(')'); 
 
             }
 
@@ -942,10 +931,10 @@
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:48:7: ( ']' )
-            // InternalCubeDSL.g:48:9: ']'
+            // InternalCubeDSL.g:48:7: ( '=' )
+            // InternalCubeDSL.g:48:9: '='
             {
-            match(']'); 
+            match('='); 
 
             }
 
@@ -962,11 +951,10 @@
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:49:7: ( '+=' )
-            // InternalCubeDSL.g:49:9: '+='
+            // InternalCubeDSL.g:49:7: ( '#' )
+            // InternalCubeDSL.g:49:9: '#'
             {
-            match("+="); 
-
+            match('#'); 
 
             }
 
@@ -983,11 +971,10 @@
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:50:7: ( '-=' )
-            // InternalCubeDSL.g:50:9: '-='
+            // InternalCubeDSL.g:50:7: ( '[' )
+            // InternalCubeDSL.g:50:9: '['
             {
-            match("-="); 
-
+            match('['); 
 
             }
 
@@ -1004,11 +991,10 @@
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:51:7: ( '*=' )
-            // InternalCubeDSL.g:51:9: '*='
+            // InternalCubeDSL.g:51:7: ( ']' )
+            // InternalCubeDSL.g:51:9: ']'
             {
-            match("*="); 
-
+            match(']'); 
 
             }
 
@@ -1025,10 +1011,10 @@
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:52:7: ( '/=' )
-            // InternalCubeDSL.g:52:9: '/='
+            // InternalCubeDSL.g:52:7: ( '+=' )
+            // InternalCubeDSL.g:52:9: '+='
             {
-            match("/="); 
+            match("+="); 
 
 
             }
@@ -1046,10 +1032,10 @@
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:53:7: ( '%=' )
-            // InternalCubeDSL.g:53:9: '%='
+            // InternalCubeDSL.g:53:7: ( '-=' )
+            // InternalCubeDSL.g:53:9: '-='
             {
-            match("%="); 
+            match("-="); 
 
 
             }
@@ -1067,10 +1053,11 @@
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:54:7: ( '<' )
-            // InternalCubeDSL.g:54:9: '<'
+            // InternalCubeDSL.g:54:7: ( '*=' )
+            // InternalCubeDSL.g:54:9: '*='
             {
-            match('<'); 
+            match("*="); 
+
 
             }
 
@@ -1087,10 +1074,11 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:55:7: ( '>' )
-            // InternalCubeDSL.g:55:9: '>'
+            // InternalCubeDSL.g:55:7: ( '/=' )
+            // InternalCubeDSL.g:55:9: '/='
             {
-            match('>'); 
+            match("/="); 
+
 
             }
 
@@ -1107,10 +1095,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:56:7: ( '>=' )
-            // InternalCubeDSL.g:56:9: '>='
+            // InternalCubeDSL.g:56:7: ( '%=' )
+            // InternalCubeDSL.g:56:9: '%='
             {
-            match(">="); 
+            match("%="); 
 
 
             }
@@ -1128,11 +1116,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:57:7: ( '||' )
-            // InternalCubeDSL.g:57:9: '||'
+            // InternalCubeDSL.g:57:7: ( '<' )
+            // InternalCubeDSL.g:57:9: '<'
             {
-            match("||"); 
-
+            match('<'); 
 
             }
 
@@ -1149,11 +1136,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:58:7: ( '&&' )
-            // InternalCubeDSL.g:58:9: '&&'
+            // InternalCubeDSL.g:58:7: ( '>' )
+            // InternalCubeDSL.g:58:9: '>'
             {
-            match("&&"); 
-
+            match('>'); 
 
             }
 
@@ -1170,10 +1156,10 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:59:7: ( '==' )
-            // InternalCubeDSL.g:59:9: '=='
+            // InternalCubeDSL.g:59:7: ( '>=' )
+            // InternalCubeDSL.g:59:9: '>='
             {
-            match("=="); 
+            match(">="); 
 
 
             }
@@ -1191,10 +1177,10 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:60:7: ( '!=' )
-            // InternalCubeDSL.g:60:9: '!='
+            // InternalCubeDSL.g:60:7: ( '||' )
+            // InternalCubeDSL.g:60:9: '||'
             {
-            match("!="); 
+            match("||"); 
 
 
             }
@@ -1212,10 +1198,10 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:61:7: ( '===' )
-            // InternalCubeDSL.g:61:9: '==='
+            // InternalCubeDSL.g:61:7: ( '&&' )
+            // InternalCubeDSL.g:61:9: '&&'
             {
-            match("==="); 
+            match("&&"); 
 
 
             }
@@ -1233,10 +1219,10 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:62:7: ( '!==' )
-            // InternalCubeDSL.g:62:9: '!=='
+            // InternalCubeDSL.g:62:7: ( '==' )
+            // InternalCubeDSL.g:62:9: '=='
             {
-            match("!=="); 
+            match("=="); 
 
 
             }
@@ -1254,10 +1240,10 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:63:7: ( 'instanceof' )
-            // InternalCubeDSL.g:63:9: 'instanceof'
+            // InternalCubeDSL.g:63:7: ( '!=' )
+            // InternalCubeDSL.g:63:9: '!='
             {
-            match("instanceof"); 
+            match("!="); 
 
 
             }
@@ -1275,10 +1261,10 @@
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:64:7: ( '->' )
-            // InternalCubeDSL.g:64:9: '->'
+            // InternalCubeDSL.g:64:7: ( '===' )
+            // InternalCubeDSL.g:64:9: '==='
             {
-            match("->"); 
+            match("==="); 
 
 
             }
@@ -1296,10 +1282,10 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:65:7: ( '..<' )
-            // InternalCubeDSL.g:65:9: '..<'
+            // InternalCubeDSL.g:65:7: ( '!==' )
+            // InternalCubeDSL.g:65:9: '!=='
             {
-            match("..<"); 
+            match("!=="); 
 
 
             }
@@ -1317,10 +1303,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:66:7: ( '..' )
-            // InternalCubeDSL.g:66:9: '..'
+            // InternalCubeDSL.g:66:7: ( 'instanceof' )
+            // InternalCubeDSL.g:66:9: 'instanceof'
             {
-            match(".."); 
+            match("instanceof"); 
 
 
             }
@@ -1338,10 +1324,10 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:67:7: ( '=>' )
-            // InternalCubeDSL.g:67:9: '=>'
+            // InternalCubeDSL.g:67:7: ( '->' )
+            // InternalCubeDSL.g:67:9: '->'
             {
-            match("=>"); 
+            match("->"); 
 
 
             }
@@ -1359,10 +1345,10 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:68:7: ( '<>' )
-            // InternalCubeDSL.g:68:9: '<>'
+            // InternalCubeDSL.g:68:7: ( '..<' )
+            // InternalCubeDSL.g:68:9: '..<'
             {
-            match("<>"); 
+            match("..<"); 
 
 
             }
@@ -1380,10 +1366,10 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:69:7: ( '?:' )
-            // InternalCubeDSL.g:69:9: '?:'
+            // InternalCubeDSL.g:69:7: ( '..' )
+            // InternalCubeDSL.g:69:9: '..'
             {
-            match("?:"); 
+            match(".."); 
 
 
             }
@@ -1401,10 +1387,11 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:70:7: ( '+' )
-            // InternalCubeDSL.g:70:9: '+'
+            // InternalCubeDSL.g:70:7: ( '=>' )
+            // InternalCubeDSL.g:70:9: '=>'
             {
-            match('+'); 
+            match("=>"); 
+
 
             }
 
@@ -1421,10 +1408,11 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:71:7: ( '-' )
-            // InternalCubeDSL.g:71:9: '-'
+            // InternalCubeDSL.g:71:7: ( '<>' )
+            // InternalCubeDSL.g:71:9: '<>'
             {
-            match('-'); 
+            match("<>"); 
+
 
             }
 
@@ -1441,10 +1429,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:72:7: ( '**' )
-            // InternalCubeDSL.g:72:9: '**'
+            // InternalCubeDSL.g:72:7: ( '?:' )
+            // InternalCubeDSL.g:72:9: '?:'
             {
-            match("**"); 
+            match("?:"); 
 
 
             }
@@ -1462,10 +1450,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:73:7: ( '/' )
-            // InternalCubeDSL.g:73:9: '/'
+            // InternalCubeDSL.g:73:7: ( '+' )
+            // InternalCubeDSL.g:73:9: '+'
             {
-            match('/'); 
+            match('+'); 
 
             }
 
@@ -1482,10 +1470,10 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:74:7: ( '%' )
-            // InternalCubeDSL.g:74:9: '%'
+            // InternalCubeDSL.g:74:7: ( '-' )
+            // InternalCubeDSL.g:74:9: '-'
             {
-            match('%'); 
+            match('-'); 
 
             }
 
@@ -1502,10 +1490,11 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:75:7: ( '!' )
-            // InternalCubeDSL.g:75:9: '!'
+            // InternalCubeDSL.g:75:7: ( '**' )
+            // InternalCubeDSL.g:75:9: '**'
             {
-            match('!'); 
+            match("**"); 
+
 
             }
 
@@ -1522,11 +1511,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:76:7: ( 'as' )
-            // InternalCubeDSL.g:76:9: 'as'
+            // InternalCubeDSL.g:76:7: ( '/' )
+            // InternalCubeDSL.g:76:9: '/'
             {
-            match("as"); 
-
+            match('/'); 
 
             }
 
@@ -1543,11 +1531,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:77:7: ( '++' )
-            // InternalCubeDSL.g:77:9: '++'
+            // InternalCubeDSL.g:77:7: ( '%' )
+            // InternalCubeDSL.g:77:9: '%'
             {
-            match("++"); 
-
+            match('%'); 
 
             }
 
@@ -1564,11 +1551,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:78:7: ( '--' )
-            // InternalCubeDSL.g:78:9: '--'
+            // InternalCubeDSL.g:78:7: ( '!' )
+            // InternalCubeDSL.g:78:9: '!'
             {
-            match("--"); 
-
+            match('!'); 
 
             }
 
@@ -1585,10 +1571,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:79:7: ( '::' )
-            // InternalCubeDSL.g:79:9: '::'
+            // InternalCubeDSL.g:79:7: ( 'as' )
+            // InternalCubeDSL.g:79:9: 'as'
             {
-            match("::"); 
+            match("as"); 
 
 
             }
@@ -1606,10 +1592,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:80:7: ( '?.' )
-            // InternalCubeDSL.g:80:9: '?.'
+            // InternalCubeDSL.g:80:7: ( '++' )
+            // InternalCubeDSL.g:80:9: '++'
             {
-            match("?."); 
+            match("++"); 
 
 
             }
@@ -1627,10 +1613,11 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:81:7: ( '|' )
-            // InternalCubeDSL.g:81:9: '|'
+            // InternalCubeDSL.g:81:7: ( '--' )
+            // InternalCubeDSL.g:81:9: '--'
             {
-            match('|'); 
+            match("--"); 
+
 
             }
 
@@ -1647,10 +1634,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:82:7: ( 'if' )
-            // InternalCubeDSL.g:82:9: 'if'
+            // InternalCubeDSL.g:82:7: ( '::' )
+            // InternalCubeDSL.g:82:9: '::'
             {
-            match("if"); 
+            match("::"); 
 
 
             }
@@ -1668,10 +1655,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:83:7: ( 'else' )
-            // InternalCubeDSL.g:83:9: 'else'
+            // InternalCubeDSL.g:83:7: ( '?.' )
+            // InternalCubeDSL.g:83:9: '?.'
             {
-            match("else"); 
+            match("?."); 
 
 
             }
@@ -1689,11 +1676,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:84:7: ( 'switch' )
-            // InternalCubeDSL.g:84:9: 'switch'
+            // InternalCubeDSL.g:84:7: ( '|' )
+            // InternalCubeDSL.g:84:9: '|'
             {
-            match("switch"); 
-
+            match('|'); 
 
             }
 
@@ -1710,10 +1696,11 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:85:7: ( ':' )
-            // InternalCubeDSL.g:85:9: ':'
+            // InternalCubeDSL.g:85:7: ( 'if' )
+            // InternalCubeDSL.g:85:9: 'if'
             {
-            match(':'); 
+            match("if"); 
+
 
             }
 
@@ -1730,10 +1717,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:86:7: ( 'default' )
-            // InternalCubeDSL.g:86:9: 'default'
+            // InternalCubeDSL.g:86:7: ( 'else' )
+            // InternalCubeDSL.g:86:9: 'else'
             {
-            match("default"); 
+            match("else"); 
 
 
             }
@@ -1751,10 +1738,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:87:7: ( 'case' )
-            // InternalCubeDSL.g:87:9: 'case'
+            // InternalCubeDSL.g:87:7: ( 'switch' )
+            // InternalCubeDSL.g:87:9: 'switch'
             {
-            match("case"); 
+            match("switch"); 
 
 
             }
@@ -1772,11 +1759,10 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:88:7: ( 'for' )
-            // InternalCubeDSL.g:88:9: 'for'
+            // InternalCubeDSL.g:88:7: ( ':' )
+            // InternalCubeDSL.g:88:9: ':'
             {
-            match("for"); 
-
+            match(':'); 
 
             }
 
@@ -1793,10 +1779,10 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:89:7: ( 'while' )
-            // InternalCubeDSL.g:89:9: 'while'
+            // InternalCubeDSL.g:89:7: ( 'default' )
+            // InternalCubeDSL.g:89:9: 'default'
             {
-            match("while"); 
+            match("default"); 
 
 
             }
@@ -1814,10 +1800,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:90:7: ( 'do' )
-            // InternalCubeDSL.g:90:9: 'do'
+            // InternalCubeDSL.g:90:7: ( 'case' )
+            // InternalCubeDSL.g:90:9: 'case'
             {
-            match("do"); 
+            match("case"); 
 
 
             }
@@ -1835,10 +1821,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:91:7: ( 'var' )
-            // InternalCubeDSL.g:91:9: 'var'
+            // InternalCubeDSL.g:91:7: ( 'for' )
+            // InternalCubeDSL.g:91:9: 'for'
             {
-            match("var"); 
+            match("for"); 
 
 
             }
@@ -1856,10 +1842,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:92:7: ( 'val' )
-            // InternalCubeDSL.g:92:9: 'val'
+            // InternalCubeDSL.g:92:7: ( 'while' )
+            // InternalCubeDSL.g:92:9: 'while'
             {
-            match("val"); 
+            match("while"); 
 
 
             }
@@ -1877,10 +1863,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:93:7: ( 'extends' )
-            // InternalCubeDSL.g:93:9: 'extends'
+            // InternalCubeDSL.g:93:7: ( 'do' )
+            // InternalCubeDSL.g:93:9: 'do'
             {
-            match("extends"); 
+            match("do"); 
 
 
             }
@@ -1898,10 +1884,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:94:7: ( 'super' )
-            // InternalCubeDSL.g:94:9: 'super'
+            // InternalCubeDSL.g:94:7: ( 'var' )
+            // InternalCubeDSL.g:94:9: 'var'
             {
-            match("super"); 
+            match("var"); 
 
 
             }
@@ -1919,10 +1905,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:95:7: ( 'new' )
-            // InternalCubeDSL.g:95:9: 'new'
+            // InternalCubeDSL.g:95:7: ( 'val' )
+            // InternalCubeDSL.g:95:9: 'val'
             {
-            match("new"); 
+            match("val"); 
 
 
             }
@@ -1940,10 +1926,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:96:7: ( 'false' )
-            // InternalCubeDSL.g:96:9: 'false'
+            // InternalCubeDSL.g:96:7: ( 'extends' )
+            // InternalCubeDSL.g:96:9: 'extends'
             {
-            match("false"); 
+            match("extends"); 
 
 
             }
@@ -1961,10 +1947,10 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:97:7: ( 'true' )
-            // InternalCubeDSL.g:97:9: 'true'
+            // InternalCubeDSL.g:97:7: ( 'super' )
+            // InternalCubeDSL.g:97:9: 'super'
             {
-            match("true"); 
+            match("super"); 
 
 
             }
@@ -1982,10 +1968,10 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:98:8: ( 'null' )
-            // InternalCubeDSL.g:98:10: 'null'
+            // InternalCubeDSL.g:98:8: ( 'new' )
+            // InternalCubeDSL.g:98:10: 'new'
             {
-            match("null"); 
+            match("new"); 
 
 
             }
@@ -2003,10 +1989,10 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:99:8: ( 'typeof' )
-            // InternalCubeDSL.g:99:10: 'typeof'
+            // InternalCubeDSL.g:99:8: ( 'false' )
+            // InternalCubeDSL.g:99:10: 'false'
             {
-            match("typeof"); 
+            match("false"); 
 
 
             }
@@ -2024,10 +2010,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:100:8: ( 'throw' )
-            // InternalCubeDSL.g:100:10: 'throw'
+            // InternalCubeDSL.g:100:8: ( 'true' )
+            // InternalCubeDSL.g:100:10: 'true'
             {
-            match("throw"); 
+            match("true"); 
 
 
             }
@@ -2045,10 +2031,10 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:101:8: ( 'return' )
-            // InternalCubeDSL.g:101:10: 'return'
+            // InternalCubeDSL.g:101:8: ( 'null' )
+            // InternalCubeDSL.g:101:10: 'null'
             {
-            match("return"); 
+            match("null"); 
 
 
             }
@@ -2066,10 +2052,10 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:102:8: ( 'try' )
-            // InternalCubeDSL.g:102:10: 'try'
+            // InternalCubeDSL.g:102:8: ( 'typeof' )
+            // InternalCubeDSL.g:102:10: 'typeof'
             {
-            match("try"); 
+            match("typeof"); 
 
 
             }
@@ -2087,10 +2073,10 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:103:8: ( 'finally' )
-            // InternalCubeDSL.g:103:10: 'finally'
+            // InternalCubeDSL.g:103:8: ( 'throw' )
+            // InternalCubeDSL.g:103:10: 'throw'
             {
-            match("finally"); 
+            match("throw"); 
 
 
             }
@@ -2108,10 +2094,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:104:8: ( 'synchronized' )
-            // InternalCubeDSL.g:104:10: 'synchronized'
+            // InternalCubeDSL.g:104:8: ( 'return' )
+            // InternalCubeDSL.g:104:10: 'return'
             {
-            match("synchronized"); 
+            match("return"); 
 
 
             }
@@ -2129,10 +2115,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:105:8: ( 'catch' )
-            // InternalCubeDSL.g:105:10: 'catch'
+            // InternalCubeDSL.g:105:8: ( 'try' )
+            // InternalCubeDSL.g:105:10: 'try'
             {
-            match("catch"); 
+            match("try"); 
 
 
             }
@@ -2150,10 +2136,11 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:106:8: ( '?' )
-            // InternalCubeDSL.g:106:10: '?'
+            // InternalCubeDSL.g:106:8: ( 'finally' )
+            // InternalCubeDSL.g:106:10: 'finally'
             {
-            match('?'); 
+            match("finally"); 
+
 
             }
 
@@ -2170,10 +2157,11 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:107:8: ( '&' )
-            // InternalCubeDSL.g:107:10: '&'
+            // InternalCubeDSL.g:107:8: ( 'synchronized' )
+            // InternalCubeDSL.g:107:10: 'synchronized'
             {
-            match('&'); 
+            match("synchronized"); 
+
 
             }
 
@@ -2190,10 +2178,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:108:8: ( 'sum' )
-            // InternalCubeDSL.g:108:10: 'sum'
+            // InternalCubeDSL.g:108:8: ( 'catch' )
+            // InternalCubeDSL.g:108:10: 'catch'
             {
-            match("sum"); 
+            match("catch"); 
 
 
             }
@@ -2211,11 +2199,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:109:8: ( 'count' )
-            // InternalCubeDSL.g:109:10: 'count'
+            // InternalCubeDSL.g:109:8: ( '?' )
+            // InternalCubeDSL.g:109:10: '?'
             {
-            match("count"); 
-
+            match('?'); 
 
             }
 
@@ -2232,11 +2219,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:110:8: ( 'min' )
-            // InternalCubeDSL.g:110:10: 'min'
+            // InternalCubeDSL.g:110:8: ( '&' )
+            // InternalCubeDSL.g:110:10: '&'
             {
-            match("min"); 
-
+            match('&'); 
 
             }
 
@@ -2253,10 +2239,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:111:8: ( 'max' )
-            // InternalCubeDSL.g:111:10: 'max'
+            // InternalCubeDSL.g:111:8: ( 'sum' )
+            // InternalCubeDSL.g:111:10: 'sum'
             {
-            match("max"); 
+            match("sum"); 
 
 
             }
@@ -2274,10 +2260,10 @@
         try {
             int _type = T__114;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:112:8: ( 'avg' )
-            // InternalCubeDSL.g:112:10: 'avg'
+            // InternalCubeDSL.g:112:8: ( 'count' )
+            // InternalCubeDSL.g:112:10: 'count'
             {
-            match("avg"); 
+            match("count"); 
 
 
             }
@@ -2295,10 +2281,10 @@
         try {
             int _type = T__115;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:113:8: ( 'distinct-count' )
-            // InternalCubeDSL.g:113:10: 'distinct-count'
+            // InternalCubeDSL.g:113:8: ( 'min' )
+            // InternalCubeDSL.g:113:10: 'min'
             {
-            match("distinct-count"); 
+            match("min"); 
 
 
             }
@@ -2316,10 +2302,10 @@
         try {
             int _type = T__116;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:114:8: ( 'String' )
-            // InternalCubeDSL.g:114:10: 'String'
+            // InternalCubeDSL.g:114:8: ( 'max' )
+            // InternalCubeDSL.g:114:10: 'max'
             {
-            match("String"); 
+            match("max"); 
 
 
             }
@@ -2337,10 +2323,10 @@
         try {
             int _type = T__117;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:115:8: ( 'Numeric' )
-            // InternalCubeDSL.g:115:10: 'Numeric'
+            // InternalCubeDSL.g:115:8: ( 'avg' )
+            // InternalCubeDSL.g:115:10: 'avg'
             {
-            match("Numeric"); 
+            match("avg"); 
 
 
             }
@@ -2358,10 +2344,10 @@
         try {
             int _type = T__118;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:116:8: ( 'Integer' )
-            // InternalCubeDSL.g:116:10: 'Integer'
+            // InternalCubeDSL.g:116:8: ( 'distinct-count' )
+            // InternalCubeDSL.g:116:10: 'distinct-count'
             {
-            match("Integer"); 
+            match("distinct-count"); 
 
 
             }
@@ -2379,10 +2365,10 @@
         try {
             int _type = T__119;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:117:8: ( 'Boolean' )
-            // InternalCubeDSL.g:117:10: 'Boolean'
+            // InternalCubeDSL.g:117:8: ( 'String' )
+            // InternalCubeDSL.g:117:10: 'String'
             {
-            match("Boolean"); 
+            match("String"); 
 
 
             }
@@ -2400,10 +2386,10 @@
         try {
             int _type = T__120;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:118:8: ( 'Date' )
-            // InternalCubeDSL.g:118:10: 'Date'
+            // InternalCubeDSL.g:118:8: ( 'Numeric' )
+            // InternalCubeDSL.g:118:10: 'Numeric'
             {
-            match("Date"); 
+            match("Numeric"); 
 
 
             }
@@ -2421,10 +2407,10 @@
         try {
             int _type = T__121;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:119:8: ( 'Time' )
-            // InternalCubeDSL.g:119:10: 'Time'
+            // InternalCubeDSL.g:119:8: ( 'Integer' )
+            // InternalCubeDSL.g:119:10: 'Integer'
             {
-            match("Time"); 
+            match("Integer"); 
 
 
             }
@@ -2442,10 +2428,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:120:8: ( 'Timestamp' )
-            // InternalCubeDSL.g:120:10: 'Timestamp'
+            // InternalCubeDSL.g:120:8: ( 'Boolean' )
+            // InternalCubeDSL.g:120:10: 'Boolean'
             {
-            match("Timestamp"); 
+            match("Boolean"); 
 
 
             }
@@ -2463,10 +2449,10 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:121:8: ( 'TimeYears' )
-            // InternalCubeDSL.g:121:10: 'TimeYears'
+            // InternalCubeDSL.g:121:8: ( 'Date' )
+            // InternalCubeDSL.g:121:10: 'Date'
             {
-            match("TimeYears"); 
+            match("Date"); 
 
 
             }
@@ -2484,10 +2470,10 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:122:8: ( 'TimeHalfYears' )
-            // InternalCubeDSL.g:122:10: 'TimeHalfYears'
+            // InternalCubeDSL.g:122:8: ( 'Time' )
+            // InternalCubeDSL.g:122:10: 'Time'
             {
-            match("TimeHalfYears"); 
+            match("Time"); 
 
 
             }
@@ -2505,10 +2491,10 @@
         try {
             int _type = T__125;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:123:8: ( 'TimeQuarters' )
-            // InternalCubeDSL.g:123:10: 'TimeQuarters'
+            // InternalCubeDSL.g:123:8: ( 'Timestamp' )
+            // InternalCubeDSL.g:123:10: 'Timestamp'
             {
-            match("TimeQuarters"); 
+            match("Timestamp"); 
 
 
             }
@@ -2526,10 +2512,10 @@
         try {
             int _type = T__126;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:124:8: ( 'TimeMonths' )
-            // InternalCubeDSL.g:124:10: 'TimeMonths'
+            // InternalCubeDSL.g:124:8: ( 'TimeYears' )
+            // InternalCubeDSL.g:124:10: 'TimeYears'
             {
-            match("TimeMonths"); 
+            match("TimeYears"); 
 
 
             }
@@ -2547,10 +2533,10 @@
         try {
             int _type = T__127;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:125:8: ( 'TimeWeeks' )
-            // InternalCubeDSL.g:125:10: 'TimeWeeks'
+            // InternalCubeDSL.g:125:8: ( 'TimeHalfYears' )
+            // InternalCubeDSL.g:125:10: 'TimeHalfYears'
             {
-            match("TimeWeeks"); 
+            match("TimeHalfYears"); 
 
 
             }
@@ -2568,10 +2554,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:126:8: ( 'TimeDays' )
-            // InternalCubeDSL.g:126:10: 'TimeDays'
+            // InternalCubeDSL.g:126:8: ( 'TimeQuarters' )
+            // InternalCubeDSL.g:126:10: 'TimeQuarters'
             {
-            match("TimeDays"); 
+            match("TimeQuarters"); 
 
 
             }
@@ -2589,10 +2575,10 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:127:8: ( 'TimeHours' )
-            // InternalCubeDSL.g:127:10: 'TimeHours'
+            // InternalCubeDSL.g:127:8: ( 'TimeMonths' )
+            // InternalCubeDSL.g:127:10: 'TimeMonths'
             {
-            match("TimeHours"); 
+            match("TimeMonths"); 
 
 
             }
@@ -2610,10 +2596,10 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:128:8: ( 'TimeMinutes' )
-            // InternalCubeDSL.g:128:10: 'TimeMinutes'
+            // InternalCubeDSL.g:128:8: ( 'TimeWeeks' )
+            // InternalCubeDSL.g:128:10: 'TimeWeeks'
             {
-            match("TimeMinutes"); 
+            match("TimeWeeks"); 
 
 
             }
@@ -2631,10 +2617,10 @@
         try {
             int _type = T__131;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:129:8: ( 'TimeSeconds' )
-            // InternalCubeDSL.g:129:10: 'TimeSeconds'
+            // InternalCubeDSL.g:129:8: ( 'TimeDays' )
+            // InternalCubeDSL.g:129:10: 'TimeDays'
             {
-            match("TimeSeconds"); 
+            match("TimeDays"); 
 
 
             }
@@ -2647,15 +2633,78 @@
     }
     // $ANTLR end "T__131"
 
+    // $ANTLR start "T__132"
+    public final void mT__132() throws RecognitionException {
+        try {
+            int _type = T__132;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalCubeDSL.g:130:8: ( 'TimeHours' )
+            // InternalCubeDSL.g:130:10: 'TimeHours'
+            {
+            match("TimeHours"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__132"
+
+    // $ANTLR start "T__133"
+    public final void mT__133() throws RecognitionException {
+        try {
+            int _type = T__133;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalCubeDSL.g:131:8: ( 'TimeMinutes' )
+            // InternalCubeDSL.g:131:10: 'TimeMinutes'
+            {
+            match("TimeMinutes"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__133"
+
+    // $ANTLR start "T__134"
+    public final void mT__134() throws RecognitionException {
+        try {
+            int _type = T__134;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalCubeDSL.g:132:8: ( 'TimeSeconds' )
+            // InternalCubeDSL.g:132:10: 'TimeSeconds'
+            {
+            match("TimeSeconds"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__134"
+
     // $ANTLR start "RULE_HEX"
     public final void mRULE_HEX() throws RecognitionException {
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8487:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // InternalCubeDSL.g:8487:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalCubeDSL.g:8585:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalCubeDSL.g:8585:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // InternalCubeDSL.g:8487:12: ( '0x' | '0X' )
+            // InternalCubeDSL.g:8585:12: ( '0x' | '0X' )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -2683,7 +2732,7 @@
             }
             switch (alt1) {
                 case 1 :
-                    // InternalCubeDSL.g:8487:13: '0x'
+                    // InternalCubeDSL.g:8585:13: '0x'
                     {
                     match("0x"); 
 
@@ -2691,7 +2740,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:8487:18: '0X'
+                    // InternalCubeDSL.g:8585:18: '0X'
                     {
                     match("0X"); 
 
@@ -2701,7 +2750,7 @@
 
             }
 
-            // InternalCubeDSL.g:8487:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            // InternalCubeDSL.g:8585:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
             int cnt2=0;
             loop2:
             do {
@@ -2739,7 +2788,7 @@
                 cnt2++;
             } while (true);
 
-            // InternalCubeDSL.g:8487:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalCubeDSL.g:8585:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -2748,10 +2797,10 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalCubeDSL.g:8487:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalCubeDSL.g:8585:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // InternalCubeDSL.g:8487:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalCubeDSL.g:8585:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     int alt3=2;
                     int LA3_0 = input.LA(1);
 
@@ -2769,7 +2818,7 @@
                     }
                     switch (alt3) {
                         case 1 :
-                            // InternalCubeDSL.g:8487:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalCubeDSL.g:8585:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -2793,7 +2842,7 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:8487:84: ( 'l' | 'L' )
+                            // InternalCubeDSL.g:8585:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -2832,11 +2881,11 @@
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8489:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // InternalCubeDSL.g:8489:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalCubeDSL.g:8587:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalCubeDSL.g:8587:12: '0' .. '9' ( '0' .. '9' | '_' )*
             {
             matchRange('0','9'); 
-            // InternalCubeDSL.g:8489:21: ( '0' .. '9' | '_' )*
+            // InternalCubeDSL.g:8587:21: ( '0' .. '9' | '_' )*
             loop5:
             do {
                 int alt5=2;
@@ -2885,11 +2934,11 @@
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8491:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // InternalCubeDSL.g:8491:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalCubeDSL.g:8589:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalCubeDSL.g:8589:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // InternalCubeDSL.g:8491:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            // InternalCubeDSL.g:8589:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -2898,7 +2947,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // InternalCubeDSL.g:8491:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalCubeDSL.g:8589:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -2909,7 +2958,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // InternalCubeDSL.g:8491:36: ( '+' | '-' )?
+                    // InternalCubeDSL.g:8589:36: ( '+' | '-' )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -2942,7 +2991,7 @@
 
             }
 
-            // InternalCubeDSL.g:8491:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalCubeDSL.g:8589:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             int alt8=3;
             int LA8_0 = input.LA(1);
 
@@ -2954,7 +3003,7 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalCubeDSL.g:8491:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalCubeDSL.g:8589:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -2978,7 +3027,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:8491:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalCubeDSL.g:8589:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
                     {
                     if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
                         input.consume();
@@ -3011,10 +3060,10 @@
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8493:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // InternalCubeDSL.g:8493:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalCubeDSL.g:8591:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalCubeDSL.g:8591:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             {
-            // InternalCubeDSL.g:8493:11: ( '^' )?
+            // InternalCubeDSL.g:8591:11: ( '^' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -3023,7 +3072,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalCubeDSL.g:8493:11: '^'
+                    // InternalCubeDSL.g:8591:11: '^'
                     {
                     match('^'); 
 
@@ -3041,7 +3090,7 @@
                 recover(mse);
                 throw mse;}
 
-            // InternalCubeDSL.g:8493:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalCubeDSL.g:8591:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
             loop10:
             do {
                 int alt10=2;
@@ -3090,10 +3139,10 @@
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8495:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // InternalCubeDSL.g:8495:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalCubeDSL.g:8593:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalCubeDSL.g:8593:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // InternalCubeDSL.g:8495:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalCubeDSL.g:8593:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -3111,10 +3160,10 @@
             }
             switch (alt15) {
                 case 1 :
-                    // InternalCubeDSL.g:8495:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalCubeDSL.g:8593:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // InternalCubeDSL.g:8495:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalCubeDSL.g:8593:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop11:
                     do {
                         int alt11=3;
@@ -3130,7 +3179,7 @@
 
                         switch (alt11) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:8495:21: '\\\\' .
+                    	    // InternalCubeDSL.g:8593:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3138,7 +3187,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalCubeDSL.g:8495:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalCubeDSL.g:8593:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3158,7 +3207,7 @@
                         }
                     } while (true);
 
-                    // InternalCubeDSL.g:8495:44: ( '\"' )?
+                    // InternalCubeDSL.g:8593:44: ( '\"' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -3167,7 +3216,7 @@
                     }
                     switch (alt12) {
                         case 1 :
-                            // InternalCubeDSL.g:8495:44: '\"'
+                            // InternalCubeDSL.g:8593:44: '\"'
                             {
                             match('\"'); 
 
@@ -3180,10 +3229,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:8495:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalCubeDSL.g:8593:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // InternalCubeDSL.g:8495:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalCubeDSL.g:8593:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop13:
                     do {
                         int alt13=3;
@@ -3199,7 +3248,7 @@
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:8495:55: '\\\\' .
+                    	    // InternalCubeDSL.g:8593:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -3207,7 +3256,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // InternalCubeDSL.g:8495:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalCubeDSL.g:8593:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -3227,7 +3276,7 @@
                         }
                     } while (true);
 
-                    // InternalCubeDSL.g:8495:79: ( '\\'' )?
+                    // InternalCubeDSL.g:8593:79: ( '\\'' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -3236,7 +3285,7 @@
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalCubeDSL.g:8495:79: '\\''
+                            // InternalCubeDSL.g:8593:79: '\\''
                             {
                             match('\''); 
 
@@ -3267,12 +3316,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8497:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalCubeDSL.g:8497:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalCubeDSL.g:8595:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalCubeDSL.g:8595:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalCubeDSL.g:8497:24: ( options {greedy=false; } : . )*
+            // InternalCubeDSL.g:8595:24: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -3297,7 +3346,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalCubeDSL.g:8497:52: .
+            	    // InternalCubeDSL.g:8595:52: .
             	    {
             	    matchAny(); 
 
@@ -3327,12 +3376,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8499:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalCubeDSL.g:8499:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalCubeDSL.g:8597:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalCubeDSL.g:8597:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalCubeDSL.g:8499:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalCubeDSL.g:8597:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop17:
             do {
                 int alt17=2;
@@ -3345,7 +3394,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalCubeDSL.g:8499:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalCubeDSL.g:8597: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();
@@ -3365,7 +3414,7 @@
                 }
             } while (true);
 
-            // InternalCubeDSL.g:8499:40: ( ( '\\r' )? '\\n' )?
+            // InternalCubeDSL.g:8597:40: ( ( '\\r' )? '\\n' )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -3374,9 +3423,9 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalCubeDSL.g:8499:41: ( '\\r' )? '\\n'
+                    // InternalCubeDSL.g:8597:41: ( '\\r' )? '\\n'
                     {
-                    // InternalCubeDSL.g:8499:41: ( '\\r' )?
+                    // InternalCubeDSL.g:8597:41: ( '\\r' )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -3385,7 +3434,7 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // InternalCubeDSL.g:8499:41: '\\r'
+                            // InternalCubeDSL.g:8597:41: '\\r'
                             {
                             match('\r'); 
 
@@ -3417,10 +3466,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8501:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalCubeDSL.g:8501:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalCubeDSL.g:8599:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalCubeDSL.g:8599:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalCubeDSL.g:8501:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalCubeDSL.g:8599:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt20=0;
             loop20:
             do {
@@ -3474,8 +3523,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalCubeDSL.g:8503:16: ( . )
-            // InternalCubeDSL.g:8503:18: .
+            // InternalCubeDSL.g:8601:16: ( . )
+            // InternalCubeDSL.g:8601:18: .
             {
             matchAny(); 
 
@@ -3490,8 +3539,8 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalCubeDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt21=128;
+        // InternalCubeDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=131;
         alt21 = dfa21.predict(input);
         switch (alt21) {
             case 1 :
@@ -4328,63 +4377,84 @@
                 }
                 break;
             case 120 :
-                // InternalCubeDSL.g:1:756: RULE_HEX
+                // InternalCubeDSL.g:1:756: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 121 :
+                // InternalCubeDSL.g:1:763: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 122 :
+                // InternalCubeDSL.g:1:770: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 123 :
+                // InternalCubeDSL.g:1:777: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 121 :
-                // InternalCubeDSL.g:1:765: RULE_INT
+            case 124 :
+                // InternalCubeDSL.g:1:786: RULE_INT
                 {
                 mRULE_INT(); 
 
                 }
                 break;
-            case 122 :
-                // InternalCubeDSL.g:1:774: RULE_DECIMAL
+            case 125 :
+                // InternalCubeDSL.g:1:795: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 123 :
-                // InternalCubeDSL.g:1:787: RULE_ID
+            case 126 :
+                // InternalCubeDSL.g:1:808: RULE_ID
                 {
                 mRULE_ID(); 
 
                 }
                 break;
-            case 124 :
-                // InternalCubeDSL.g:1:795: RULE_STRING
+            case 127 :
+                // InternalCubeDSL.g:1:816: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 125 :
-                // InternalCubeDSL.g:1:807: RULE_ML_COMMENT
+            case 128 :
+                // InternalCubeDSL.g:1:828: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 126 :
-                // InternalCubeDSL.g:1:823: RULE_SL_COMMENT
+            case 129 :
+                // InternalCubeDSL.g:1:844: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 127 :
-                // InternalCubeDSL.g:1:839: RULE_WS
+            case 130 :
+                // InternalCubeDSL.g:1:860: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 128 :
-                // InternalCubeDSL.g:1:847: RULE_ANY_OTHER
+            case 131 :
+                // InternalCubeDSL.g:1:868: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -4398,61 +4468,59 @@
 
     protected DFA21 dfa21 = new DFA21(this);
     static final String DFA21_eotS =
-        "\1\uffff\1\74\2\uffff\14\74\1\134\2\74\1\146\5\uffff\1\156\3\uffff\1\164\1\170\1\174\1\176\1\u0080\1\u0082\1\u0084\1\u0086\1\u0088\1\u008b\1\u008d\12\74\2\u009c\1\71\5\uffff\2\74\3\uffff\5\74\1\u00aa\7\74\1\u00b3\13\74\1\u00bf\2\74\1\u00c3\1\uffff\2\74\1\u00c6\4\74\10\uffff\1\u00cd\32\uffff\1\u00cf\6\uffff\14\74\1\uffff\1\u009c\4\uffff\12\74\1\uffff\3\74\1\u00ea\4\74\1\uffff\1\u00ef\3\74\1\u00f3\3\74\1\u00f7\1\u00f8\1\74\1\uffff\1\u00fa\1\74\2\uffff\2\74\1\uffff\3\74\1\u0101\1\74\4\uffff\1\u0103\3\74\1\u0107\1\u0108\11\74\1\u0112\2\74\1\u0115\4\74\1\u011a\1\u011d\1\u011e\1\uffff\4\74\1\uffff\2\74\1\u0125\1\uffff\3\74\2\uffff\1\74\1\uffff\1\u012a\5\74\1\uffff\1\74\1\uffff\3\74\2\uffff\5\74\1\u0139\1\u0142\2\74\1\uffff\1\74\1\u0146\1\uffff\1\u0147\3\74\1\uffff\2\74\2\uffff\1\u014d\5\74\1\uffff\1\u0155\3\74\1\uffff\4\74\1\u015d\1\74\1\u015f\1\74\1\u0161\5\74\1\uffff\10\74\1\uffff\2\74\1\u0173\2\uffff\4\74\1\u0178\1\uffff\1\74\1\u017a\1\74\1\u017c\3\74\1\uffff\3\74\1\u0183\1\74\1\u0185\1\u0186\1\uffff\1\74\1\uffff\1\74\1\uffff\1\u0189\1\u018a\15\74\1\u0198\1\74\1\uffff\1\u019b\3\74\1\uffff\1\74\1\uffff\1\74\1\uffff\1\74\1\u01a2\2\74\1\u01a5\1\74\1\uffff\1\74\2\uffff\1\74\1\u01a9\2\uffff\1\u01aa\1\u01ab\1\u01ac\12\74\1\uffff\1\u01b7\1\74\1\uffff\2\74\1\u01bb\3\74\1\uffff\2\74\1\uffff\3\74\4\uffff\10\74\1\u01cc\1\74\1\uffff\1\74\1\u01d1\2\uffff\1\u01d2\1\74\1\u01d4\1\u01d5\4\74\1\u01da\1\u01db\1\74\1\u01dd\3\74\1\u01e1\1\uffff\4\74\2\uffff\1\74\2\uffff\1\74\1\u01e8\1\u01e9\1\74\2\uffff\1\74\1\uffff\1\74\1\u01ed\1\74\1\uffff\6\74\2\uffff\3\74\1\uffff\1\u01f8\1\u01f9\5\74\1\u01ff\1\74\1\u0201\2\uffff\1\74\1\u0203\1\74\1\u0205\1\u0206\1\uffff\1\u0207\1\uffff\1\u0208\1\uffff\1\u0209\5\uffff";
+        "\1\uffff\1\74\2\uffff\14\74\1\136\2\74\1\150\5\uffff\1\160\3\uffff\1\166\1\172\1\176\1\u0080\1\u0082\1\u0084\1\u0086\1\u0088\1\u008a\1\u008d\1\u008f\12\74\2\u009e\1\71\5\uffff\2\74\3\uffff\5\74\1\u00ad\10\74\1\u00b7\10\74\1\u00c0\6\74\1\u00c8\1\uffff\2\74\1\u00cb\4\74\10\uffff\1\u00d2\32\uffff\1\u00d4\6\uffff\14\74\1\uffff\1\u009e\4\uffff\13\74\1\uffff\4\74\1\u00f1\4\74\1\uffff\1\u00f6\3\74\1\u00fa\3\74\1\uffff\1\u00fe\3\74\1\u0102\1\u0103\2\uffff\2\74\1\uffff\3\74\1\u0109\1\74\4\uffff\1\u010b\3\74\1\u010f\1\u0110\11\74\1\u011a\3\74\1\u011e\4\74\1\u0123\1\74\1\u0127\1\u0128\1\uffff\4\74\1\uffff\2\74\1\u012f\1\uffff\3\74\1\uffff\1\u0133\2\74\2\uffff\5\74\1\uffff\1\74\1\uffff\3\74\2\uffff\5\74\1\u0144\1\u014d\2\74\1\uffff\1\74\1\u0151\1\74\1\uffff\1\u0153\3\74\1\uffff\3\74\2\uffff\1\u015a\5\74\1\uffff\1\u0162\2\74\1\uffff\6\74\1\u016b\1\74\1\u016d\1\74\1\u016f\5\74\1\uffff\10\74\1\uffff\2\74\1\u0181\1\uffff\1\74\1\uffff\5\74\1\u0188\1\uffff\1\74\1\u018a\1\74\1\u018c\3\74\1\uffff\4\74\1\u0194\1\74\1\u0196\1\u0197\1\uffff\1\74\1\uffff\1\74\1\uffff\1\u019a\1\u019b\15\74\1\u01a9\1\74\1\uffff\1\74\1\u01ad\4\74\1\uffff\1\74\1\uffff\1\74\1\uffff\1\74\1\u01b5\4\74\1\u01ba\1\uffff\1\74\2\uffff\1\74\1\u01bd\2\uffff\1\u01be\1\u01bf\1\u01c0\12\74\1\uffff\1\u01cb\2\74\1\uffff\3\74\1\u01d1\3\74\1\uffff\4\74\1\uffff\2\74\4\uffff\10\74\1\u01e3\1\74\1\uffff\2\74\1\u01e9\1\uffff\1\74\1\uffff\1\u01eb\1\74\1\u01ed\1\u01ee\5\74\1\u01f4\1\u01f5\1\74\1\u01f7\3\74\1\u01fb\1\uffff\5\74\1\uffff\1\74\1\uffff\1\74\2\uffff\1\u0203\1\u0204\1\74\1\u0206\1\74\2\uffff\1\74\1\uffff\1\74\1\u020a\1\74\1\uffff\7\74\2\uffff\1\74\1\uffff\3\74\1\uffff\1\u0217\1\u0218\7\74\1\u0220\1\74\1\u0222\2\uffff\1\u0223\1\74\1\u0225\1\74\1\u0227\1\u0228\1\u0229\1\uffff\1\u022a\2\uffff\1\u022b\1\uffff\1\u022c\6\uffff";
     static final String DFA21_eofS =
-        "\u020a\uffff";
+        "\u022d\uffff";
     static final String DFA21_minS =
-        "\1\0\1\141\2\uffff\1\141\1\145\1\166\1\150\1\141\2\154\2\145\1\156\1\141\1\145\1\56\1\146\1\164\1\52\5\uffff\1\75\3\uffff\1\53\1\55\1\52\1\75\1\76\1\75\1\174\1\46\1\75\1\56\1\72\1\141\1\150\1\141\1\145\1\164\1\165\1\156\1\157\1\141\1\151\2\60\1\44\5\uffff\1\143\1\157\3\uffff\1\142\1\154\1\163\1\146\1\155\1\44\1\145\1\160\1\165\1\162\1\145\1\163\1\154\1\44\1\147\2\164\1\163\1\171\1\166\1\151\1\141\1\156\1\170\1\164\1\44\1\167\1\154\1\74\1\uffff\1\160\1\163\1\44\1\141\1\151\1\155\1\156\10\uffff\1\75\32\uffff\1\75\6\uffff\1\162\1\154\1\156\1\151\1\154\1\164\1\162\1\155\1\164\1\157\1\164\1\155\1\uffff\1\60\4\uffff\1\153\1\160\1\145\1\165\1\156\1\145\1\143\1\141\1\145\1\164\1\uffff\1\162\2\145\1\44\1\157\1\162\1\101\1\115\1\uffff\1\44\1\151\2\145\1\44\1\145\1\161\1\163\2\44\1\126\1\uffff\1\44\1\154\2\uffff\1\157\1\164\1\uffff\2\164\1\145\1\44\1\143\4\uffff\1\44\1\163\1\141\1\154\2\44\1\165\1\151\2\145\1\154\2\145\1\141\1\145\1\44\1\155\1\164\1\44\1\150\1\165\1\156\1\151\3\44\1\uffff\1\167\1\141\1\154\1\145\1\uffff\1\164\1\156\1\44\1\uffff\1\154\2\165\2\uffff\1\151\1\uffff\1\44\1\162\1\141\1\151\1\143\1\162\1\uffff\1\150\1\uffff\1\145\1\154\1\145\2\uffff\1\162\1\156\1\162\1\147\1\145\2\44\1\147\1\162\1\uffff\1\156\1\44\1\uffff\1\44\1\154\1\163\1\156\1\uffff\1\151\1\146\2\uffff\1\44\1\162\1\154\1\155\1\171\1\144\1\uffff\1\44\1\145\1\162\1\163\1\uffff\1\164\1\156\1\143\1\150\1\44\1\162\1\44\1\154\1\44\1\156\1\147\1\151\1\145\1\141\1\uffff\1\164\1\145\1\141\1\165\1\151\1\145\1\141\1\145\1\uffff\1\145\1\164\1\44\2\uffff\1\164\1\151\1\143\1\155\1\44\1\uffff\1\143\1\44\1\142\1\44\1\151\1\163\1\171\1\uffff\1\115\1\145\1\151\1\44\1\143\2\44\1\uffff\1\157\1\uffff\1\171\1\uffff\2\44\1\143\1\162\1\156\2\141\1\154\1\165\1\141\2\156\1\145\1\171\1\143\1\44\1\171\1\uffff\1\44\1\157\1\164\1\145\1\uffff\1\150\1\uffff\1\145\1\uffff\1\157\1\44\1\160\1\145\1\44\1\142\1\uffff\1\145\2\uffff\1\156\1\44\2\uffff\3\44\1\155\1\162\1\146\2\162\1\164\1\165\1\153\1\163\1\157\1\uffff\1\44\1\145\1\uffff\1\156\1\55\1\44\1\171\1\162\1\156\1\uffff\1\145\1\155\1\uffff\1\154\1\157\1\151\4\uffff\1\160\1\163\1\131\1\163\1\164\1\150\1\164\1\163\1\44\1\156\1\uffff\1\141\1\44\2\uffff\1\44\1\116\2\44\1\142\1\145\1\146\1\172\2\44\1\145\1\44\1\145\1\163\1\145\1\44\1\uffff\1\144\1\163\1\142\1\163\2\uffff\1\141\2\uffff\1\145\2\44\1\145\2\uffff\1\141\1\uffff\1\162\1\44\1\163\1\uffff\1\163\1\165\1\145\1\141\1\155\1\162\2\uffff\1\144\1\162\1\163\1\uffff\2\44\2\162\1\147\1\145\1\163\1\44\1\163\1\44\2\uffff\1\145\1\44\1\145\2\44\1\uffff\1\44\1\uffff\1\44\1\uffff\1\44\5\uffff";
+        "\1\0\1\141\2\uffff\1\141\1\145\1\162\1\150\1\141\2\154\2\145\1\141\1\156\1\141\1\56\1\146\1\164\1\52\5\uffff\1\75\3\uffff\1\53\1\55\1\52\1\75\1\76\1\75\1\174\1\46\1\75\1\56\1\72\1\141\1\150\1\141\1\145\1\164\1\165\1\156\1\157\1\141\1\151\2\60\1\44\5\uffff\1\143\1\157\3\uffff\1\142\1\154\1\160\1\146\1\155\1\44\1\145\1\144\1\160\1\165\1\162\1\145\1\163\1\154\1\44\1\147\2\164\1\163\1\171\1\166\1\155\1\164\1\44\1\167\1\154\1\151\1\141\1\156\1\170\1\74\1\uffff\1\160\1\163\1\44\1\141\1\151\1\155\1\156\10\uffff\1\75\32\uffff\1\75\6\uffff\1\162\1\154\1\156\1\151\1\154\1\164\1\162\1\155\1\164\1\157\1\164\1\155\1\uffff\1\60\4\uffff\1\153\1\160\1\145\1\165\1\156\1\164\1\145\1\143\1\141\1\145\1\164\1\uffff\1\162\1\151\2\145\1\44\1\157\1\162\1\101\1\115\1\uffff\1\44\1\151\2\145\1\44\2\145\1\126\1\uffff\1\44\1\154\1\161\1\163\2\44\2\uffff\1\157\1\164\1\uffff\2\164\1\145\1\44\1\143\4\uffff\1\44\1\163\1\141\1\154\2\44\1\165\1\151\2\145\1\154\2\145\1\141\1\145\1\44\1\155\1\164\1\151\1\44\1\150\1\165\1\156\1\151\1\44\1\156\2\44\1\uffff\1\167\1\141\1\154\1\145\1\uffff\1\164\1\156\1\44\1\uffff\1\154\1\103\1\151\1\uffff\1\44\2\165\2\uffff\1\162\1\141\1\151\1\143\1\162\1\uffff\1\150\1\uffff\1\145\1\154\1\145\2\uffff\1\162\1\156\1\162\1\147\1\145\2\44\1\147\1\162\1\uffff\1\156\1\44\1\157\1\uffff\1\44\1\154\1\163\1\156\1\uffff\1\141\1\151\1\146\2\uffff\1\44\1\162\1\154\1\155\1\171\1\144\1\uffff\1\44\1\157\1\163\1\uffff\1\145\1\162\1\164\1\156\1\143\1\150\1\44\1\162\1\44\1\154\1\44\1\156\1\147\1\151\1\145\1\141\1\uffff\1\164\1\145\1\141\1\165\1\151\1\145\1\141\1\145\1\uffff\1\145\1\164\1\44\1\uffff\1\156\1\uffff\1\164\1\151\1\143\1\154\1\155\1\44\1\uffff\1\143\1\44\1\142\1\44\1\151\1\163\1\171\1\uffff\1\154\1\151\1\115\1\145\1\44\1\143\2\44\1\uffff\1\157\1\uffff\1\171\1\uffff\2\44\1\143\1\162\1\156\2\141\1\154\1\165\1\141\2\156\1\145\1\171\1\143\1\44\1\171\1\uffff\1\103\1\44\1\157\1\164\1\103\1\145\1\uffff\1\150\1\uffff\1\145\1\uffff\1\157\1\44\1\160\1\165\1\142\1\145\1\44\1\uffff\1\145\2\uffff\1\156\1\44\2\uffff\3\44\1\155\1\162\1\146\2\162\1\164\1\165\1\153\1\163\1\157\1\uffff\1\44\1\157\1\145\1\uffff\1\156\1\55\1\157\1\44\1\171\1\162\1\156\1\uffff\1\145\1\155\1\154\1\155\1\uffff\1\157\1\151\4\uffff\1\160\1\163\1\131\1\163\1\164\1\150\1\164\1\163\1\44\1\156\1\uffff\1\154\1\141\1\44\1\uffff\1\154\1\uffff\1\44\1\116\2\44\1\156\1\145\1\142\1\146\1\172\2\44\1\145\1\44\1\145\1\163\1\145\1\44\1\uffff\1\144\1\165\1\163\1\142\1\163\1\uffff\1\165\1\uffff\1\141\2\uffff\2\44\1\145\1\44\1\145\2\uffff\1\141\1\uffff\1\162\1\44\1\163\1\uffff\1\163\1\155\1\165\1\145\1\141\2\155\2\uffff\1\162\1\uffff\1\144\1\162\1\163\1\uffff\2\44\1\156\2\162\1\147\1\156\1\145\1\163\1\44\1\163\1\44\2\uffff\1\44\1\145\1\44\1\145\3\44\1\uffff\1\44\2\uffff\1\44\1\uffff\1\44\6\uffff";
     static final String DFA21_maxS =
-        "\1\uffff\1\162\2\uffff\1\165\1\157\1\166\1\171\1\151\1\166\1\170\2\145\1\156\1\151\1\165\1\56\1\156\1\171\1\75\5\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\2\72\1\157\1\150\1\141\1\145\1\164\1\165\1\156\1\157\1\141\1\151\1\170\1\154\1\172\5\uffff\1\143\1\157\3\uffff\1\142\1\165\1\164\1\146\1\163\1\172\1\145\1\160\1\171\1\162\1\145\1\163\1\154\1\172\1\147\2\164\1\163\1\171\1\166\1\151\1\141\1\156\1\170\1\164\1\172\1\167\1\154\1\74\1\uffff\1\160\1\163\1\172\1\141\1\151\1\160\1\156\10\uffff\1\75\32\uffff\1\75\6\uffff\1\162\1\154\1\156\1\151\1\162\1\164\1\162\1\155\1\164\1\157\1\164\1\155\1\uffff\1\154\4\uffff\1\153\1\160\1\145\1\165\1\156\1\145\1\143\1\141\1\145\1\164\1\uffff\1\162\2\145\1\172\1\157\1\162\1\101\1\115\1\uffff\1\172\1\151\2\145\1\172\1\145\1\161\1\163\2\172\1\126\1\uffff\1\172\1\154\2\uffff\1\157\1\164\1\uffff\2\164\1\145\1\172\1\143\4\uffff\1\172\1\163\1\141\1\154\2\172\1\165\1\151\2\145\1\154\2\145\1\141\1\145\1\172\1\155\1\164\1\172\1\150\1\165\1\156\1\151\3\172\1\uffff\1\167\1\141\1\154\1\145\1\uffff\1\164\1\156\1\172\1\uffff\1\154\2\165\2\uffff\1\151\1\uffff\1\172\1\162\1\141\1\151\1\143\1\162\1\uffff\1\150\1\uffff\1\145\1\154\1\145\2\uffff\1\162\1\156\1\162\1\147\1\145\2\172\1\147\1\162\1\uffff\1\156\1\172\1\uffff\1\172\1\154\1\163\1\156\1\uffff\1\151\1\146\2\uffff\1\172\1\162\1\154\1\155\1\171\1\163\1\uffff\1\172\1\145\1\162\1\163\1\uffff\1\164\1\156\1\143\1\150\1\172\1\162\1\172\1\154\1\172\1\156\1\147\1\151\1\145\1\141\1\uffff\1\164\1\145\1\157\1\165\1\157\1\145\1\141\1\145\1\uffff\1\145\1\164\1\172\2\uffff\1\164\1\151\1\143\1\155\1\172\1\uffff\1\143\1\172\1\142\1\172\1\151\1\163\1\171\1\uffff\1\115\1\145\1\151\1\172\1\143\2\172\1\uffff\1\157\1\uffff\1\171\1\uffff\2\172\1\143\1\162\1\156\2\141\1\154\1\165\1\141\2\156\1\145\1\171\1\143\1\172\1\171\1\uffff\1\172\1\157\1\164\1\145\1\uffff\1\150\1\uffff\1\145\1\uffff\1\157\1\172\1\160\1\145\1\172\1\142\1\uffff\1\145\2\uffff\1\156\1\172\2\uffff\3\172\1\155\1\162\1\146\2\162\1\164\1\165\1\153\1\163\1\157\1\uffff\1\172\1\145\1\uffff\1\156\1\55\1\172\1\171\1\162\1\156\1\uffff\1\145\1\155\1\uffff\1\154\1\157\1\151\4\uffff\1\160\1\163\1\131\1\163\1\164\1\150\1\164\1\163\1\172\1\156\1\uffff\1\155\1\172\2\uffff\1\172\1\116\2\172\1\142\1\145\1\146\3\172\1\145\1\172\1\145\1\163\1\145\1\172\1\uffff\1\144\1\163\1\142\1\163\2\uffff\1\141\2\uffff\1\145\2\172\1\145\2\uffff\1\141\1\uffff\1\162\1\172\1\163\1\uffff\1\163\1\165\1\145\1\141\1\155\1\162\2\uffff\1\144\1\162\1\163\1\uffff\2\172\2\162\1\147\1\145\1\163\1\172\1\163\1\172\2\uffff\1\145\1\172\1\145\2\172\1\uffff\1\172\1\uffff\1\172\1\uffff\1\172\5\uffff";
+        "\1\uffff\1\162\2\uffff\1\165\1\157\1\166\1\171\1\151\1\166\1\170\2\145\1\165\1\156\1\151\1\56\1\156\1\171\1\75\5\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\2\72\1\157\1\150\1\141\1\145\1\164\1\165\1\156\1\157\1\141\1\151\1\170\1\154\1\172\5\uffff\1\143\1\157\3\uffff\1\142\1\165\1\164\1\146\1\163\1\172\1\145\1\144\1\160\1\171\1\162\1\145\1\163\1\154\1\172\1\147\2\164\1\163\1\171\1\166\1\155\1\164\1\172\1\167\1\154\1\151\1\141\1\156\1\170\1\74\1\uffff\1\160\1\163\1\172\1\141\1\151\1\160\1\156\10\uffff\1\75\32\uffff\1\75\6\uffff\1\162\1\154\1\156\1\151\1\162\1\164\1\162\1\155\1\164\1\157\1\164\1\155\1\uffff\1\154\4\uffff\1\153\1\160\1\145\1\165\1\156\1\164\1\145\1\143\1\141\1\145\1\164\1\uffff\1\162\1\151\2\145\1\172\1\157\1\162\1\101\1\115\1\uffff\1\172\1\151\2\145\1\172\2\145\1\126\1\uffff\1\172\1\154\1\161\1\163\2\172\2\uffff\1\157\1\164\1\uffff\2\164\1\145\1\172\1\143\4\uffff\1\172\1\163\1\141\1\154\2\172\1\165\1\151\2\145\1\154\2\145\1\141\1\145\1\172\1\155\1\164\1\151\1\172\1\150\1\165\1\156\1\151\1\172\1\156\2\172\1\uffff\1\167\1\141\1\154\1\145\1\uffff\1\164\1\156\1\172\1\uffff\1\154\1\103\1\151\1\uffff\1\172\2\165\2\uffff\1\162\1\141\1\151\1\143\1\162\1\uffff\1\150\1\uffff\1\145\1\154\1\145\2\uffff\1\162\1\156\1\162\1\147\1\145\2\172\1\147\1\162\1\uffff\1\156\1\172\1\157\1\uffff\1\172\1\154\1\163\1\156\1\uffff\1\141\1\151\1\146\2\uffff\1\172\1\162\1\154\1\155\1\171\1\163\1\uffff\1\172\1\157\1\163\1\uffff\1\145\1\162\1\164\1\156\1\143\1\150\1\172\1\162\1\172\1\154\1\172\1\156\1\147\1\151\1\145\1\141\1\uffff\1\164\1\145\1\157\1\165\1\157\1\145\1\141\1\145\1\uffff\1\145\1\164\1\172\1\uffff\1\156\1\uffff\1\164\1\151\1\143\1\154\1\155\1\172\1\uffff\1\143\1\172\1\142\1\172\1\151\1\163\1\171\1\uffff\1\154\1\151\1\115\1\145\1\172\1\143\2\172\1\uffff\1\157\1\uffff\1\171\1\uffff\2\172\1\143\1\162\1\156\2\141\1\154\1\165\1\141\2\156\1\145\1\171\1\143\1\172\1\171\1\uffff\1\103\1\172\1\157\1\164\1\103\1\145\1\uffff\1\150\1\uffff\1\145\1\uffff\1\157\1\172\1\160\1\165\1\142\1\145\1\172\1\uffff\1\145\2\uffff\1\156\1\172\2\uffff\3\172\1\155\1\162\1\146\2\162\1\164\1\165\1\153\1\163\1\157\1\uffff\1\172\1\157\1\145\1\uffff\1\156\1\55\1\157\1\172\1\171\1\162\1\156\1\uffff\1\145\1\155\1\154\1\155\1\uffff\1\157\1\151\4\uffff\1\160\1\163\1\131\1\163\1\164\1\150\1\164\1\163\1\172\1\156\1\uffff\1\154\1\155\1\172\1\uffff\1\154\1\uffff\1\172\1\116\2\172\1\156\1\145\1\142\1\146\3\172\1\145\1\172\1\145\1\163\1\145\1\172\1\uffff\1\144\1\165\1\163\1\142\1\163\1\uffff\1\165\1\uffff\1\141\2\uffff\2\172\1\145\1\172\1\145\2\uffff\1\141\1\uffff\1\162\1\172\1\163\1\uffff\1\163\1\155\1\165\1\145\1\141\2\155\2\uffff\1\162\1\uffff\1\144\1\162\1\163\1\uffff\2\172\1\156\2\162\1\147\1\156\1\145\1\163\1\172\1\163\1\172\2\uffff\1\172\1\145\1\172\1\145\3\172\1\uffff\1\172\2\uffff\1\172\1\uffff\1\172\6\uffff";
     static final String DFA21_acceptS =
-        "\2\uffff\1\2\1\3\20\uffff\1\36\1\37\1\40\1\41\1\42\1\uffff\1\44\1\45\1\46\30\uffff\1\173\2\174\1\177\1\u0080\2\uffff\1\173\1\2\1\3\35\uffff\1\30\7\uffff\1\51\1\76\1\34\1\36\1\37\1\40\1\41\1\42\1\uffff\1\71\1\43\1\44\1\45\1\46\1\47\1\103\1\74\1\50\1\66\1\104\1\75\1\52\1\175\1\176\1\77\1\53\1\100\1\72\1\54\1\56\1\55\1\57\1\107\1\60\1\141\1\uffff\1\101\1\73\1\106\1\140\1\105\1\113\14\uffff\1\170\1\uffff\1\171\1\172\1\174\1\177\12\uffff\1\120\10\uffff\1\102\13\uffff\1\35\2\uffff\1\67\1\70\2\uffff\1\110\5\uffff\1\63\1\61\1\64\1\62\32\uffff\1\134\4\uffff\1\146\3\uffff\1\17\3\uffff\1\144\1\145\1\uffff\1\125\6\uffff\1\142\1\uffff\1\116\3\uffff\1\121\1\122\11\uffff\1\4\2\uffff\1\115\4\uffff\1\7\2\uffff\1\25\1\127\6\uffff\1\111\4\uffff\1\130\16\uffff\1\154\10\uffff\1\155\3\uffff\1\143\1\137\5\uffff\1\132\7\uffff\1\20\7\uffff\1\124\1\uffff\1\126\1\uffff\1\117\21\uffff\1\21\4\uffff\1\131\1\uffff\1\13\1\uffff\1\16\6\uffff\1\31\1\uffff\1\32\1\112\2\uffff\1\133\1\150\15\uffff\1\1\2\uffff\1\114\6\uffff\1\123\2\uffff\1\26\3\uffff\1\135\1\151\1\152\1\153\12\uffff\1\24\2\uffff\1\147\1\11\20\uffff\1\164\4\uffff\1\10\1\12\1\uffff\1\33\1\23\4\uffff\1\156\1\157\1\uffff\1\165\3\uffff\1\163\6\uffff\1\27\1\65\3\uffff\1\162\12\uffff\1\166\1\167\5\uffff\1\136\1\uffff\1\161\1\uffff\1\15\1\uffff\1\14\1\22\1\160\1\5\1\6";
+        "\2\uffff\1\2\1\3\20\uffff\1\41\1\42\1\43\1\44\1\45\1\uffff\1\47\1\50\1\51\30\uffff\1\176\2\177\1\u0082\1\u0083\2\uffff\1\176\1\2\1\3\37\uffff\1\33\7\uffff\1\54\1\101\1\37\1\41\1\42\1\43\1\44\1\45\1\uffff\1\74\1\46\1\47\1\50\1\51\1\52\1\106\1\77\1\53\1\71\1\107\1\100\1\55\1\u0080\1\u0081\1\102\1\56\1\103\1\75\1\57\1\61\1\60\1\62\1\112\1\63\1\144\1\uffff\1\104\1\76\1\111\1\143\1\110\1\116\14\uffff\1\173\1\uffff\1\174\1\175\1\177\1\u0082\13\uffff\1\123\11\uffff\1\105\10\uffff\1\40\6\uffff\1\72\1\73\2\uffff\1\113\5\uffff\1\66\1\64\1\67\1\65\34\uffff\1\137\4\uffff\1\151\3\uffff\1\17\3\uffff\1\130\3\uffff\1\147\1\150\5\uffff\1\145\1\uffff\1\121\3\uffff\1\124\1\125\11\uffff\1\4\3\uffff\1\120\4\uffff\1\7\3\uffff\1\30\1\132\6\uffff\1\114\3\uffff\1\133\20\uffff\1\157\10\uffff\1\160\3\uffff\1\146\1\uffff\1\142\6\uffff\1\135\7\uffff\1\20\10\uffff\1\127\1\uffff\1\131\1\uffff\1\122\21\uffff\1\21\6\uffff\1\134\1\uffff\1\13\1\uffff\1\16\7\uffff\1\34\1\uffff\1\35\1\115\2\uffff\1\136\1\153\15\uffff\1\1\3\uffff\1\117\7\uffff\1\126\4\uffff\1\31\2\uffff\1\140\1\154\1\155\1\156\12\uffff\1\27\3\uffff\1\152\1\uffff\1\11\21\uffff\1\167\5\uffff\1\10\1\uffff\1\12\1\uffff\1\36\1\26\5\uffff\1\161\1\162\1\uffff\1\170\3\uffff\1\166\7\uffff\1\22\1\32\1\uffff\1\70\3\uffff\1\165\14\uffff\1\171\1\172\7\uffff\1\141\1\uffff\1\164\1\23\1\uffff\1\15\1\uffff\1\24\1\14\1\25\1\163\1\5\1\6";
     static final String DFA21_specialS =
-        "\1\0\u0209\uffff}>";
+        "\1\0\u022c\uffff}>";
     static final String[] DFA21_transitionS = {
-            "\11\71\2\70\2\71\1\70\22\71\1\70\1\45\1\66\1\32\1\65\1\40\1\44\1\67\1\26\1\30\1\23\1\35\1\27\1\36\1\20\1\37\1\62\11\63\1\47\1\24\1\41\1\31\1\42\1\46\1\25\1\65\1\57\1\65\1\60\4\65\1\56\4\65\1\55\4\65\1\54\1\61\6\65\1\33\1\71\1\34\1\64\1\65\1\71\1\11\1\65\1\4\1\5\1\12\1\50\1\65\1\10\1\21\1\65\1\13\1\14\1\16\1\17\1\6\1\1\1\65\1\53\1\22\1\7\1\15\1\52\1\51\3\65\1\2\1\43\1\3\uff82\71",
+            "\11\71\2\70\2\71\1\70\22\71\1\70\1\45\1\66\1\32\1\65\1\40\1\44\1\67\1\26\1\30\1\23\1\35\1\27\1\36\1\20\1\37\1\62\11\63\1\47\1\24\1\41\1\31\1\42\1\46\1\25\1\65\1\57\1\65\1\60\4\65\1\56\4\65\1\55\4\65\1\54\1\61\6\65\1\33\1\71\1\34\1\64\1\65\1\71\1\11\1\65\1\4\1\5\1\12\1\50\1\65\1\10\1\21\1\65\1\13\1\14\1\17\1\15\1\6\1\1\1\65\1\53\1\22\1\7\1\16\1\52\1\51\3\65\1\2\1\43\1\3\uff82\71",
             "\1\72\20\uffff\1\73",
             "",
             "",
             "\1\101\15\uffff\1\100\5\uffff\1\77",
             "\1\102\3\uffff\1\103\5\uffff\1\104",
-            "\1\105",
-            "\1\110\11\uffff\1\107\6\uffff\1\106",
-            "\1\112\7\uffff\1\111",
-            "\1\113\6\uffff\1\114\2\uffff\1\115",
-            "\1\120\1\uffff\1\116\11\uffff\1\117",
-            "\1\121",
+            "\1\106\3\uffff\1\105",
+            "\1\111\11\uffff\1\110\6\uffff\1\107",
+            "\1\113\7\uffff\1\112",
+            "\1\114\6\uffff\1\115\2\uffff\1\116",
+            "\1\121\1\uffff\1\117\11\uffff\1\120",
             "\1\122",
             "\1\123",
-            "\1\126\3\uffff\1\124\3\uffff\1\125",
-            "\1\131\11\uffff\1\127\3\uffff\1\130\1\uffff\1\132",
-            "\1\133",
-            "\1\137\6\uffff\1\135\1\136",
-            "\1\140\1\142\1\uffff\1\141\1\uffff\1\143",
-            "\1\145\22\uffff\1\144",
+            "\1\124\3\uffff\1\127\11\uffff\1\125\3\uffff\1\126\1\uffff\1\130",
+            "\1\131",
+            "\1\134\3\uffff\1\132\3\uffff\1\133",
+            "\1\135",
+            "\1\141\6\uffff\1\137\1\140",
+            "\1\142\1\144\1\uffff\1\143\1\uffff\1\145",
+            "\1\147\22\uffff\1\146",
             "",
             "",
             "",
             "",
             "",
-            "\1\154\1\155",
+            "\1\156\1\157",
             "",
             "",
             "",
-            "\1\163\21\uffff\1\162",
-            "\1\167\17\uffff\1\165\1\166",
-            "\1\172\4\uffff\1\173\15\uffff\1\171",
-            "\1\175",
+            "\1\165\21\uffff\1\164",
+            "\1\171\17\uffff\1\167\1\170",
+            "\1\174\4\uffff\1\175\15\uffff\1\173",
             "\1\177",
             "\1\u0081",
             "\1\u0083",
             "\1\u0085",
             "\1\u0087",
-            "\1\u008a\13\uffff\1\u0089",
-            "\1\u008c",
-            "\1\u008f\7\uffff\1\u0090\5\uffff\1\u008e",
-            "\1\u0091",
-            "\1\u0092",
+            "\1\u0089",
+            "\1\u008c\13\uffff\1\u008b",
+            "\1\u008e",
+            "\1\u0091\7\uffff\1\u0092\5\uffff\1\u0090",
             "\1\u0093",
             "\1\u0094",
             "\1\u0095",
@@ -4460,37 +4528,36 @@
             "\1\u0097",
             "\1\u0098",
             "\1\u0099",
-            "\12\u009b\10\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d\13\uffff\1\u009a\6\uffff\1\u009b\2\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d\13\uffff\1\u009a",
-            "\12\u009b\10\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d\22\uffff\1\u009b\2\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d",
+            "\1\u009a",
+            "\1\u009b",
+            "\12\u009d\10\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f\13\uffff\1\u009c\6\uffff\1\u009d\2\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f\13\uffff\1\u009c",
+            "\12\u009d\10\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f\22\uffff\1\u009d\2\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f",
             "\1\74\34\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
             "",
             "",
             "",
-            "\1\u00a0",
-            "\1\u00a1",
-            "",
-            "",
-            "",
             "\1\u00a2",
-            "\1\u00a3\10\uffff\1\u00a4",
-            "\1\u00a5\1\u00a6",
-            "\1\u00a7",
-            "\1\u00a8\5\uffff\1\u00a9",
+            "\1\u00a3",
+            "",
+            "",
+            "",
+            "\1\u00a4",
+            "\1\u00a5\10\uffff\1\u00a6",
+            "\1\u00a7\2\uffff\1\u00a8\1\u00a9",
+            "\1\u00aa",
+            "\1\u00ab\5\uffff\1\u00ac",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00ab",
-            "\1\u00ac",
-            "\1\u00ad\3\uffff\1\u00ae",
+            "\1\u00ae",
             "\1\u00af",
             "\1\u00b0",
-            "\1\u00b1",
-            "\1\u00b2",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00b1\3\uffff\1\u00b2",
+            "\1\u00b3",
             "\1\u00b4",
             "\1\u00b5",
             "\1\u00b6",
-            "\1\u00b7",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00b8",
             "\1\u00b9",
             "\1\u00ba",
@@ -4498,347 +4565,339 @@
             "\1\u00bc",
             "\1\u00bd",
             "\1\u00be",
+            "\1\u00bf",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00c0",
             "\1\u00c1",
             "\1\u00c2",
-            "",
+            "\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00c6",
             "\1\u00c7",
-            "\1\u00c8",
-            "\1\u00ca\2\uffff\1\u00c9",
-            "\1\u00cb",
             "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
+            "\1\u00c9",
+            "\1\u00ca",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00cc",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00ce",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
+            "\1\u00cd",
+            "\1\u00cf\2\uffff\1\u00ce",
             "\1\u00d0",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00d1",
-            "\1\u00d2",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u00d3",
-            "\1\u00d5\5\uffff\1\u00d4",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00d5",
             "\1\u00d6",
             "\1\u00d7",
             "\1\u00d8",
-            "\1\u00d9",
-            "\1\u00da",
+            "\1\u00da\5\uffff\1\u00d9",
             "\1\u00db",
             "\1\u00dc",
-            "",
-            "\12\u009b\10\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d\22\uffff\1\u009b\2\uffff\1\u009d\1\uffff\3\u009d\5\uffff\1\u009d",
-            "",
-            "",
-            "",
-            "",
             "\1\u00dd",
             "\1\u00de",
             "\1\u00df",
             "\1\u00e0",
             "\1\u00e1",
+            "",
+            "\12\u009d\10\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f\22\uffff\1\u009d\2\uffff\1\u009f\1\uffff\3\u009f\5\uffff\1\u009f",
+            "",
+            "",
+            "",
+            "",
             "\1\u00e2",
             "\1\u00e3",
             "\1\u00e4",
             "\1\u00e5",
             "\1\u00e6",
-            "",
             "\1\u00e7",
             "\1\u00e8",
             "\1\u00e9",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00ea",
             "\1\u00eb",
             "\1\u00ec",
+            "",
             "\1\u00ed",
             "\1\u00ee",
-            "",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00ef",
             "\1\u00f0",
-            "\1\u00f1",
-            "\1\u00f2",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00f2",
+            "\1\u00f3",
             "\1\u00f4",
             "\1\u00f5",
-            "\1\u00f6",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00f9",
             "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00fb",
-            "",
-            "",
             "\1\u00fc",
             "\1\u00fd",
             "",
-            "\1\u00fe",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00ff",
             "\1\u0100",
+            "\1\u0101",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0102",
-            "",
-            "",
-            "",
-            "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "",
             "\1\u0104",
             "\1\u0105",
+            "",
             "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0109",
             "\1\u010a",
-            "\1\u010b",
+            "",
+            "",
+            "",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u010c",
             "\1\u010d",
             "\1\u010e",
-            "\1\u010f",
-            "\1\u0110",
-            "\1\u0111",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0111",
+            "\1\u0112",
             "\1\u0113",
             "\1\u0114",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0115",
             "\1\u0116",
             "\1\u0117",
             "\1\u0118",
             "\1\u0119",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\23\74\1\u011b\6\74\4\uffff\1\74\1\uffff\16\74\1\u011c\13\74",
+            "\1\u011b",
+            "\1\u011c",
+            "\1\u011d",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
             "\1\u011f",
             "\1\u0120",
             "\1\u0121",
             "\1\u0122",
-            "",
-            "\1\u0123",
-            "\1\u0124",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "\1\u0126",
-            "\1\u0127",
-            "\1\u0128",
-            "",
+            "\1\u0124",
+            "\1\74\13\uffff\12\74\7\uffff\23\74\1\u0125\6\74\4\uffff\1\74\1\uffff\16\74\1\u0126\13\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "\1\u0129",
-            "",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u012a",
             "\1\u012b",
             "\1\u012c",
+            "",
             "\1\u012d",
             "\1\u012e",
-            "\1\u012f",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "\1\u0130",
-            "",
             "\1\u0131",
             "\1\u0132",
-            "\1\u0133",
             "",
-            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0134",
             "\1\u0135",
+            "",
+            "",
             "\1\u0136",
             "\1\u0137",
             "\1\u0138",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\3\74\1\u0140\3\74\1\u013c\4\74\1\u013e\3\74\1\u013d\1\74\1\u0141\3\74\1\u013f\1\74\1\u013b\1\74\4\uffff\1\74\1\uffff\22\74\1\u013a\7\74",
+            "\1\u0139",
+            "\1\u013a",
+            "",
+            "\1\u013b",
+            "",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\u013e",
+            "",
+            "",
+            "\1\u013f",
+            "\1\u0140",
+            "\1\u0141",
+            "\1\u0142",
             "\1\u0143",
-            "\1\u0144",
-            "",
-            "\1\u0145",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0148",
-            "\1\u0149",
-            "\1\u014a",
-            "",
-            "\1\u014b",
-            "\1\u014c",
-            "",
-            "",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\3\74\1\u014b\3\74\1\u0147\4\74\1\u0149\3\74\1\u0148\1\74\1\u014c\3\74\1\u014a\1\74\1\u0146\1\74\4\uffff\1\74\1\uffff\22\74\1\u0145\7\74",
             "\1\u014e",
             "\1\u014f",
-            "\1\u0150",
-            "\1\u0151",
-            "\1\u0153\16\uffff\1\u0152",
             "",
-            "\1\74\13\uffff\12\74\7\uffff\23\74\1\u0154\6\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0150",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0152",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0154",
+            "\1\u0155",
             "\1\u0156",
+            "",
             "\1\u0157",
             "\1\u0158",
-            "",
             "\1\u0159",
-            "\1\u015a",
+            "",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u015b",
             "\1\u015c",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u015d",
             "\1\u015e",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0160",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0162",
+            "\1\u0160\16\uffff\1\u015f",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\23\74\1\u0161\6\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0163",
             "\1\u0164",
+            "",
             "\1\u0165",
             "\1\u0166",
-            "",
             "\1\u0167",
             "\1\u0168",
-            "\1\u0169\15\uffff\1\u016a",
-            "\1\u016b",
-            "\1\u016d\5\uffff\1\u016c",
+            "\1\u0169",
+            "\1\u016a",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u016c",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u016e",
-            "\1\u016f",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0170",
-            "",
             "\1\u0171",
             "\1\u0172",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "",
+            "\1\u0173",
             "\1\u0174",
+            "",
             "\1\u0175",
             "\1\u0176",
-            "\1\u0177",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
+            "\1\u0177\15\uffff\1\u0178",
             "\1\u0179",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u017b",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u017b\5\uffff\1\u017a",
+            "\1\u017c",
             "\1\u017d",
             "\1\u017e",
+            "",
             "\1\u017f",
-            "",
             "\1\u0180",
-            "\1\u0181",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
             "\1\u0182",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u0183",
             "\1\u0184",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
+            "\1\u0185",
+            "\1\u0186",
             "\1\u0187",
-            "",
-            "\1\u0188",
-            "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u0189",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u018b",
-            "\1\u018c",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u018d",
             "\1\u018e",
             "\1\u018f",
+            "",
             "\1\u0190",
             "\1\u0191",
             "\1\u0192",
             "\1\u0193",
-            "\1\u0194",
-            "\1\u0195",
-            "\1\u0196",
-            "\1\u0197",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0195",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u0198",
+            "",
             "\1\u0199",
             "",
-            "\1\74\13\uffff\12\74\7\uffff\14\74\1\u019a\15\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u019c",
             "\1\u019d",
             "\1\u019e",
-            "",
             "\1\u019f",
-            "",
             "\1\u01a0",
-            "",
             "\1\u01a1",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01a2",
             "\1\u01a3",
             "\1\u01a4",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01a5",
             "\1\u01a6",
-            "",
             "\1\u01a7",
-            "",
-            "",
             "\1\u01a8",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01aa",
             "",
-            "",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u01ad",
+            "\1\u01ab",
+            "\1\74\13\uffff\12\74\7\uffff\14\74\1\u01ac\15\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u01ae",
             "\1\u01af",
             "\1\u01b0",
             "\1\u01b1",
+            "",
             "\1\u01b2",
+            "",
             "\1\u01b3",
+            "",
             "\1\u01b4",
-            "\1\u01b5",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u01b6",
-            "",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01b7",
             "\1\u01b8",
-            "",
             "\1\u01b9",
-            "\1\u01ba",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u01bb",
+            "",
+            "",
             "\1\u01bc",
-            "\1\u01bd",
-            "\1\u01be",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
-            "\1\u01bf",
-            "\1\u01c0",
             "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u01c1",
             "\1\u01c2",
             "\1\u01c3",
-            "",
-            "",
-            "",
-            "",
             "\1\u01c4",
             "\1\u01c5",
             "\1\u01c6",
@@ -4846,84 +4905,129 @@
             "\1\u01c8",
             "\1\u01c9",
             "\1\u01ca",
-            "\1\u01cb",
+            "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01cc",
             "\1\u01cd",
             "",
-            "\1\u01ce\13\uffff\1\u01cf",
-            "\1\74\13\uffff\12\74\7\uffff\24\74\1\u01d0\5\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "",
+            "\1\u01ce",
+            "\1\u01cf",
+            "\1\u01d0",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01d2",
             "\1\u01d3",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01d4",
+            "",
+            "\1\u01d5",
             "\1\u01d6",
             "\1\u01d7",
             "\1\u01d8",
+            "",
             "\1\u01d9",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01da",
+            "",
+            "",
+            "",
+            "",
+            "\1\u01db",
             "\1\u01dc",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01dd",
             "\1\u01de",
             "\1\u01df",
             "\1\u01e0",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
+            "\1\u01e1",
             "\1\u01e2",
-            "\1\u01e3",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u01e4",
+            "",
             "\1\u01e5",
+            "\1\u01e6\13\uffff\1\u01e7",
+            "\1\74\13\uffff\12\74\7\uffff\24\74\1\u01e8\5\74\4\uffff\1\74\1\uffff\32\74",
             "",
-            "",
-            "\1\u01e6",
-            "",
-            "",
-            "\1\u01e7",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u01ea",
             "",
-            "",
-            "\1\u01eb",
-            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u01ec",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u01ee",
-            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u01ef",
             "\1\u01f0",
             "\1\u01f1",
             "\1\u01f2",
             "\1\u01f3",
-            "\1\u01f4",
-            "",
-            "",
-            "\1\u01f5",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u01f6",
-            "\1\u01f7",
-            "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01f8",
+            "\1\u01f9",
             "\1\u01fa",
-            "\1\u01fb",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
             "\1\u01fc",
             "\1\u01fd",
             "\1\u01fe",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u01ff",
             "\1\u0200",
-            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
+            "\1\u0201",
             "",
             "\1\u0202",
+            "",
+            "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0204",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0205",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0207",
+            "",
+            "",
+            "\1\u0208",
+            "",
+            "\1\u0209",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u020b",
+            "",
+            "\1\u020c",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "\1\u0212",
+            "",
+            "",
+            "\1\u0213",
+            "",
+            "\1\u0214",
+            "\1\u0215",
+            "\1\u0216",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0219",
+            "\1\u021a",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\u021d",
+            "\1\u021e",
+            "\1\u021f",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0221",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0224",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0226",
+            "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
+            "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "\1\74\13\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
@@ -4931,6 +5035,7 @@
             "",
             "",
             "",
+            "",
             ""
     };
 
@@ -4964,7 +5069,7 @@
             this.transition = DFA21_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -4998,11 +5103,11 @@
 
                         else if ( (LA21_0=='l') ) {s = 12;}
 
-                        else if ( (LA21_0=='u') ) {s = 13;}
+                        else if ( (LA21_0=='n') ) {s = 13;}
 
-                        else if ( (LA21_0=='m') ) {s = 14;}
+                        else if ( (LA21_0=='u') ) {s = 14;}
 
-                        else if ( (LA21_0=='n') ) {s = 15;}
+                        else if ( (LA21_0=='m') ) {s = 15;}
 
                         else if ( (LA21_0=='.') ) {s = 16;}
 
diff --git a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSLParser.java b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSLParser.java
index fc6f167..1e40545 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSLParser.java
+++ b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/parser/antlr/internal/InternalCubeDSLParser.java
@@ -40,7 +40,7 @@
 @SuppressWarnings("all")
 public class InternalCubeDSLParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'cube'", "'defaultMeasure'", "'dimensionUsage'", "'over'", "'dimension'", "'typeTime'", "'hierarchy'", "'hasAll'", "'allMemberName'", "'defaultMember'", "'entity'", "'key'", "'level'", "'column'", "'uniqueMembers'", "'levelType'", "'property'", "'type'", "'measure'", "'notVisible'", "'.'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'sum'", "'count'", "'min'", "'max'", "'avg'", "'distinct-count'", "'String'", "'Numeric'", "'Integer'", "'Boolean'", "'Date'", "'Time'", "'Timestamp'", "'TimeYears'", "'TimeHalfYears'", "'TimeQuarters'", "'TimeMonths'", "'TimeWeeks'", "'TimeDays'", "'TimeHours'", "'TimeMinutes'", "'TimeSeconds'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'cube'", "'defaultMeasure'", "'dimensionUsage'", "'over'", "'dimension'", "'typeTime'", "'hierarchy'", "'hasAll'", "'allMemberName'", "'defaultMember'", "'entity'", "'key'", "'level'", "'column'", "'nameColumn'", "'captionColumn'", "'ordinalColumn'", "'uniqueMembers'", "'levelType'", "'property'", "'type'", "'measure'", "'notVisible'", "'.'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'sum'", "'count'", "'min'", "'max'", "'avg'", "'distinct-count'", "'String'", "'Numeric'", "'Integer'", "'Boolean'", "'Date'", "'Time'", "'Timestamp'", "'TimeYears'", "'TimeHalfYears'", "'TimeQuarters'", "'TimeMonths'", "'TimeWeeks'", "'TimeDays'", "'TimeHours'", "'TimeMinutes'", "'TimeSeconds'"
     };
     public static final int RULE_HEX=6;
     public static final int T__50=50;
@@ -53,8 +53,11 @@
     public static final int T__52=52;
     public static final int T__53=53;
     public static final int T__54=54;
+    public static final int T__133=133;
+    public static final int T__132=132;
     public static final int T__60=60;
     public static final int T__61=61;
+    public static final int T__134=134;
     public static final int RULE_ID=4;
     public static final int T__131=131;
     public static final int T__130=130;
@@ -212,7 +215,7 @@
 
 
     // $ANTLR start "entryRuleCubeModel"
-    // InternalCubeDSL.g:78:1: entryRuleCubeModel returns [EObject current=null] : iv_ruleCubeModel= ruleCubeModel EOF ;
+    // InternalCubeDSL.g:80:1: entryRuleCubeModel returns [EObject current=null] : iv_ruleCubeModel= ruleCubeModel EOF ;
     public final EObject entryRuleCubeModel() throws RecognitionException {
         EObject current = null;
 
@@ -220,8 +223,8 @@
 
 
         try {
-            // InternalCubeDSL.g:78:50: (iv_ruleCubeModel= ruleCubeModel EOF )
-            // InternalCubeDSL.g:79:2: iv_ruleCubeModel= ruleCubeModel EOF
+            // InternalCubeDSL.g:80:50: (iv_ruleCubeModel= ruleCubeModel EOF )
+            // InternalCubeDSL.g:81:2: iv_ruleCubeModel= ruleCubeModel EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeModelRule()); 
@@ -252,7 +255,7 @@
 
 
     // $ANTLR start "ruleCubeModel"
-    // InternalCubeDSL.g:85:1: ruleCubeModel returns [EObject current=null] : ( () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) ) ) ;
+    // InternalCubeDSL.g:87:1: ruleCubeModel returns [EObject current=null] : ( () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) ) ) ;
     public final EObject ruleCubeModel() throws RecognitionException {
         EObject current = null;
 
@@ -265,14 +268,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:91:2: ( ( () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) ) ) )
-            // InternalCubeDSL.g:92:2: ( () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) ) )
+            // InternalCubeDSL.g:93:2: ( ( () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) ) ) )
+            // InternalCubeDSL.g:94:2: ( () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) ) )
             {
-            // InternalCubeDSL.g:92:2: ( () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) ) )
-            // InternalCubeDSL.g:93:3: () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) )
+            // InternalCubeDSL.g:94:2: ( () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) ) )
+            // InternalCubeDSL.g:95:3: () ( (lv_importSection_1_0= ruleXImportSection ) )? ( (lv_pckg_2_0= ruleCubePackage ) )
             {
-            // InternalCubeDSL.g:93:3: ()
-            // InternalCubeDSL.g:94:4: 
+            // InternalCubeDSL.g:95:3: ()
+            // InternalCubeDSL.g:96:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -284,19 +287,19 @@
 
             }
 
-            // InternalCubeDSL.g:100:3: ( (lv_importSection_1_0= ruleXImportSection ) )?
+            // InternalCubeDSL.g:102:3: ( (lv_importSection_1_0= ruleXImportSection ) )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
-            if ( (LA1_0==37) ) {
+            if ( (LA1_0==40) ) {
                 alt1=1;
             }
             switch (alt1) {
                 case 1 :
-                    // InternalCubeDSL.g:101:4: (lv_importSection_1_0= ruleXImportSection )
+                    // InternalCubeDSL.g:103:4: (lv_importSection_1_0= ruleXImportSection )
                     {
-                    // InternalCubeDSL.g:101:4: (lv_importSection_1_0= ruleXImportSection )
-                    // InternalCubeDSL.g:102:5: lv_importSection_1_0= ruleXImportSection
+                    // InternalCubeDSL.g:103:4: (lv_importSection_1_0= ruleXImportSection )
+                    // InternalCubeDSL.g:104:5: lv_importSection_1_0= ruleXImportSection
                     {
                     if ( state.backtracking==0 ) {
 
@@ -330,11 +333,11 @@
 
             }
 
-            // InternalCubeDSL.g:119:3: ( (lv_pckg_2_0= ruleCubePackage ) )
-            // InternalCubeDSL.g:120:4: (lv_pckg_2_0= ruleCubePackage )
+            // InternalCubeDSL.g:121:3: ( (lv_pckg_2_0= ruleCubePackage ) )
+            // InternalCubeDSL.g:122:4: (lv_pckg_2_0= ruleCubePackage )
             {
-            // InternalCubeDSL.g:120:4: (lv_pckg_2_0= ruleCubePackage )
-            // InternalCubeDSL.g:121:5: lv_pckg_2_0= ruleCubePackage
+            // InternalCubeDSL.g:122:4: (lv_pckg_2_0= ruleCubePackage )
+            // InternalCubeDSL.g:123:5: lv_pckg_2_0= ruleCubePackage
             {
             if ( state.backtracking==0 ) {
 
@@ -390,7 +393,7 @@
 
 
     // $ANTLR start "entryRuleCubePackage"
-    // InternalCubeDSL.g:142:1: entryRuleCubePackage returns [EObject current=null] : iv_ruleCubePackage= ruleCubePackage EOF ;
+    // InternalCubeDSL.g:144:1: entryRuleCubePackage returns [EObject current=null] : iv_ruleCubePackage= ruleCubePackage EOF ;
     public final EObject entryRuleCubePackage() throws RecognitionException {
         EObject current = null;
 
@@ -398,8 +401,8 @@
 
 
         try {
-            // InternalCubeDSL.g:142:52: (iv_ruleCubePackage= ruleCubePackage EOF )
-            // InternalCubeDSL.g:143:2: iv_ruleCubePackage= ruleCubePackage EOF
+            // InternalCubeDSL.g:144:52: (iv_ruleCubePackage= ruleCubePackage EOF )
+            // InternalCubeDSL.g:145:2: iv_ruleCubePackage= ruleCubePackage EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubePackageRule()); 
@@ -430,7 +433,7 @@
 
 
     // $ANTLR start "ruleCubePackage"
-    // InternalCubeDSL.g:149:1: ruleCubePackage returns [EObject current=null] : (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )? ) ;
+    // InternalCubeDSL.g:151:1: ruleCubePackage returns [EObject current=null] : (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )? ) ;
     public final EObject ruleCubePackage() throws RecognitionException {
         EObject current = null;
 
@@ -448,11 +451,11 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:155:2: ( (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )? ) )
-            // InternalCubeDSL.g:156:2: (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )? )
+            // InternalCubeDSL.g:157:2: ( (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )? ) )
+            // InternalCubeDSL.g:158:2: (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )? )
             {
-            // InternalCubeDSL.g:156:2: (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )? )
-            // InternalCubeDSL.g:157:3: otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )?
+            // InternalCubeDSL.g:158:2: (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )? )
+            // InternalCubeDSL.g:159:3: otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )?
             {
             otherlv_0=(Token)match(input,13,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -460,11 +463,11 @@
               			newLeafNode(otherlv_0, grammarAccess.getCubePackageAccess().getPackageKeyword_0());
               		
             }
-            // InternalCubeDSL.g:161:3: ( (lv_name_1_0= ruleQualifiedName ) )
-            // InternalCubeDSL.g:162:4: (lv_name_1_0= ruleQualifiedName )
+            // InternalCubeDSL.g:163:3: ( (lv_name_1_0= ruleQualifiedName ) )
+            // InternalCubeDSL.g:164:4: (lv_name_1_0= ruleQualifiedName )
             {
-            // InternalCubeDSL.g:162:4: (lv_name_1_0= ruleQualifiedName )
-            // InternalCubeDSL.g:163:5: lv_name_1_0= ruleQualifiedName
+            // InternalCubeDSL.g:164:4: (lv_name_1_0= ruleQualifiedName )
+            // InternalCubeDSL.g:165:5: lv_name_1_0= ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -495,7 +498,7 @@
 
             }
 
-            // InternalCubeDSL.g:180:3: (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )?
+            // InternalCubeDSL.g:182:3: (otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}' )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -504,7 +507,7 @@
             }
             switch (alt4) {
                 case 1 :
-                    // InternalCubeDSL.g:181:4: otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}'
+                    // InternalCubeDSL.g:183:4: otherlv_2= '{' ( (lv_dimensions_3_0= ruleCubeDimension ) )* ( (lv_cubes_4_0= ruleCubeType ) )* otherlv_5= '}'
                     {
                     otherlv_2=(Token)match(input,14,FOLLOW_6); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -512,7 +515,7 @@
                       				newLeafNode(otherlv_2, grammarAccess.getCubePackageAccess().getLeftCurlyBracketKeyword_2_0());
                       			
                     }
-                    // InternalCubeDSL.g:185:4: ( (lv_dimensions_3_0= ruleCubeDimension ) )*
+                    // InternalCubeDSL.g:187:4: ( (lv_dimensions_3_0= ruleCubeDimension ) )*
                     loop2:
                     do {
                         int alt2=2;
@@ -525,10 +528,10 @@
 
                         switch (alt2) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:186:5: (lv_dimensions_3_0= ruleCubeDimension )
+                    	    // InternalCubeDSL.g:188:5: (lv_dimensions_3_0= ruleCubeDimension )
                     	    {
-                    	    // InternalCubeDSL.g:186:5: (lv_dimensions_3_0= ruleCubeDimension )
-                    	    // InternalCubeDSL.g:187:6: lv_dimensions_3_0= ruleCubeDimension
+                    	    // InternalCubeDSL.g:188:5: (lv_dimensions_3_0= ruleCubeDimension )
+                    	    // InternalCubeDSL.g:189:6: lv_dimensions_3_0= ruleCubeDimension
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -565,7 +568,7 @@
                         }
                     } while (true);
 
-                    // InternalCubeDSL.g:204:4: ( (lv_cubes_4_0= ruleCubeType ) )*
+                    // InternalCubeDSL.g:206:4: ( (lv_cubes_4_0= ruleCubeType ) )*
                     loop3:
                     do {
                         int alt3=2;
@@ -578,10 +581,10 @@
 
                         switch (alt3) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:205:5: (lv_cubes_4_0= ruleCubeType )
+                    	    // InternalCubeDSL.g:207:5: (lv_cubes_4_0= ruleCubeType )
                     	    {
-                    	    // InternalCubeDSL.g:205:5: (lv_cubes_4_0= ruleCubeType )
-                    	    // InternalCubeDSL.g:206:6: lv_cubes_4_0= ruleCubeType
+                    	    // InternalCubeDSL.g:207:5: (lv_cubes_4_0= ruleCubeType )
+                    	    // InternalCubeDSL.g:208:6: lv_cubes_4_0= ruleCubeType
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -655,7 +658,7 @@
 
 
     // $ANTLR start "entryRuleCubeType"
-    // InternalCubeDSL.g:232:1: entryRuleCubeType returns [EObject current=null] : iv_ruleCubeType= ruleCubeType EOF ;
+    // InternalCubeDSL.g:234:1: entryRuleCubeType returns [EObject current=null] : iv_ruleCubeType= ruleCubeType EOF ;
     public final EObject entryRuleCubeType() throws RecognitionException {
         EObject current = null;
 
@@ -663,8 +666,8 @@
 
 
         try {
-            // InternalCubeDSL.g:232:49: (iv_ruleCubeType= ruleCubeType EOF )
-            // InternalCubeDSL.g:233:2: iv_ruleCubeType= ruleCubeType EOF
+            // InternalCubeDSL.g:234:49: (iv_ruleCubeType= ruleCubeType EOF )
+            // InternalCubeDSL.g:235:2: iv_ruleCubeType= ruleCubeType EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeTypeRule()); 
@@ -695,7 +698,7 @@
 
 
     // $ANTLR start "ruleCubeType"
-    // InternalCubeDSL.g:239:1: ruleCubeType returns [EObject current=null] : (otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}' ) ;
+    // InternalCubeDSL.g:241:1: ruleCubeType returns [EObject current=null] : (otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}' ) ;
     public final EObject ruleCubeType() throws RecognitionException {
         EObject current = null;
 
@@ -712,11 +715,11 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:245:2: ( (otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}' ) )
-            // InternalCubeDSL.g:246:2: (otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}' )
+            // InternalCubeDSL.g:247:2: ( (otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}' ) )
+            // InternalCubeDSL.g:248:2: (otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}' )
             {
-            // InternalCubeDSL.g:246:2: (otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}' )
-            // InternalCubeDSL.g:247:3: otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}'
+            // InternalCubeDSL.g:248:2: (otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}' )
+            // InternalCubeDSL.g:249:3: otherlv_0= 'cube' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) ) otherlv_6= '}'
             {
             otherlv_0=(Token)match(input,16,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -724,11 +727,11 @@
               			newLeafNode(otherlv_0, grammarAccess.getCubeTypeAccess().getCubeKeyword_0());
               		
             }
-            // InternalCubeDSL.g:251:3: ( (lv_name_1_0= RULE_ID ) )
-            // InternalCubeDSL.g:252:4: (lv_name_1_0= RULE_ID )
+            // InternalCubeDSL.g:253:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalCubeDSL.g:254:4: (lv_name_1_0= RULE_ID )
             {
-            // InternalCubeDSL.g:252:4: (lv_name_1_0= RULE_ID )
-            // InternalCubeDSL.g:253:5: lv_name_1_0= RULE_ID
+            // InternalCubeDSL.g:254:4: (lv_name_1_0= RULE_ID )
+            // InternalCubeDSL.g:255:5: lv_name_1_0= RULE_ID
             {
             lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -754,7 +757,7 @@
 
             }
 
-            // InternalCubeDSL.g:269:3: ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )?
+            // InternalCubeDSL.g:271:3: ( ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) ) )?
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -763,13 +766,13 @@
             }
             switch (alt5) {
                 case 1 :
-                    // InternalCubeDSL.g:270:4: ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) )
+                    // InternalCubeDSL.g:272:4: ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) ) ( (lv_defaultMeasureValue_3_0= RULE_STRING ) )
                     {
-                    // InternalCubeDSL.g:270:4: ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) )
-                    // InternalCubeDSL.g:271:5: (lv_defaultMeasure_2_0= 'defaultMeasure' )
+                    // InternalCubeDSL.g:272:4: ( (lv_defaultMeasure_2_0= 'defaultMeasure' ) )
+                    // InternalCubeDSL.g:273:5: (lv_defaultMeasure_2_0= 'defaultMeasure' )
                     {
-                    // InternalCubeDSL.g:271:5: (lv_defaultMeasure_2_0= 'defaultMeasure' )
-                    // InternalCubeDSL.g:272:6: lv_defaultMeasure_2_0= 'defaultMeasure'
+                    // InternalCubeDSL.g:273:5: (lv_defaultMeasure_2_0= 'defaultMeasure' )
+                    // InternalCubeDSL.g:274:6: lv_defaultMeasure_2_0= 'defaultMeasure'
                     {
                     lv_defaultMeasure_2_0=(Token)match(input,17,FOLLOW_9); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -791,11 +794,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:284:4: ( (lv_defaultMeasureValue_3_0= RULE_STRING ) )
-                    // InternalCubeDSL.g:285:5: (lv_defaultMeasureValue_3_0= RULE_STRING )
+                    // InternalCubeDSL.g:286:4: ( (lv_defaultMeasureValue_3_0= RULE_STRING ) )
+                    // InternalCubeDSL.g:287:5: (lv_defaultMeasureValue_3_0= RULE_STRING )
                     {
-                    // InternalCubeDSL.g:285:5: (lv_defaultMeasureValue_3_0= RULE_STRING )
-                    // InternalCubeDSL.g:286:6: lv_defaultMeasureValue_3_0= RULE_STRING
+                    // InternalCubeDSL.g:287:5: (lv_defaultMeasureValue_3_0= RULE_STRING )
+                    // InternalCubeDSL.g:288:6: lv_defaultMeasureValue_3_0= RULE_STRING
                     {
                     lv_defaultMeasureValue_3_0=(Token)match(input,RULE_STRING,FOLLOW_10); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -833,11 +836,11 @@
               			newLeafNode(otherlv_4, grammarAccess.getCubeTypeAccess().getLeftCurlyBracketKeyword_3());
               		
             }
-            // InternalCubeDSL.g:307:3: ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) )
-            // InternalCubeDSL.g:308:4: (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity )
+            // InternalCubeDSL.g:309:3: ( (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity ) )
+            // InternalCubeDSL.g:310:4: (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity )
             {
-            // InternalCubeDSL.g:308:4: (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity )
-            // InternalCubeDSL.g:309:5: lv_cubeTypeEntity_5_0= ruleCubeTypeEntity
+            // InternalCubeDSL.g:310:4: (lv_cubeTypeEntity_5_0= ruleCubeTypeEntity )
+            // InternalCubeDSL.g:311:5: lv_cubeTypeEntity_5_0= ruleCubeTypeEntity
             {
             if ( state.backtracking==0 ) {
 
@@ -899,7 +902,7 @@
 
 
     // $ANTLR start "entryRuleCubeDimensionUsage"
-    // InternalCubeDSL.g:334:1: entryRuleCubeDimensionUsage returns [EObject current=null] : iv_ruleCubeDimensionUsage= ruleCubeDimensionUsage EOF ;
+    // InternalCubeDSL.g:336:1: entryRuleCubeDimensionUsage returns [EObject current=null] : iv_ruleCubeDimensionUsage= ruleCubeDimensionUsage EOF ;
     public final EObject entryRuleCubeDimensionUsage() throws RecognitionException {
         EObject current = null;
 
@@ -907,8 +910,8 @@
 
 
         try {
-            // InternalCubeDSL.g:334:59: (iv_ruleCubeDimensionUsage= ruleCubeDimensionUsage EOF )
-            // InternalCubeDSL.g:335:2: iv_ruleCubeDimensionUsage= ruleCubeDimensionUsage EOF
+            // InternalCubeDSL.g:336:59: (iv_ruleCubeDimensionUsage= ruleCubeDimensionUsage EOF )
+            // InternalCubeDSL.g:337:2: iv_ruleCubeDimensionUsage= ruleCubeDimensionUsage EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeDimensionUsageRule()); 
@@ -939,7 +942,7 @@
 
 
     // $ANTLR start "ruleCubeDimensionUsage"
-    // InternalCubeDSL.g:341:1: ruleCubeDimensionUsage returns [EObject current=null] : (otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) ) ) ;
+    // InternalCubeDSL.g:343:1: ruleCubeDimensionUsage returns [EObject current=null] : (otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) ) ) ;
     public final EObject ruleCubeDimensionUsage() throws RecognitionException {
         EObject current = null;
 
@@ -951,11 +954,11 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:347:2: ( (otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) ) ) )
-            // InternalCubeDSL.g:348:2: (otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:349:2: ( (otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) ) ) )
+            // InternalCubeDSL.g:350:2: (otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) ) )
             {
-            // InternalCubeDSL.g:348:2: (otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) ) )
-            // InternalCubeDSL.g:349:3: otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:350:2: (otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) ) )
+            // InternalCubeDSL.g:351:3: otherlv_0= 'dimensionUsage' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'over' ( ( ruleLFQN ) )
             {
             otherlv_0=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -963,11 +966,11 @@
               			newLeafNode(otherlv_0, grammarAccess.getCubeDimensionUsageAccess().getDimensionUsageKeyword_0());
               		
             }
-            // InternalCubeDSL.g:353:3: ( (otherlv_1= RULE_ID ) )
-            // InternalCubeDSL.g:354:4: (otherlv_1= RULE_ID )
+            // InternalCubeDSL.g:355:3: ( (otherlv_1= RULE_ID ) )
+            // InternalCubeDSL.g:356:4: (otherlv_1= RULE_ID )
             {
-            // InternalCubeDSL.g:354:4: (otherlv_1= RULE_ID )
-            // InternalCubeDSL.g:355:5: otherlv_1= RULE_ID
+            // InternalCubeDSL.g:356:4: (otherlv_1= RULE_ID )
+            // InternalCubeDSL.g:357:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
@@ -994,11 +997,11 @@
               			newLeafNode(otherlv_2, grammarAccess.getCubeDimensionUsageAccess().getOverKeyword_2());
               		
             }
-            // InternalCubeDSL.g:370:3: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:371:4: ( ruleLFQN )
+            // InternalCubeDSL.g:372:3: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:373:4: ( ruleLFQN )
             {
-            // InternalCubeDSL.g:371:4: ( ruleLFQN )
-            // InternalCubeDSL.g:372:5: ruleLFQN
+            // InternalCubeDSL.g:373:4: ( ruleLFQN )
+            // InternalCubeDSL.g:374:5: ruleLFQN
             {
             if ( state.backtracking==0 ) {
 
@@ -1053,7 +1056,7 @@
 
 
     // $ANTLR start "entryRuleCubeDimension"
-    // InternalCubeDSL.g:390:1: entryRuleCubeDimension returns [EObject current=null] : iv_ruleCubeDimension= ruleCubeDimension EOF ;
+    // InternalCubeDSL.g:392:1: entryRuleCubeDimension returns [EObject current=null] : iv_ruleCubeDimension= ruleCubeDimension EOF ;
     public final EObject entryRuleCubeDimension() throws RecognitionException {
         EObject current = null;
 
@@ -1061,8 +1064,8 @@
 
 
         try {
-            // InternalCubeDSL.g:390:54: (iv_ruleCubeDimension= ruleCubeDimension EOF )
-            // InternalCubeDSL.g:391:2: iv_ruleCubeDimension= ruleCubeDimension EOF
+            // InternalCubeDSL.g:392:54: (iv_ruleCubeDimension= ruleCubeDimension EOF )
+            // InternalCubeDSL.g:393:2: iv_ruleCubeDimension= ruleCubeDimension EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeDimensionRule()); 
@@ -1093,7 +1096,7 @@
 
 
     // $ANTLR start "ruleCubeDimension"
-    // InternalCubeDSL.g:397:1: ruleCubeDimension returns [EObject current=null] : (otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}' ) ;
+    // InternalCubeDSL.g:399:1: ruleCubeDimension returns [EObject current=null] : (otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}' ) ;
     public final EObject ruleCubeDimension() throws RecognitionException {
         EObject current = null;
 
@@ -1110,11 +1113,11 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:403:2: ( (otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}' ) )
-            // InternalCubeDSL.g:404:2: (otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}' )
+            // InternalCubeDSL.g:405:2: ( (otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}' ) )
+            // InternalCubeDSL.g:406:2: (otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}' )
             {
-            // InternalCubeDSL.g:404:2: (otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}' )
-            // InternalCubeDSL.g:405:3: otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}'
+            // InternalCubeDSL.g:406:2: (otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}' )
+            // InternalCubeDSL.g:407:3: otherlv_0= 'dimension' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_typeTime_2_0= 'typeTime' ) )? otherlv_3= '{' ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )* otherlv_5= '}'
             {
             otherlv_0=(Token)match(input,20,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -1122,11 +1125,11 @@
               			newLeafNode(otherlv_0, grammarAccess.getCubeDimensionAccess().getDimensionKeyword_0());
               		
             }
-            // InternalCubeDSL.g:409:3: ( (lv_name_1_0= ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:410:4: (lv_name_1_0= ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:411:3: ( (lv_name_1_0= ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:412:4: (lv_name_1_0= ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:410:4: (lv_name_1_0= ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:411:5: lv_name_1_0= ruleTRANSLATABLEID
+            // InternalCubeDSL.g:412:4: (lv_name_1_0= ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:413:5: lv_name_1_0= ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
 
@@ -1157,7 +1160,7 @@
 
             }
 
-            // InternalCubeDSL.g:428:3: ( (lv_typeTime_2_0= 'typeTime' ) )?
+            // InternalCubeDSL.g:430:3: ( (lv_typeTime_2_0= 'typeTime' ) )?
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -1166,10 +1169,10 @@
             }
             switch (alt6) {
                 case 1 :
-                    // InternalCubeDSL.g:429:4: (lv_typeTime_2_0= 'typeTime' )
+                    // InternalCubeDSL.g:431:4: (lv_typeTime_2_0= 'typeTime' )
                     {
-                    // InternalCubeDSL.g:429:4: (lv_typeTime_2_0= 'typeTime' )
-                    // InternalCubeDSL.g:430:5: lv_typeTime_2_0= 'typeTime'
+                    // InternalCubeDSL.g:431:4: (lv_typeTime_2_0= 'typeTime' )
+                    // InternalCubeDSL.g:432:5: lv_typeTime_2_0= 'typeTime'
                     {
                     lv_typeTime_2_0=(Token)match(input,21,FOLLOW_10); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -1200,7 +1203,7 @@
               			newLeafNode(otherlv_3, grammarAccess.getCubeDimensionAccess().getLeftCurlyBracketKeyword_3());
               		
             }
-            // InternalCubeDSL.g:446:3: ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )*
+            // InternalCubeDSL.g:448:3: ( (lv_hierarchies_4_0= ruleCubeHierarchy ) )*
             loop7:
             do {
                 int alt7=2;
@@ -1213,10 +1216,10 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalCubeDSL.g:447:4: (lv_hierarchies_4_0= ruleCubeHierarchy )
+            	    // InternalCubeDSL.g:449:4: (lv_hierarchies_4_0= ruleCubeHierarchy )
             	    {
-            	    // InternalCubeDSL.g:447:4: (lv_hierarchies_4_0= ruleCubeHierarchy )
-            	    // InternalCubeDSL.g:448:5: lv_hierarchies_4_0= ruleCubeHierarchy
+            	    // InternalCubeDSL.g:449:4: (lv_hierarchies_4_0= ruleCubeHierarchy )
+            	    // InternalCubeDSL.g:450:5: lv_hierarchies_4_0= ruleCubeHierarchy
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -1284,7 +1287,7 @@
 
 
     // $ANTLR start "entryRuleCubeHierarchy"
-    // InternalCubeDSL.g:473:1: entryRuleCubeHierarchy returns [EObject current=null] : iv_ruleCubeHierarchy= ruleCubeHierarchy EOF ;
+    // InternalCubeDSL.g:475:1: entryRuleCubeHierarchy returns [EObject current=null] : iv_ruleCubeHierarchy= ruleCubeHierarchy EOF ;
     public final EObject entryRuleCubeHierarchy() throws RecognitionException {
         EObject current = null;
 
@@ -1292,8 +1295,8 @@
 
 
         try {
-            // InternalCubeDSL.g:473:54: (iv_ruleCubeHierarchy= ruleCubeHierarchy EOF )
-            // InternalCubeDSL.g:474:2: iv_ruleCubeHierarchy= ruleCubeHierarchy EOF
+            // InternalCubeDSL.g:475:54: (iv_ruleCubeHierarchy= ruleCubeHierarchy EOF )
+            // InternalCubeDSL.g:476:2: iv_ruleCubeHierarchy= ruleCubeHierarchy EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeHierarchyRule()); 
@@ -1324,7 +1327,7 @@
 
 
     // $ANTLR start "ruleCubeHierarchy"
-    // InternalCubeDSL.g:480:1: ruleCubeHierarchy returns [EObject current=null] : ( () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}' ) ;
+    // InternalCubeDSL.g:482:1: ruleCubeHierarchy returns [EObject current=null] : ( () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}' ) ;
     public final EObject ruleCubeHierarchy() throws RecognitionException {
         EObject current = null;
 
@@ -1347,14 +1350,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:486:2: ( ( () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}' ) )
-            // InternalCubeDSL.g:487:2: ( () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}' )
+            // InternalCubeDSL.g:488:2: ( ( () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}' ) )
+            // InternalCubeDSL.g:489:2: ( () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}' )
             {
-            // InternalCubeDSL.g:487:2: ( () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}' )
-            // InternalCubeDSL.g:488:3: () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}'
+            // InternalCubeDSL.g:489:2: ( () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}' )
+            // InternalCubeDSL.g:490:3: () otherlv_1= 'hierarchy' ( (lv_name_2_0= ruleTRANSLATABLEID ) )? ( (lv_hasAll_3_0= 'hasAll' ) )? ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )? ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )? otherlv_8= '{' ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) ) otherlv_10= '}'
             {
-            // InternalCubeDSL.g:488:3: ()
-            // InternalCubeDSL.g:489:4: 
+            // InternalCubeDSL.g:490:3: ()
+            // InternalCubeDSL.g:491:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -1372,7 +1375,7 @@
               			newLeafNode(otherlv_1, grammarAccess.getCubeHierarchyAccess().getHierarchyKeyword_1());
               		
             }
-            // InternalCubeDSL.g:499:3: ( (lv_name_2_0= ruleTRANSLATABLEID ) )?
+            // InternalCubeDSL.g:501:3: ( (lv_name_2_0= ruleTRANSLATABLEID ) )?
             int alt8=2;
             int LA8_0 = input.LA(1);
 
@@ -1381,10 +1384,10 @@
             }
             switch (alt8) {
                 case 1 :
-                    // InternalCubeDSL.g:500:4: (lv_name_2_0= ruleTRANSLATABLEID )
+                    // InternalCubeDSL.g:502:4: (lv_name_2_0= ruleTRANSLATABLEID )
                     {
-                    // InternalCubeDSL.g:500:4: (lv_name_2_0= ruleTRANSLATABLEID )
-                    // InternalCubeDSL.g:501:5: lv_name_2_0= ruleTRANSLATABLEID
+                    // InternalCubeDSL.g:502:4: (lv_name_2_0= ruleTRANSLATABLEID )
+                    // InternalCubeDSL.g:503:5: lv_name_2_0= ruleTRANSLATABLEID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1418,7 +1421,7 @@
 
             }
 
-            // InternalCubeDSL.g:518:3: ( (lv_hasAll_3_0= 'hasAll' ) )?
+            // InternalCubeDSL.g:520:3: ( (lv_hasAll_3_0= 'hasAll' ) )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -1427,10 +1430,10 @@
             }
             switch (alt9) {
                 case 1 :
-                    // InternalCubeDSL.g:519:4: (lv_hasAll_3_0= 'hasAll' )
+                    // InternalCubeDSL.g:521:4: (lv_hasAll_3_0= 'hasAll' )
                     {
-                    // InternalCubeDSL.g:519:4: (lv_hasAll_3_0= 'hasAll' )
-                    // InternalCubeDSL.g:520:5: lv_hasAll_3_0= 'hasAll'
+                    // InternalCubeDSL.g:521:4: (lv_hasAll_3_0= 'hasAll' )
+                    // InternalCubeDSL.g:522:5: lv_hasAll_3_0= 'hasAll'
                     {
                     lv_hasAll_3_0=(Token)match(input,23,FOLLOW_18); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -1455,7 +1458,7 @@
 
             }
 
-            // InternalCubeDSL.g:532:3: ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )?
+            // InternalCubeDSL.g:534:3: ( ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) ) )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1464,13 +1467,13 @@
             }
             switch (alt10) {
                 case 1 :
-                    // InternalCubeDSL.g:533:4: ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) )
+                    // InternalCubeDSL.g:535:4: ( (lv_allMemberName_4_0= 'allMemberName' ) ) ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) )
                     {
-                    // InternalCubeDSL.g:533:4: ( (lv_allMemberName_4_0= 'allMemberName' ) )
-                    // InternalCubeDSL.g:534:5: (lv_allMemberName_4_0= 'allMemberName' )
+                    // InternalCubeDSL.g:535:4: ( (lv_allMemberName_4_0= 'allMemberName' ) )
+                    // InternalCubeDSL.g:536:5: (lv_allMemberName_4_0= 'allMemberName' )
                     {
-                    // InternalCubeDSL.g:534:5: (lv_allMemberName_4_0= 'allMemberName' )
-                    // InternalCubeDSL.g:535:6: lv_allMemberName_4_0= 'allMemberName'
+                    // InternalCubeDSL.g:536:5: (lv_allMemberName_4_0= 'allMemberName' )
+                    // InternalCubeDSL.g:537:6: lv_allMemberName_4_0= 'allMemberName'
                     {
                     lv_allMemberName_4_0=(Token)match(input,24,FOLLOW_9); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -1492,11 +1495,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:547:4: ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) )
-                    // InternalCubeDSL.g:548:5: (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING )
+                    // InternalCubeDSL.g:549:4: ( (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING ) )
+                    // InternalCubeDSL.g:550:5: (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING )
                     {
-                    // InternalCubeDSL.g:548:5: (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING )
-                    // InternalCubeDSL.g:549:6: lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING
+                    // InternalCubeDSL.g:550:5: (lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING )
+                    // InternalCubeDSL.g:551:6: lv_allMemberNameValue_5_0= ruleTRANSLATABLESTRING
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1533,7 +1536,7 @@
 
             }
 
-            // InternalCubeDSL.g:567:3: ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )?
+            // InternalCubeDSL.g:569:3: ( ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) ) )?
             int alt11=2;
             int LA11_0 = input.LA(1);
 
@@ -1542,13 +1545,13 @@
             }
             switch (alt11) {
                 case 1 :
-                    // InternalCubeDSL.g:568:4: ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) )
+                    // InternalCubeDSL.g:570:4: ( (lv_defaultMember_6_0= 'defaultMember' ) ) ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) )
                     {
-                    // InternalCubeDSL.g:568:4: ( (lv_defaultMember_6_0= 'defaultMember' ) )
-                    // InternalCubeDSL.g:569:5: (lv_defaultMember_6_0= 'defaultMember' )
+                    // InternalCubeDSL.g:570:4: ( (lv_defaultMember_6_0= 'defaultMember' ) )
+                    // InternalCubeDSL.g:571:5: (lv_defaultMember_6_0= 'defaultMember' )
                     {
-                    // InternalCubeDSL.g:569:5: (lv_defaultMember_6_0= 'defaultMember' )
-                    // InternalCubeDSL.g:570:6: lv_defaultMember_6_0= 'defaultMember'
+                    // InternalCubeDSL.g:571:5: (lv_defaultMember_6_0= 'defaultMember' )
+                    // InternalCubeDSL.g:572:6: lv_defaultMember_6_0= 'defaultMember'
                     {
                     lv_defaultMember_6_0=(Token)match(input,25,FOLLOW_9); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -1570,11 +1573,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:582:4: ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) )
-                    // InternalCubeDSL.g:583:5: (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING )
+                    // InternalCubeDSL.g:584:4: ( (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING ) )
+                    // InternalCubeDSL.g:585:5: (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING )
                     {
-                    // InternalCubeDSL.g:583:5: (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING )
-                    // InternalCubeDSL.g:584:6: lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING
+                    // InternalCubeDSL.g:585:5: (lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING )
+                    // InternalCubeDSL.g:586:6: lv_defaultMemberValue_7_0= ruleTRANSLATABLESTRING
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1617,11 +1620,11 @@
               			newLeafNode(otherlv_8, grammarAccess.getCubeHierarchyAccess().getLeftCurlyBracketKeyword_6());
               		
             }
-            // InternalCubeDSL.g:606:3: ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) )
-            // InternalCubeDSL.g:607:4: (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity )
+            // InternalCubeDSL.g:608:3: ( (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity ) )
+            // InternalCubeDSL.g:609:4: (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity )
             {
-            // InternalCubeDSL.g:607:4: (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity )
-            // InternalCubeDSL.g:608:5: lv_cubeDimEntity_9_0= ruleCubeDimensionEntity
+            // InternalCubeDSL.g:609:4: (lv_cubeDimEntity_9_0= ruleCubeDimensionEntity )
+            // InternalCubeDSL.g:610:5: lv_cubeDimEntity_9_0= ruleCubeDimensionEntity
             {
             if ( state.backtracking==0 ) {
 
@@ -1683,7 +1686,7 @@
 
 
     // $ANTLR start "entryRuleCubeEntity"
-    // InternalCubeDSL.g:633:1: entryRuleCubeEntity returns [EObject current=null] : iv_ruleCubeEntity= ruleCubeEntity EOF ;
+    // InternalCubeDSL.g:635:1: entryRuleCubeEntity returns [EObject current=null] : iv_ruleCubeEntity= ruleCubeEntity EOF ;
     public final EObject entryRuleCubeEntity() throws RecognitionException {
         EObject current = null;
 
@@ -1691,8 +1694,8 @@
 
 
         try {
-            // InternalCubeDSL.g:633:51: (iv_ruleCubeEntity= ruleCubeEntity EOF )
-            // InternalCubeDSL.g:634:2: iv_ruleCubeEntity= ruleCubeEntity EOF
+            // InternalCubeDSL.g:635:51: (iv_ruleCubeEntity= ruleCubeEntity EOF )
+            // InternalCubeDSL.g:636:2: iv_ruleCubeEntity= ruleCubeEntity EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeEntityRule()); 
@@ -1723,7 +1726,7 @@
 
 
     // $ANTLR start "ruleCubeEntity"
-    // InternalCubeDSL.g:640:1: ruleCubeEntity returns [EObject current=null] : (otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )? ) ;
+    // InternalCubeDSL.g:642:1: ruleCubeEntity returns [EObject current=null] : (otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )? ) ;
     public final EObject ruleCubeEntity() throws RecognitionException {
         EObject current = null;
 
@@ -1734,11 +1737,11 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:646:2: ( (otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )? ) )
-            // InternalCubeDSL.g:647:2: (otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )? )
+            // InternalCubeDSL.g:648:2: ( (otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )? ) )
+            // InternalCubeDSL.g:649:2: (otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )? )
             {
-            // InternalCubeDSL.g:647:2: (otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )? )
-            // InternalCubeDSL.g:648:3: otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )?
+            // InternalCubeDSL.g:649:2: (otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )? )
+            // InternalCubeDSL.g:650:3: otherlv_0= 'entity' ( ( ruleLFQN ) ) ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )?
             {
             otherlv_0=(Token)match(input,26,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -1746,11 +1749,11 @@
               			newLeafNode(otherlv_0, grammarAccess.getCubeEntityAccess().getEntityKeyword_0());
               		
             }
-            // InternalCubeDSL.g:652:3: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:653:4: ( ruleLFQN )
+            // InternalCubeDSL.g:654:3: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:655:4: ( ruleLFQN )
             {
-            // InternalCubeDSL.g:653:4: ( ruleLFQN )
-            // InternalCubeDSL.g:654:5: ruleLFQN
+            // InternalCubeDSL.g:655:4: ( ruleLFQN )
+            // InternalCubeDSL.g:656:5: ruleLFQN
             {
             if ( state.backtracking==0 ) {
 
@@ -1780,7 +1783,7 @@
 
             }
 
-            // InternalCubeDSL.g:668:3: ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )?
+            // InternalCubeDSL.g:670:3: ( ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) ) )?
             int alt12=2;
             int LA12_0 = input.LA(1);
 
@@ -1789,13 +1792,13 @@
             }
             switch (alt12) {
                 case 1 :
-                    // InternalCubeDSL.g:669:4: ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) )
+                    // InternalCubeDSL.g:671:4: ( (lv_key_2_0= 'key' ) ) ( ( ruleLFQN ) )
                     {
-                    // InternalCubeDSL.g:669:4: ( (lv_key_2_0= 'key' ) )
-                    // InternalCubeDSL.g:670:5: (lv_key_2_0= 'key' )
+                    // InternalCubeDSL.g:671:4: ( (lv_key_2_0= 'key' ) )
+                    // InternalCubeDSL.g:672:5: (lv_key_2_0= 'key' )
                     {
-                    // InternalCubeDSL.g:670:5: (lv_key_2_0= 'key' )
-                    // InternalCubeDSL.g:671:6: lv_key_2_0= 'key'
+                    // InternalCubeDSL.g:672:5: (lv_key_2_0= 'key' )
+                    // InternalCubeDSL.g:673:6: lv_key_2_0= 'key'
                     {
                     lv_key_2_0=(Token)match(input,27,FOLLOW_4); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -1817,11 +1820,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:683:4: ( ( ruleLFQN ) )
-                    // InternalCubeDSL.g:684:5: ( ruleLFQN )
+                    // InternalCubeDSL.g:685:4: ( ( ruleLFQN ) )
+                    // InternalCubeDSL.g:686:5: ( ruleLFQN )
                     {
-                    // InternalCubeDSL.g:684:5: ( ruleLFQN )
-                    // InternalCubeDSL.g:685:6: ruleLFQN
+                    // InternalCubeDSL.g:686:5: ( ruleLFQN )
+                    // InternalCubeDSL.g:687:6: ruleLFQN
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1882,7 +1885,7 @@
 
 
     // $ANTLR start "entryRuleCubeTypeEntity"
-    // InternalCubeDSL.g:704:1: entryRuleCubeTypeEntity returns [EObject current=null] : iv_ruleCubeTypeEntity= ruleCubeTypeEntity EOF ;
+    // InternalCubeDSL.g:706:1: entryRuleCubeTypeEntity returns [EObject current=null] : iv_ruleCubeTypeEntity= ruleCubeTypeEntity EOF ;
     public final EObject entryRuleCubeTypeEntity() throws RecognitionException {
         EObject current = null;
 
@@ -1890,8 +1893,8 @@
 
 
         try {
-            // InternalCubeDSL.g:704:55: (iv_ruleCubeTypeEntity= ruleCubeTypeEntity EOF )
-            // InternalCubeDSL.g:705:2: iv_ruleCubeTypeEntity= ruleCubeTypeEntity EOF
+            // InternalCubeDSL.g:706:55: (iv_ruleCubeTypeEntity= ruleCubeTypeEntity EOF )
+            // InternalCubeDSL.g:707:2: iv_ruleCubeTypeEntity= ruleCubeTypeEntity EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeTypeEntityRule()); 
@@ -1922,7 +1925,7 @@
 
 
     // $ANTLR start "ruleCubeTypeEntity"
-    // InternalCubeDSL.g:711:1: ruleCubeTypeEntity returns [EObject current=null] : ( ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}' ) ;
+    // InternalCubeDSL.g:713:1: ruleCubeTypeEntity returns [EObject current=null] : ( ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}' ) ;
     public final EObject ruleCubeTypeEntity() throws RecognitionException {
         EObject current = null;
 
@@ -1939,17 +1942,17 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:717:2: ( ( ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}' ) )
-            // InternalCubeDSL.g:718:2: ( ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}' )
+            // InternalCubeDSL.g:719:2: ( ( ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}' ) )
+            // InternalCubeDSL.g:720:2: ( ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}' )
             {
-            // InternalCubeDSL.g:718:2: ( ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}' )
-            // InternalCubeDSL.g:719:3: ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}'
+            // InternalCubeDSL.g:720:2: ( ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}' )
+            // InternalCubeDSL.g:721:3: ( (lv_entityRef_0_0= ruleCubeEntity ) ) otherlv_1= '{' ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )* ( (lv_measures_3_0= ruleCubeMeasure ) )* otherlv_4= '}'
             {
-            // InternalCubeDSL.g:719:3: ( (lv_entityRef_0_0= ruleCubeEntity ) )
-            // InternalCubeDSL.g:720:4: (lv_entityRef_0_0= ruleCubeEntity )
+            // InternalCubeDSL.g:721:3: ( (lv_entityRef_0_0= ruleCubeEntity ) )
+            // InternalCubeDSL.g:722:4: (lv_entityRef_0_0= ruleCubeEntity )
             {
-            // InternalCubeDSL.g:720:4: (lv_entityRef_0_0= ruleCubeEntity )
-            // InternalCubeDSL.g:721:5: lv_entityRef_0_0= ruleCubeEntity
+            // InternalCubeDSL.g:722:4: (lv_entityRef_0_0= ruleCubeEntity )
+            // InternalCubeDSL.g:723:5: lv_entityRef_0_0= ruleCubeEntity
             {
             if ( state.backtracking==0 ) {
 
@@ -1986,7 +1989,7 @@
               			newLeafNode(otherlv_1, grammarAccess.getCubeTypeEntityAccess().getLeftCurlyBracketKeyword_1());
               		
             }
-            // InternalCubeDSL.g:742:3: ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )*
+            // InternalCubeDSL.g:744:3: ( (lv_dimensionUsages_2_0= ruleCubeDimensionUsage ) )*
             loop13:
             do {
                 int alt13=2;
@@ -1999,10 +2002,10 @@
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalCubeDSL.g:743:4: (lv_dimensionUsages_2_0= ruleCubeDimensionUsage )
+            	    // InternalCubeDSL.g:745:4: (lv_dimensionUsages_2_0= ruleCubeDimensionUsage )
             	    {
-            	    // InternalCubeDSL.g:743:4: (lv_dimensionUsages_2_0= ruleCubeDimensionUsage )
-            	    // InternalCubeDSL.g:744:5: lv_dimensionUsages_2_0= ruleCubeDimensionUsage
+            	    // InternalCubeDSL.g:745:4: (lv_dimensionUsages_2_0= ruleCubeDimensionUsage )
+            	    // InternalCubeDSL.g:746:5: lv_dimensionUsages_2_0= ruleCubeDimensionUsage
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -2039,23 +2042,23 @@
                 }
             } while (true);
 
-            // InternalCubeDSL.g:761:3: ( (lv_measures_3_0= ruleCubeMeasure ) )*
+            // InternalCubeDSL.g:763:3: ( (lv_measures_3_0= ruleCubeMeasure ) )*
             loop14:
             do {
                 int alt14=2;
                 int LA14_0 = input.LA(1);
 
-                if ( (LA14_0==34) ) {
+                if ( (LA14_0==37) ) {
                     alt14=1;
                 }
 
 
                 switch (alt14) {
             	case 1 :
-            	    // InternalCubeDSL.g:762:4: (lv_measures_3_0= ruleCubeMeasure )
+            	    // InternalCubeDSL.g:764:4: (lv_measures_3_0= ruleCubeMeasure )
             	    {
-            	    // InternalCubeDSL.g:762:4: (lv_measures_3_0= ruleCubeMeasure )
-            	    // InternalCubeDSL.g:763:5: lv_measures_3_0= ruleCubeMeasure
+            	    // InternalCubeDSL.g:764:4: (lv_measures_3_0= ruleCubeMeasure )
+            	    // InternalCubeDSL.g:765:5: lv_measures_3_0= ruleCubeMeasure
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -2123,7 +2126,7 @@
 
 
     // $ANTLR start "entryRuleCubeDimensionEntity"
-    // InternalCubeDSL.g:788:1: entryRuleCubeDimensionEntity returns [EObject current=null] : iv_ruleCubeDimensionEntity= ruleCubeDimensionEntity EOF ;
+    // InternalCubeDSL.g:790:1: entryRuleCubeDimensionEntity returns [EObject current=null] : iv_ruleCubeDimensionEntity= ruleCubeDimensionEntity EOF ;
     public final EObject entryRuleCubeDimensionEntity() throws RecognitionException {
         EObject current = null;
 
@@ -2131,8 +2134,8 @@
 
 
         try {
-            // InternalCubeDSL.g:788:60: (iv_ruleCubeDimensionEntity= ruleCubeDimensionEntity EOF )
-            // InternalCubeDSL.g:789:2: iv_ruleCubeDimensionEntity= ruleCubeDimensionEntity EOF
+            // InternalCubeDSL.g:790:60: (iv_ruleCubeDimensionEntity= ruleCubeDimensionEntity EOF )
+            // InternalCubeDSL.g:791:2: iv_ruleCubeDimensionEntity= ruleCubeDimensionEntity EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeDimensionEntityRule()); 
@@ -2163,7 +2166,7 @@
 
 
     // $ANTLR start "ruleCubeDimensionEntity"
-    // InternalCubeDSL.g:795:1: ruleCubeDimensionEntity returns [EObject current=null] : ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}' ) ;
+    // InternalCubeDSL.g:797:1: ruleCubeDimensionEntity returns [EObject current=null] : ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}' ) ;
     public final EObject ruleCubeDimensionEntity() throws RecognitionException {
         EObject current = null;
 
@@ -2180,14 +2183,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:801:2: ( ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}' ) )
-            // InternalCubeDSL.g:802:2: ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}' )
+            // InternalCubeDSL.g:803:2: ( ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}' ) )
+            // InternalCubeDSL.g:804:2: ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}' )
             {
-            // InternalCubeDSL.g:802:2: ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}' )
-            // InternalCubeDSL.g:803:3: () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}'
+            // InternalCubeDSL.g:804:2: ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}' )
+            // InternalCubeDSL.g:805:3: () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )* ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )? otherlv_5= '}'
             {
-            // InternalCubeDSL.g:803:3: ()
-            // InternalCubeDSL.g:804:4: 
+            // InternalCubeDSL.g:805:3: ()
+            // InternalCubeDSL.g:806:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -2199,11 +2202,11 @@
 
             }
 
-            // InternalCubeDSL.g:810:3: ( (lv_entityRef_1_0= ruleCubeEntity ) )
-            // InternalCubeDSL.g:811:4: (lv_entityRef_1_0= ruleCubeEntity )
+            // InternalCubeDSL.g:812:3: ( (lv_entityRef_1_0= ruleCubeEntity ) )
+            // InternalCubeDSL.g:813:4: (lv_entityRef_1_0= ruleCubeEntity )
             {
-            // InternalCubeDSL.g:811:4: (lv_entityRef_1_0= ruleCubeEntity )
-            // InternalCubeDSL.g:812:5: lv_entityRef_1_0= ruleCubeEntity
+            // InternalCubeDSL.g:813:4: (lv_entityRef_1_0= ruleCubeEntity )
+            // InternalCubeDSL.g:814:5: lv_entityRef_1_0= ruleCubeEntity
             {
             if ( state.backtracking==0 ) {
 
@@ -2240,7 +2243,7 @@
               			newLeafNode(otherlv_2, grammarAccess.getCubeDimensionEntityAccess().getLeftCurlyBracketKeyword_2());
               		
             }
-            // InternalCubeDSL.g:833:3: ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )*
+            // InternalCubeDSL.g:835:3: ( (lv_hierarchLevels_3_0= ruleCubeLevel ) )*
             loop15:
             do {
                 int alt15=2;
@@ -2253,10 +2256,10 @@
 
                 switch (alt15) {
             	case 1 :
-            	    // InternalCubeDSL.g:834:4: (lv_hierarchLevels_3_0= ruleCubeLevel )
+            	    // InternalCubeDSL.g:836:4: (lv_hierarchLevels_3_0= ruleCubeLevel )
             	    {
-            	    // InternalCubeDSL.g:834:4: (lv_hierarchLevels_3_0= ruleCubeLevel )
-            	    // InternalCubeDSL.g:835:5: lv_hierarchLevels_3_0= ruleCubeLevel
+            	    // InternalCubeDSL.g:836:4: (lv_hierarchLevels_3_0= ruleCubeLevel )
+            	    // InternalCubeDSL.g:837:5: lv_hierarchLevels_3_0= ruleCubeLevel
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -2293,7 +2296,7 @@
                 }
             } while (true);
 
-            // InternalCubeDSL.g:852:3: ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )?
+            // InternalCubeDSL.g:854:3: ( (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity ) )?
             int alt16=2;
             int LA16_0 = input.LA(1);
 
@@ -2302,10 +2305,10 @@
             }
             switch (alt16) {
                 case 1 :
-                    // InternalCubeDSL.g:853:4: (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity )
+                    // InternalCubeDSL.g:855:4: (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity )
                     {
-                    // InternalCubeDSL.g:853:4: (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity )
-                    // InternalCubeDSL.g:854:5: lv_dimEntity_4_0= ruleCubeDimensionEntityEntity
+                    // InternalCubeDSL.g:855:4: (lv_dimEntity_4_0= ruleCubeDimensionEntityEntity )
+                    // InternalCubeDSL.g:856:5: lv_dimEntity_4_0= ruleCubeDimensionEntityEntity
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2370,7 +2373,7 @@
 
 
     // $ANTLR start "entryRuleCubeDimensionEntityEntity"
-    // InternalCubeDSL.g:879:1: entryRuleCubeDimensionEntityEntity returns [EObject current=null] : iv_ruleCubeDimensionEntityEntity= ruleCubeDimensionEntityEntity EOF ;
+    // InternalCubeDSL.g:881:1: entryRuleCubeDimensionEntityEntity returns [EObject current=null] : iv_ruleCubeDimensionEntityEntity= ruleCubeDimensionEntityEntity EOF ;
     public final EObject entryRuleCubeDimensionEntityEntity() throws RecognitionException {
         EObject current = null;
 
@@ -2378,8 +2381,8 @@
 
 
         try {
-            // InternalCubeDSL.g:879:66: (iv_ruleCubeDimensionEntityEntity= ruleCubeDimensionEntityEntity EOF )
-            // InternalCubeDSL.g:880:2: iv_ruleCubeDimensionEntityEntity= ruleCubeDimensionEntityEntity EOF
+            // InternalCubeDSL.g:881:66: (iv_ruleCubeDimensionEntityEntity= ruleCubeDimensionEntityEntity EOF )
+            // InternalCubeDSL.g:882:2: iv_ruleCubeDimensionEntityEntity= ruleCubeDimensionEntityEntity EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeDimensionEntityEntityRule()); 
@@ -2410,7 +2413,7 @@
 
 
     // $ANTLR start "ruleCubeDimensionEntityEntity"
-    // InternalCubeDSL.g:886:1: ruleCubeDimensionEntityEntity returns [EObject current=null] : ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}' ) ;
+    // InternalCubeDSL.g:888:1: ruleCubeDimensionEntityEntity returns [EObject current=null] : ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}' ) ;
     public final EObject ruleCubeDimensionEntityEntity() throws RecognitionException {
         EObject current = null;
 
@@ -2428,14 +2431,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:892:2: ( ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}' ) )
-            // InternalCubeDSL.g:893:2: ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}' )
+            // InternalCubeDSL.g:894:2: ( ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}' ) )
+            // InternalCubeDSL.g:895:2: ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}' )
             {
-            // InternalCubeDSL.g:893:2: ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}' )
-            // InternalCubeDSL.g:894:3: () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}'
+            // InternalCubeDSL.g:895:2: ( () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}' )
+            // InternalCubeDSL.g:896:3: () ( (lv_entityRef_1_0= ruleCubeEntity ) ) otherlv_2= '{' otherlv_3= 'over' ( ( ruleLFQN ) ) ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )* ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )? otherlv_7= '}'
             {
-            // InternalCubeDSL.g:894:3: ()
-            // InternalCubeDSL.g:895:4: 
+            // InternalCubeDSL.g:896:3: ()
+            // InternalCubeDSL.g:897:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -2447,11 +2450,11 @@
 
             }
 
-            // InternalCubeDSL.g:901:3: ( (lv_entityRef_1_0= ruleCubeEntity ) )
-            // InternalCubeDSL.g:902:4: (lv_entityRef_1_0= ruleCubeEntity )
+            // InternalCubeDSL.g:903:3: ( (lv_entityRef_1_0= ruleCubeEntity ) )
+            // InternalCubeDSL.g:904:4: (lv_entityRef_1_0= ruleCubeEntity )
             {
-            // InternalCubeDSL.g:902:4: (lv_entityRef_1_0= ruleCubeEntity )
-            // InternalCubeDSL.g:903:5: lv_entityRef_1_0= ruleCubeEntity
+            // InternalCubeDSL.g:904:4: (lv_entityRef_1_0= ruleCubeEntity )
+            // InternalCubeDSL.g:905:5: lv_entityRef_1_0= ruleCubeEntity
             {
             if ( state.backtracking==0 ) {
 
@@ -2494,11 +2497,11 @@
               			newLeafNode(otherlv_3, grammarAccess.getCubeDimensionEntityEntityAccess().getOverKeyword_3());
               		
             }
-            // InternalCubeDSL.g:928:3: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:929:4: ( ruleLFQN )
+            // InternalCubeDSL.g:930:3: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:931:4: ( ruleLFQN )
             {
-            // InternalCubeDSL.g:929:4: ( ruleLFQN )
-            // InternalCubeDSL.g:930:5: ruleLFQN
+            // InternalCubeDSL.g:931:4: ( ruleLFQN )
+            // InternalCubeDSL.g:932:5: ruleLFQN
             {
             if ( state.backtracking==0 ) {
 
@@ -2528,7 +2531,7 @@
 
             }
 
-            // InternalCubeDSL.g:944:3: ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )*
+            // InternalCubeDSL.g:946:3: ( (lv_hierarchLevels_5_0= ruleCubeLevel ) )*
             loop17:
             do {
                 int alt17=2;
@@ -2541,10 +2544,10 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalCubeDSL.g:945:4: (lv_hierarchLevels_5_0= ruleCubeLevel )
+            	    // InternalCubeDSL.g:947:4: (lv_hierarchLevels_5_0= ruleCubeLevel )
             	    {
-            	    // InternalCubeDSL.g:945:4: (lv_hierarchLevels_5_0= ruleCubeLevel )
-            	    // InternalCubeDSL.g:946:5: lv_hierarchLevels_5_0= ruleCubeLevel
+            	    // InternalCubeDSL.g:947:4: (lv_hierarchLevels_5_0= ruleCubeLevel )
+            	    // InternalCubeDSL.g:948:5: lv_hierarchLevels_5_0= ruleCubeLevel
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -2581,7 +2584,7 @@
                 }
             } while (true);
 
-            // InternalCubeDSL.g:963:3: ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )?
+            // InternalCubeDSL.g:965:3: ( (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity ) )?
             int alt18=2;
             int LA18_0 = input.LA(1);
 
@@ -2590,10 +2593,10 @@
             }
             switch (alt18) {
                 case 1 :
-                    // InternalCubeDSL.g:964:4: (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity )
+                    // InternalCubeDSL.g:966:4: (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity )
                     {
-                    // InternalCubeDSL.g:964:4: (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity )
-                    // InternalCubeDSL.g:965:5: lv_dimEntity_6_0= ruleCubeDimensionEntityEntity
+                    // InternalCubeDSL.g:966:4: (lv_dimEntity_6_0= ruleCubeDimensionEntityEntity )
+                    // InternalCubeDSL.g:967:5: lv_dimEntity_6_0= ruleCubeDimensionEntityEntity
                     {
                     if ( state.backtracking==0 ) {
 
@@ -2658,7 +2661,7 @@
 
 
     // $ANTLR start "entryRuleCubeLevel"
-    // InternalCubeDSL.g:990:1: entryRuleCubeLevel returns [EObject current=null] : iv_ruleCubeLevel= ruleCubeLevel EOF ;
+    // InternalCubeDSL.g:992:1: entryRuleCubeLevel returns [EObject current=null] : iv_ruleCubeLevel= ruleCubeLevel EOF ;
     public final EObject entryRuleCubeLevel() throws RecognitionException {
         EObject current = null;
 
@@ -2666,8 +2669,8 @@
 
 
         try {
-            // InternalCubeDSL.g:990:50: (iv_ruleCubeLevel= ruleCubeLevel EOF )
-            // InternalCubeDSL.g:991:2: iv_ruleCubeLevel= ruleCubeLevel EOF
+            // InternalCubeDSL.g:992:50: (iv_ruleCubeLevel= ruleCubeLevel EOF )
+            // InternalCubeDSL.g:993:2: iv_ruleCubeLevel= ruleCubeLevel EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeLevelRule()); 
@@ -2698,32 +2701,35 @@
 
 
     // $ANTLR start "ruleCubeLevel"
-    // InternalCubeDSL.g:997:1: ruleCubeLevel returns [EObject current=null] : (otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( (lv_uniqueMembers_4_0= 'uniqueMembers' ) )? ( ( (lv_levelType_5_0= 'levelType' ) ) ( (lv_levelTypeValue_6_0= ruleCubeLevelLevelType ) ) )? (otherlv_7= '{' ( (lv_properties_8_0= ruleCubeLevelProp ) )* otherlv_9= '}' )? ) ;
+    // InternalCubeDSL.g:999:1: ruleCubeLevel returns [EObject current=null] : (otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_nameColumn_4_0= 'nameColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_captionColumn_6_0= 'captionColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_ordinalColumn_8_0= 'ordinalColumn' ) ) ( ( ruleLFQN ) ) )? ( (lv_uniqueMembers_10_0= 'uniqueMembers' ) )? ( ( (lv_levelType_11_0= 'levelType' ) ) ( (lv_levelTypeValue_12_0= ruleCubeLevelLevelType ) ) )? (otherlv_13= '{' ( (lv_properties_14_0= ruleCubeLevelProp ) )* otherlv_15= '}' )? ) ;
     public final EObject ruleCubeLevel() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token otherlv_2=null;
-        Token lv_uniqueMembers_4_0=null;
-        Token lv_levelType_5_0=null;
-        Token otherlv_7=null;
-        Token otherlv_9=null;
+        Token lv_nameColumn_4_0=null;
+        Token lv_captionColumn_6_0=null;
+        Token lv_ordinalColumn_8_0=null;
+        Token lv_uniqueMembers_10_0=null;
+        Token lv_levelType_11_0=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
         AntlrDatatypeRuleToken lv_name_1_0 = null;
 
-        Enumerator lv_levelTypeValue_6_0 = null;
+        Enumerator lv_levelTypeValue_12_0 = null;
 
-        EObject lv_properties_8_0 = null;
+        EObject lv_properties_14_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1003:2: ( (otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( (lv_uniqueMembers_4_0= 'uniqueMembers' ) )? ( ( (lv_levelType_5_0= 'levelType' ) ) ( (lv_levelTypeValue_6_0= ruleCubeLevelLevelType ) ) )? (otherlv_7= '{' ( (lv_properties_8_0= ruleCubeLevelProp ) )* otherlv_9= '}' )? ) )
-            // InternalCubeDSL.g:1004:2: (otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( (lv_uniqueMembers_4_0= 'uniqueMembers' ) )? ( ( (lv_levelType_5_0= 'levelType' ) ) ( (lv_levelTypeValue_6_0= ruleCubeLevelLevelType ) ) )? (otherlv_7= '{' ( (lv_properties_8_0= ruleCubeLevelProp ) )* otherlv_9= '}' )? )
+            // InternalCubeDSL.g:1005:2: ( (otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_nameColumn_4_0= 'nameColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_captionColumn_6_0= 'captionColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_ordinalColumn_8_0= 'ordinalColumn' ) ) ( ( ruleLFQN ) ) )? ( (lv_uniqueMembers_10_0= 'uniqueMembers' ) )? ( ( (lv_levelType_11_0= 'levelType' ) ) ( (lv_levelTypeValue_12_0= ruleCubeLevelLevelType ) ) )? (otherlv_13= '{' ( (lv_properties_14_0= ruleCubeLevelProp ) )* otherlv_15= '}' )? ) )
+            // InternalCubeDSL.g:1006:2: (otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_nameColumn_4_0= 'nameColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_captionColumn_6_0= 'captionColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_ordinalColumn_8_0= 'ordinalColumn' ) ) ( ( ruleLFQN ) ) )? ( (lv_uniqueMembers_10_0= 'uniqueMembers' ) )? ( ( (lv_levelType_11_0= 'levelType' ) ) ( (lv_levelTypeValue_12_0= ruleCubeLevelLevelType ) ) )? (otherlv_13= '{' ( (lv_properties_14_0= ruleCubeLevelProp ) )* otherlv_15= '}' )? )
             {
-            // InternalCubeDSL.g:1004:2: (otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( (lv_uniqueMembers_4_0= 'uniqueMembers' ) )? ( ( (lv_levelType_5_0= 'levelType' ) ) ( (lv_levelTypeValue_6_0= ruleCubeLevelLevelType ) ) )? (otherlv_7= '{' ( (lv_properties_8_0= ruleCubeLevelProp ) )* otherlv_9= '}' )? )
-            // InternalCubeDSL.g:1005:3: otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( (lv_uniqueMembers_4_0= 'uniqueMembers' ) )? ( ( (lv_levelType_5_0= 'levelType' ) ) ( (lv_levelTypeValue_6_0= ruleCubeLevelLevelType ) ) )? (otherlv_7= '{' ( (lv_properties_8_0= ruleCubeLevelProp ) )* otherlv_9= '}' )?
+            // InternalCubeDSL.g:1006:2: (otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_nameColumn_4_0= 'nameColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_captionColumn_6_0= 'captionColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_ordinalColumn_8_0= 'ordinalColumn' ) ) ( ( ruleLFQN ) ) )? ( (lv_uniqueMembers_10_0= 'uniqueMembers' ) )? ( ( (lv_levelType_11_0= 'levelType' ) ) ( (lv_levelTypeValue_12_0= ruleCubeLevelLevelType ) ) )? (otherlv_13= '{' ( (lv_properties_14_0= ruleCubeLevelProp ) )* otherlv_15= '}' )? )
+            // InternalCubeDSL.g:1007:3: otherlv_0= 'level' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_nameColumn_4_0= 'nameColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_captionColumn_6_0= 'captionColumn' ) ) ( ( ruleLFQN ) ) )? ( ( (lv_ordinalColumn_8_0= 'ordinalColumn' ) ) ( ( ruleLFQN ) ) )? ( (lv_uniqueMembers_10_0= 'uniqueMembers' ) )? ( ( (lv_levelType_11_0= 'levelType' ) ) ( (lv_levelTypeValue_12_0= ruleCubeLevelLevelType ) ) )? (otherlv_13= '{' ( (lv_properties_14_0= ruleCubeLevelProp ) )* otherlv_15= '}' )?
             {
             otherlv_0=(Token)match(input,28,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -2731,11 +2737,11 @@
               			newLeafNode(otherlv_0, grammarAccess.getCubeLevelAccess().getLevelKeyword_0());
               		
             }
-            // InternalCubeDSL.g:1009:3: ( (lv_name_1_0= ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:1010:4: (lv_name_1_0= ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:1011:3: ( (lv_name_1_0= ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:1012:4: (lv_name_1_0= ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:1010:4: (lv_name_1_0= ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:1011:5: lv_name_1_0= ruleTRANSLATABLEID
+            // InternalCubeDSL.g:1012:4: (lv_name_1_0= ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:1013:5: lv_name_1_0= ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
 
@@ -2772,11 +2778,11 @@
               			newLeafNode(otherlv_2, grammarAccess.getCubeLevelAccess().getColumnKeyword_2());
               		
             }
-            // InternalCubeDSL.g:1032:3: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:1033:4: ( ruleLFQN )
+            // InternalCubeDSL.g:1034:3: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:1035:4: ( ruleLFQN )
             {
-            // InternalCubeDSL.g:1033:4: ( ruleLFQN )
-            // InternalCubeDSL.g:1034:5: ruleLFQN
+            // InternalCubeDSL.g:1035:4: ( ruleLFQN )
+            // InternalCubeDSL.g:1036:5: ruleLFQN
             {
             if ( state.backtracking==0 ) {
 
@@ -2806,7 +2812,7 @@
 
             }
 
-            // InternalCubeDSL.g:1048:3: ( (lv_uniqueMembers_4_0= 'uniqueMembers' ) )?
+            // InternalCubeDSL.g:1050:3: ( ( (lv_nameColumn_4_0= 'nameColumn' ) ) ( ( ruleLFQN ) ) )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -2815,15 +2821,246 @@
             }
             switch (alt19) {
                 case 1 :
-                    // InternalCubeDSL.g:1049:4: (lv_uniqueMembers_4_0= 'uniqueMembers' )
+                    // InternalCubeDSL.g:1051:4: ( (lv_nameColumn_4_0= 'nameColumn' ) ) ( ( ruleLFQN ) )
                     {
-                    // InternalCubeDSL.g:1049:4: (lv_uniqueMembers_4_0= 'uniqueMembers' )
-                    // InternalCubeDSL.g:1050:5: lv_uniqueMembers_4_0= 'uniqueMembers'
+                    // InternalCubeDSL.g:1051:4: ( (lv_nameColumn_4_0= 'nameColumn' ) )
+                    // InternalCubeDSL.g:1052:5: (lv_nameColumn_4_0= 'nameColumn' )
                     {
-                    lv_uniqueMembers_4_0=(Token)match(input,30,FOLLOW_26); if (state.failed) return current;
+                    // InternalCubeDSL.g:1052:5: (lv_nameColumn_4_0= 'nameColumn' )
+                    // InternalCubeDSL.g:1053:6: lv_nameColumn_4_0= 'nameColumn'
+                    {
+                    lv_nameColumn_4_0=(Token)match(input,30,FOLLOW_4); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      					newLeafNode(lv_uniqueMembers_4_0, grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_4_0());
+                      						newLeafNode(lv_nameColumn_4_0, grammarAccess.getCubeLevelAccess().getNameColumnNameColumnKeyword_4_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getCubeLevelRule());
+                      						}
+                      						setWithLastConsumed(current, "nameColumn", true, "nameColumn");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalCubeDSL.g:1065:4: ( ( ruleLFQN ) )
+                    // InternalCubeDSL.g:1066:5: ( ruleLFQN )
+                    {
+                    // InternalCubeDSL.g:1066:5: ( ruleLFQN )
+                    // InternalCubeDSL.g:1067:6: ruleLFQN
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getCubeLevelRule());
+                      						}
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelNameColValueLEntityFeatureCrossReference_4_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_26);
+                    ruleLFQN();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalCubeDSL.g:1082:3: ( ( (lv_captionColumn_6_0= 'captionColumn' ) ) ( ( ruleLFQN ) ) )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==31) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // InternalCubeDSL.g:1083:4: ( (lv_captionColumn_6_0= 'captionColumn' ) ) ( ( ruleLFQN ) )
+                    {
+                    // InternalCubeDSL.g:1083:4: ( (lv_captionColumn_6_0= 'captionColumn' ) )
+                    // InternalCubeDSL.g:1084:5: (lv_captionColumn_6_0= 'captionColumn' )
+                    {
+                    // InternalCubeDSL.g:1084:5: (lv_captionColumn_6_0= 'captionColumn' )
+                    // InternalCubeDSL.g:1085:6: lv_captionColumn_6_0= 'captionColumn'
+                    {
+                    lv_captionColumn_6_0=(Token)match(input,31,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_captionColumn_6_0, grammarAccess.getCubeLevelAccess().getCaptionColumnCaptionColumnKeyword_5_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getCubeLevelRule());
+                      						}
+                      						setWithLastConsumed(current, "captionColumn", true, "captionColumn");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalCubeDSL.g:1097:4: ( ( ruleLFQN ) )
+                    // InternalCubeDSL.g:1098:5: ( ruleLFQN )
+                    {
+                    // InternalCubeDSL.g:1098:5: ( ruleLFQN )
+                    // InternalCubeDSL.g:1099:6: ruleLFQN
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getCubeLevelRule());
+                      						}
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelCaptionColValueLEntityFeatureCrossReference_5_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_27);
+                    ruleLFQN();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalCubeDSL.g:1114:3: ( ( (lv_ordinalColumn_8_0= 'ordinalColumn' ) ) ( ( ruleLFQN ) ) )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==32) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // InternalCubeDSL.g:1115:4: ( (lv_ordinalColumn_8_0= 'ordinalColumn' ) ) ( ( ruleLFQN ) )
+                    {
+                    // InternalCubeDSL.g:1115:4: ( (lv_ordinalColumn_8_0= 'ordinalColumn' ) )
+                    // InternalCubeDSL.g:1116:5: (lv_ordinalColumn_8_0= 'ordinalColumn' )
+                    {
+                    // InternalCubeDSL.g:1116:5: (lv_ordinalColumn_8_0= 'ordinalColumn' )
+                    // InternalCubeDSL.g:1117:6: lv_ordinalColumn_8_0= 'ordinalColumn'
+                    {
+                    lv_ordinalColumn_8_0=(Token)match(input,32,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_ordinalColumn_8_0, grammarAccess.getCubeLevelAccess().getOrdinalColumnOrdinalColumnKeyword_6_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getCubeLevelRule());
+                      						}
+                      						setWithLastConsumed(current, "ordinalColumn", true, "ordinalColumn");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalCubeDSL.g:1129:4: ( ( ruleLFQN ) )
+                    // InternalCubeDSL.g:1130:5: ( ruleLFQN )
+                    {
+                    // InternalCubeDSL.g:1130:5: ( ruleLFQN )
+                    // InternalCubeDSL.g:1131:6: ruleLFQN
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getCubeLevelRule());
+                      						}
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_28);
+                    ruleLFQN();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalCubeDSL.g:1146:3: ( (lv_uniqueMembers_10_0= 'uniqueMembers' ) )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0==33) ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // InternalCubeDSL.g:1147:4: (lv_uniqueMembers_10_0= 'uniqueMembers' )
+                    {
+                    // InternalCubeDSL.g:1147:4: (lv_uniqueMembers_10_0= 'uniqueMembers' )
+                    // InternalCubeDSL.g:1148:5: lv_uniqueMembers_10_0= 'uniqueMembers'
+                    {
+                    lv_uniqueMembers_10_0=(Token)match(input,33,FOLLOW_29); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(lv_uniqueMembers_10_0, grammarAccess.getCubeLevelAccess().getUniqueMembersUniqueMembersKeyword_7_0());
                       				
                     }
                     if ( state.backtracking==0 ) {
@@ -2843,27 +3080,27 @@
 
             }
 
-            // InternalCubeDSL.g:1062:3: ( ( (lv_levelType_5_0= 'levelType' ) ) ( (lv_levelTypeValue_6_0= ruleCubeLevelLevelType ) ) )?
-            int alt20=2;
-            int LA20_0 = input.LA(1);
+            // InternalCubeDSL.g:1160:3: ( ( (lv_levelType_11_0= 'levelType' ) ) ( (lv_levelTypeValue_12_0= ruleCubeLevelLevelType ) ) )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
 
-            if ( (LA20_0==31) ) {
-                alt20=1;
+            if ( (LA23_0==34) ) {
+                alt23=1;
             }
-            switch (alt20) {
+            switch (alt23) {
                 case 1 :
-                    // InternalCubeDSL.g:1063:4: ( (lv_levelType_5_0= 'levelType' ) ) ( (lv_levelTypeValue_6_0= ruleCubeLevelLevelType ) )
+                    // InternalCubeDSL.g:1161:4: ( (lv_levelType_11_0= 'levelType' ) ) ( (lv_levelTypeValue_12_0= ruleCubeLevelLevelType ) )
                     {
-                    // InternalCubeDSL.g:1063:4: ( (lv_levelType_5_0= 'levelType' ) )
-                    // InternalCubeDSL.g:1064:5: (lv_levelType_5_0= 'levelType' )
+                    // InternalCubeDSL.g:1161:4: ( (lv_levelType_11_0= 'levelType' ) )
+                    // InternalCubeDSL.g:1162:5: (lv_levelType_11_0= 'levelType' )
                     {
-                    // InternalCubeDSL.g:1064:5: (lv_levelType_5_0= 'levelType' )
-                    // InternalCubeDSL.g:1065:6: lv_levelType_5_0= 'levelType'
+                    // InternalCubeDSL.g:1162:5: (lv_levelType_11_0= 'levelType' )
+                    // InternalCubeDSL.g:1163:6: lv_levelType_11_0= 'levelType'
                     {
-                    lv_levelType_5_0=(Token)match(input,31,FOLLOW_27); if (state.failed) return current;
+                    lv_levelType_11_0=(Token)match(input,34,FOLLOW_30); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      						newLeafNode(lv_levelType_5_0, grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_5_0_0());
+                      						newLeafNode(lv_levelType_11_0, grammarAccess.getCubeLevelAccess().getLevelTypeLevelTypeKeyword_8_0_0());
                       					
                     }
                     if ( state.backtracking==0 ) {
@@ -2880,19 +3117,19 @@
 
                     }
 
-                    // InternalCubeDSL.g:1077:4: ( (lv_levelTypeValue_6_0= ruleCubeLevelLevelType ) )
-                    // InternalCubeDSL.g:1078:5: (lv_levelTypeValue_6_0= ruleCubeLevelLevelType )
+                    // InternalCubeDSL.g:1175:4: ( (lv_levelTypeValue_12_0= ruleCubeLevelLevelType ) )
+                    // InternalCubeDSL.g:1176:5: (lv_levelTypeValue_12_0= ruleCubeLevelLevelType )
                     {
-                    // InternalCubeDSL.g:1078:5: (lv_levelTypeValue_6_0= ruleCubeLevelLevelType )
-                    // InternalCubeDSL.g:1079:6: lv_levelTypeValue_6_0= ruleCubeLevelLevelType
+                    // InternalCubeDSL.g:1176:5: (lv_levelTypeValue_12_0= ruleCubeLevelLevelType )
+                    // InternalCubeDSL.g:1177:6: lv_levelTypeValue_12_0= ruleCubeLevelLevelType
                     {
                     if ( state.backtracking==0 ) {
 
-                      						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0());
+                      						newCompositeNode(grammarAccess.getCubeLevelAccess().getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0());
                       					
                     }
                     pushFollow(FOLLOW_5);
-                    lv_levelTypeValue_6_0=ruleCubeLevelLevelType();
+                    lv_levelTypeValue_12_0=ruleCubeLevelLevelType();
 
                     state._fsp--;
                     if (state.failed) return current;
@@ -2904,7 +3141,7 @@
                       						set(
                       							current,
                       							"levelTypeValue",
-                      							lv_levelTypeValue_6_0,
+                      							lv_levelTypeValue_12_0,
                       							"org.eclipse.osbp.xtext.cubedsl.CubeDSL.CubeLevelLevelType");
                       						afterParserOrEnumRuleCall();
                       					
@@ -2921,48 +3158,48 @@
 
             }
 
-            // InternalCubeDSL.g:1097:3: (otherlv_7= '{' ( (lv_properties_8_0= ruleCubeLevelProp ) )* otherlv_9= '}' )?
-            int alt22=2;
-            int LA22_0 = input.LA(1);
+            // InternalCubeDSL.g:1195:3: (otherlv_13= '{' ( (lv_properties_14_0= ruleCubeLevelProp ) )* otherlv_15= '}' )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
 
-            if ( (LA22_0==14) ) {
-                alt22=1;
+            if ( (LA25_0==14) ) {
+                alt25=1;
             }
-            switch (alt22) {
+            switch (alt25) {
                 case 1 :
-                    // InternalCubeDSL.g:1098:4: otherlv_7= '{' ( (lv_properties_8_0= ruleCubeLevelProp ) )* otherlv_9= '}'
+                    // InternalCubeDSL.g:1196:4: otherlv_13= '{' ( (lv_properties_14_0= ruleCubeLevelProp ) )* otherlv_15= '}'
                     {
-                    otherlv_7=(Token)match(input,14,FOLLOW_28); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,14,FOLLOW_31); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				newLeafNode(otherlv_7, grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_6_0());
+                      				newLeafNode(otherlv_13, grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_9_0());
                       			
                     }
-                    // InternalCubeDSL.g:1102:4: ( (lv_properties_8_0= ruleCubeLevelProp ) )*
-                    loop21:
+                    // InternalCubeDSL.g:1200:4: ( (lv_properties_14_0= ruleCubeLevelProp ) )*
+                    loop24:
                     do {
-                        int alt21=2;
-                        int LA21_0 = input.LA(1);
+                        int alt24=2;
+                        int LA24_0 = input.LA(1);
 
-                        if ( (LA21_0==32) ) {
-                            alt21=1;
+                        if ( (LA24_0==35) ) {
+                            alt24=1;
                         }
 
 
-                        switch (alt21) {
+                        switch (alt24) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:1103:5: (lv_properties_8_0= ruleCubeLevelProp )
+                    	    // InternalCubeDSL.g:1201:5: (lv_properties_14_0= ruleCubeLevelProp )
                     	    {
-                    	    // InternalCubeDSL.g:1103:5: (lv_properties_8_0= ruleCubeLevelProp )
-                    	    // InternalCubeDSL.g:1104:6: lv_properties_8_0= ruleCubeLevelProp
+                    	    // InternalCubeDSL.g:1201:5: (lv_properties_14_0= ruleCubeLevelProp )
+                    	    // InternalCubeDSL.g:1202:6: lv_properties_14_0= ruleCubeLevelProp
                     	    {
                     	    if ( state.backtracking==0 ) {
 
-                    	      						newCompositeNode(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_6_1_0());
+                    	      						newCompositeNode(grammarAccess.getCubeLevelAccess().getPropertiesCubeLevelPropParserRuleCall_9_1_0());
                     	      					
                     	    }
-                    	    pushFollow(FOLLOW_28);
-                    	    lv_properties_8_0=ruleCubeLevelProp();
+                    	    pushFollow(FOLLOW_31);
+                    	    lv_properties_14_0=ruleCubeLevelProp();
 
                     	    state._fsp--;
                     	    if (state.failed) return current;
@@ -2974,7 +3211,7 @@
                     	      						add(
                     	      							current,
                     	      							"properties",
-                    	      							lv_properties_8_0,
+                    	      							lv_properties_14_0,
                     	      							"org.eclipse.osbp.xtext.cubedsl.CubeDSL.CubeLevelProp");
                     	      						afterParserOrEnumRuleCall();
                     	      					
@@ -2987,14 +3224,14 @@
                     	    break;
 
                     	default :
-                    	    break loop21;
+                    	    break loop24;
                         }
                     } while (true);
 
-                    otherlv_9=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
+                    otherlv_15=(Token)match(input,15,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      				newLeafNode(otherlv_9, grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_6_2());
+                      				newLeafNode(otherlv_15, grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_9_2());
                       			
                     }
 
@@ -3028,7 +3265,7 @@
 
 
     // $ANTLR start "entryRuleCubeLevelProp"
-    // InternalCubeDSL.g:1130:1: entryRuleCubeLevelProp returns [EObject current=null] : iv_ruleCubeLevelProp= ruleCubeLevelProp EOF ;
+    // InternalCubeDSL.g:1228:1: entryRuleCubeLevelProp returns [EObject current=null] : iv_ruleCubeLevelProp= ruleCubeLevelProp EOF ;
     public final EObject entryRuleCubeLevelProp() throws RecognitionException {
         EObject current = null;
 
@@ -3036,8 +3273,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1130:54: (iv_ruleCubeLevelProp= ruleCubeLevelProp EOF )
-            // InternalCubeDSL.g:1131:2: iv_ruleCubeLevelProp= ruleCubeLevelProp EOF
+            // InternalCubeDSL.g:1228:54: (iv_ruleCubeLevelProp= ruleCubeLevelProp EOF )
+            // InternalCubeDSL.g:1229:2: iv_ruleCubeLevelProp= ruleCubeLevelProp EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeLevelPropRule()); 
@@ -3068,7 +3305,7 @@
 
 
     // $ANTLR start "ruleCubeLevelProp"
-    // InternalCubeDSL.g:1137:1: ruleCubeLevelProp returns [EObject current=null] : (otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )? ) ;
+    // InternalCubeDSL.g:1235:1: ruleCubeLevelProp returns [EObject current=null] : (otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )? ) ;
     public final EObject ruleCubeLevelProp() throws RecognitionException {
         EObject current = null;
 
@@ -3084,23 +3321,23 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1143:2: ( (otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )? ) )
-            // InternalCubeDSL.g:1144:2: (otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )? )
+            // InternalCubeDSL.g:1241:2: ( (otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )? ) )
+            // InternalCubeDSL.g:1242:2: (otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )? )
             {
-            // InternalCubeDSL.g:1144:2: (otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )? )
-            // InternalCubeDSL.g:1145:3: otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )?
+            // InternalCubeDSL.g:1242:2: (otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )? )
+            // InternalCubeDSL.g:1243:3: otherlv_0= 'property' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) otherlv_2= 'column' ( ( ruleLFQN ) ) ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )?
             {
-            otherlv_0=(Token)match(input,32,FOLLOW_4); if (state.failed) return current;
+            otherlv_0=(Token)match(input,35,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getCubeLevelPropAccess().getPropertyKeyword_0());
               		
             }
-            // InternalCubeDSL.g:1149:3: ( (lv_name_1_0= ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:1150:4: (lv_name_1_0= ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:1247:3: ( (lv_name_1_0= ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:1248:4: (lv_name_1_0= ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:1150:4: (lv_name_1_0= ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:1151:5: lv_name_1_0= ruleTRANSLATABLEID
+            // InternalCubeDSL.g:1248:4: (lv_name_1_0= ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:1249:5: lv_name_1_0= ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
 
@@ -3137,11 +3374,11 @@
               			newLeafNode(otherlv_2, grammarAccess.getCubeLevelPropAccess().getColumnKeyword_2());
               		
             }
-            // InternalCubeDSL.g:1172:3: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:1173:4: ( ruleLFQN )
+            // InternalCubeDSL.g:1270:3: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:1271:4: ( ruleLFQN )
             {
-            // InternalCubeDSL.g:1173:4: ( ruleLFQN )
-            // InternalCubeDSL.g:1174:5: ruleLFQN
+            // InternalCubeDSL.g:1271:4: ( ruleLFQN )
+            // InternalCubeDSL.g:1272:5: ruleLFQN
             {
             if ( state.backtracking==0 ) {
 
@@ -3155,7 +3392,7 @@
               					newCompositeNode(grammarAccess.getCubeLevelPropAccess().getLevelPropColValueLEntityFeatureCrossReference_3_0());
               				
             }
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_32);
             ruleLFQN();
 
             state._fsp--;
@@ -3171,24 +3408,24 @@
 
             }
 
-            // InternalCubeDSL.g:1188:3: ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )?
-            int alt23=2;
-            int LA23_0 = input.LA(1);
+            // InternalCubeDSL.g:1286:3: ( ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) ) )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
 
-            if ( (LA23_0==33) ) {
-                alt23=1;
+            if ( (LA26_0==36) ) {
+                alt26=1;
             }
-            switch (alt23) {
+            switch (alt26) {
                 case 1 :
-                    // InternalCubeDSL.g:1189:4: ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) )
+                    // InternalCubeDSL.g:1287:4: ( (lv_type_4_0= 'type' ) ) ( (lv_typeValue_5_0= ruleCubeLevelPropType ) )
                     {
-                    // InternalCubeDSL.g:1189:4: ( (lv_type_4_0= 'type' ) )
-                    // InternalCubeDSL.g:1190:5: (lv_type_4_0= 'type' )
+                    // InternalCubeDSL.g:1287:4: ( (lv_type_4_0= 'type' ) )
+                    // InternalCubeDSL.g:1288:5: (lv_type_4_0= 'type' )
                     {
-                    // InternalCubeDSL.g:1190:5: (lv_type_4_0= 'type' )
-                    // InternalCubeDSL.g:1191:6: lv_type_4_0= 'type'
+                    // InternalCubeDSL.g:1288:5: (lv_type_4_0= 'type' )
+                    // InternalCubeDSL.g:1289:6: lv_type_4_0= 'type'
                     {
-                    lv_type_4_0=(Token)match(input,33,FOLLOW_30); if (state.failed) return current;
+                    lv_type_4_0=(Token)match(input,36,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_type_4_0, grammarAccess.getCubeLevelPropAccess().getTypeTypeKeyword_4_0_0());
@@ -3208,11 +3445,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:1203:4: ( (lv_typeValue_5_0= ruleCubeLevelPropType ) )
-                    // InternalCubeDSL.g:1204:5: (lv_typeValue_5_0= ruleCubeLevelPropType )
+                    // InternalCubeDSL.g:1301:4: ( (lv_typeValue_5_0= ruleCubeLevelPropType ) )
+                    // InternalCubeDSL.g:1302:5: (lv_typeValue_5_0= ruleCubeLevelPropType )
                     {
-                    // InternalCubeDSL.g:1204:5: (lv_typeValue_5_0= ruleCubeLevelPropType )
-                    // InternalCubeDSL.g:1205:6: lv_typeValue_5_0= ruleCubeLevelPropType
+                    // InternalCubeDSL.g:1302:5: (lv_typeValue_5_0= ruleCubeLevelPropType )
+                    // InternalCubeDSL.g:1303:6: lv_typeValue_5_0= ruleCubeLevelPropType
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3274,7 +3511,7 @@
 
 
     // $ANTLR start "entryRuleCubeMeasure"
-    // InternalCubeDSL.g:1227:1: entryRuleCubeMeasure returns [EObject current=null] : iv_ruleCubeMeasure= ruleCubeMeasure EOF ;
+    // InternalCubeDSL.g:1325:1: entryRuleCubeMeasure returns [EObject current=null] : iv_ruleCubeMeasure= ruleCubeMeasure EOF ;
     public final EObject entryRuleCubeMeasure() throws RecognitionException {
         EObject current = null;
 
@@ -3282,8 +3519,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1227:52: (iv_ruleCubeMeasure= ruleCubeMeasure EOF )
-            // InternalCubeDSL.g:1228:2: iv_ruleCubeMeasure= ruleCubeMeasure EOF
+            // InternalCubeDSL.g:1325:52: (iv_ruleCubeMeasure= ruleCubeMeasure EOF )
+            // InternalCubeDSL.g:1326:2: iv_ruleCubeMeasure= ruleCubeMeasure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCubeMeasureRule()); 
@@ -3314,7 +3551,7 @@
 
 
     // $ANTLR start "ruleCubeMeasure"
-    // InternalCubeDSL.g:1234:1: ruleCubeMeasure returns [EObject current=null] : (otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )? ) ;
+    // InternalCubeDSL.g:1332:1: ruleCubeMeasure returns [EObject current=null] : (otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )? ) ;
     public final EObject ruleCubeMeasure() throws RecognitionException {
         EObject current = null;
 
@@ -3330,30 +3567,30 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1240:2: ( (otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )? ) )
-            // InternalCubeDSL.g:1241:2: (otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )? )
+            // InternalCubeDSL.g:1338:2: ( (otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )? ) )
+            // InternalCubeDSL.g:1339:2: (otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )? )
             {
-            // InternalCubeDSL.g:1241:2: (otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )? )
-            // InternalCubeDSL.g:1242:3: otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )?
+            // InternalCubeDSL.g:1339:2: (otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )? )
+            // InternalCubeDSL.g:1340:3: otherlv_0= 'measure' ( (lv_name_1_0= ruleTRANSLATABLEID ) ) ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) ) otherlv_3= 'column' ( ( ruleLFQN ) ) ( (lv_notVisible_5_0= 'notVisible' ) )?
             {
-            otherlv_0=(Token)match(input,34,FOLLOW_4); if (state.failed) return current;
+            otherlv_0=(Token)match(input,37,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getCubeMeasureAccess().getMeasureKeyword_0());
               		
             }
-            // InternalCubeDSL.g:1246:3: ( (lv_name_1_0= ruleTRANSLATABLEID ) )
-            // InternalCubeDSL.g:1247:4: (lv_name_1_0= ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:1344:3: ( (lv_name_1_0= ruleTRANSLATABLEID ) )
+            // InternalCubeDSL.g:1345:4: (lv_name_1_0= ruleTRANSLATABLEID )
             {
-            // InternalCubeDSL.g:1247:4: (lv_name_1_0= ruleTRANSLATABLEID )
-            // InternalCubeDSL.g:1248:5: lv_name_1_0= ruleTRANSLATABLEID
+            // InternalCubeDSL.g:1345:4: (lv_name_1_0= ruleTRANSLATABLEID )
+            // InternalCubeDSL.g:1346:5: lv_name_1_0= ruleTRANSLATABLEID
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getCubeMeasureAccess().getNameTRANSLATABLEIDParserRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_31);
+            pushFollow(FOLLOW_34);
             lv_name_1_0=ruleTRANSLATABLEID();
 
             state._fsp--;
@@ -3377,11 +3614,11 @@
 
             }
 
-            // InternalCubeDSL.g:1265:3: ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) )
-            // InternalCubeDSL.g:1266:4: (lv_aggregator_2_0= ruleCubeAggregatorEnum )
+            // InternalCubeDSL.g:1363:3: ( (lv_aggregator_2_0= ruleCubeAggregatorEnum ) )
+            // InternalCubeDSL.g:1364:4: (lv_aggregator_2_0= ruleCubeAggregatorEnum )
             {
-            // InternalCubeDSL.g:1266:4: (lv_aggregator_2_0= ruleCubeAggregatorEnum )
-            // InternalCubeDSL.g:1267:5: lv_aggregator_2_0= ruleCubeAggregatorEnum
+            // InternalCubeDSL.g:1364:4: (lv_aggregator_2_0= ruleCubeAggregatorEnum )
+            // InternalCubeDSL.g:1365:5: lv_aggregator_2_0= ruleCubeAggregatorEnum
             {
             if ( state.backtracking==0 ) {
 
@@ -3418,11 +3655,11 @@
               			newLeafNode(otherlv_3, grammarAccess.getCubeMeasureAccess().getColumnKeyword_3());
               		
             }
-            // InternalCubeDSL.g:1288:3: ( ( ruleLFQN ) )
-            // InternalCubeDSL.g:1289:4: ( ruleLFQN )
+            // InternalCubeDSL.g:1386:3: ( ( ruleLFQN ) )
+            // InternalCubeDSL.g:1387:4: ( ruleLFQN )
             {
-            // InternalCubeDSL.g:1289:4: ( ruleLFQN )
-            // InternalCubeDSL.g:1290:5: ruleLFQN
+            // InternalCubeDSL.g:1387:4: ( ruleLFQN )
+            // InternalCubeDSL.g:1388:5: ruleLFQN
             {
             if ( state.backtracking==0 ) {
 
@@ -3436,7 +3673,7 @@
               					newCompositeNode(grammarAccess.getCubeMeasureAccess().getMeasureColLEntityFeatureCrossReference_4_0());
               				
             }
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_35);
             ruleLFQN();
 
             state._fsp--;
@@ -3452,21 +3689,21 @@
 
             }
 
-            // InternalCubeDSL.g:1304:3: ( (lv_notVisible_5_0= 'notVisible' ) )?
-            int alt24=2;
-            int LA24_0 = input.LA(1);
+            // InternalCubeDSL.g:1402:3: ( (lv_notVisible_5_0= 'notVisible' ) )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
 
-            if ( (LA24_0==35) ) {
-                alt24=1;
+            if ( (LA27_0==38) ) {
+                alt27=1;
             }
-            switch (alt24) {
+            switch (alt27) {
                 case 1 :
-                    // InternalCubeDSL.g:1305:4: (lv_notVisible_5_0= 'notVisible' )
+                    // InternalCubeDSL.g:1403:4: (lv_notVisible_5_0= 'notVisible' )
                     {
-                    // InternalCubeDSL.g:1305:4: (lv_notVisible_5_0= 'notVisible' )
-                    // InternalCubeDSL.g:1306:5: lv_notVisible_5_0= 'notVisible'
+                    // InternalCubeDSL.g:1403:4: (lv_notVisible_5_0= 'notVisible' )
+                    // InternalCubeDSL.g:1404:5: lv_notVisible_5_0= 'notVisible'
                     {
-                    lv_notVisible_5_0=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
+                    lv_notVisible_5_0=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(lv_notVisible_5_0, grammarAccess.getCubeMeasureAccess().getNotVisibleNotVisibleKeyword_5_0());
@@ -3514,7 +3751,7 @@
 
 
     // $ANTLR start "entryRuleLFQN"
-    // InternalCubeDSL.g:1322:1: entryRuleLFQN returns [String current=null] : iv_ruleLFQN= ruleLFQN EOF ;
+    // InternalCubeDSL.g:1420:1: entryRuleLFQN returns [String current=null] : iv_ruleLFQN= ruleLFQN EOF ;
     public final String entryRuleLFQN() throws RecognitionException {
         String current = null;
 
@@ -3522,8 +3759,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1322:44: (iv_ruleLFQN= ruleLFQN EOF )
-            // InternalCubeDSL.g:1323:2: iv_ruleLFQN= ruleLFQN EOF
+            // InternalCubeDSL.g:1420:44: (iv_ruleLFQN= ruleLFQN EOF )
+            // InternalCubeDSL.g:1421:2: iv_ruleLFQN= ruleLFQN EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLFQNRule()); 
@@ -3554,7 +3791,7 @@
 
 
     // $ANTLR start "ruleLFQN"
-    // InternalCubeDSL.g:1329:1: ruleLFQN returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ;
+    // InternalCubeDSL.g:1427:1: ruleLFQN returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ;
     public final AntlrDatatypeRuleToken ruleLFQN() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -3566,13 +3803,13 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1335:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) )
-            // InternalCubeDSL.g:1336:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
+            // InternalCubeDSL.g:1433:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) )
+            // InternalCubeDSL.g:1434:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
             {
-            // InternalCubeDSL.g:1336:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
-            // InternalCubeDSL.g:1337:3: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
+            // InternalCubeDSL.g:1434:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
+            // InternalCubeDSL.g:1435:3: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
             {
-            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_33); if (state.failed) return current;
+            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_36); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(this_ID_0);
@@ -3583,29 +3820,29 @@
               			newLeafNode(this_ID_0, grammarAccess.getLFQNAccess().getIDTerminalRuleCall_0());
               		
             }
-            // InternalCubeDSL.g:1344:3: (kw= '.' this_ID_2= RULE_ID )*
-            loop25:
+            // InternalCubeDSL.g:1442:3: (kw= '.' this_ID_2= RULE_ID )*
+            loop28:
             do {
-                int alt25=2;
-                int LA25_0 = input.LA(1);
+                int alt28=2;
+                int LA28_0 = input.LA(1);
 
-                if ( (LA25_0==36) ) {
-                    alt25=1;
+                if ( (LA28_0==39) ) {
+                    alt28=1;
                 }
 
 
-                switch (alt25) {
+                switch (alt28) {
             	case 1 :
-            	    // InternalCubeDSL.g:1345:4: kw= '.' this_ID_2= RULE_ID
+            	    // InternalCubeDSL.g:1443:4: kw= '.' this_ID_2= RULE_ID
             	    {
-            	    kw=(Token)match(input,36,FOLLOW_4); if (state.failed) return current;
+            	    kw=(Token)match(input,39,FOLLOW_4); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				current.merge(kw);
             	      				newLeafNode(kw, grammarAccess.getLFQNAccess().getFullStopKeyword_1_0());
             	      			
             	    }
-            	    this_ID_2=(Token)match(input,RULE_ID,FOLLOW_33); if (state.failed) return current;
+            	    this_ID_2=(Token)match(input,RULE_ID,FOLLOW_36); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				current.merge(this_ID_2);
@@ -3621,7 +3858,7 @@
             	    break;
 
             	default :
-            	    break loop25;
+            	    break loop28;
                 }
             } while (true);
 
@@ -3650,7 +3887,7 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLEID"
-    // InternalCubeDSL.g:1362:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
+    // InternalCubeDSL.g:1460:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
     public final String entryRuleTRANSLATABLEID() throws RecognitionException {
         String current = null;
 
@@ -3658,8 +3895,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1362:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
-            // InternalCubeDSL.g:1363:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
+            // InternalCubeDSL.g:1460:54: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
+            // InternalCubeDSL.g:1461:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); 
@@ -3690,7 +3927,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLEID"
-    // InternalCubeDSL.g:1369:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalCubeDSL.g:1467:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLEID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -3700,8 +3937,8 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1375:2: (this_ID_0= RULE_ID )
-            // InternalCubeDSL.g:1376:2: this_ID_0= RULE_ID
+            // InternalCubeDSL.g:1473:2: (this_ID_0= RULE_ID )
+            // InternalCubeDSL.g:1474:2: this_ID_0= RULE_ID
             {
             this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -3736,7 +3973,7 @@
 
 
     // $ANTLR start "entryRuleTRANSLATABLESTRING"
-    // InternalCubeDSL.g:1386:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
+    // InternalCubeDSL.g:1484:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
     public final String entryRuleTRANSLATABLESTRING() throws RecognitionException {
         String current = null;
 
@@ -3744,8 +3981,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1386:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
-            // InternalCubeDSL.g:1387:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
+            // InternalCubeDSL.g:1484:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
+            // InternalCubeDSL.g:1485:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); 
@@ -3776,7 +4013,7 @@
 
 
     // $ANTLR start "ruleTRANSLATABLESTRING"
-    // InternalCubeDSL.g:1393:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
+    // InternalCubeDSL.g:1491:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
     public final AntlrDatatypeRuleToken ruleTRANSLATABLESTRING() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -3786,8 +4023,8 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1399:2: (this_STRING_0= RULE_STRING )
-            // InternalCubeDSL.g:1400:2: this_STRING_0= RULE_STRING
+            // InternalCubeDSL.g:1497:2: (this_STRING_0= RULE_STRING )
+            // InternalCubeDSL.g:1498:2: this_STRING_0= RULE_STRING
             {
             this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -3822,7 +4059,7 @@
 
 
     // $ANTLR start "entryRuleXImportDeclaration"
-    // InternalCubeDSL.g:1410:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
+    // InternalCubeDSL.g:1508:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
     public final EObject entryRuleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -3830,8 +4067,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1410:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
-            // InternalCubeDSL.g:1411:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
+            // InternalCubeDSL.g:1508:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
+            // InternalCubeDSL.g:1509:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportDeclarationRule()); 
@@ -3862,7 +4099,7 @@
 
 
     // $ANTLR start "ruleXImportDeclaration"
-    // InternalCubeDSL.g:1417:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
+    // InternalCubeDSL.g:1515:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
     public final EObject ruleXImportDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -3883,14 +4120,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1423:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
-            // InternalCubeDSL.g:1424:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalCubeDSL.g:1521:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
+            // InternalCubeDSL.g:1522:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
             {
-            // InternalCubeDSL.g:1424:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
-            // InternalCubeDSL.g:1425:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
+            // InternalCubeDSL.g:1522:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalCubeDSL.g:1523:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
             {
-            // InternalCubeDSL.g:1425:3: ()
-            // InternalCubeDSL.g:1426:4: 
+            // InternalCubeDSL.g:1523:3: ()
+            // InternalCubeDSL.g:1524:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -3902,29 +4139,29 @@
 
             }
 
-            otherlv_1=(Token)match(input,37,FOLLOW_34); if (state.failed) return current;
+            otherlv_1=(Token)match(input,40,FOLLOW_37); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXImportDeclarationAccess().getImportKeyword_1());
               		
             }
-            // InternalCubeDSL.g:1436:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
-            int alt28=4;
-            alt28 = dfa28.predict(input);
-            switch (alt28) {
+            // InternalCubeDSL.g:1534:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
+            int alt31=4;
+            alt31 = dfa31.predict(input);
+            switch (alt31) {
                 case 1 :
-                    // InternalCubeDSL.g:1437:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalCubeDSL.g:1535:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
                     {
-                    // InternalCubeDSL.g:1437:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
-                    // InternalCubeDSL.g:1438:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    // InternalCubeDSL.g:1535:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalCubeDSL.g:1536:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
                     {
-                    // InternalCubeDSL.g:1438:5: ( (lv_static_2_0= 'static' ) )
-                    // InternalCubeDSL.g:1439:6: (lv_static_2_0= 'static' )
+                    // InternalCubeDSL.g:1536:5: ( (lv_static_2_0= 'static' ) )
+                    // InternalCubeDSL.g:1537:6: (lv_static_2_0= 'static' )
                     {
-                    // InternalCubeDSL.g:1439:6: (lv_static_2_0= 'static' )
-                    // InternalCubeDSL.g:1440:7: lv_static_2_0= 'static'
+                    // InternalCubeDSL.g:1537:6: (lv_static_2_0= 'static' )
+                    // InternalCubeDSL.g:1538:7: lv_static_2_0= 'static'
                     {
-                    lv_static_2_0=(Token)match(input,38,FOLLOW_35); if (state.failed) return current;
+                    lv_static_2_0=(Token)match(input,41,FOLLOW_38); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_static_2_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0());
@@ -3944,21 +4181,21 @@
 
                     }
 
-                    // InternalCubeDSL.g:1452:5: ( (lv_extension_3_0= 'extension' ) )?
-                    int alt26=2;
-                    int LA26_0 = input.LA(1);
+                    // InternalCubeDSL.g:1550:5: ( (lv_extension_3_0= 'extension' ) )?
+                    int alt29=2;
+                    int LA29_0 = input.LA(1);
 
-                    if ( (LA26_0==39) ) {
-                        alt26=1;
+                    if ( (LA29_0==42) ) {
+                        alt29=1;
                     }
-                    switch (alt26) {
+                    switch (alt29) {
                         case 1 :
-                            // InternalCubeDSL.g:1453:6: (lv_extension_3_0= 'extension' )
+                            // InternalCubeDSL.g:1551:6: (lv_extension_3_0= 'extension' )
                             {
-                            // InternalCubeDSL.g:1453:6: (lv_extension_3_0= 'extension' )
-                            // InternalCubeDSL.g:1454:7: lv_extension_3_0= 'extension'
+                            // InternalCubeDSL.g:1551:6: (lv_extension_3_0= 'extension' )
+                            // InternalCubeDSL.g:1552:7: lv_extension_3_0= 'extension'
                             {
-                            lv_extension_3_0=(Token)match(input,39,FOLLOW_35); if (state.failed) return current;
+                            lv_extension_3_0=(Token)match(input,42,FOLLOW_38); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(lv_extension_3_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0());
@@ -3981,11 +4218,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:1466:5: ( ( ruleQualifiedNameInStaticImport ) )
-                    // InternalCubeDSL.g:1467:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalCubeDSL.g:1564:5: ( ( ruleQualifiedNameInStaticImport ) )
+                    // InternalCubeDSL.g:1565:6: ( ruleQualifiedNameInStaticImport )
                     {
-                    // InternalCubeDSL.g:1467:6: ( ruleQualifiedNameInStaticImport )
-                    // InternalCubeDSL.g:1468:7: ruleQualifiedNameInStaticImport
+                    // InternalCubeDSL.g:1565:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalCubeDSL.g:1566:7: ruleQualifiedNameInStaticImport
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3999,7 +4236,7 @@
                       							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0());
                       						
                     }
-                    pushFollow(FOLLOW_36);
+                    pushFollow(FOLLOW_39);
                     ruleQualifiedNameInStaticImport();
 
                     state._fsp--;
@@ -4015,34 +4252,34 @@
 
                     }
 
-                    // InternalCubeDSL.g:1482:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
-                    int alt27=2;
-                    int LA27_0 = input.LA(1);
+                    // InternalCubeDSL.g:1580:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    int alt30=2;
+                    int LA30_0 = input.LA(1);
 
-                    if ( (LA27_0==40) ) {
-                        alt27=1;
+                    if ( (LA30_0==43) ) {
+                        alt30=1;
                     }
-                    else if ( (LA27_0==RULE_ID) ) {
-                        alt27=2;
+                    else if ( (LA30_0==RULE_ID) ) {
+                        alt30=2;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 27, 0, input);
+                            new NoViableAltException("", 30, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt27) {
+                    switch (alt30) {
                         case 1 :
-                            // InternalCubeDSL.g:1483:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalCubeDSL.g:1581:6: ( (lv_wildcard_5_0= '*' ) )
                             {
-                            // InternalCubeDSL.g:1483:6: ( (lv_wildcard_5_0= '*' ) )
-                            // InternalCubeDSL.g:1484:7: (lv_wildcard_5_0= '*' )
+                            // InternalCubeDSL.g:1581:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalCubeDSL.g:1582:7: (lv_wildcard_5_0= '*' )
                             {
-                            // InternalCubeDSL.g:1484:7: (lv_wildcard_5_0= '*' )
-                            // InternalCubeDSL.g:1485:8: lv_wildcard_5_0= '*'
+                            // InternalCubeDSL.g:1582:7: (lv_wildcard_5_0= '*' )
+                            // InternalCubeDSL.g:1583:8: lv_wildcard_5_0= '*'
                             {
-                            lv_wildcard_5_0=(Token)match(input,40,FOLLOW_37); if (state.failed) return current;
+                            lv_wildcard_5_0=(Token)match(input,43,FOLLOW_40); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               								newLeafNode(lv_wildcard_5_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0());
@@ -4066,20 +4303,20 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:1498:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalCubeDSL.g:1596:6: ( (lv_memberName_6_0= ruleValidID ) )
                             {
-                            // InternalCubeDSL.g:1498:6: ( (lv_memberName_6_0= ruleValidID ) )
-                            // InternalCubeDSL.g:1499:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalCubeDSL.g:1596:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalCubeDSL.g:1597:7: (lv_memberName_6_0= ruleValidID )
                             {
-                            // InternalCubeDSL.g:1499:7: (lv_memberName_6_0= ruleValidID )
-                            // InternalCubeDSL.g:1500:8: lv_memberName_6_0= ruleValidID
+                            // InternalCubeDSL.g:1597:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalCubeDSL.g:1598:8: lv_memberName_6_0= ruleValidID
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0());
                               							
                             }
-                            pushFollow(FOLLOW_37);
+                            pushFollow(FOLLOW_40);
                             lv_memberName_6_0=ruleValidID();
 
                             state._fsp--;
@@ -4116,13 +4353,13 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:1520:4: ( ( ruleQualifiedName ) )
+                    // InternalCubeDSL.g:1618:4: ( ( ruleQualifiedName ) )
                     {
-                    // InternalCubeDSL.g:1520:4: ( ( ruleQualifiedName ) )
-                    // InternalCubeDSL.g:1521:5: ( ruleQualifiedName )
+                    // InternalCubeDSL.g:1618:4: ( ( ruleQualifiedName ) )
+                    // InternalCubeDSL.g:1619:5: ( ruleQualifiedName )
                     {
-                    // InternalCubeDSL.g:1521:5: ( ruleQualifiedName )
-                    // InternalCubeDSL.g:1522:6: ruleQualifiedName
+                    // InternalCubeDSL.g:1619:5: ( ruleQualifiedName )
+                    // InternalCubeDSL.g:1620:6: ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4136,7 +4373,7 @@
                       						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_37);
+                    pushFollow(FOLLOW_40);
                     ruleQualifiedName();
 
                     state._fsp--;
@@ -4156,20 +4393,20 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:1537:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalCubeDSL.g:1635:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
                     {
-                    // InternalCubeDSL.g:1537:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
-                    // InternalCubeDSL.g:1538:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalCubeDSL.g:1635:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalCubeDSL.g:1636:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
                     {
-                    // InternalCubeDSL.g:1538:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
-                    // InternalCubeDSL.g:1539:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
+                    // InternalCubeDSL.g:1636:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalCubeDSL.g:1637:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0());
                       					
                     }
-                    pushFollow(FOLLOW_37);
+                    pushFollow(FOLLOW_40);
                     lv_importedNamespace_8_0=ruleQualifiedNameWithWildcard();
 
                     state._fsp--;
@@ -4197,18 +4434,18 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:1557:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalCubeDSL.g:1655:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
                     {
-                    // InternalCubeDSL.g:1557:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
-                    // InternalCubeDSL.g:1558:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalCubeDSL.g:1655:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalCubeDSL.g:1656:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
                     {
-                    // InternalCubeDSL.g:1558:5: ( (lv_fqnImport_9_0= 'ns' ) )
-                    // InternalCubeDSL.g:1559:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalCubeDSL.g:1656:5: ( (lv_fqnImport_9_0= 'ns' ) )
+                    // InternalCubeDSL.g:1657:6: (lv_fqnImport_9_0= 'ns' )
                     {
-                    // InternalCubeDSL.g:1559:6: (lv_fqnImport_9_0= 'ns' )
-                    // InternalCubeDSL.g:1560:7: lv_fqnImport_9_0= 'ns'
+                    // InternalCubeDSL.g:1657:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalCubeDSL.g:1658:7: lv_fqnImport_9_0= 'ns'
                     {
-                    lv_fqnImport_9_0=(Token)match(input,41,FOLLOW_4); if (state.failed) return current;
+                    lv_fqnImport_9_0=(Token)match(input,44,FOLLOW_4); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_fqnImport_9_0, grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0());
@@ -4228,18 +4465,18 @@
 
                     }
 
-                    // InternalCubeDSL.g:1572:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
-                    // InternalCubeDSL.g:1573:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalCubeDSL.g:1670:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalCubeDSL.g:1671:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
                     {
-                    // InternalCubeDSL.g:1573:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
-                    // InternalCubeDSL.g:1574:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
+                    // InternalCubeDSL.g:1671:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalCubeDSL.g:1672:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0());
                       						
                     }
-                    pushFollow(FOLLOW_37);
+                    pushFollow(FOLLOW_40);
                     lv_importedFullyQualifiedName_10_0=ruleQualifiedName();
 
                     state._fsp--;
@@ -4272,18 +4509,18 @@
 
             }
 
-            // InternalCubeDSL.g:1593:3: (otherlv_11= ';' )?
-            int alt29=2;
-            int LA29_0 = input.LA(1);
+            // InternalCubeDSL.g:1691:3: (otherlv_11= ';' )?
+            int alt32=2;
+            int LA32_0 = input.LA(1);
 
-            if ( (LA29_0==42) ) {
-                alt29=1;
+            if ( (LA32_0==45) ) {
+                alt32=1;
             }
-            switch (alt29) {
+            switch (alt32) {
                 case 1 :
-                    // InternalCubeDSL.g:1594:4: otherlv_11= ';'
+                    // InternalCubeDSL.g:1692:4: otherlv_11= ';'
                     {
-                    otherlv_11=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
+                    otherlv_11=(Token)match(input,45,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_11, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
@@ -4320,7 +4557,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotation"
-    // InternalCubeDSL.g:1603:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    // InternalCubeDSL.g:1701:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
     public final EObject entryRuleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -4328,8 +4565,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1603:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
-            // InternalCubeDSL.g:1604:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            // InternalCubeDSL.g:1701:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // InternalCubeDSL.g:1702:2: iv_ruleXAnnotation= ruleXAnnotation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationRule()); 
@@ -4360,7 +4597,7 @@
 
 
     // $ANTLR start "ruleXAnnotation"
-    // InternalCubeDSL.g:1610:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
+    // InternalCubeDSL.g:1708:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
     public final EObject ruleXAnnotation() throws RecognitionException {
         EObject current = null;
 
@@ -4379,14 +4616,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1616:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
-            // InternalCubeDSL.g:1617:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalCubeDSL.g:1714:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
+            // InternalCubeDSL.g:1715:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
             {
-            // InternalCubeDSL.g:1617:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
-            // InternalCubeDSL.g:1618:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            // InternalCubeDSL.g:1715:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalCubeDSL.g:1716:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
             {
-            // InternalCubeDSL.g:1618:3: ()
-            // InternalCubeDSL.g:1619:4: 
+            // InternalCubeDSL.g:1716:3: ()
+            // InternalCubeDSL.g:1717:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -4398,17 +4635,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,43,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,46,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
               		
             }
-            // InternalCubeDSL.g:1629:3: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:1630:4: ( ruleQualifiedName )
+            // InternalCubeDSL.g:1727:3: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:1728:4: ( ruleQualifiedName )
             {
-            // InternalCubeDSL.g:1630:4: ( ruleQualifiedName )
-            // InternalCubeDSL.g:1631:5: ruleQualifiedName
+            // InternalCubeDSL.g:1728:4: ( ruleQualifiedName )
+            // InternalCubeDSL.g:1729:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -4422,7 +4659,7 @@
               					newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_41);
             ruleQualifiedName();
 
             state._fsp--;
@@ -4438,21 +4675,21 @@
 
             }
 
-            // InternalCubeDSL.g:1645:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
-            int alt32=2;
-            int LA32_0 = input.LA(1);
+            // InternalCubeDSL.g:1743:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
 
-            if ( (LA32_0==44) && (synpred1_InternalCubeDSL())) {
-                alt32=1;
+            if ( (LA35_0==47) && (synpred1_InternalCubeDSL())) {
+                alt35=1;
             }
-            switch (alt32) {
+            switch (alt35) {
                 case 1 :
-                    // InternalCubeDSL.g:1646:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
+                    // InternalCubeDSL.g:1744:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
                     {
-                    // InternalCubeDSL.g:1646:4: ( ( '(' )=>otherlv_3= '(' )
-                    // InternalCubeDSL.g:1647:5: ( '(' )=>otherlv_3= '('
+                    // InternalCubeDSL.g:1744:4: ( ( '(' )=>otherlv_3= '(' )
+                    // InternalCubeDSL.g:1745:5: ( '(' )=>otherlv_3= '('
                     {
-                    otherlv_3=(Token)match(input,44,FOLLOW_39); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,47,FOLLOW_42); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
@@ -4461,28 +4698,28 @@
 
                     }
 
-                    // InternalCubeDSL.g:1653:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
-                    int alt31=3;
-                    alt31 = dfa31.predict(input);
-                    switch (alt31) {
+                    // InternalCubeDSL.g:1751:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    int alt34=3;
+                    alt34 = dfa34.predict(input);
+                    switch (alt34) {
                         case 1 :
-                            // InternalCubeDSL.g:1654:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalCubeDSL.g:1752:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
                             {
-                            // InternalCubeDSL.g:1654:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
-                            // InternalCubeDSL.g:1655:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            // InternalCubeDSL.g:1752:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalCubeDSL.g:1753:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
                             {
-                            // InternalCubeDSL.g:1655:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
-                            // InternalCubeDSL.g:1656:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalCubeDSL.g:1753:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // InternalCubeDSL.g:1754:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
                             {
-                            // InternalCubeDSL.g:1665:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
-                            // InternalCubeDSL.g:1666:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            // InternalCubeDSL.g:1763:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalCubeDSL.g:1764:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_40);
+                            pushFollow(FOLLOW_43);
                             lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair();
 
                             state._fsp--;
@@ -4506,39 +4743,39 @@
 
                             }
 
-                            // InternalCubeDSL.g:1683:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
-                            loop30:
+                            // InternalCubeDSL.g:1781:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            loop33:
                             do {
-                                int alt30=2;
-                                int LA30_0 = input.LA(1);
+                                int alt33=2;
+                                int LA33_0 = input.LA(1);
 
-                                if ( (LA30_0==45) ) {
-                                    alt30=1;
+                                if ( (LA33_0==48) ) {
+                                    alt33=1;
                                 }
 
 
-                                switch (alt30) {
+                                switch (alt33) {
                             	case 1 :
-                            	    // InternalCubeDSL.g:1684:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalCubeDSL.g:1782:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
                             	    {
-                            	    otherlv_5=(Token)match(input,45,FOLLOW_4); if (state.failed) return current;
+                            	    otherlv_5=(Token)match(input,48,FOLLOW_4); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
                             	      						
                             	    }
-                            	    // InternalCubeDSL.g:1688:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
-                            	    // InternalCubeDSL.g:1689:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalCubeDSL.g:1786:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalCubeDSL.g:1787:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
                             	    {
-                            	    // InternalCubeDSL.g:1698:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
-                            	    // InternalCubeDSL.g:1699:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    // InternalCubeDSL.g:1796:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalCubeDSL.g:1797:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_40);
+                            	    pushFollow(FOLLOW_43);
                             	    lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair();
 
                             	    state._fsp--;
@@ -4567,7 +4804,7 @@
                             	    break;
 
                             	default :
-                            	    break loop30;
+                            	    break loop33;
                                 }
                             } while (true);
 
@@ -4578,20 +4815,20 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:1719:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalCubeDSL.g:1817:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
                             {
-                            // InternalCubeDSL.g:1719:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
-                            // InternalCubeDSL.g:1720:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalCubeDSL.g:1817:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalCubeDSL.g:1818:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
                             {
-                            // InternalCubeDSL.g:1720:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
-                            // InternalCubeDSL.g:1721:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            // InternalCubeDSL.g:1818:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalCubeDSL.g:1819:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0());
                               						
                             }
-                            pushFollow(FOLLOW_41);
+                            pushFollow(FOLLOW_44);
                             lv_value_7_0=ruleXAnnotationElementValueOrCommaList();
 
                             state._fsp--;
@@ -4621,7 +4858,7 @@
 
                     }
 
-                    otherlv_8=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
+                    otherlv_8=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
@@ -4658,7 +4895,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValuePair"
-    // InternalCubeDSL.g:1748:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    // InternalCubeDSL.g:1846:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
     public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -4666,8 +4903,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1748:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
-            // InternalCubeDSL.g:1749:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            // InternalCubeDSL.g:1846:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // InternalCubeDSL.g:1847:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
@@ -4698,7 +4935,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValuePair"
-    // InternalCubeDSL.g:1755:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    // InternalCubeDSL.g:1853:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
     public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
         EObject current = null;
 
@@ -4710,23 +4947,23 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1761:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
-            // InternalCubeDSL.g:1762:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalCubeDSL.g:1859:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // InternalCubeDSL.g:1860:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
             {
-            // InternalCubeDSL.g:1762:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
-            // InternalCubeDSL.g:1763:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalCubeDSL.g:1860:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalCubeDSL.g:1861:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
             {
-            // InternalCubeDSL.g:1763:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
-            // InternalCubeDSL.g:1764:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalCubeDSL.g:1861:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // InternalCubeDSL.g:1862:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
             {
-            // InternalCubeDSL.g:1773:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
-            // InternalCubeDSL.g:1774:5: ( ( ruleValidID ) ) otherlv_1= '='
+            // InternalCubeDSL.g:1871:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalCubeDSL.g:1872:5: ( ( ruleValidID ) ) otherlv_1= '='
             {
-            // InternalCubeDSL.g:1774:5: ( ( ruleValidID ) )
-            // InternalCubeDSL.g:1775:6: ( ruleValidID )
+            // InternalCubeDSL.g:1872:5: ( ( ruleValidID ) )
+            // InternalCubeDSL.g:1873:6: ( ruleValidID )
             {
-            // InternalCubeDSL.g:1775:6: ( ruleValidID )
-            // InternalCubeDSL.g:1776:7: ruleValidID
+            // InternalCubeDSL.g:1873:6: ( ruleValidID )
+            // InternalCubeDSL.g:1874:7: ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -4740,7 +4977,7 @@
               							newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0());
               						
             }
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_45);
             ruleValidID();
 
             state._fsp--;
@@ -4756,7 +4993,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,47,FOLLOW_43); if (state.failed) return current;
+            otherlv_1=(Token)match(input,50,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
@@ -4768,11 +5005,11 @@
 
             }
 
-            // InternalCubeDSL.g:1796:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
-            // InternalCubeDSL.g:1797:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalCubeDSL.g:1894:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalCubeDSL.g:1895:4: (lv_value_2_0= ruleXAnnotationElementValue )
             {
-            // InternalCubeDSL.g:1797:4: (lv_value_2_0= ruleXAnnotationElementValue )
-            // InternalCubeDSL.g:1798:5: lv_value_2_0= ruleXAnnotationElementValue
+            // InternalCubeDSL.g:1895:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalCubeDSL.g:1896:5: lv_value_2_0= ruleXAnnotationElementValue
             {
             if ( state.backtracking==0 ) {
 
@@ -4828,7 +5065,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
-    // InternalCubeDSL.g:1819:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    // InternalCubeDSL.g:1917:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
     public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -4836,8 +5073,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1819:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
-            // InternalCubeDSL.g:1820:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            // InternalCubeDSL.g:1917:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalCubeDSL.g:1918:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
@@ -4868,7 +5105,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
-    // InternalCubeDSL.g:1826:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
+    // InternalCubeDSL.g:1924:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
     public final EObject ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
         EObject current = null;
 
@@ -4890,27 +5127,27 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1832:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
-            // InternalCubeDSL.g:1833:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            // InternalCubeDSL.g:1930:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
+            // InternalCubeDSL.g:1931:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
             {
-            // InternalCubeDSL.g:1833:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
-            int alt37=2;
-            alt37 = dfa37.predict(input);
-            switch (alt37) {
+            // InternalCubeDSL.g:1931:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            int alt40=2;
+            alt40 = dfa40.predict(input);
+            switch (alt40) {
                 case 1 :
-                    // InternalCubeDSL.g:1834:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalCubeDSL.g:1932:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalCubeDSL.g:1834:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalCubeDSL.g:1835:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalCubeDSL.g:1932:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalCubeDSL.g:1933:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalCubeDSL.g:1835:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalCubeDSL.g:1836:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalCubeDSL.g:1933:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalCubeDSL.g:1934:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalCubeDSL.g:1843:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalCubeDSL.g:1844:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalCubeDSL.g:1941:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalCubeDSL.g:1942:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalCubeDSL.g:1844:6: ()
-                    // InternalCubeDSL.g:1845:7: 
+                    // InternalCubeDSL.g:1942:6: ()
+                    // InternalCubeDSL.g:1943:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4922,13 +5159,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,48,FOLLOW_44); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,51,FOLLOW_47); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,49,FOLLOW_45); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,52,FOLLOW_48); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -4940,29 +5177,29 @@
 
                     }
 
-                    // InternalCubeDSL.g:1861:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt34=2;
-                    int LA34_0 = input.LA(1);
+                    // InternalCubeDSL.g:1959:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt37=2;
+                    int LA37_0 = input.LA(1);
 
-                    if ( ((LA34_0>=RULE_ID && LA34_0<=RULE_DECIMAL)||LA34_0==14||(LA34_0>=37 && LA34_0<=39)||(LA34_0>=43 && LA34_0<=44)||(LA34_0>=48 && LA34_0<=49)||LA34_0==56||(LA34_0>=72 && LA34_0<=73)||LA34_0==77||LA34_0==84||LA34_0==86||(LA34_0>=90 && LA34_0<=92)||(LA34_0>=95 && LA34_0<=104)||LA34_0==106) ) {
-                        alt34=1;
+                    if ( ((LA37_0>=RULE_ID && LA37_0<=RULE_DECIMAL)||LA37_0==14||(LA37_0>=40 && LA37_0<=42)||(LA37_0>=46 && LA37_0<=47)||(LA37_0>=51 && LA37_0<=52)||LA37_0==59||(LA37_0>=75 && LA37_0<=76)||LA37_0==80||LA37_0==87||LA37_0==89||(LA37_0>=93 && LA37_0<=95)||(LA37_0>=98 && LA37_0<=107)||LA37_0==109) ) {
+                        alt37=1;
                     }
-                    switch (alt34) {
+                    switch (alt37) {
                         case 1 :
-                            // InternalCubeDSL.g:1862:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalCubeDSL.g:1960:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalCubeDSL.g:1862:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalCubeDSL.g:1863:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalCubeDSL.g:1960:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalCubeDSL.g:1961:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalCubeDSL.g:1863:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalCubeDSL.g:1864:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalCubeDSL.g:1961:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalCubeDSL.g:1962:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_46);
+                            pushFollow(FOLLOW_49);
                             lv_elements_3_0=ruleXAnnotationOrExpression();
 
                             state._fsp--;
@@ -4986,39 +5223,39 @@
 
                             }
 
-                            // InternalCubeDSL.g:1881:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop33:
+                            // InternalCubeDSL.g:1979:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop36:
                             do {
-                                int alt33=2;
-                                int LA33_0 = input.LA(1);
+                                int alt36=2;
+                                int LA36_0 = input.LA(1);
 
-                                if ( (LA33_0==45) ) {
-                                    alt33=1;
+                                if ( (LA36_0==48) ) {
+                                    alt36=1;
                                 }
 
 
-                                switch (alt33) {
+                                switch (alt36) {
                             	case 1 :
-                            	    // InternalCubeDSL.g:1882:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalCubeDSL.g:1980:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalCubeDSL.g:1886:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalCubeDSL.g:1887:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalCubeDSL.g:1984:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalCubeDSL.g:1985:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalCubeDSL.g:1887:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalCubeDSL.g:1888:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalCubeDSL.g:1985:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalCubeDSL.g:1986:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_46);
+                            	    pushFollow(FOLLOW_49);
                             	    lv_elements_5_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -5047,7 +5284,7 @@
                             	    break;
 
                             	default :
-                            	    break loop33;
+                            	    break loop36;
                                 }
                             } while (true);
 
@@ -5057,7 +5294,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
@@ -5070,17 +5307,17 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:1913:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalCubeDSL.g:2011:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
                     {
-                    // InternalCubeDSL.g:1913:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
-                    // InternalCubeDSL.g:1914:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    // InternalCubeDSL.g:2011:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalCubeDSL.g:2012:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0());
                       			
                     }
-                    pushFollow(FOLLOW_47);
+                    pushFollow(FOLLOW_50);
                     this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
 
                     state._fsp--;
@@ -5091,19 +5328,19 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalCubeDSL.g:1922:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
-                    int alt36=2;
-                    int LA36_0 = input.LA(1);
+                    // InternalCubeDSL.g:2020:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    int alt39=2;
+                    int LA39_0 = input.LA(1);
 
-                    if ( (LA36_0==45) ) {
-                        alt36=1;
+                    if ( (LA39_0==48) ) {
+                        alt39=1;
                     }
-                    switch (alt36) {
+                    switch (alt39) {
                         case 1 :
-                            // InternalCubeDSL.g:1923:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            // InternalCubeDSL.g:2021:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
                             {
-                            // InternalCubeDSL.g:1923:5: ()
-                            // InternalCubeDSL.g:1924:6: 
+                            // InternalCubeDSL.g:2021:5: ()
+                            // InternalCubeDSL.g:2022:6: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -5115,40 +5352,40 @@
 
                             }
 
-                            // InternalCubeDSL.g:1930:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
-                            int cnt35=0;
-                            loop35:
+                            // InternalCubeDSL.g:2028:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            int cnt38=0;
+                            loop38:
                             do {
-                                int alt35=2;
-                                int LA35_0 = input.LA(1);
+                                int alt38=2;
+                                int LA38_0 = input.LA(1);
 
-                                if ( (LA35_0==45) ) {
-                                    alt35=1;
+                                if ( (LA38_0==48) ) {
+                                    alt38=1;
                                 }
 
 
-                                switch (alt35) {
+                                switch (alt38) {
                             	case 1 :
-                            	    // InternalCubeDSL.g:1931:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalCubeDSL.g:2029:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_9=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+                            	    otherlv_9=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
                             	      					
                             	    }
-                            	    // InternalCubeDSL.g:1935:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalCubeDSL.g:1936:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalCubeDSL.g:2033:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalCubeDSL.g:2034:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalCubeDSL.g:1936:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
-                            	    // InternalCubeDSL.g:1937:8: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    // InternalCubeDSL.g:2034:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalCubeDSL.g:2035:8: lv_elements_10_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_47);
+                            	    pushFollow(FOLLOW_50);
                             	    lv_elements_10_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -5177,13 +5414,13 @@
                             	    break;
 
                             	default :
-                            	    if ( cnt35 >= 1 ) break loop35;
+                            	    if ( cnt38 >= 1 ) break loop38;
                             	    if (state.backtracking>0) {state.failed=true; return current;}
                                         EarlyExitException eee =
-                                            new EarlyExitException(35, input);
+                                            new EarlyExitException(38, input);
                                         throw eee;
                                 }
-                                cnt35++;
+                                cnt38++;
                             } while (true);
 
 
@@ -5223,7 +5460,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationElementValue"
-    // InternalCubeDSL.g:1961:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    // InternalCubeDSL.g:2059:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
     public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -5231,8 +5468,8 @@
 
 
         try {
-            // InternalCubeDSL.g:1961:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
-            // InternalCubeDSL.g:1962:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            // InternalCubeDSL.g:2059:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // InternalCubeDSL.g:2060:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
@@ -5263,7 +5500,7 @@
 
 
     // $ANTLR start "ruleXAnnotationElementValue"
-    // InternalCubeDSL.g:1968:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
+    // InternalCubeDSL.g:2066:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
     public final EObject ruleXAnnotationElementValue() throws RecognitionException {
         EObject current = null;
 
@@ -5282,27 +5519,27 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:1974:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
-            // InternalCubeDSL.g:1975:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            // InternalCubeDSL.g:2072:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
+            // InternalCubeDSL.g:2073:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
             {
-            // InternalCubeDSL.g:1975:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
-            int alt40=2;
-            alt40 = dfa40.predict(input);
-            switch (alt40) {
+            // InternalCubeDSL.g:2073:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            int alt43=2;
+            alt43 = dfa43.predict(input);
+            switch (alt43) {
                 case 1 :
-                    // InternalCubeDSL.g:1976:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalCubeDSL.g:2074:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
                     {
-                    // InternalCubeDSL.g:1976:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
-                    // InternalCubeDSL.g:1977:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    // InternalCubeDSL.g:2074:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalCubeDSL.g:2075:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
                     {
-                    // InternalCubeDSL.g:1977:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
-                    // InternalCubeDSL.g:1978:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalCubeDSL.g:2075:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalCubeDSL.g:2076:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
                     {
-                    // InternalCubeDSL.g:1985:5: ( () otherlv_1= '#' otherlv_2= '[' )
-                    // InternalCubeDSL.g:1986:6: () otherlv_1= '#' otherlv_2= '['
+                    // InternalCubeDSL.g:2083:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalCubeDSL.g:2084:6: () otherlv_1= '#' otherlv_2= '['
                     {
-                    // InternalCubeDSL.g:1986:6: ()
-                    // InternalCubeDSL.g:1987:7: 
+                    // InternalCubeDSL.g:2084:6: ()
+                    // InternalCubeDSL.g:2085:7: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5314,13 +5551,13 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,48,FOLLOW_44); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,51,FOLLOW_47); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
                       					
                     }
-                    otherlv_2=(Token)match(input,49,FOLLOW_45); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,52,FOLLOW_48); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
@@ -5332,29 +5569,29 @@
 
                     }
 
-                    // InternalCubeDSL.g:2003:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
-                    int alt39=2;
-                    int LA39_0 = input.LA(1);
+                    // InternalCubeDSL.g:2101:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt42=2;
+                    int LA42_0 = input.LA(1);
 
-                    if ( ((LA39_0>=RULE_ID && LA39_0<=RULE_DECIMAL)||LA39_0==14||(LA39_0>=37 && LA39_0<=39)||(LA39_0>=43 && LA39_0<=44)||(LA39_0>=48 && LA39_0<=49)||LA39_0==56||(LA39_0>=72 && LA39_0<=73)||LA39_0==77||LA39_0==84||LA39_0==86||(LA39_0>=90 && LA39_0<=92)||(LA39_0>=95 && LA39_0<=104)||LA39_0==106) ) {
-                        alt39=1;
+                    if ( ((LA42_0>=RULE_ID && LA42_0<=RULE_DECIMAL)||LA42_0==14||(LA42_0>=40 && LA42_0<=42)||(LA42_0>=46 && LA42_0<=47)||(LA42_0>=51 && LA42_0<=52)||LA42_0==59||(LA42_0>=75 && LA42_0<=76)||LA42_0==80||LA42_0==87||LA42_0==89||(LA42_0>=93 && LA42_0<=95)||(LA42_0>=98 && LA42_0<=107)||LA42_0==109) ) {
+                        alt42=1;
                     }
-                    switch (alt39) {
+                    switch (alt42) {
                         case 1 :
-                            // InternalCubeDSL.g:2004:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            // InternalCubeDSL.g:2102:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
                             {
-                            // InternalCubeDSL.g:2004:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
-                            // InternalCubeDSL.g:2005:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalCubeDSL.g:2102:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalCubeDSL.g:2103:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
                             {
-                            // InternalCubeDSL.g:2005:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
-                            // InternalCubeDSL.g:2006:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            // InternalCubeDSL.g:2103:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalCubeDSL.g:2104:7: lv_elements_3_0= ruleXAnnotationOrExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_46);
+                            pushFollow(FOLLOW_49);
                             lv_elements_3_0=ruleXAnnotationOrExpression();
 
                             state._fsp--;
@@ -5378,39 +5615,39 @@
 
                             }
 
-                            // InternalCubeDSL.g:2023:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
-                            loop38:
+                            // InternalCubeDSL.g:2121:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop41:
                             do {
-                                int alt38=2;
-                                int LA38_0 = input.LA(1);
+                                int alt41=2;
+                                int LA41_0 = input.LA(1);
 
-                                if ( (LA38_0==45) ) {
-                                    alt38=1;
+                                if ( (LA41_0==48) ) {
+                                    alt41=1;
                                 }
 
 
-                                switch (alt38) {
+                                switch (alt41) {
                             	case 1 :
-                            	    // InternalCubeDSL.g:2024:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalCubeDSL.g:2122:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
                             	    {
-                            	    otherlv_4=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+                            	    otherlv_4=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalCubeDSL.g:2028:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
-                            	    // InternalCubeDSL.g:2029:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalCubeDSL.g:2126:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalCubeDSL.g:2127:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
                             	    {
-                            	    // InternalCubeDSL.g:2029:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
-                            	    // InternalCubeDSL.g:2030:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    // InternalCubeDSL.g:2127:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalCubeDSL.g:2128:8: lv_elements_5_0= ruleXAnnotationOrExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_46);
+                            	    pushFollow(FOLLOW_49);
                             	    lv_elements_5_0=ruleXAnnotationOrExpression();
 
                             	    state._fsp--;
@@ -5439,7 +5676,7 @@
                             	    break;
 
                             	default :
-                            	    break loop38;
+                            	    break loop41;
                                 }
                             } while (true);
 
@@ -5449,7 +5686,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
@@ -5462,7 +5699,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2055:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    // InternalCubeDSL.g:2153:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5508,7 +5745,7 @@
 
 
     // $ANTLR start "entryRuleXAnnotationOrExpression"
-    // InternalCubeDSL.g:2067:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    // InternalCubeDSL.g:2165:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
     public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -5516,8 +5753,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2067:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
-            // InternalCubeDSL.g:2068:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            // InternalCubeDSL.g:2165:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // InternalCubeDSL.g:2166:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
@@ -5548,7 +5785,7 @@
 
 
     // $ANTLR start "ruleXAnnotationOrExpression"
-    // InternalCubeDSL.g:2074:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    // InternalCubeDSL.g:2172:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -5561,29 +5798,29 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2080:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
-            // InternalCubeDSL.g:2081:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            // InternalCubeDSL.g:2178:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // InternalCubeDSL.g:2179:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
             {
-            // InternalCubeDSL.g:2081:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
-            int alt41=2;
-            int LA41_0 = input.LA(1);
+            // InternalCubeDSL.g:2179:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            int alt44=2;
+            int LA44_0 = input.LA(1);
 
-            if ( (LA41_0==43) ) {
-                alt41=1;
+            if ( (LA44_0==46) ) {
+                alt44=1;
             }
-            else if ( ((LA41_0>=RULE_ID && LA41_0<=RULE_DECIMAL)||LA41_0==14||(LA41_0>=37 && LA41_0<=39)||LA41_0==44||(LA41_0>=48 && LA41_0<=49)||LA41_0==56||(LA41_0>=72 && LA41_0<=73)||LA41_0==77||LA41_0==84||LA41_0==86||(LA41_0>=90 && LA41_0<=92)||(LA41_0>=95 && LA41_0<=104)||LA41_0==106) ) {
-                alt41=2;
+            else if ( ((LA44_0>=RULE_ID && LA44_0<=RULE_DECIMAL)||LA44_0==14||(LA44_0>=40 && LA44_0<=42)||LA44_0==47||(LA44_0>=51 && LA44_0<=52)||LA44_0==59||(LA44_0>=75 && LA44_0<=76)||LA44_0==80||LA44_0==87||LA44_0==89||(LA44_0>=93 && LA44_0<=95)||(LA44_0>=98 && LA44_0<=107)||LA44_0==109) ) {
+                alt44=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 41, 0, input);
+                    new NoViableAltException("", 44, 0, input);
 
                 throw nvae;
             }
-            switch (alt41) {
+            switch (alt44) {
                 case 1 :
-                    // InternalCubeDSL.g:2082:3: this_XAnnotation_0= ruleXAnnotation
+                    // InternalCubeDSL.g:2180:3: this_XAnnotation_0= ruleXAnnotation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5605,7 +5842,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2091:3: this_XExpression_1= ruleXExpression
+                    // InternalCubeDSL.g:2189:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5651,7 +5888,7 @@
 
 
     // $ANTLR start "entryRuleXExpression"
-    // InternalCubeDSL.g:2103:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    // InternalCubeDSL.g:2201:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
     public final EObject entryRuleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -5659,8 +5896,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2103:52: (iv_ruleXExpression= ruleXExpression EOF )
-            // InternalCubeDSL.g:2104:2: iv_ruleXExpression= ruleXExpression EOF
+            // InternalCubeDSL.g:2201:52: (iv_ruleXExpression= ruleXExpression EOF )
+            // InternalCubeDSL.g:2202:2: iv_ruleXExpression= ruleXExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionRule()); 
@@ -5691,7 +5928,7 @@
 
 
     // $ANTLR start "ruleXExpression"
-    // InternalCubeDSL.g:2110:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    // InternalCubeDSL.g:2208:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
     public final EObject ruleXExpression() throws RecognitionException {
         EObject current = null;
 
@@ -5702,8 +5939,8 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2116:2: (this_XAssignment_0= ruleXAssignment )
-            // InternalCubeDSL.g:2117:2: this_XAssignment_0= ruleXAssignment
+            // InternalCubeDSL.g:2214:2: (this_XAssignment_0= ruleXAssignment )
+            // InternalCubeDSL.g:2215:2: this_XAssignment_0= ruleXAssignment
             {
             if ( state.backtracking==0 ) {
 
@@ -5743,7 +5980,7 @@
 
 
     // $ANTLR start "entryRuleXAssignment"
-    // InternalCubeDSL.g:2128:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    // InternalCubeDSL.g:2226:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
     public final EObject entryRuleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -5751,8 +5988,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2128:52: (iv_ruleXAssignment= ruleXAssignment EOF )
-            // InternalCubeDSL.g:2129:2: iv_ruleXAssignment= ruleXAssignment EOF
+            // InternalCubeDSL.g:2226:52: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // InternalCubeDSL.g:2227:2: iv_ruleXAssignment= ruleXAssignment EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAssignmentRule()); 
@@ -5783,7 +6020,7 @@
 
 
     // $ANTLR start "ruleXAssignment"
-    // InternalCubeDSL.g:2135:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+    // InternalCubeDSL.g:2233:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
     public final EObject ruleXAssignment() throws RecognitionException {
         EObject current = null;
 
@@ -5798,102 +6035,102 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2141:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
-            // InternalCubeDSL.g:2142:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            // InternalCubeDSL.g:2239:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // InternalCubeDSL.g:2240:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
             {
-            // InternalCubeDSL.g:2142:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
-            int alt43=2;
+            // InternalCubeDSL.g:2240:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            int alt46=2;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA43_1 = input.LA(2);
+                int LA46_1 = input.LA(2);
 
-                if ( (LA43_1==47) ) {
-                    alt43=1;
+                if ( (LA46_1==EOF||(LA46_1>=RULE_ID && LA46_1<=RULE_DECIMAL)||(LA46_1>=14 && LA46_1<=15)||(LA46_1>=39 && LA46_1<=43)||LA46_1==45||(LA46_1>=47 && LA46_1<=49)||(LA46_1>=51 && LA46_1<=85)||(LA46_1>=87 && LA46_1<=110)) ) {
+                    alt46=2;
                 }
-                else if ( (LA43_1==EOF||(LA43_1>=RULE_ID && LA43_1<=RULE_DECIMAL)||(LA43_1>=14 && LA43_1<=15)||(LA43_1>=36 && LA43_1<=40)||LA43_1==42||(LA43_1>=44 && LA43_1<=46)||(LA43_1>=48 && LA43_1<=82)||(LA43_1>=84 && LA43_1<=107)) ) {
-                    alt43=2;
+                else if ( (LA46_1==50) ) {
+                    alt46=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 43, 1, input);
+                        new NoViableAltException("", 46, 1, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 95:
+            case 98:
                 {
-                int LA43_2 = input.LA(2);
+                int LA46_2 = input.LA(2);
 
-                if ( (LA43_2==EOF||(LA43_2>=RULE_ID && LA43_2<=RULE_DECIMAL)||(LA43_2>=14 && LA43_2<=15)||(LA43_2>=36 && LA43_2<=40)||LA43_2==42||(LA43_2>=44 && LA43_2<=46)||(LA43_2>=48 && LA43_2<=82)||(LA43_2>=84 && LA43_2<=107)) ) {
-                    alt43=2;
+                if ( (LA46_2==50) ) {
+                    alt46=1;
                 }
-                else if ( (LA43_2==47) ) {
-                    alt43=1;
+                else if ( (LA46_2==EOF||(LA46_2>=RULE_ID && LA46_2<=RULE_DECIMAL)||(LA46_2>=14 && LA46_2<=15)||(LA46_2>=39 && LA46_2<=43)||LA46_2==45||(LA46_2>=47 && LA46_2<=49)||(LA46_2>=51 && LA46_2<=85)||(LA46_2>=87 && LA46_2<=110)) ) {
+                    alt46=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 43, 2, input);
+                        new NoViableAltException("", 46, 2, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 38:
+            case 41:
                 {
-                int LA43_3 = input.LA(2);
+                int LA46_3 = input.LA(2);
 
-                if ( (LA43_3==47) ) {
-                    alt43=1;
+                if ( (LA46_3==50) ) {
+                    alt46=1;
                 }
-                else if ( (LA43_3==EOF||(LA43_3>=RULE_ID && LA43_3<=RULE_DECIMAL)||(LA43_3>=14 && LA43_3<=15)||(LA43_3>=36 && LA43_3<=40)||LA43_3==42||(LA43_3>=44 && LA43_3<=46)||(LA43_3>=48 && LA43_3<=82)||(LA43_3>=84 && LA43_3<=107)) ) {
-                    alt43=2;
+                else if ( (LA46_3==EOF||(LA46_3>=RULE_ID && LA46_3<=RULE_DECIMAL)||(LA46_3>=14 && LA46_3<=15)||(LA46_3>=39 && LA46_3<=43)||LA46_3==45||(LA46_3>=47 && LA46_3<=49)||(LA46_3>=51 && LA46_3<=85)||(LA46_3>=87 && LA46_3<=110)) ) {
+                    alt46=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 43, 3, input);
+                        new NoViableAltException("", 46, 3, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 37:
+            case 40:
                 {
-                int LA43_4 = input.LA(2);
+                int LA46_4 = input.LA(2);
 
-                if ( (LA43_4==47) ) {
-                    alt43=1;
+                if ( (LA46_4==50) ) {
+                    alt46=1;
                 }
-                else if ( (LA43_4==EOF||(LA43_4>=RULE_ID && LA43_4<=RULE_DECIMAL)||(LA43_4>=14 && LA43_4<=15)||(LA43_4>=36 && LA43_4<=40)||LA43_4==42||(LA43_4>=44 && LA43_4<=46)||(LA43_4>=48 && LA43_4<=82)||(LA43_4>=84 && LA43_4<=107)) ) {
-                    alt43=2;
+                else if ( (LA46_4==EOF||(LA46_4>=RULE_ID && LA46_4<=RULE_DECIMAL)||(LA46_4>=14 && LA46_4<=15)||(LA46_4>=39 && LA46_4<=43)||LA46_4==45||(LA46_4>=47 && LA46_4<=49)||(LA46_4>=51 && LA46_4<=85)||(LA46_4>=87 && LA46_4<=110)) ) {
+                    alt46=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 43, 4, input);
+                        new NoViableAltException("", 46, 4, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 39:
+            case 42:
                 {
-                int LA43_5 = input.LA(2);
+                int LA46_5 = input.LA(2);
 
-                if ( (LA43_5==EOF||(LA43_5>=RULE_ID && LA43_5<=RULE_DECIMAL)||(LA43_5>=14 && LA43_5<=15)||(LA43_5>=36 && LA43_5<=40)||LA43_5==42||(LA43_5>=44 && LA43_5<=46)||(LA43_5>=48 && LA43_5<=82)||(LA43_5>=84 && LA43_5<=107)) ) {
-                    alt43=2;
+                if ( (LA46_5==EOF||(LA46_5>=RULE_ID && LA46_5<=RULE_DECIMAL)||(LA46_5>=14 && LA46_5<=15)||(LA46_5>=39 && LA46_5<=43)||LA46_5==45||(LA46_5>=47 && LA46_5<=49)||(LA46_5>=51 && LA46_5<=85)||(LA46_5>=87 && LA46_5<=110)) ) {
+                    alt46=2;
                 }
-                else if ( (LA43_5==47) ) {
-                    alt43=1;
+                else if ( (LA46_5==50) ) {
+                    alt46=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 43, 5, input);
+                        new NoViableAltException("", 46, 5, input);
 
                     throw nvae;
                 }
@@ -5904,49 +6141,49 @@
             case RULE_INT:
             case RULE_DECIMAL:
             case 14:
-            case 44:
-            case 48:
-            case 49:
-            case 56:
-            case 72:
-            case 73:
-            case 77:
-            case 84:
-            case 86:
-            case 90:
-            case 91:
-            case 92:
-            case 96:
-            case 97:
-            case 98:
+            case 47:
+            case 51:
+            case 52:
+            case 59:
+            case 75:
+            case 76:
+            case 80:
+            case 87:
+            case 89:
+            case 93:
+            case 94:
+            case 95:
             case 99:
             case 100:
             case 101:
             case 102:
             case 103:
             case 104:
+            case 105:
             case 106:
+            case 107:
+            case 109:
                 {
-                alt43=2;
+                alt46=2;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 43, 0, input);
+                    new NoViableAltException("", 46, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt43) {
+            switch (alt46) {
                 case 1 :
-                    // InternalCubeDSL.g:2143:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalCubeDSL.g:2241:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
                     {
-                    // InternalCubeDSL.g:2143:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
-                    // InternalCubeDSL.g:2144:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalCubeDSL.g:2241:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalCubeDSL.g:2242:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
                     {
-                    // InternalCubeDSL.g:2144:4: ()
-                    // InternalCubeDSL.g:2145:5: 
+                    // InternalCubeDSL.g:2242:4: ()
+                    // InternalCubeDSL.g:2243:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5958,11 +6195,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:2151:4: ( ( ruleFeatureCallID ) )
-                    // InternalCubeDSL.g:2152:5: ( ruleFeatureCallID )
+                    // InternalCubeDSL.g:2249:4: ( ( ruleFeatureCallID ) )
+                    // InternalCubeDSL.g:2250:5: ( ruleFeatureCallID )
                     {
-                    // InternalCubeDSL.g:2152:5: ( ruleFeatureCallID )
-                    // InternalCubeDSL.g:2153:6: ruleFeatureCallID
+                    // InternalCubeDSL.g:2250:5: ( ruleFeatureCallID )
+                    // InternalCubeDSL.g:2251:6: ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5976,7 +6213,7 @@
                       						newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_42);
+                    pushFollow(FOLLOW_45);
                     ruleFeatureCallID();
 
                     state._fsp--;
@@ -5997,7 +6234,7 @@
                       				newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
                       			
                     }
-                    pushFollow(FOLLOW_43);
+                    pushFollow(FOLLOW_46);
                     ruleOpSingleAssign();
 
                     state._fsp--;
@@ -6007,11 +6244,11 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalCubeDSL.g:2174:4: ( (lv_value_3_0= ruleXAssignment ) )
-                    // InternalCubeDSL.g:2175:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalCubeDSL.g:2272:4: ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalCubeDSL.g:2273:5: (lv_value_3_0= ruleXAssignment )
                     {
-                    // InternalCubeDSL.g:2175:5: (lv_value_3_0= ruleXAssignment )
-                    // InternalCubeDSL.g:2176:6: lv_value_3_0= ruleXAssignment
+                    // InternalCubeDSL.g:2273:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalCubeDSL.g:2274:6: lv_value_3_0= ruleXAssignment
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6049,17 +6286,17 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2195:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalCubeDSL.g:2293:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
                     {
-                    // InternalCubeDSL.g:2195:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
-                    // InternalCubeDSL.g:2196:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    // InternalCubeDSL.g:2293:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalCubeDSL.g:2294:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
                       			
                     }
-                    pushFollow(FOLLOW_48);
+                    pushFollow(FOLLOW_51);
                     this_XOrExpression_4=ruleXOrExpression();
 
                     state._fsp--;
@@ -6070,21 +6307,21 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalCubeDSL.g:2204:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
-                    int alt42=2;
-                    alt42 = dfa42.predict(input);
-                    switch (alt42) {
+                    // InternalCubeDSL.g:2302:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    int alt45=2;
+                    alt45 = dfa45.predict(input);
+                    switch (alt45) {
                         case 1 :
-                            // InternalCubeDSL.g:2205:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalCubeDSL.g:2303:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
                             {
-                            // InternalCubeDSL.g:2205:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
-                            // InternalCubeDSL.g:2206:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalCubeDSL.g:2303:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // InternalCubeDSL.g:2304:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
                             {
-                            // InternalCubeDSL.g:2216:6: ( () ( ( ruleOpMultiAssign ) ) )
-                            // InternalCubeDSL.g:2217:7: () ( ( ruleOpMultiAssign ) )
+                            // InternalCubeDSL.g:2314:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalCubeDSL.g:2315:7: () ( ( ruleOpMultiAssign ) )
                             {
-                            // InternalCubeDSL.g:2217:7: ()
-                            // InternalCubeDSL.g:2218:8: 
+                            // InternalCubeDSL.g:2315:7: ()
+                            // InternalCubeDSL.g:2316:8: 
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6096,11 +6333,11 @@
 
                             }
 
-                            // InternalCubeDSL.g:2224:7: ( ( ruleOpMultiAssign ) )
-                            // InternalCubeDSL.g:2225:8: ( ruleOpMultiAssign )
+                            // InternalCubeDSL.g:2322:7: ( ( ruleOpMultiAssign ) )
+                            // InternalCubeDSL.g:2323:8: ( ruleOpMultiAssign )
                             {
-                            // InternalCubeDSL.g:2225:8: ( ruleOpMultiAssign )
-                            // InternalCubeDSL.g:2226:9: ruleOpMultiAssign
+                            // InternalCubeDSL.g:2323:8: ( ruleOpMultiAssign )
+                            // InternalCubeDSL.g:2324:9: ruleOpMultiAssign
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6114,7 +6351,7 @@
                               									newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
                               								
                             }
-                            pushFollow(FOLLOW_43);
+                            pushFollow(FOLLOW_46);
                             ruleOpMultiAssign();
 
                             state._fsp--;
@@ -6136,11 +6373,11 @@
 
                             }
 
-                            // InternalCubeDSL.g:2242:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
-                            // InternalCubeDSL.g:2243:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalCubeDSL.g:2340:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalCubeDSL.g:2341:6: (lv_rightOperand_7_0= ruleXAssignment )
                             {
-                            // InternalCubeDSL.g:2243:6: (lv_rightOperand_7_0= ruleXAssignment )
-                            // InternalCubeDSL.g:2244:7: lv_rightOperand_7_0= ruleXAssignment
+                            // InternalCubeDSL.g:2341:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalCubeDSL.g:2342:7: lv_rightOperand_7_0= ruleXAssignment
                             {
                             if ( state.backtracking==0 ) {
 
@@ -6208,7 +6445,7 @@
 
 
     // $ANTLR start "entryRuleOpSingleAssign"
-    // InternalCubeDSL.g:2267:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    // InternalCubeDSL.g:2365:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
     public final String entryRuleOpSingleAssign() throws RecognitionException {
         String current = null;
 
@@ -6216,8 +6453,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2267:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
-            // InternalCubeDSL.g:2268:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            // InternalCubeDSL.g:2365:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // InternalCubeDSL.g:2366:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
@@ -6248,7 +6485,7 @@
 
 
     // $ANTLR start "ruleOpSingleAssign"
-    // InternalCubeDSL.g:2274:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    // InternalCubeDSL.g:2372:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
     public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6258,10 +6495,10 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2280:2: (kw= '=' )
-            // InternalCubeDSL.g:2281:2: kw= '='
+            // InternalCubeDSL.g:2378:2: (kw= '=' )
+            // InternalCubeDSL.g:2379:2: kw= '='
             {
-            kw=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -6290,7 +6527,7 @@
 
 
     // $ANTLR start "entryRuleOpMultiAssign"
-    // InternalCubeDSL.g:2289:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    // InternalCubeDSL.g:2387:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
     public final String entryRuleOpMultiAssign() throws RecognitionException {
         String current = null;
 
@@ -6298,8 +6535,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2289:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
-            // InternalCubeDSL.g:2290:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            // InternalCubeDSL.g:2387:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // InternalCubeDSL.g:2388:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
@@ -6330,7 +6567,7 @@
 
 
     // $ANTLR start "ruleOpMultiAssign"
-    // InternalCubeDSL.g:2296:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    // InternalCubeDSL.g:2394:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
     public final AntlrDatatypeRuleToken ruleOpMultiAssign() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6340,60 +6577,60 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2302:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
-            // InternalCubeDSL.g:2303:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            // InternalCubeDSL.g:2400:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // InternalCubeDSL.g:2401:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
             {
-            // InternalCubeDSL.g:2303:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
-            int alt45=7;
+            // InternalCubeDSL.g:2401:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            int alt48=7;
             switch ( input.LA(1) ) {
-            case 51:
-                {
-                alt45=1;
-                }
-                break;
-            case 52:
-                {
-                alt45=2;
-                }
-                break;
-            case 53:
-                {
-                alt45=3;
-                }
-                break;
             case 54:
                 {
-                alt45=4;
+                alt48=1;
                 }
                 break;
             case 55:
                 {
-                alt45=5;
+                alt48=2;
                 }
                 break;
             case 56:
                 {
-                alt45=6;
+                alt48=3;
                 }
                 break;
             case 57:
                 {
-                alt45=7;
+                alt48=4;
+                }
+                break;
+            case 58:
+                {
+                alt48=5;
+                }
+                break;
+            case 59:
+                {
+                alt48=6;
+                }
+                break;
+            case 60:
+                {
+                alt48=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 48, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt45) {
+            switch (alt48) {
                 case 1 :
-                    // InternalCubeDSL.g:2304:3: kw= '+='
+                    // InternalCubeDSL.g:2402:3: kw= '+='
                     {
-                    kw=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6404,9 +6641,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2310:3: kw= '-='
+                    // InternalCubeDSL.g:2408:3: kw= '-='
                     {
-                    kw=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6417,9 +6654,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:2316:3: kw= '*='
+                    // InternalCubeDSL.g:2414:3: kw= '*='
                     {
-                    kw=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6430,9 +6667,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:2322:3: kw= '/='
+                    // InternalCubeDSL.g:2420:3: kw= '/='
                     {
-                    kw=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6443,9 +6680,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:2328:3: kw= '%='
+                    // InternalCubeDSL.g:2426:3: kw= '%='
                     {
-                    kw=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -6456,26 +6693,26 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:2334:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalCubeDSL.g:2432:3: (kw= '<' kw= '<' kw= '=' )
                     {
-                    // InternalCubeDSL.g:2334:3: (kw= '<' kw= '<' kw= '=' )
-                    // InternalCubeDSL.g:2335:4: kw= '<' kw= '<' kw= '='
+                    // InternalCubeDSL.g:2432:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalCubeDSL.g:2433:4: kw= '<' kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,56,FOLLOW_49); if (state.failed) return current;
+                    kw=(Token)match(input,59,FOLLOW_52); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0());
                       			
                     }
-                    kw=(Token)match(input,56,FOLLOW_42); if (state.failed) return current;
+                    kw=(Token)match(input,59,FOLLOW_45); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1());
                       			
                     }
-                    kw=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -6489,30 +6726,30 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:2352:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalCubeDSL.g:2450:3: (kw= '>' (kw= '>' )? kw= '>=' )
                     {
-                    // InternalCubeDSL.g:2352:3: (kw= '>' (kw= '>' )? kw= '>=' )
-                    // InternalCubeDSL.g:2353:4: kw= '>' (kw= '>' )? kw= '>='
+                    // InternalCubeDSL.g:2450:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalCubeDSL.g:2451:4: kw= '>' (kw= '>' )? kw= '>='
                     {
-                    kw=(Token)match(input,57,FOLLOW_50); if (state.failed) return current;
+                    kw=(Token)match(input,60,FOLLOW_53); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0());
                       			
                     }
-                    // InternalCubeDSL.g:2358:4: (kw= '>' )?
-                    int alt44=2;
-                    int LA44_0 = input.LA(1);
+                    // InternalCubeDSL.g:2456:4: (kw= '>' )?
+                    int alt47=2;
+                    int LA47_0 = input.LA(1);
 
-                    if ( (LA44_0==57) ) {
-                        alt44=1;
+                    if ( (LA47_0==60) ) {
+                        alt47=1;
                     }
-                    switch (alt44) {
+                    switch (alt47) {
                         case 1 :
-                            // InternalCubeDSL.g:2359:5: kw= '>'
+                            // InternalCubeDSL.g:2457:5: kw= '>'
                             {
-                            kw=(Token)match(input,57,FOLLOW_51); if (state.failed) return current;
+                            kw=(Token)match(input,60,FOLLOW_54); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -6525,7 +6762,7 @@
 
                     }
 
-                    kw=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -6563,7 +6800,7 @@
 
 
     // $ANTLR start "entryRuleXOrExpression"
-    // InternalCubeDSL.g:2375:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    // InternalCubeDSL.g:2473:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
     public final EObject entryRuleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6571,8 +6808,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2375:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
-            // InternalCubeDSL.g:2376:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            // InternalCubeDSL.g:2473:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // InternalCubeDSL.g:2474:2: iv_ruleXOrExpression= ruleXOrExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOrExpressionRule()); 
@@ -6603,7 +6840,7 @@
 
 
     // $ANTLR start "ruleXOrExpression"
-    // InternalCubeDSL.g:2382:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    // InternalCubeDSL.g:2480:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
     public final EObject ruleXOrExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6616,18 +6853,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2388:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
-            // InternalCubeDSL.g:2389:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalCubeDSL.g:2486:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // InternalCubeDSL.g:2487:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
             {
-            // InternalCubeDSL.g:2389:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
-            // InternalCubeDSL.g:2390:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            // InternalCubeDSL.g:2487:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalCubeDSL.g:2488:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_52);
+            pushFollow(FOLLOW_55);
             this_XAndExpression_0=ruleXAndExpression();
 
             state._fsp--;
@@ -6638,35 +6875,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:2398:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
-            loop46:
+            // InternalCubeDSL.g:2496:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            loop49:
             do {
-                int alt46=2;
-                int LA46_0 = input.LA(1);
+                int alt49=2;
+                int LA49_0 = input.LA(1);
 
-                if ( (LA46_0==59) ) {
-                    int LA46_2 = input.LA(2);
+                if ( (LA49_0==62) ) {
+                    int LA49_2 = input.LA(2);
 
                     if ( (synpred8_InternalCubeDSL()) ) {
-                        alt46=1;
+                        alt49=1;
                     }
 
 
                 }
 
 
-                switch (alt46) {
+                switch (alt49) {
             	case 1 :
-            	    // InternalCubeDSL.g:2399:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalCubeDSL.g:2497:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
             	    {
-            	    // InternalCubeDSL.g:2399:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
-            	    // InternalCubeDSL.g:2400:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    // InternalCubeDSL.g:2497:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // InternalCubeDSL.g:2498:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
             	    {
-            	    // InternalCubeDSL.g:2410:5: ( () ( ( ruleOpOr ) ) )
-            	    // InternalCubeDSL.g:2411:6: () ( ( ruleOpOr ) )
+            	    // InternalCubeDSL.g:2508:5: ( () ( ( ruleOpOr ) ) )
+            	    // InternalCubeDSL.g:2509:6: () ( ( ruleOpOr ) )
             	    {
-            	    // InternalCubeDSL.g:2411:6: ()
-            	    // InternalCubeDSL.g:2412:7: 
+            	    // InternalCubeDSL.g:2509:6: ()
+            	    // InternalCubeDSL.g:2510:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6678,11 +6915,11 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:2418:6: ( ( ruleOpOr ) )
-            	    // InternalCubeDSL.g:2419:7: ( ruleOpOr )
+            	    // InternalCubeDSL.g:2516:6: ( ( ruleOpOr ) )
+            	    // InternalCubeDSL.g:2517:7: ( ruleOpOr )
             	    {
-            	    // InternalCubeDSL.g:2419:7: ( ruleOpOr )
-            	    // InternalCubeDSL.g:2420:8: ruleOpOr
+            	    // InternalCubeDSL.g:2517:7: ( ruleOpOr )
+            	    // InternalCubeDSL.g:2518:8: ruleOpOr
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6696,7 +6933,7 @@
             	      								newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_46);
             	    ruleOpOr();
 
             	    state._fsp--;
@@ -6718,18 +6955,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:2436:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
-            	    // InternalCubeDSL.g:2437:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalCubeDSL.g:2534:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalCubeDSL.g:2535:5: (lv_rightOperand_3_0= ruleXAndExpression )
             	    {
-            	    // InternalCubeDSL.g:2437:5: (lv_rightOperand_3_0= ruleXAndExpression )
-            	    // InternalCubeDSL.g:2438:6: lv_rightOperand_3_0= ruleXAndExpression
+            	    // InternalCubeDSL.g:2535:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalCubeDSL.g:2536:6: lv_rightOperand_3_0= ruleXAndExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_52);
+            	    pushFollow(FOLLOW_55);
             	    lv_rightOperand_3_0=ruleXAndExpression();
 
             	    state._fsp--;
@@ -6758,7 +6995,7 @@
             	    break;
 
             	default :
-            	    break loop46;
+            	    break loop49;
                 }
             } while (true);
 
@@ -6787,7 +7024,7 @@
 
 
     // $ANTLR start "entryRuleOpOr"
-    // InternalCubeDSL.g:2460:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    // InternalCubeDSL.g:2558:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
     public final String entryRuleOpOr() throws RecognitionException {
         String current = null;
 
@@ -6795,8 +7032,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2460:44: (iv_ruleOpOr= ruleOpOr EOF )
-            // InternalCubeDSL.g:2461:2: iv_ruleOpOr= ruleOpOr EOF
+            // InternalCubeDSL.g:2558:44: (iv_ruleOpOr= ruleOpOr EOF )
+            // InternalCubeDSL.g:2559:2: iv_ruleOpOr= ruleOpOr EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpOrRule()); 
@@ -6827,7 +7064,7 @@
 
 
     // $ANTLR start "ruleOpOr"
-    // InternalCubeDSL.g:2467:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    // InternalCubeDSL.g:2565:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
     public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6837,10 +7074,10 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2473:2: (kw= '||' )
-            // InternalCubeDSL.g:2474:2: kw= '||'
+            // InternalCubeDSL.g:2571:2: (kw= '||' )
+            // InternalCubeDSL.g:2572:2: kw= '||'
             {
-            kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               		current.merge(kw);
@@ -6869,7 +7106,7 @@
 
 
     // $ANTLR start "entryRuleXAndExpression"
-    // InternalCubeDSL.g:2482:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    // InternalCubeDSL.g:2580:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
     public final EObject entryRuleXAndExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6877,8 +7114,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2482:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
-            // InternalCubeDSL.g:2483:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+            // InternalCubeDSL.g:2580:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // InternalCubeDSL.g:2581:2: iv_ruleXAndExpression= ruleXAndExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAndExpressionRule()); 
@@ -6909,7 +7146,7 @@
 
 
     // $ANTLR start "ruleXAndExpression"
-    // InternalCubeDSL.g:2489:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
+    // InternalCubeDSL.g:2587:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
     public final EObject ruleXAndExpression() throws RecognitionException {
         EObject current = null;
 
@@ -6922,18 +7159,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2495:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
-            // InternalCubeDSL.g:2496:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalCubeDSL.g:2593:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // InternalCubeDSL.g:2594:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
             {
-            // InternalCubeDSL.g:2496:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
-            // InternalCubeDSL.g:2497:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            // InternalCubeDSL.g:2594:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalCubeDSL.g:2595:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_56);
             this_XEqualityExpression_0=ruleXEqualityExpression();
 
             state._fsp--;
@@ -6944,35 +7181,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:2505:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
-            loop47:
+            // InternalCubeDSL.g:2603:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            loop50:
             do {
-                int alt47=2;
-                int LA47_0 = input.LA(1);
+                int alt50=2;
+                int LA50_0 = input.LA(1);
 
-                if ( (LA47_0==60) ) {
-                    int LA47_2 = input.LA(2);
+                if ( (LA50_0==63) ) {
+                    int LA50_2 = input.LA(2);
 
                     if ( (synpred9_InternalCubeDSL()) ) {
-                        alt47=1;
+                        alt50=1;
                     }
 
 
                 }
 
 
-                switch (alt47) {
+                switch (alt50) {
             	case 1 :
-            	    // InternalCubeDSL.g:2506:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalCubeDSL.g:2604:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
             	    {
-            	    // InternalCubeDSL.g:2506:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
-            	    // InternalCubeDSL.g:2507:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+            	    // InternalCubeDSL.g:2604:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // InternalCubeDSL.g:2605:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
             	    {
-            	    // InternalCubeDSL.g:2517:5: ( () ( ( ruleOpAnd ) ) )
-            	    // InternalCubeDSL.g:2518:6: () ( ( ruleOpAnd ) )
+            	    // InternalCubeDSL.g:2615:5: ( () ( ( ruleOpAnd ) ) )
+            	    // InternalCubeDSL.g:2616:6: () ( ( ruleOpAnd ) )
             	    {
-            	    // InternalCubeDSL.g:2518:6: ()
-            	    // InternalCubeDSL.g:2519:7: 
+            	    // InternalCubeDSL.g:2616:6: ()
+            	    // InternalCubeDSL.g:2617:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6984,11 +7221,11 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:2525:6: ( ( ruleOpAnd ) )
-            	    // InternalCubeDSL.g:2526:7: ( ruleOpAnd )
+            	    // InternalCubeDSL.g:2623:6: ( ( ruleOpAnd ) )
+            	    // InternalCubeDSL.g:2624:7: ( ruleOpAnd )
             	    {
-            	    // InternalCubeDSL.g:2526:7: ( ruleOpAnd )
-            	    // InternalCubeDSL.g:2527:8: ruleOpAnd
+            	    // InternalCubeDSL.g:2624:7: ( ruleOpAnd )
+            	    // InternalCubeDSL.g:2625:8: ruleOpAnd
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -7002,7 +7239,7 @@
             	      								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_46);
             	    ruleOpAnd();
 
             	    state._fsp--;
@@ -7024,18 +7261,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:2543:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
-            	    // InternalCubeDSL.g:2544:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalCubeDSL.g:2641:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalCubeDSL.g:2642:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
             	    {
-            	    // InternalCubeDSL.g:2544:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
-            	    // InternalCubeDSL.g:2545:6: lv_rightOperand_3_0= ruleXEqualityExpression
+            	    // InternalCubeDSL.g:2642:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalCubeDSL.g:2643:6: lv_rightOperand_3_0= ruleXEqualityExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_53);
+            	    pushFollow(FOLLOW_56);
             	    lv_rightOperand_3_0=ruleXEqualityExpression();
 
             	    state._fsp--;
@@ -7064,855 +7301,6 @@
             	    break;
 
             	default :
-            	    break loop47;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXAndExpression"
-
-
-    // $ANTLR start "entryRuleOpAnd"
-    // InternalCubeDSL.g:2567:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
-    public final String entryRuleOpAnd() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
-
-
-        try {
-            // InternalCubeDSL.g:2567:45: (iv_ruleOpAnd= ruleOpAnd EOF )
-            // InternalCubeDSL.g:2568:2: iv_ruleOpAnd= ruleOpAnd EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpAndRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpAnd=ruleOpAnd();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpAnd.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpAnd"
-
-
-    // $ANTLR start "ruleOpAnd"
-    // InternalCubeDSL.g:2574:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
-    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalCubeDSL.g:2580:2: (kw= '&&' )
-            // InternalCubeDSL.g:2581:2: kw= '&&'
-            {
-            kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              		current.merge(kw);
-              		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
-              	
-            }
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpAnd"
-
-
-    // $ANTLR start "entryRuleXEqualityExpression"
-    // InternalCubeDSL.g:2589:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
-    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXEqualityExpression = null;
-
-
-        try {
-            // InternalCubeDSL.g:2589:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
-            // InternalCubeDSL.g:2590:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXEqualityExpression=ruleXEqualityExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXEqualityExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXEqualityExpression"
-
-
-    // $ANTLR start "ruleXEqualityExpression"
-    // InternalCubeDSL.g:2596:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
-    public final EObject ruleXEqualityExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject this_XRelationalExpression_0 = null;
-
-        EObject lv_rightOperand_3_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalCubeDSL.g:2602:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
-            // InternalCubeDSL.g:2603:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            {
-            // InternalCubeDSL.g:2603:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
-            // InternalCubeDSL.g:2604:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_54);
-            this_XRelationalExpression_0=ruleXRelationalExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XRelationalExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalCubeDSL.g:2612:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
-            loop48:
-            do {
-                int alt48=2;
-                switch ( input.LA(1) ) {
-                case 61:
-                    {
-                    int LA48_2 = input.LA(2);
-
-                    if ( (synpred10_InternalCubeDSL()) ) {
-                        alt48=1;
-                    }
-
-
-                    }
-                    break;
-                case 62:
-                    {
-                    int LA48_3 = input.LA(2);
-
-                    if ( (synpred10_InternalCubeDSL()) ) {
-                        alt48=1;
-                    }
-
-
-                    }
-                    break;
-                case 63:
-                    {
-                    int LA48_4 = input.LA(2);
-
-                    if ( (synpred10_InternalCubeDSL()) ) {
-                        alt48=1;
-                    }
-
-
-                    }
-                    break;
-                case 64:
-                    {
-                    int LA48_5 = input.LA(2);
-
-                    if ( (synpred10_InternalCubeDSL()) ) {
-                        alt48=1;
-                    }
-
-
-                    }
-                    break;
-
-                }
-
-                switch (alt48) {
-            	case 1 :
-            	    // InternalCubeDSL.g:2613:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    {
-            	    // InternalCubeDSL.g:2613:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
-            	    // InternalCubeDSL.g:2614:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
-            	    {
-            	    // InternalCubeDSL.g:2624:5: ( () ( ( ruleOpEquality ) ) )
-            	    // InternalCubeDSL.g:2625:6: () ( ( ruleOpEquality ) )
-            	    {
-            	    // InternalCubeDSL.g:2625:6: ()
-            	    // InternalCubeDSL.g:2626:7: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							current = forceCreateModelElementAndSet(
-            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            	      								current);
-            	      						
-            	    }
-
-            	    }
-
-            	    // InternalCubeDSL.g:2632:6: ( ( ruleOpEquality ) )
-            	    // InternalCubeDSL.g:2633:7: ( ruleOpEquality )
-            	    {
-            	    // InternalCubeDSL.g:2633:7: ( ruleOpEquality )
-            	    // InternalCubeDSL.g:2634:8: ruleOpEquality
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								if (current==null) {
-            	      									current = createModelElement(grammarAccess.getXEqualityExpressionRule());
-            	      								}
-            	      							
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
-            	      							
-            	    }
-            	    pushFollow(FOLLOW_43);
-            	    ruleOpEquality();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      								afterParserOrEnumRuleCall();
-            	      							
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalCubeDSL.g:2650:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
-            	    // InternalCubeDSL.g:2651:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    {
-            	    // InternalCubeDSL.g:2651:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
-            	    // InternalCubeDSL.g:2652:6: lv_rightOperand_3_0= ruleXRelationalExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
-            	      					
-            	    }
-            	    pushFollow(FOLLOW_54);
-            	    lv_rightOperand_3_0=ruleXRelationalExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      						if (current==null) {
-            	      							current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
-            	      						}
-            	      						set(
-            	      							current,
-            	      							"rightOperand",
-            	      							lv_rightOperand_3_0,
-            	      							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
-            	      						afterParserOrEnumRuleCall();
-            	      					
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop48;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleXEqualityExpression"
-
-
-    // $ANTLR start "entryRuleOpEquality"
-    // InternalCubeDSL.g:2674:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
-    public final String entryRuleOpEquality() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
-
-
-        try {
-            // InternalCubeDSL.g:2674:50: (iv_ruleOpEquality= ruleOpEquality EOF )
-            // InternalCubeDSL.g:2675:2: iv_ruleOpEquality= ruleOpEquality EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getOpEqualityRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleOpEquality=ruleOpEquality();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleOpEquality.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleOpEquality"
-
-
-    // $ANTLR start "ruleOpEquality"
-    // InternalCubeDSL.g:2681:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
-    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-
-
-        	enterRule();
-
-        try {
-            // InternalCubeDSL.g:2687:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
-            // InternalCubeDSL.g:2688:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
-            {
-            // InternalCubeDSL.g:2688:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
-            int alt49=4;
-            switch ( input.LA(1) ) {
-            case 61:
-                {
-                alt49=1;
-                }
-                break;
-            case 62:
-                {
-                alt49=2;
-                }
-                break;
-            case 63:
-                {
-                alt49=3;
-                }
-                break;
-            case 64:
-                {
-                alt49=4;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 49, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt49) {
-                case 1 :
-                    // InternalCubeDSL.g:2689:3: kw= '=='
-                    {
-                    kw=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
-                      		
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // InternalCubeDSL.g:2695:3: kw= '!='
-                    {
-                    kw=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
-                      		
-                    }
-
-                    }
-                    break;
-                case 3 :
-                    // InternalCubeDSL.g:2701:3: kw= '==='
-                    {
-                    kw=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
-                      		
-                    }
-
-                    }
-                    break;
-                case 4 :
-                    // InternalCubeDSL.g:2707:3: kw= '!=='
-                    {
-                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			current.merge(kw);
-                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
-                      		
-                    }
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleOpEquality"
-
-
-    // $ANTLR start "entryRuleXRelationalExpression"
-    // InternalCubeDSL.g:2716:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
-    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleXRelationalExpression = null;
-
-
-        try {
-            // InternalCubeDSL.g:2716:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
-            // InternalCubeDSL.g:2717:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleXRelationalExpression=ruleXRelationalExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleXRelationalExpression; 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleXRelationalExpression"
-
-
-    // $ANTLR start "ruleXRelationalExpression"
-    // InternalCubeDSL.g:2723:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
-    public final EObject ruleXRelationalExpression() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_2=null;
-        EObject this_XOtherOperatorExpression_0 = null;
-
-        EObject lv_type_3_0 = null;
-
-        EObject lv_rightOperand_6_0 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalCubeDSL.g:2729:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
-            // InternalCubeDSL.g:2730:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
-            {
-            // InternalCubeDSL.g:2730:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
-            // InternalCubeDSL.g:2731:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_55);
-            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current = this_XOtherOperatorExpression_0;
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalCubeDSL.g:2739:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
-            loop50:
-            do {
-                int alt50=3;
-                switch ( input.LA(1) ) {
-                case 56:
-                    {
-                    int LA50_2 = input.LA(2);
-
-                    if ( (synpred12_InternalCubeDSL()) ) {
-                        alt50=2;
-                    }
-
-
-                    }
-                    break;
-                case 57:
-                    {
-                    int LA50_3 = input.LA(2);
-
-                    if ( (synpred12_InternalCubeDSL()) ) {
-                        alt50=2;
-                    }
-
-
-                    }
-                    break;
-                case 65:
-                    {
-                    int LA50_4 = input.LA(2);
-
-                    if ( (synpred11_InternalCubeDSL()) ) {
-                        alt50=1;
-                    }
-
-
-                    }
-                    break;
-                case 58:
-                    {
-                    int LA50_5 = input.LA(2);
-
-                    if ( (synpred12_InternalCubeDSL()) ) {
-                        alt50=2;
-                    }
-
-
-                    }
-                    break;
-
-                }
-
-                switch (alt50) {
-            	case 1 :
-            	    // InternalCubeDSL.g:2740:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
-            	    {
-            	    // InternalCubeDSL.g:2740:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
-            	    // InternalCubeDSL.g:2741:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    {
-            	    // InternalCubeDSL.g:2741:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
-            	    // InternalCubeDSL.g:2742:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
-            	    {
-            	    // InternalCubeDSL.g:2748:6: ( () otherlv_2= 'instanceof' )
-            	    // InternalCubeDSL.g:2749:7: () otherlv_2= 'instanceof'
-            	    {
-            	    // InternalCubeDSL.g:2749:7: ()
-            	    // InternalCubeDSL.g:2750:8: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								current = forceCreateModelElementAndSet(
-            	      									grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
-            	      									current);
-            	      							
-            	    }
-
-            	    }
-
-            	    otherlv_2=(Token)match(input,65,FOLLOW_56); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
-            	      						
-            	    }
-
-            	    }
-
-
-            	    }
-
-            	    // InternalCubeDSL.g:2762:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalCubeDSL.g:2763:6: (lv_type_3_0= ruleJvmTypeReference )
-            	    {
-            	    // InternalCubeDSL.g:2763:6: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalCubeDSL.g:2764:7: lv_type_3_0= ruleJvmTypeReference
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
-            	      						
-            	    }
-            	    pushFollow(FOLLOW_55);
-            	    lv_type_3_0=ruleJvmTypeReference();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      							if (current==null) {
-            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
-            	      							}
-            	      							set(
-            	      								current,
-            	      								"type",
-            	      								lv_type_3_0,
-            	      								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
-            	      							afterParserOrEnumRuleCall();
-            	      						
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-            	case 2 :
-            	    // InternalCubeDSL.g:2783:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    {
-            	    // InternalCubeDSL.g:2783:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
-            	    // InternalCubeDSL.g:2784:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    {
-            	    // InternalCubeDSL.g:2784:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
-            	    // InternalCubeDSL.g:2785:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
-            	    {
-            	    // InternalCubeDSL.g:2795:6: ( () ( ( ruleOpCompare ) ) )
-            	    // InternalCubeDSL.g:2796:7: () ( ( ruleOpCompare ) )
-            	    {
-            	    // InternalCubeDSL.g:2796:7: ()
-            	    // InternalCubeDSL.g:2797:8: 
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      								current = forceCreateModelElementAndSet(
-            	      									grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
-            	      									current);
-            	      							
-            	    }
-
-            	    }
-
-            	    // InternalCubeDSL.g:2803:7: ( ( ruleOpCompare ) )
-            	    // InternalCubeDSL.g:2804:8: ( ruleOpCompare )
-            	    {
-            	    // InternalCubeDSL.g:2804:8: ( ruleOpCompare )
-            	    // InternalCubeDSL.g:2805:9: ruleOpCompare
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      									if (current==null) {
-            	      										current = createModelElement(grammarAccess.getXRelationalExpressionRule());
-            	      									}
-            	      								
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      									newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
-            	      								
-            	    }
-            	    pushFollow(FOLLOW_43);
-            	    ruleOpCompare();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      									afterParserOrEnumRuleCall();
-            	      								
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    // InternalCubeDSL.g:2821:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
-            	    // InternalCubeDSL.g:2822:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    {
-            	    // InternalCubeDSL.g:2822:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
-            	    // InternalCubeDSL.g:2823:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
-            	      						
-            	    }
-            	    pushFollow(FOLLOW_55);
-            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      							if (current==null) {
-            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
-            	      							}
-            	      							set(
-            	      								current,
-            	      								"rightOperand",
-            	      								lv_rightOperand_6_0,
-            	      								"org.eclipse.xtext.xbase.Xbase.XOtherOperatorExpression");
-            	      							afterParserOrEnumRuleCall();
-            	      						
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
             	    break loop50;
                 }
             } while (true);
@@ -7938,11 +7326,860 @@
         }
         return current;
     }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // InternalCubeDSL.g:2665:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    public final String entryRuleOpAnd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+
+
+        try {
+            // InternalCubeDSL.g:2665:45: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // InternalCubeDSL.g:2666:2: iv_ruleOpAnd= ruleOpAnd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAndRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpAnd=ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAnd.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAnd"
+
+
+    // $ANTLR start "ruleOpAnd"
+    // InternalCubeDSL.g:2672:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalCubeDSL.g:2678:2: (kw= '&&' )
+            // InternalCubeDSL.g:2679:2: kw= '&&'
+            {
+            kw=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(kw);
+              		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // InternalCubeDSL.g:2687:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXEqualityExpression = null;
+
+
+        try {
+            // InternalCubeDSL.g:2687:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // InternalCubeDSL.g:2688:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXEqualityExpression=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXEqualityExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // InternalCubeDSL.g:2694:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
+    public final EObject ruleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XRelationalExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalCubeDSL.g:2700:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // InternalCubeDSL.g:2701:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            {
+            // InternalCubeDSL.g:2701:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalCubeDSL.g:2702:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_57);
+            this_XRelationalExpression_0=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XRelationalExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalCubeDSL.g:2710:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            loop51:
+            do {
+                int alt51=2;
+                switch ( input.LA(1) ) {
+                case 64:
+                    {
+                    int LA51_2 = input.LA(2);
+
+                    if ( (synpred10_InternalCubeDSL()) ) {
+                        alt51=1;
+                    }
+
+
+                    }
+                    break;
+                case 65:
+                    {
+                    int LA51_3 = input.LA(2);
+
+                    if ( (synpred10_InternalCubeDSL()) ) {
+                        alt51=1;
+                    }
+
+
+                    }
+                    break;
+                case 66:
+                    {
+                    int LA51_4 = input.LA(2);
+
+                    if ( (synpred10_InternalCubeDSL()) ) {
+                        alt51=1;
+                    }
+
+
+                    }
+                    break;
+                case 67:
+                    {
+                    int LA51_5 = input.LA(2);
+
+                    if ( (synpred10_InternalCubeDSL()) ) {
+                        alt51=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt51) {
+            	case 1 :
+            	    // InternalCubeDSL.g:2711:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    {
+            	    // InternalCubeDSL.g:2711:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // InternalCubeDSL.g:2712:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    {
+            	    // InternalCubeDSL.g:2722:5: ( () ( ( ruleOpEquality ) ) )
+            	    // InternalCubeDSL.g:2723:6: () ( ( ruleOpEquality ) )
+            	    {
+            	    // InternalCubeDSL.g:2723:6: ()
+            	    // InternalCubeDSL.g:2724:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalCubeDSL.g:2730:6: ( ( ruleOpEquality ) )
+            	    // InternalCubeDSL.g:2731:7: ( ruleOpEquality )
+            	    {
+            	    // InternalCubeDSL.g:2731:7: ( ruleOpEquality )
+            	    // InternalCubeDSL.g:2732:8: ruleOpEquality
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_46);
+            	    ruleOpEquality();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalCubeDSL.g:2748:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalCubeDSL.g:2749:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    {
+            	    // InternalCubeDSL.g:2749:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalCubeDSL.g:2750:6: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_57);
+            	    lv_rightOperand_3_0=ruleXRelationalExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop51;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXEqualityExpression"
+
+
+    // $ANTLR start "entryRuleOpEquality"
+    // InternalCubeDSL.g:2772:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    public final String entryRuleOpEquality() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
+
+
+        try {
+            // InternalCubeDSL.g:2772:50: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // InternalCubeDSL.g:2773:2: iv_ruleOpEquality= ruleOpEquality EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpEqualityRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpEquality=ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpEquality.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpEquality"
+
+
+    // $ANTLR start "ruleOpEquality"
+    // InternalCubeDSL.g:2779:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalCubeDSL.g:2785:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // InternalCubeDSL.g:2786:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            {
+            // InternalCubeDSL.g:2786:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            int alt52=4;
+            switch ( input.LA(1) ) {
+            case 64:
+                {
+                alt52=1;
+                }
+                break;
+            case 65:
+                {
+                alt52=2;
+                }
+                break;
+            case 66:
+                {
+                alt52=3;
+                }
+                break;
+            case 67:
+                {
+                alt52=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 52, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt52) {
+                case 1 :
+                    // InternalCubeDSL.g:2787:3: kw= '=='
+                    {
+                    kw=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalCubeDSL.g:2793:3: kw= '!='
+                    {
+                    kw=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalCubeDSL.g:2799:3: kw= '==='
+                    {
+                    kw=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalCubeDSL.g:2805:3: kw= '!=='
+                    {
+                    kw=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpEquality"
+
+
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // InternalCubeDSL.g:2814:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXRelationalExpression = null;
+
+
+        try {
+            // InternalCubeDSL.g:2814:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // InternalCubeDSL.g:2815:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXRelationalExpression=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXRelationalExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXRelationalExpression"
+
+
+    // $ANTLR start "ruleXRelationalExpression"
+    // InternalCubeDSL.g:2821:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
+    public final EObject ruleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        EObject this_XOtherOperatorExpression_0 = null;
+
+        EObject lv_type_3_0 = null;
+
+        EObject lv_rightOperand_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalCubeDSL.g:2827:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // InternalCubeDSL.g:2828:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            {
+            // InternalCubeDSL.g:2828:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalCubeDSL.g:2829:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_58);
+            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XOtherOperatorExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalCubeDSL.g:2837:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            loop53:
+            do {
+                int alt53=3;
+                switch ( input.LA(1) ) {
+                case 59:
+                    {
+                    int LA53_2 = input.LA(2);
+
+                    if ( (synpred12_InternalCubeDSL()) ) {
+                        alt53=2;
+                    }
+
+
+                    }
+                    break;
+                case 60:
+                    {
+                    int LA53_3 = input.LA(2);
+
+                    if ( (synpred12_InternalCubeDSL()) ) {
+                        alt53=2;
+                    }
+
+
+                    }
+                    break;
+                case 68:
+                    {
+                    int LA53_4 = input.LA(2);
+
+                    if ( (synpred11_InternalCubeDSL()) ) {
+                        alt53=1;
+                    }
+
+
+                    }
+                    break;
+                case 61:
+                    {
+                    int LA53_5 = input.LA(2);
+
+                    if ( (synpred12_InternalCubeDSL()) ) {
+                        alt53=2;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt53) {
+            	case 1 :
+            	    // InternalCubeDSL.g:2838:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    {
+            	    // InternalCubeDSL.g:2838:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalCubeDSL.g:2839:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    {
+            	    // InternalCubeDSL.g:2839:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // InternalCubeDSL.g:2840:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    {
+            	    // InternalCubeDSL.g:2846:6: ( () otherlv_2= 'instanceof' )
+            	    // InternalCubeDSL.g:2847:7: () otherlv_2= 'instanceof'
+            	    {
+            	    // InternalCubeDSL.g:2847:7: ()
+            	    // InternalCubeDSL.g:2848:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    otherlv_2=(Token)match(input,68,FOLLOW_59); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalCubeDSL.g:2860:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalCubeDSL.g:2861:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    {
+            	    // InternalCubeDSL.g:2861:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalCubeDSL.g:2862:7: lv_type_3_0= ruleJvmTypeReference
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_58);
+            	    lv_type_3_0=ruleJvmTypeReference();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"type",
+            	      								lv_type_3_0,
+            	      								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // InternalCubeDSL.g:2881:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    {
+            	    // InternalCubeDSL.g:2881:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalCubeDSL.g:2882:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    {
+            	    // InternalCubeDSL.g:2882:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // InternalCubeDSL.g:2883:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    {
+            	    // InternalCubeDSL.g:2893:6: ( () ( ( ruleOpCompare ) ) )
+            	    // InternalCubeDSL.g:2894:7: () ( ( ruleOpCompare ) )
+            	    {
+            	    // InternalCubeDSL.g:2894:7: ()
+            	    // InternalCubeDSL.g:2895:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    // InternalCubeDSL.g:2901:7: ( ( ruleOpCompare ) )
+            	    // InternalCubeDSL.g:2902:8: ( ruleOpCompare )
+            	    {
+            	    // InternalCubeDSL.g:2902:8: ( ruleOpCompare )
+            	    // InternalCubeDSL.g:2903:9: ruleOpCompare
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      									if (current==null) {
+            	      										current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+            	      									}
+            	      								
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      									newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+            	      								
+            	    }
+            	    pushFollow(FOLLOW_46);
+            	    ruleOpCompare();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      									afterParserOrEnumRuleCall();
+            	      								
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalCubeDSL.g:2919:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalCubeDSL.g:2920:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    {
+            	    // InternalCubeDSL.g:2920:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalCubeDSL.g:2921:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_58);
+            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"rightOperand",
+            	      								lv_rightOperand_6_0,
+            	      								"org.eclipse.xtext.xbase.Xbase.XOtherOperatorExpression");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop53;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
     // $ANTLR end "ruleXRelationalExpression"
 
 
     // $ANTLR start "entryRuleOpCompare"
-    // InternalCubeDSL.g:2846:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    // InternalCubeDSL.g:2944:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
     public final String entryRuleOpCompare() throws RecognitionException {
         String current = null;
 
@@ -7950,8 +8187,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2846:49: (iv_ruleOpCompare= ruleOpCompare EOF )
-            // InternalCubeDSL.g:2847:2: iv_ruleOpCompare= ruleOpCompare EOF
+            // InternalCubeDSL.g:2944:49: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // InternalCubeDSL.g:2945:2: iv_ruleOpCompare= ruleOpCompare EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpCompareRule()); 
@@ -7982,7 +8219,7 @@
 
 
     // $ANTLR start "ruleOpCompare"
-    // InternalCubeDSL.g:2853:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    // InternalCubeDSL.g:2951:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
     public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -7992,54 +8229,54 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2859:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
-            // InternalCubeDSL.g:2860:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            // InternalCubeDSL.g:2957:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // InternalCubeDSL.g:2958:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
             {
-            // InternalCubeDSL.g:2860:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
-            int alt51=4;
+            // InternalCubeDSL.g:2958:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            int alt54=4;
             switch ( input.LA(1) ) {
-            case 58:
+            case 61:
                 {
-                alt51=1;
+                alt54=1;
                 }
                 break;
-            case 56:
+            case 59:
                 {
-                int LA51_2 = input.LA(2);
+                int LA54_2 = input.LA(2);
 
-                if ( (LA51_2==EOF||(LA51_2>=RULE_ID && LA51_2<=RULE_DECIMAL)||LA51_2==14||(LA51_2>=37 && LA51_2<=39)||LA51_2==44||(LA51_2>=48 && LA51_2<=49)||LA51_2==56||(LA51_2>=72 && LA51_2<=73)||LA51_2==77||LA51_2==84||LA51_2==86||(LA51_2>=90 && LA51_2<=92)||(LA51_2>=95 && LA51_2<=104)||LA51_2==106) ) {
-                    alt51=4;
+                if ( (LA54_2==EOF||(LA54_2>=RULE_ID && LA54_2<=RULE_DECIMAL)||LA54_2==14||(LA54_2>=40 && LA54_2<=42)||LA54_2==47||(LA54_2>=51 && LA54_2<=52)||LA54_2==59||(LA54_2>=75 && LA54_2<=76)||LA54_2==80||LA54_2==87||LA54_2==89||(LA54_2>=93 && LA54_2<=95)||(LA54_2>=98 && LA54_2<=107)||LA54_2==109) ) {
+                    alt54=4;
                 }
-                else if ( (LA51_2==47) ) {
-                    alt51=2;
+                else if ( (LA54_2==50) ) {
+                    alt54=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 51, 2, input);
+                        new NoViableAltException("", 54, 2, input);
 
                     throw nvae;
                 }
                 }
                 break;
-            case 57:
+            case 60:
                 {
-                alt51=3;
+                alt54=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 51, 0, input);
+                    new NoViableAltException("", 54, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt51) {
+            switch (alt54) {
                 case 1 :
-                    // InternalCubeDSL.g:2861:3: kw= '>='
+                    // InternalCubeDSL.g:2959:3: kw= '>='
                     {
-                    kw=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8050,19 +8287,19 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:2867:3: (kw= '<' kw= '=' )
+                    // InternalCubeDSL.g:2965:3: (kw= '<' kw= '=' )
                     {
-                    // InternalCubeDSL.g:2867:3: (kw= '<' kw= '=' )
-                    // InternalCubeDSL.g:2868:4: kw= '<' kw= '='
+                    // InternalCubeDSL.g:2965:3: (kw= '<' kw= '=' )
+                    // InternalCubeDSL.g:2966:4: kw= '<' kw= '='
                     {
-                    kw=(Token)match(input,56,FOLLOW_42); if (state.failed) return current;
+                    kw=(Token)match(input,59,FOLLOW_45); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    kw=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -8076,9 +8313,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:2880:3: kw= '>'
+                    // InternalCubeDSL.g:2978:3: kw= '>'
                     {
-                    kw=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8089,9 +8326,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:2886:3: kw= '<'
+                    // InternalCubeDSL.g:2984:3: kw= '<'
                     {
-                    kw=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8126,7 +8363,7 @@
 
 
     // $ANTLR start "entryRuleXOtherOperatorExpression"
-    // InternalCubeDSL.g:2895:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    // InternalCubeDSL.g:2993:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
     public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8134,8 +8371,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2895:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
-            // InternalCubeDSL.g:2896:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            // InternalCubeDSL.g:2993:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // InternalCubeDSL.g:2994:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
@@ -8166,7 +8403,7 @@
 
 
     // $ANTLR start "ruleXOtherOperatorExpression"
-    // InternalCubeDSL.g:2902:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+    // InternalCubeDSL.g:3000:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
     public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8179,18 +8416,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2908:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
-            // InternalCubeDSL.g:2909:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalCubeDSL.g:3006:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // InternalCubeDSL.g:3007:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
             {
-            // InternalCubeDSL.g:2909:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
-            // InternalCubeDSL.g:2910:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            // InternalCubeDSL.g:3007:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalCubeDSL.g:3008:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_60);
             this_XAdditiveExpression_0=ruleXAdditiveExpression();
 
             state._fsp--;
@@ -8201,23 +8438,23 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:2918:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
-            loop52:
+            // InternalCubeDSL.g:3016:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            loop55:
             do {
-                int alt52=2;
-                alt52 = dfa52.predict(input);
-                switch (alt52) {
+                int alt55=2;
+                alt55 = dfa55.predict(input);
+                switch (alt55) {
             	case 1 :
-            	    // InternalCubeDSL.g:2919:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalCubeDSL.g:3017:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
             	    {
-            	    // InternalCubeDSL.g:2919:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
-            	    // InternalCubeDSL.g:2920:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    // InternalCubeDSL.g:3017:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // InternalCubeDSL.g:3018:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
             	    {
-            	    // InternalCubeDSL.g:2930:5: ( () ( ( ruleOpOther ) ) )
-            	    // InternalCubeDSL.g:2931:6: () ( ( ruleOpOther ) )
+            	    // InternalCubeDSL.g:3028:5: ( () ( ( ruleOpOther ) ) )
+            	    // InternalCubeDSL.g:3029:6: () ( ( ruleOpOther ) )
             	    {
-            	    // InternalCubeDSL.g:2931:6: ()
-            	    // InternalCubeDSL.g:2932:7: 
+            	    // InternalCubeDSL.g:3029:6: ()
+            	    // InternalCubeDSL.g:3030:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8229,11 +8466,11 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:2938:6: ( ( ruleOpOther ) )
-            	    // InternalCubeDSL.g:2939:7: ( ruleOpOther )
+            	    // InternalCubeDSL.g:3036:6: ( ( ruleOpOther ) )
+            	    // InternalCubeDSL.g:3037:7: ( ruleOpOther )
             	    {
-            	    // InternalCubeDSL.g:2939:7: ( ruleOpOther )
-            	    // InternalCubeDSL.g:2940:8: ruleOpOther
+            	    // InternalCubeDSL.g:3037:7: ( ruleOpOther )
+            	    // InternalCubeDSL.g:3038:8: ruleOpOther
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8247,7 +8484,7 @@
             	      								newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_46);
             	    ruleOpOther();
 
             	    state._fsp--;
@@ -8269,18 +8506,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:2956:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
-            	    // InternalCubeDSL.g:2957:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalCubeDSL.g:3054:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalCubeDSL.g:3055:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
             	    {
-            	    // InternalCubeDSL.g:2957:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
-            	    // InternalCubeDSL.g:2958:6: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    // InternalCubeDSL.g:3055:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalCubeDSL.g:3056:6: lv_rightOperand_3_0= ruleXAdditiveExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_57);
+            	    pushFollow(FOLLOW_60);
             	    lv_rightOperand_3_0=ruleXAdditiveExpression();
 
             	    state._fsp--;
@@ -8309,7 +8546,7 @@
             	    break;
 
             	default :
-            	    break loop52;
+            	    break loop55;
                 }
             } while (true);
 
@@ -8338,7 +8575,7 @@
 
 
     // $ANTLR start "entryRuleOpOther"
-    // InternalCubeDSL.g:2980:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    // InternalCubeDSL.g:3078:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
     public final String entryRuleOpOther() throws RecognitionException {
         String current = null;
 
@@ -8346,8 +8583,8 @@
 
 
         try {
-            // InternalCubeDSL.g:2980:47: (iv_ruleOpOther= ruleOpOther EOF )
-            // InternalCubeDSL.g:2981:2: iv_ruleOpOther= ruleOpOther EOF
+            // InternalCubeDSL.g:3078:47: (iv_ruleOpOther= ruleOpOther EOF )
+            // InternalCubeDSL.g:3079:2: iv_ruleOpOther= ruleOpOther EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpOtherRule()); 
@@ -8378,7 +8615,7 @@
 
 
     // $ANTLR start "ruleOpOther"
-    // InternalCubeDSL.g:2987:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
+    // InternalCubeDSL.g:3085:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
     public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8388,17 +8625,17 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:2993:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
-            // InternalCubeDSL.g:2994:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            // InternalCubeDSL.g:3091:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // InternalCubeDSL.g:3092:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
             {
-            // InternalCubeDSL.g:2994:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
-            int alt55=9;
-            alt55 = dfa55.predict(input);
-            switch (alt55) {
+            // InternalCubeDSL.g:3092:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            int alt58=9;
+            alt58 = dfa58.predict(input);
+            switch (alt58) {
                 case 1 :
-                    // InternalCubeDSL.g:2995:3: kw= '->'
+                    // InternalCubeDSL.g:3093:3: kw= '->'
                     {
-                    kw=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8409,9 +8646,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3001:3: kw= '..<'
+                    // InternalCubeDSL.g:3099:3: kw= '..<'
                     {
-                    kw=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8422,19 +8659,19 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3007:3: (kw= '>' kw= '..' )
+                    // InternalCubeDSL.g:3105:3: (kw= '>' kw= '..' )
                     {
-                    // InternalCubeDSL.g:3007:3: (kw= '>' kw= '..' )
-                    // InternalCubeDSL.g:3008:4: kw= '>' kw= '..'
+                    // InternalCubeDSL.g:3105:3: (kw= '>' kw= '..' )
+                    // InternalCubeDSL.g:3106:4: kw= '>' kw= '..'
                     {
-                    kw=(Token)match(input,57,FOLLOW_58); if (state.failed) return current;
+                    kw=(Token)match(input,60,FOLLOW_61); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
                       			
                     }
-                    kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
@@ -8448,9 +8685,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3020:3: kw= '..'
+                    // InternalCubeDSL.g:3118:3: kw= '..'
                     {
-                    kw=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8461,9 +8698,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:3026:3: kw= '=>'
+                    // InternalCubeDSL.g:3124:3: kw= '=>'
                     {
-                    kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8474,35 +8711,35 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:3032:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalCubeDSL.g:3130:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
                     {
-                    // InternalCubeDSL.g:3032:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
-                    // InternalCubeDSL.g:3033:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    // InternalCubeDSL.g:3130:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalCubeDSL.g:3131:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
                     {
-                    kw=(Token)match(input,57,FOLLOW_59); if (state.failed) return current;
+                    kw=(Token)match(input,60,FOLLOW_62); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
                       			
                     }
-                    // InternalCubeDSL.g:3038:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
-                    int alt53=2;
-                    int LA53_0 = input.LA(1);
+                    // InternalCubeDSL.g:3136:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    int alt56=2;
+                    int LA56_0 = input.LA(1);
 
-                    if ( (LA53_0==57) ) {
-                        int LA53_1 = input.LA(2);
+                    if ( (LA56_0==60) ) {
+                        int LA56_1 = input.LA(2);
 
-                        if ( (LA53_1==57) && (synpred14_InternalCubeDSL())) {
-                            alt53=1;
+                        if ( (LA56_1==EOF||(LA56_1>=RULE_ID && LA56_1<=RULE_DECIMAL)||LA56_1==14||(LA56_1>=40 && LA56_1<=42)||LA56_1==47||(LA56_1>=51 && LA56_1<=52)||LA56_1==59||(LA56_1>=75 && LA56_1<=76)||LA56_1==80||LA56_1==87||LA56_1==89||(LA56_1>=93 && LA56_1<=95)||(LA56_1>=98 && LA56_1<=107)||LA56_1==109) ) {
+                            alt56=2;
                         }
-                        else if ( (LA53_1==EOF||(LA53_1>=RULE_ID && LA53_1<=RULE_DECIMAL)||LA53_1==14||(LA53_1>=37 && LA53_1<=39)||LA53_1==44||(LA53_1>=48 && LA53_1<=49)||LA53_1==56||(LA53_1>=72 && LA53_1<=73)||LA53_1==77||LA53_1==84||LA53_1==86||(LA53_1>=90 && LA53_1<=92)||(LA53_1>=95 && LA53_1<=104)||LA53_1==106) ) {
-                            alt53=2;
+                        else if ( (LA56_1==60) && (synpred14_InternalCubeDSL())) {
+                            alt56=1;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 53, 1, input);
+                                new NoViableAltException("", 56, 1, input);
 
                             throw nvae;
                         }
@@ -8510,28 +8747,28 @@
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 53, 0, input);
+                            new NoViableAltException("", 56, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt53) {
+                    switch (alt56) {
                         case 1 :
-                            // InternalCubeDSL.g:3039:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalCubeDSL.g:3137:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
                             {
-                            // InternalCubeDSL.g:3039:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
-                            // InternalCubeDSL.g:3040:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            // InternalCubeDSL.g:3137:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalCubeDSL.g:3138:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
                             {
-                            // InternalCubeDSL.g:3045:6: (kw= '>' kw= '>' )
-                            // InternalCubeDSL.g:3046:7: kw= '>' kw= '>'
+                            // InternalCubeDSL.g:3143:6: (kw= '>' kw= '>' )
+                            // InternalCubeDSL.g:3144:7: kw= '>' kw= '>'
                             {
-                            kw=(Token)match(input,57,FOLLOW_59); if (state.failed) return current;
+                            kw=(Token)match(input,60,FOLLOW_62); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
                               							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
                               						
                             }
-                            kw=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
@@ -8548,9 +8785,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:3059:5: kw= '>'
+                            // InternalCubeDSL.g:3157:5: kw= '>'
                             {
-                            kw=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -8570,67 +8807,67 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:3067:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalCubeDSL.g:3165:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
                     {
-                    // InternalCubeDSL.g:3067:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
-                    // InternalCubeDSL.g:3068:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    // InternalCubeDSL.g:3165:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalCubeDSL.g:3166:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
                     {
-                    kw=(Token)match(input,56,FOLLOW_60); if (state.failed) return current;
+                    kw=(Token)match(input,59,FOLLOW_63); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current.merge(kw);
                       				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
                       			
                     }
-                    // InternalCubeDSL.g:3073:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
-                    int alt54=3;
-                    int LA54_0 = input.LA(1);
+                    // InternalCubeDSL.g:3171:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    int alt57=3;
+                    int LA57_0 = input.LA(1);
 
-                    if ( (LA54_0==56) ) {
-                        int LA54_1 = input.LA(2);
+                    if ( (LA57_0==59) ) {
+                        int LA57_1 = input.LA(2);
 
                         if ( (synpred15_InternalCubeDSL()) ) {
-                            alt54=1;
+                            alt57=1;
                         }
                         else if ( (true) ) {
-                            alt54=2;
+                            alt57=2;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return current;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 54, 1, input);
+                                new NoViableAltException("", 57, 1, input);
 
                             throw nvae;
                         }
                     }
-                    else if ( (LA54_0==69) ) {
-                        alt54=3;
+                    else if ( (LA57_0==72) ) {
+                        alt57=3;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 54, 0, input);
+                            new NoViableAltException("", 57, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt54) {
+                    switch (alt57) {
                         case 1 :
-                            // InternalCubeDSL.g:3074:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalCubeDSL.g:3172:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
                             {
-                            // InternalCubeDSL.g:3074:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
-                            // InternalCubeDSL.g:3075:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+                            // InternalCubeDSL.g:3172:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalCubeDSL.g:3173:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
                             {
-                            // InternalCubeDSL.g:3080:6: (kw= '<' kw= '<' )
-                            // InternalCubeDSL.g:3081:7: kw= '<' kw= '<'
+                            // InternalCubeDSL.g:3178:6: (kw= '<' kw= '<' )
+                            // InternalCubeDSL.g:3179:7: kw= '<' kw= '<'
                             {
-                            kw=(Token)match(input,56,FOLLOW_49); if (state.failed) return current;
+                            kw=(Token)match(input,59,FOLLOW_52); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
                               							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
                               						
                             }
-                            kw=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							current.merge(kw);
@@ -8647,9 +8884,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:3094:5: kw= '<'
+                            // InternalCubeDSL.g:3192:5: kw= '<'
                             {
-                            kw=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -8660,9 +8897,9 @@
                             }
                             break;
                         case 3 :
-                            // InternalCubeDSL.g:3100:5: kw= '=>'
+                            // InternalCubeDSL.g:3198:5: kw= '=>'
                             {
-                            kw=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                            kw=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
@@ -8682,9 +8919,9 @@
                     }
                     break;
                 case 8 :
-                    // InternalCubeDSL.g:3108:3: kw= '<>'
+                    // InternalCubeDSL.g:3206:3: kw= '<>'
                     {
-                    kw=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8695,9 +8932,9 @@
                     }
                     break;
                 case 9 :
-                    // InternalCubeDSL.g:3114:3: kw= '?:'
+                    // InternalCubeDSL.g:3212:3: kw= '?:'
                     {
-                    kw=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -8732,7 +8969,7 @@
 
 
     // $ANTLR start "entryRuleXAdditiveExpression"
-    // InternalCubeDSL.g:3123:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+    // InternalCubeDSL.g:3221:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
     public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8740,8 +8977,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3123:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
-            // InternalCubeDSL.g:3124:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+            // InternalCubeDSL.g:3221:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+            // InternalCubeDSL.g:3222:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
@@ -8772,7 +9009,7 @@
 
 
     // $ANTLR start "ruleXAdditiveExpression"
-    // InternalCubeDSL.g:3130:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+    // InternalCubeDSL.g:3228:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
     public final EObject ruleXAdditiveExpression() throws RecognitionException {
         EObject current = null;
 
@@ -8785,18 +9022,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3136:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
-            // InternalCubeDSL.g:3137:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalCubeDSL.g:3234:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+            // InternalCubeDSL.g:3235:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
             {
-            // InternalCubeDSL.g:3137:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
-            // InternalCubeDSL.g:3138:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            // InternalCubeDSL.g:3235:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalCubeDSL.g:3236:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_61);
+            pushFollow(FOLLOW_64);
             this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression();
 
             state._fsp--;
@@ -8807,44 +9044,44 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:3146:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
-            loop56:
+            // InternalCubeDSL.g:3244:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            loop59:
             do {
-                int alt56=2;
-                int LA56_0 = input.LA(1);
+                int alt59=2;
+                int LA59_0 = input.LA(1);
 
-                if ( (LA56_0==72) ) {
-                    int LA56_2 = input.LA(2);
+                if ( (LA59_0==75) ) {
+                    int LA59_2 = input.LA(2);
 
                     if ( (synpred16_InternalCubeDSL()) ) {
-                        alt56=1;
+                        alt59=1;
                     }
 
 
                 }
-                else if ( (LA56_0==73) ) {
-                    int LA56_3 = input.LA(2);
+                else if ( (LA59_0==76) ) {
+                    int LA59_3 = input.LA(2);
 
                     if ( (synpred16_InternalCubeDSL()) ) {
-                        alt56=1;
+                        alt59=1;
                     }
 
 
                 }
 
 
-                switch (alt56) {
+                switch (alt59) {
             	case 1 :
-            	    // InternalCubeDSL.g:3147:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalCubeDSL.g:3245:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
             	    {
-            	    // InternalCubeDSL.g:3147:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
-            	    // InternalCubeDSL.g:3148:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+            	    // InternalCubeDSL.g:3245:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+            	    // InternalCubeDSL.g:3246:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
             	    {
-            	    // InternalCubeDSL.g:3158:5: ( () ( ( ruleOpAdd ) ) )
-            	    // InternalCubeDSL.g:3159:6: () ( ( ruleOpAdd ) )
+            	    // InternalCubeDSL.g:3256:5: ( () ( ( ruleOpAdd ) ) )
+            	    // InternalCubeDSL.g:3257:6: () ( ( ruleOpAdd ) )
             	    {
-            	    // InternalCubeDSL.g:3159:6: ()
-            	    // InternalCubeDSL.g:3160:7: 
+            	    // InternalCubeDSL.g:3257:6: ()
+            	    // InternalCubeDSL.g:3258:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8856,11 +9093,11 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3166:6: ( ( ruleOpAdd ) )
-            	    // InternalCubeDSL.g:3167:7: ( ruleOpAdd )
+            	    // InternalCubeDSL.g:3264:6: ( ( ruleOpAdd ) )
+            	    // InternalCubeDSL.g:3265:7: ( ruleOpAdd )
             	    {
-            	    // InternalCubeDSL.g:3167:7: ( ruleOpAdd )
-            	    // InternalCubeDSL.g:3168:8: ruleOpAdd
+            	    // InternalCubeDSL.g:3265:7: ( ruleOpAdd )
+            	    // InternalCubeDSL.g:3266:8: ruleOpAdd
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8874,7 +9111,7 @@
             	      								newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_46);
             	    ruleOpAdd();
 
             	    state._fsp--;
@@ -8896,18 +9133,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3184:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
-            	    // InternalCubeDSL.g:3185:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalCubeDSL.g:3282:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalCubeDSL.g:3283:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
             	    {
-            	    // InternalCubeDSL.g:3185:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
-            	    // InternalCubeDSL.g:3186:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+            	    // InternalCubeDSL.g:3283:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalCubeDSL.g:3284:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_61);
+            	    pushFollow(FOLLOW_64);
             	    lv_rightOperand_3_0=ruleXMultiplicativeExpression();
 
             	    state._fsp--;
@@ -8936,7 +9173,7 @@
             	    break;
 
             	default :
-            	    break loop56;
+            	    break loop59;
                 }
             } while (true);
 
@@ -8965,7 +9202,7 @@
 
 
     // $ANTLR start "entryRuleOpAdd"
-    // InternalCubeDSL.g:3208:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+    // InternalCubeDSL.g:3306:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
     public final String entryRuleOpAdd() throws RecognitionException {
         String current = null;
 
@@ -8973,8 +9210,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3208:45: (iv_ruleOpAdd= ruleOpAdd EOF )
-            // InternalCubeDSL.g:3209:2: iv_ruleOpAdd= ruleOpAdd EOF
+            // InternalCubeDSL.g:3306:45: (iv_ruleOpAdd= ruleOpAdd EOF )
+            // InternalCubeDSL.g:3307:2: iv_ruleOpAdd= ruleOpAdd EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpAddRule()); 
@@ -9005,7 +9242,7 @@
 
 
     // $ANTLR start "ruleOpAdd"
-    // InternalCubeDSL.g:3215:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+    // InternalCubeDSL.g:3313:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
     public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9015,31 +9252,31 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3221:2: ( (kw= '+' | kw= '-' ) )
-            // InternalCubeDSL.g:3222:2: (kw= '+' | kw= '-' )
+            // InternalCubeDSL.g:3319:2: ( (kw= '+' | kw= '-' ) )
+            // InternalCubeDSL.g:3320:2: (kw= '+' | kw= '-' )
             {
-            // InternalCubeDSL.g:3222:2: (kw= '+' | kw= '-' )
-            int alt57=2;
-            int LA57_0 = input.LA(1);
+            // InternalCubeDSL.g:3320:2: (kw= '+' | kw= '-' )
+            int alt60=2;
+            int LA60_0 = input.LA(1);
 
-            if ( (LA57_0==72) ) {
-                alt57=1;
+            if ( (LA60_0==75) ) {
+                alt60=1;
             }
-            else if ( (LA57_0==73) ) {
-                alt57=2;
+            else if ( (LA60_0==76) ) {
+                alt60=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 57, 0, input);
+                    new NoViableAltException("", 60, 0, input);
 
                 throw nvae;
             }
-            switch (alt57) {
+            switch (alt60) {
                 case 1 :
-                    // InternalCubeDSL.g:3223:3: kw= '+'
+                    // InternalCubeDSL.g:3321:3: kw= '+'
                     {
-                    kw=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9050,9 +9287,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3229:3: kw= '-'
+                    // InternalCubeDSL.g:3327:3: kw= '-'
                     {
-                    kw=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9087,7 +9324,7 @@
 
 
     // $ANTLR start "entryRuleXMultiplicativeExpression"
-    // InternalCubeDSL.g:3238:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+    // InternalCubeDSL.g:3336:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
     public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9095,8 +9332,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3238:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
-            // InternalCubeDSL.g:3239:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+            // InternalCubeDSL.g:3336:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+            // InternalCubeDSL.g:3337:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
@@ -9127,7 +9364,7 @@
 
 
     // $ANTLR start "ruleXMultiplicativeExpression"
-    // InternalCubeDSL.g:3245:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
+    // InternalCubeDSL.g:3343:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
     public final EObject ruleXMultiplicativeExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9140,18 +9377,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3251:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
-            // InternalCubeDSL.g:3252:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalCubeDSL.g:3349:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+            // InternalCubeDSL.g:3350:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
             {
-            // InternalCubeDSL.g:3252:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
-            // InternalCubeDSL.g:3253:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            // InternalCubeDSL.g:3350:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalCubeDSL.g:3351:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_62);
+            pushFollow(FOLLOW_65);
             this_XUnaryOperation_0=ruleXUnaryOperation();
 
             state._fsp--;
@@ -9162,50 +9399,50 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:3261:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
-            loop58:
+            // InternalCubeDSL.g:3359:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            loop61:
             do {
-                int alt58=2;
+                int alt61=2;
                 switch ( input.LA(1) ) {
-                case 40:
+                case 43:
                     {
-                    int LA58_2 = input.LA(2);
+                    int LA61_2 = input.LA(2);
 
                     if ( (synpred17_InternalCubeDSL()) ) {
-                        alt58=1;
+                        alt61=1;
                     }
 
 
                     }
                     break;
-                case 74:
+                case 77:
                     {
-                    int LA58_3 = input.LA(2);
+                    int LA61_3 = input.LA(2);
 
                     if ( (synpred17_InternalCubeDSL()) ) {
-                        alt58=1;
+                        alt61=1;
                     }
 
 
                     }
                     break;
-                case 75:
+                case 78:
                     {
-                    int LA58_4 = input.LA(2);
+                    int LA61_4 = input.LA(2);
 
                     if ( (synpred17_InternalCubeDSL()) ) {
-                        alt58=1;
+                        alt61=1;
                     }
 
 
                     }
                     break;
-                case 76:
+                case 79:
                     {
-                    int LA58_5 = input.LA(2);
+                    int LA61_5 = input.LA(2);
 
                     if ( (synpred17_InternalCubeDSL()) ) {
-                        alt58=1;
+                        alt61=1;
                     }
 
 
@@ -9214,18 +9451,18 @@
 
                 }
 
-                switch (alt58) {
+                switch (alt61) {
             	case 1 :
-            	    // InternalCubeDSL.g:3262:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalCubeDSL.g:3360:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
             	    {
-            	    // InternalCubeDSL.g:3262:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
-            	    // InternalCubeDSL.g:3263:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+            	    // InternalCubeDSL.g:3360:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+            	    // InternalCubeDSL.g:3361:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
             	    {
-            	    // InternalCubeDSL.g:3273:5: ( () ( ( ruleOpMulti ) ) )
-            	    // InternalCubeDSL.g:3274:6: () ( ( ruleOpMulti ) )
+            	    // InternalCubeDSL.g:3371:5: ( () ( ( ruleOpMulti ) ) )
+            	    // InternalCubeDSL.g:3372:6: () ( ( ruleOpMulti ) )
             	    {
-            	    // InternalCubeDSL.g:3274:6: ()
-            	    // InternalCubeDSL.g:3275:7: 
+            	    // InternalCubeDSL.g:3372:6: ()
+            	    // InternalCubeDSL.g:3373:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9237,11 +9474,11 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3281:6: ( ( ruleOpMulti ) )
-            	    // InternalCubeDSL.g:3282:7: ( ruleOpMulti )
+            	    // InternalCubeDSL.g:3379:6: ( ( ruleOpMulti ) )
+            	    // InternalCubeDSL.g:3380:7: ( ruleOpMulti )
             	    {
-            	    // InternalCubeDSL.g:3282:7: ( ruleOpMulti )
-            	    // InternalCubeDSL.g:3283:8: ruleOpMulti
+            	    // InternalCubeDSL.g:3380:7: ( ruleOpMulti )
+            	    // InternalCubeDSL.g:3381:8: ruleOpMulti
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9255,7 +9492,7 @@
             	      								newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
             	      							
             	    }
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_46);
             	    ruleOpMulti();
 
             	    state._fsp--;
@@ -9277,18 +9514,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3299:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
-            	    // InternalCubeDSL.g:3300:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalCubeDSL.g:3397:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalCubeDSL.g:3398:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
             	    {
-            	    // InternalCubeDSL.g:3300:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
-            	    // InternalCubeDSL.g:3301:6: lv_rightOperand_3_0= ruleXUnaryOperation
+            	    // InternalCubeDSL.g:3398:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalCubeDSL.g:3399:6: lv_rightOperand_3_0= ruleXUnaryOperation
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_62);
+            	    pushFollow(FOLLOW_65);
             	    lv_rightOperand_3_0=ruleXUnaryOperation();
 
             	    state._fsp--;
@@ -9317,7 +9554,7 @@
             	    break;
 
             	default :
-            	    break loop58;
+            	    break loop61;
                 }
             } while (true);
 
@@ -9346,7 +9583,7 @@
 
 
     // $ANTLR start "entryRuleOpMulti"
-    // InternalCubeDSL.g:3323:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+    // InternalCubeDSL.g:3421:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
     public final String entryRuleOpMulti() throws RecognitionException {
         String current = null;
 
@@ -9354,8 +9591,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3323:47: (iv_ruleOpMulti= ruleOpMulti EOF )
-            // InternalCubeDSL.g:3324:2: iv_ruleOpMulti= ruleOpMulti EOF
+            // InternalCubeDSL.g:3421:47: (iv_ruleOpMulti= ruleOpMulti EOF )
+            // InternalCubeDSL.g:3422:2: iv_ruleOpMulti= ruleOpMulti EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpMultiRule()); 
@@ -9386,7 +9623,7 @@
 
 
     // $ANTLR start "ruleOpMulti"
-    // InternalCubeDSL.g:3330:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+    // InternalCubeDSL.g:3428:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
     public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9396,45 +9633,45 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3336:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
-            // InternalCubeDSL.g:3337:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            // InternalCubeDSL.g:3434:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+            // InternalCubeDSL.g:3435:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
             {
-            // InternalCubeDSL.g:3337:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
-            int alt59=4;
+            // InternalCubeDSL.g:3435:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            int alt62=4;
             switch ( input.LA(1) ) {
-            case 40:
+            case 43:
                 {
-                alt59=1;
+                alt62=1;
                 }
                 break;
-            case 74:
+            case 77:
                 {
-                alt59=2;
+                alt62=2;
                 }
                 break;
-            case 75:
+            case 78:
                 {
-                alt59=3;
+                alt62=3;
                 }
                 break;
-            case 76:
+            case 79:
                 {
-                alt59=4;
+                alt62=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 59, 0, input);
+                    new NoViableAltException("", 62, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt59) {
+            switch (alt62) {
                 case 1 :
-                    // InternalCubeDSL.g:3338:3: kw= '*'
+                    // InternalCubeDSL.g:3436:3: kw= '*'
                     {
-                    kw=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9445,9 +9682,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3344:3: kw= '**'
+                    // InternalCubeDSL.g:3442:3: kw= '**'
                     {
-                    kw=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9458,9 +9695,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3350:3: kw= '/'
+                    // InternalCubeDSL.g:3448:3: kw= '/'
                     {
-                    kw=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9471,9 +9708,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:3356:3: kw= '%'
+                    // InternalCubeDSL.g:3454:3: kw= '%'
                     {
-                    kw=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9508,7 +9745,7 @@
 
 
     // $ANTLR start "entryRuleXUnaryOperation"
-    // InternalCubeDSL.g:3365:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+    // InternalCubeDSL.g:3463:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
     public final EObject entryRuleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -9516,8 +9753,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3365:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
-            // InternalCubeDSL.g:3366:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+            // InternalCubeDSL.g:3463:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+            // InternalCubeDSL.g:3464:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXUnaryOperationRule()); 
@@ -9548,7 +9785,7 @@
 
 
     // $ANTLR start "ruleXUnaryOperation"
-    // InternalCubeDSL.g:3372:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+    // InternalCubeDSL.g:3470:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
     public final EObject ruleXUnaryOperation() throws RecognitionException {
         EObject current = null;
 
@@ -9561,35 +9798,35 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3378:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
-            // InternalCubeDSL.g:3379:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            // InternalCubeDSL.g:3476:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+            // InternalCubeDSL.g:3477:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
             {
-            // InternalCubeDSL.g:3379:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
-            int alt60=2;
-            int LA60_0 = input.LA(1);
+            // InternalCubeDSL.g:3477:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            int alt63=2;
+            int LA63_0 = input.LA(1);
 
-            if ( ((LA60_0>=72 && LA60_0<=73)||LA60_0==77) ) {
-                alt60=1;
+            if ( ((LA63_0>=75 && LA63_0<=76)||LA63_0==80) ) {
+                alt63=1;
             }
-            else if ( ((LA60_0>=RULE_ID && LA60_0<=RULE_DECIMAL)||LA60_0==14||(LA60_0>=37 && LA60_0<=39)||LA60_0==44||(LA60_0>=48 && LA60_0<=49)||LA60_0==56||LA60_0==84||LA60_0==86||(LA60_0>=90 && LA60_0<=92)||(LA60_0>=95 && LA60_0<=104)||LA60_0==106) ) {
-                alt60=2;
+            else if ( ((LA63_0>=RULE_ID && LA63_0<=RULE_DECIMAL)||LA63_0==14||(LA63_0>=40 && LA63_0<=42)||LA63_0==47||(LA63_0>=51 && LA63_0<=52)||LA63_0==59||LA63_0==87||LA63_0==89||(LA63_0>=93 && LA63_0<=95)||(LA63_0>=98 && LA63_0<=107)||LA63_0==109) ) {
+                alt63=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 60, 0, input);
+                    new NoViableAltException("", 63, 0, input);
 
                 throw nvae;
             }
-            switch (alt60) {
+            switch (alt63) {
                 case 1 :
-                    // InternalCubeDSL.g:3380:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalCubeDSL.g:3478:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
                     {
-                    // InternalCubeDSL.g:3380:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
-                    // InternalCubeDSL.g:3381:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalCubeDSL.g:3478:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalCubeDSL.g:3479:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
                     {
-                    // InternalCubeDSL.g:3381:4: ()
-                    // InternalCubeDSL.g:3382:5: 
+                    // InternalCubeDSL.g:3479:4: ()
+                    // InternalCubeDSL.g:3480:5: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9601,11 +9838,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:3388:4: ( ( ruleOpUnary ) )
-                    // InternalCubeDSL.g:3389:5: ( ruleOpUnary )
+                    // InternalCubeDSL.g:3486:4: ( ( ruleOpUnary ) )
+                    // InternalCubeDSL.g:3487:5: ( ruleOpUnary )
                     {
-                    // InternalCubeDSL.g:3389:5: ( ruleOpUnary )
-                    // InternalCubeDSL.g:3390:6: ruleOpUnary
+                    // InternalCubeDSL.g:3487:5: ( ruleOpUnary )
+                    // InternalCubeDSL.g:3488:6: ruleOpUnary
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9619,7 +9856,7 @@
                       						newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_43);
+                    pushFollow(FOLLOW_46);
                     ruleOpUnary();
 
                     state._fsp--;
@@ -9635,11 +9872,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:3404:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
-                    // InternalCubeDSL.g:3405:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalCubeDSL.g:3502:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalCubeDSL.g:3503:5: (lv_operand_2_0= ruleXUnaryOperation )
                     {
-                    // InternalCubeDSL.g:3405:5: (lv_operand_2_0= ruleXUnaryOperation )
-                    // InternalCubeDSL.g:3406:6: lv_operand_2_0= ruleXUnaryOperation
+                    // InternalCubeDSL.g:3503:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalCubeDSL.g:3504:6: lv_operand_2_0= ruleXUnaryOperation
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9677,7 +9914,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3425:3: this_XCastedExpression_3= ruleXCastedExpression
+                    // InternalCubeDSL.g:3523:3: this_XCastedExpression_3= ruleXCastedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -9723,7 +9960,7 @@
 
 
     // $ANTLR start "entryRuleOpUnary"
-    // InternalCubeDSL.g:3437:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+    // InternalCubeDSL.g:3535:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
     public final String entryRuleOpUnary() throws RecognitionException {
         String current = null;
 
@@ -9731,8 +9968,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3437:47: (iv_ruleOpUnary= ruleOpUnary EOF )
-            // InternalCubeDSL.g:3438:2: iv_ruleOpUnary= ruleOpUnary EOF
+            // InternalCubeDSL.g:3535:47: (iv_ruleOpUnary= ruleOpUnary EOF )
+            // InternalCubeDSL.g:3536:2: iv_ruleOpUnary= ruleOpUnary EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpUnaryRule()); 
@@ -9763,7 +10000,7 @@
 
 
     // $ANTLR start "ruleOpUnary"
-    // InternalCubeDSL.g:3444:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+    // InternalCubeDSL.g:3542:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
     public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9773,40 +10010,40 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3450:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
-            // InternalCubeDSL.g:3451:2: (kw= '!' | kw= '-' | kw= '+' )
+            // InternalCubeDSL.g:3548:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
+            // InternalCubeDSL.g:3549:2: (kw= '!' | kw= '-' | kw= '+' )
             {
-            // InternalCubeDSL.g:3451:2: (kw= '!' | kw= '-' | kw= '+' )
-            int alt61=3;
+            // InternalCubeDSL.g:3549:2: (kw= '!' | kw= '-' | kw= '+' )
+            int alt64=3;
             switch ( input.LA(1) ) {
-            case 77:
+            case 80:
                 {
-                alt61=1;
+                alt64=1;
                 }
                 break;
-            case 73:
+            case 76:
                 {
-                alt61=2;
+                alt64=2;
                 }
                 break;
-            case 72:
+            case 75:
                 {
-                alt61=3;
+                alt64=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 61, 0, input);
+                    new NoViableAltException("", 64, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt61) {
+            switch (alt64) {
                 case 1 :
-                    // InternalCubeDSL.g:3452:3: kw= '!'
+                    // InternalCubeDSL.g:3550:3: kw= '!'
                     {
-                    kw=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9817,9 +10054,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3458:3: kw= '-'
+                    // InternalCubeDSL.g:3556:3: kw= '-'
                     {
-                    kw=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9830,9 +10067,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:3464:3: kw= '+'
+                    // InternalCubeDSL.g:3562:3: kw= '+'
                     {
-                    kw=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -9867,7 +10104,7 @@
 
 
     // $ANTLR start "entryRuleXCastedExpression"
-    // InternalCubeDSL.g:3473:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+    // InternalCubeDSL.g:3571:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
     public final EObject entryRuleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9875,8 +10112,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3473:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
-            // InternalCubeDSL.g:3474:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+            // InternalCubeDSL.g:3571:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+            // InternalCubeDSL.g:3572:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCastedExpressionRule()); 
@@ -9907,7 +10144,7 @@
 
 
     // $ANTLR start "ruleXCastedExpression"
-    // InternalCubeDSL.g:3480:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+    // InternalCubeDSL.g:3578:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
     public final EObject ruleXCastedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -9921,18 +10158,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3486:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
-            // InternalCubeDSL.g:3487:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalCubeDSL.g:3584:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+            // InternalCubeDSL.g:3585:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
             {
-            // InternalCubeDSL.g:3487:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
-            // InternalCubeDSL.g:3488:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            // InternalCubeDSL.g:3585:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalCubeDSL.g:3586:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_63);
+            pushFollow(FOLLOW_66);
             this_XPostfixOperation_0=ruleXPostfixOperation();
 
             state._fsp--;
@@ -9943,35 +10180,35 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:3496:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
-            loop62:
+            // InternalCubeDSL.g:3594:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            loop65:
             do {
-                int alt62=2;
-                int LA62_0 = input.LA(1);
+                int alt65=2;
+                int LA65_0 = input.LA(1);
 
-                if ( (LA62_0==78) ) {
-                    int LA62_2 = input.LA(2);
+                if ( (LA65_0==81) ) {
+                    int LA65_2 = input.LA(2);
 
                     if ( (synpred18_InternalCubeDSL()) ) {
-                        alt62=1;
+                        alt65=1;
                     }
 
 
                 }
 
 
-                switch (alt62) {
+                switch (alt65) {
             	case 1 :
-            	    // InternalCubeDSL.g:3497:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalCubeDSL.g:3595:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
             	    {
-            	    // InternalCubeDSL.g:3497:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
-            	    // InternalCubeDSL.g:3498:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+            	    // InternalCubeDSL.g:3595:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+            	    // InternalCubeDSL.g:3596:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
             	    {
-            	    // InternalCubeDSL.g:3504:5: ( () otherlv_2= 'as' )
-            	    // InternalCubeDSL.g:3505:6: () otherlv_2= 'as'
+            	    // InternalCubeDSL.g:3602:5: ( () otherlv_2= 'as' )
+            	    // InternalCubeDSL.g:3603:6: () otherlv_2= 'as'
             	    {
-            	    // InternalCubeDSL.g:3505:6: ()
-            	    // InternalCubeDSL.g:3506:7: 
+            	    // InternalCubeDSL.g:3603:6: ()
+            	    // InternalCubeDSL.g:3604:7: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -9983,7 +10220,7 @@
 
             	    }
 
-            	    otherlv_2=(Token)match(input,78,FOLLOW_56); if (state.failed) return current;
+            	    otherlv_2=(Token)match(input,81,FOLLOW_59); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      						newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
@@ -9995,18 +10232,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3518:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
-            	    // InternalCubeDSL.g:3519:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalCubeDSL.g:3616:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalCubeDSL.g:3617:5: (lv_type_3_0= ruleJvmTypeReference )
             	    {
-            	    // InternalCubeDSL.g:3519:5: (lv_type_3_0= ruleJvmTypeReference )
-            	    // InternalCubeDSL.g:3520:6: lv_type_3_0= ruleJvmTypeReference
+            	    // InternalCubeDSL.g:3617:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalCubeDSL.g:3618:6: lv_type_3_0= ruleJvmTypeReference
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_63);
+            	    pushFollow(FOLLOW_66);
             	    lv_type_3_0=ruleJvmTypeReference();
 
             	    state._fsp--;
@@ -10035,7 +10272,7 @@
             	    break;
 
             	default :
-            	    break loop62;
+            	    break loop65;
                 }
             } while (true);
 
@@ -10064,7 +10301,7 @@
 
 
     // $ANTLR start "entryRuleXPostfixOperation"
-    // InternalCubeDSL.g:3542:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
+    // InternalCubeDSL.g:3640:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
     public final EObject entryRuleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -10072,8 +10309,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3542:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
-            // InternalCubeDSL.g:3543:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
+            // InternalCubeDSL.g:3640:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
+            // InternalCubeDSL.g:3641:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPostfixOperationRule()); 
@@ -10104,7 +10341,7 @@
 
 
     // $ANTLR start "ruleXPostfixOperation"
-    // InternalCubeDSL.g:3549:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
+    // InternalCubeDSL.g:3647:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
     public final EObject ruleXPostfixOperation() throws RecognitionException {
         EObject current = null;
 
@@ -10115,18 +10352,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3555:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
-            // InternalCubeDSL.g:3556:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalCubeDSL.g:3653:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
+            // InternalCubeDSL.g:3654:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
             {
-            // InternalCubeDSL.g:3556:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
-            // InternalCubeDSL.g:3557:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            // InternalCubeDSL.g:3654:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalCubeDSL.g:3655:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_64);
+            pushFollow(FOLLOW_67);
             this_XMemberFeatureCall_0=ruleXMemberFeatureCall();
 
             state._fsp--;
@@ -10137,33 +10374,33 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:3565:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
-            int alt63=2;
-            int LA63_0 = input.LA(1);
+            // InternalCubeDSL.g:3663:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
 
-            if ( (LA63_0==79) ) {
-                int LA63_1 = input.LA(2);
+            if ( (LA66_0==82) ) {
+                int LA66_1 = input.LA(2);
 
                 if ( (synpred19_InternalCubeDSL()) ) {
-                    alt63=1;
+                    alt66=1;
                 }
             }
-            else if ( (LA63_0==80) ) {
-                int LA63_2 = input.LA(2);
+            else if ( (LA66_0==83) ) {
+                int LA66_2 = input.LA(2);
 
                 if ( (synpred19_InternalCubeDSL()) ) {
-                    alt63=1;
+                    alt66=1;
                 }
             }
-            switch (alt63) {
+            switch (alt66) {
                 case 1 :
-                    // InternalCubeDSL.g:3566:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
+                    // InternalCubeDSL.g:3664:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
                     {
-                    // InternalCubeDSL.g:3576:4: ( () ( ( ruleOpPostfix ) ) )
-                    // InternalCubeDSL.g:3577:5: () ( ( ruleOpPostfix ) )
+                    // InternalCubeDSL.g:3674:4: ( () ( ( ruleOpPostfix ) ) )
+                    // InternalCubeDSL.g:3675:5: () ( ( ruleOpPostfix ) )
                     {
-                    // InternalCubeDSL.g:3577:5: ()
-                    // InternalCubeDSL.g:3578:6: 
+                    // InternalCubeDSL.g:3675:5: ()
+                    // InternalCubeDSL.g:3676:6: 
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10175,11 +10412,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:3584:5: ( ( ruleOpPostfix ) )
-                    // InternalCubeDSL.g:3585:6: ( ruleOpPostfix )
+                    // InternalCubeDSL.g:3682:5: ( ( ruleOpPostfix ) )
+                    // InternalCubeDSL.g:3683:6: ( ruleOpPostfix )
                     {
-                    // InternalCubeDSL.g:3585:6: ( ruleOpPostfix )
-                    // InternalCubeDSL.g:3586:7: ruleOpPostfix
+                    // InternalCubeDSL.g:3683:6: ( ruleOpPostfix )
+                    // InternalCubeDSL.g:3684:7: ruleOpPostfix
                     {
                     if ( state.backtracking==0 ) {
 
@@ -10243,7 +10480,7 @@
 
 
     // $ANTLR start "entryRuleOpPostfix"
-    // InternalCubeDSL.g:3606:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
+    // InternalCubeDSL.g:3704:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
     public final String entryRuleOpPostfix() throws RecognitionException {
         String current = null;
 
@@ -10251,8 +10488,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3606:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
-            // InternalCubeDSL.g:3607:2: iv_ruleOpPostfix= ruleOpPostfix EOF
+            // InternalCubeDSL.g:3704:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
+            // InternalCubeDSL.g:3705:2: iv_ruleOpPostfix= ruleOpPostfix EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOpPostfixRule()); 
@@ -10283,7 +10520,7 @@
 
 
     // $ANTLR start "ruleOpPostfix"
-    // InternalCubeDSL.g:3613:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
+    // InternalCubeDSL.g:3711:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
     public final AntlrDatatypeRuleToken ruleOpPostfix() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -10293,31 +10530,31 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3619:2: ( (kw= '++' | kw= '--' ) )
-            // InternalCubeDSL.g:3620:2: (kw= '++' | kw= '--' )
+            // InternalCubeDSL.g:3717:2: ( (kw= '++' | kw= '--' ) )
+            // InternalCubeDSL.g:3718:2: (kw= '++' | kw= '--' )
             {
-            // InternalCubeDSL.g:3620:2: (kw= '++' | kw= '--' )
-            int alt64=2;
-            int LA64_0 = input.LA(1);
+            // InternalCubeDSL.g:3718:2: (kw= '++' | kw= '--' )
+            int alt67=2;
+            int LA67_0 = input.LA(1);
 
-            if ( (LA64_0==79) ) {
-                alt64=1;
+            if ( (LA67_0==82) ) {
+                alt67=1;
             }
-            else if ( (LA64_0==80) ) {
-                alt64=2;
+            else if ( (LA67_0==83) ) {
+                alt67=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 64, 0, input);
+                    new NoViableAltException("", 67, 0, input);
 
                 throw nvae;
             }
-            switch (alt64) {
+            switch (alt67) {
                 case 1 :
-                    // InternalCubeDSL.g:3621:3: kw= '++'
+                    // InternalCubeDSL.g:3719:3: kw= '++'
                     {
-                    kw=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10328,9 +10565,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:3627:3: kw= '--'
+                    // InternalCubeDSL.g:3725:3: kw= '--'
                     {
-                    kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -10365,7 +10602,7 @@
 
 
     // $ANTLR start "entryRuleXMemberFeatureCall"
-    // InternalCubeDSL.g:3636:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
+    // InternalCubeDSL.g:3734:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
     public final EObject entryRuleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -10373,8 +10610,8 @@
 
 
         try {
-            // InternalCubeDSL.g:3636:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
-            // InternalCubeDSL.g:3637:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
+            // InternalCubeDSL.g:3734:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
+            // InternalCubeDSL.g:3735:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); 
@@ -10405,7 +10642,7 @@
 
 
     // $ANTLR start "ruleXMemberFeatureCall"
-    // InternalCubeDSL.g:3643:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
+    // InternalCubeDSL.g:3741:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
     public final EObject ruleXMemberFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -10441,18 +10678,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:3649:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
-            // InternalCubeDSL.g:3650:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalCubeDSL.g:3747:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
+            // InternalCubeDSL.g:3748:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
             {
-            // InternalCubeDSL.g:3650:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
-            // InternalCubeDSL.g:3651:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            // InternalCubeDSL.g:3748:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalCubeDSL.g:3749:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_65);
+            pushFollow(FOLLOW_68);
             this_XPrimaryExpression_0=ruleXPrimaryExpression();
 
             state._fsp--;
@@ -10463,45 +10700,45 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:3659:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
-            loop73:
+            // InternalCubeDSL.g:3757:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            loop76:
             do {
-                int alt73=3;
+                int alt76=3;
                 switch ( input.LA(1) ) {
-                case 36:
+                case 39:
                     {
-                    int LA73_2 = input.LA(2);
+                    int LA76_2 = input.LA(2);
 
                     if ( (synpred20_InternalCubeDSL()) ) {
-                        alt73=1;
+                        alt76=1;
                     }
                     else if ( (synpred21_InternalCubeDSL()) ) {
-                        alt73=2;
+                        alt76=2;
                     }
 
 
                     }
                     break;
-                case 81:
+                case 84:
                     {
-                    int LA73_3 = input.LA(2);
+                    int LA76_3 = input.LA(2);
 
                     if ( (synpred20_InternalCubeDSL()) ) {
-                        alt73=1;
+                        alt76=1;
                     }
                     else if ( (synpred21_InternalCubeDSL()) ) {
-                        alt73=2;
+                        alt76=2;
                     }
 
 
                     }
                     break;
-                case 82:
+                case 85:
                     {
-                    int LA73_4 = input.LA(2);
+                    int LA76_4 = input.LA(2);
 
                     if ( (synpred21_InternalCubeDSL()) ) {
-                        alt73=2;
+                        alt76=2;
                     }
 
 
@@ -10510,21 +10747,21 @@
 
                 }
 
-                switch (alt73) {
+                switch (alt76) {
             	case 1 :
-            	    // InternalCubeDSL.g:3660:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalCubeDSL.g:3758:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
             	    {
-            	    // InternalCubeDSL.g:3660:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
-            	    // InternalCubeDSL.g:3661:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalCubeDSL.g:3758:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalCubeDSL.g:3759:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
             	    {
-            	    // InternalCubeDSL.g:3661:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-            	    // InternalCubeDSL.g:3662:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalCubeDSL.g:3759:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+            	    // InternalCubeDSL.g:3760:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
             	    {
-            	    // InternalCubeDSL.g:3682:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-            	    // InternalCubeDSL.g:3683:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+            	    // InternalCubeDSL.g:3780:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalCubeDSL.g:3781:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
             	    {
-            	    // InternalCubeDSL.g:3683:7: ()
-            	    // InternalCubeDSL.g:3684:8: 
+            	    // InternalCubeDSL.g:3781:7: ()
+            	    // InternalCubeDSL.g:3782:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10536,28 +10773,28 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3690:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
-            	    int alt65=2;
-            	    int LA65_0 = input.LA(1);
+            	    // InternalCubeDSL.g:3788:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
+            	    int alt68=2;
+            	    int LA68_0 = input.LA(1);
 
-            	    if ( (LA65_0==36) ) {
-            	        alt65=1;
+            	    if ( (LA68_0==39) ) {
+            	        alt68=1;
             	    }
-            	    else if ( (LA65_0==81) ) {
-            	        alt65=2;
+            	    else if ( (LA68_0==84) ) {
+            	        alt68=2;
             	    }
             	    else {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 65, 0, input);
+            	            new NoViableAltException("", 68, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt65) {
+            	    switch (alt68) {
             	        case 1 :
-            	            // InternalCubeDSL.g:3691:8: otherlv_2= '.'
+            	            // InternalCubeDSL.g:3789:8: otherlv_2= '.'
             	            {
-            	            otherlv_2=(Token)match(input,36,FOLLOW_66); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,39,FOLLOW_69); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
@@ -10567,15 +10804,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalCubeDSL.g:3696:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalCubeDSL.g:3794:8: ( (lv_explicitStatic_3_0= '::' ) )
             	            {
-            	            // InternalCubeDSL.g:3696:8: ( (lv_explicitStatic_3_0= '::' ) )
-            	            // InternalCubeDSL.g:3697:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalCubeDSL.g:3794:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalCubeDSL.g:3795:9: (lv_explicitStatic_3_0= '::' )
             	            {
-            	            // InternalCubeDSL.g:3697:9: (lv_explicitStatic_3_0= '::' )
-            	            // InternalCubeDSL.g:3698:10: lv_explicitStatic_3_0= '::'
+            	            // InternalCubeDSL.g:3795:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalCubeDSL.g:3796:10: lv_explicitStatic_3_0= '::'
             	            {
-            	            lv_explicitStatic_3_0=(Token)match(input,81,FOLLOW_66); if (state.failed) return current;
+            	            lv_explicitStatic_3_0=(Token)match(input,84,FOLLOW_69); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
@@ -10601,11 +10838,11 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3711:7: ( ( ruleFeatureCallID ) )
-            	    // InternalCubeDSL.g:3712:8: ( ruleFeatureCallID )
+            	    // InternalCubeDSL.g:3809:7: ( ( ruleFeatureCallID ) )
+            	    // InternalCubeDSL.g:3810:8: ( ruleFeatureCallID )
             	    {
-            	    // InternalCubeDSL.g:3712:8: ( ruleFeatureCallID )
-            	    // InternalCubeDSL.g:3713:9: ruleFeatureCallID
+            	    // InternalCubeDSL.g:3810:8: ( ruleFeatureCallID )
+            	    // InternalCubeDSL.g:3811:9: ruleFeatureCallID
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10619,7 +10856,7 @@
             	      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
             	      								
             	    }
-            	    pushFollow(FOLLOW_42);
+            	    pushFollow(FOLLOW_45);
             	    ruleFeatureCallID();
 
             	    state._fsp--;
@@ -10640,7 +10877,7 @@
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
             	      						
             	    }
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_46);
             	    ruleOpSingleAssign();
 
             	    state._fsp--;
@@ -10656,18 +10893,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3736:5: ( (lv_value_6_0= ruleXAssignment ) )
-            	    // InternalCubeDSL.g:3737:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalCubeDSL.g:3834:5: ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalCubeDSL.g:3835:6: (lv_value_6_0= ruleXAssignment )
             	    {
-            	    // InternalCubeDSL.g:3737:6: (lv_value_6_0= ruleXAssignment )
-            	    // InternalCubeDSL.g:3738:7: lv_value_6_0= ruleXAssignment
+            	    // InternalCubeDSL.g:3835:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalCubeDSL.g:3836:7: lv_value_6_0= ruleXAssignment
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
             	      						
             	    }
-            	    pushFollow(FOLLOW_65);
+            	    pushFollow(FOLLOW_68);
             	    lv_value_6_0=ruleXAssignment();
 
             	    state._fsp--;
@@ -10698,19 +10935,19 @@
             	    }
             	    break;
             	case 2 :
-            	    // InternalCubeDSL.g:3757:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalCubeDSL.g:3855:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
             	    {
-            	    // InternalCubeDSL.g:3757:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
-            	    // InternalCubeDSL.g:3758:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    // InternalCubeDSL.g:3855:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalCubeDSL.g:3856:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
             	    {
-            	    // InternalCubeDSL.g:3758:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
-            	    // InternalCubeDSL.g:3759:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalCubeDSL.g:3856:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
+            	    // InternalCubeDSL.g:3857:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
             	    {
-            	    // InternalCubeDSL.g:3779:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
-            	    // InternalCubeDSL.g:3780:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    // InternalCubeDSL.g:3877:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalCubeDSL.g:3878:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
             	    {
-            	    // InternalCubeDSL.g:3780:7: ()
-            	    // InternalCubeDSL.g:3781:8: 
+            	    // InternalCubeDSL.g:3878:7: ()
+            	    // InternalCubeDSL.g:3879:8: 
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10722,37 +10959,37 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3787:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
-            	    int alt66=3;
+            	    // InternalCubeDSL.g:3885:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    int alt69=3;
             	    switch ( input.LA(1) ) {
-            	    case 36:
+            	    case 39:
             	        {
-            	        alt66=1;
+            	        alt69=1;
             	        }
             	        break;
-            	    case 82:
+            	    case 85:
             	        {
-            	        alt66=2;
+            	        alt69=2;
             	        }
             	        break;
-            	    case 81:
+            	    case 84:
             	        {
-            	        alt66=3;
+            	        alt69=3;
             	        }
             	        break;
             	    default:
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 66, 0, input);
+            	            new NoViableAltException("", 69, 0, input);
 
             	        throw nvae;
             	    }
 
-            	    switch (alt66) {
+            	    switch (alt69) {
             	        case 1 :
-            	            // InternalCubeDSL.g:3788:8: otherlv_8= '.'
+            	            // InternalCubeDSL.g:3886:8: otherlv_8= '.'
             	            {
-            	            otherlv_8=(Token)match(input,36,FOLLOW_67); if (state.failed) return current;
+            	            otherlv_8=(Token)match(input,39,FOLLOW_70); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
@@ -10762,15 +10999,15 @@
             	            }
             	            break;
             	        case 2 :
-            	            // InternalCubeDSL.g:3793:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalCubeDSL.g:3891:8: ( (lv_nullSafe_9_0= '?.' ) )
             	            {
-            	            // InternalCubeDSL.g:3793:8: ( (lv_nullSafe_9_0= '?.' ) )
-            	            // InternalCubeDSL.g:3794:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalCubeDSL.g:3891:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalCubeDSL.g:3892:9: (lv_nullSafe_9_0= '?.' )
             	            {
-            	            // InternalCubeDSL.g:3794:9: (lv_nullSafe_9_0= '?.' )
-            	            // InternalCubeDSL.g:3795:10: lv_nullSafe_9_0= '?.'
+            	            // InternalCubeDSL.g:3892:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalCubeDSL.g:3893:10: lv_nullSafe_9_0= '?.'
             	            {
-            	            lv_nullSafe_9_0=(Token)match(input,82,FOLLOW_67); if (state.failed) return current;
+            	            lv_nullSafe_9_0=(Token)match(input,85,FOLLOW_70); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
@@ -10794,15 +11031,15 @@
             	            }
             	            break;
             	        case 3 :
-            	            // InternalCubeDSL.g:3808:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalCubeDSL.g:3906:8: ( (lv_explicitStatic_10_0= '::' ) )
             	            {
-            	            // InternalCubeDSL.g:3808:8: ( (lv_explicitStatic_10_0= '::' ) )
-            	            // InternalCubeDSL.g:3809:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalCubeDSL.g:3906:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalCubeDSL.g:3907:9: (lv_explicitStatic_10_0= '::' )
             	            {
-            	            // InternalCubeDSL.g:3809:9: (lv_explicitStatic_10_0= '::' )
-            	            // InternalCubeDSL.g:3810:10: lv_explicitStatic_10_0= '::'
+            	            // InternalCubeDSL.g:3907:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalCubeDSL.g:3908:10: lv_explicitStatic_10_0= '::'
             	            {
-            	            lv_explicitStatic_10_0=(Token)match(input,81,FOLLOW_67); if (state.failed) return current;
+            	            lv_explicitStatic_10_0=(Token)match(input,84,FOLLOW_70); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              										newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
@@ -10834,35 +11071,35 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3825:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
-            	    int alt68=2;
-            	    int LA68_0 = input.LA(1);
+            	    // InternalCubeDSL.g:3923:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
+            	    int alt71=2;
+            	    int LA71_0 = input.LA(1);
 
-            	    if ( (LA68_0==56) ) {
-            	        alt68=1;
+            	    if ( (LA71_0==59) ) {
+            	        alt71=1;
             	    }
-            	    switch (alt68) {
+            	    switch (alt71) {
             	        case 1 :
-            	            // InternalCubeDSL.g:3826:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
+            	            // InternalCubeDSL.g:3924:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
             	            {
-            	            otherlv_11=(Token)match(input,56,FOLLOW_68); if (state.failed) return current;
+            	            otherlv_11=(Token)match(input,59,FOLLOW_71); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
             	              					
             	            }
-            	            // InternalCubeDSL.g:3830:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
-            	            // InternalCubeDSL.g:3831:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalCubeDSL.g:3928:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
+            	            // InternalCubeDSL.g:3929:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
             	            {
-            	            // InternalCubeDSL.g:3831:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
-            	            // InternalCubeDSL.g:3832:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
+            	            // InternalCubeDSL.g:3929:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalCubeDSL.g:3930:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
             	            {
             	            if ( state.backtracking==0 ) {
 
             	              								newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
             	              							
             	            }
-            	            pushFollow(FOLLOW_69);
+            	            pushFollow(FOLLOW_72);
             	            lv_typeArguments_12_0=ruleJvmArgumentTypeReference();
 
             	            state._fsp--;
@@ -10886,39 +11123,39 @@
 
             	            }
 
-            	            // InternalCubeDSL.g:3849:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
-            	            loop67:
+            	            // InternalCubeDSL.g:3947:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
+            	            loop70:
             	            do {
-            	                int alt67=2;
-            	                int LA67_0 = input.LA(1);
+            	                int alt70=2;
+            	                int LA70_0 = input.LA(1);
 
-            	                if ( (LA67_0==45) ) {
-            	                    alt67=1;
+            	                if ( (LA70_0==48) ) {
+            	                    alt70=1;
             	                }
 
 
-            	                switch (alt67) {
+            	                switch (alt70) {
             	            	case 1 :
-            	            	    // InternalCubeDSL.g:3850:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalCubeDSL.g:3948:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
             	            	    {
-            	            	    otherlv_13=(Token)match(input,45,FOLLOW_68); if (state.failed) return current;
+            	            	    otherlv_13=(Token)match(input,48,FOLLOW_71); if (state.failed) return current;
             	            	    if ( state.backtracking==0 ) {
 
             	            	      							newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
             	            	      						
             	            	    }
-            	            	    // InternalCubeDSL.g:3854:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
-            	            	    // InternalCubeDSL.g:3855:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalCubeDSL.g:3952:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalCubeDSL.g:3953:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
             	            	    {
-            	            	    // InternalCubeDSL.g:3855:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
-            	            	    // InternalCubeDSL.g:3856:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
+            	            	    // InternalCubeDSL.g:3953:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalCubeDSL.g:3954:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
             	            	    {
             	            	    if ( state.backtracking==0 ) {
 
             	            	      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
             	            	      								
             	            	    }
-            	            	    pushFollow(FOLLOW_69);
+            	            	    pushFollow(FOLLOW_72);
             	            	    lv_typeArguments_14_0=ruleJvmArgumentTypeReference();
 
             	            	    state._fsp--;
@@ -10947,11 +11184,11 @@
             	            	    break;
 
             	            	default :
-            	            	    break loop67;
+            	            	    break loop70;
             	                }
             	            } while (true);
 
-            	            otherlv_15=(Token)match(input,57,FOLLOW_67); if (state.failed) return current;
+            	            otherlv_15=(Token)match(input,60,FOLLOW_70); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
@@ -10963,11 +11200,11 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3879:5: ( ( ruleIdOrSuper ) )
-            	    // InternalCubeDSL.g:3880:6: ( ruleIdOrSuper )
+            	    // InternalCubeDSL.g:3977:5: ( ( ruleIdOrSuper ) )
+            	    // InternalCubeDSL.g:3978:6: ( ruleIdOrSuper )
             	    {
-            	    // InternalCubeDSL.g:3880:6: ( ruleIdOrSuper )
-            	    // InternalCubeDSL.g:3881:7: ruleIdOrSuper
+            	    // InternalCubeDSL.g:3978:6: ( ruleIdOrSuper )
+            	    // InternalCubeDSL.g:3979:7: ruleIdOrSuper
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -10981,7 +11218,7 @@
             	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
             	      						
             	    }
-            	    pushFollow(FOLLOW_70);
+            	    pushFollow(FOLLOW_73);
             	    ruleIdOrSuper();
 
             	    state._fsp--;
@@ -10997,20 +11234,20 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:3895:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
-            	    int alt71=2;
-            	    alt71 = dfa71.predict(input);
-            	    switch (alt71) {
+            	    // InternalCubeDSL.g:3993:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
+            	    int alt74=2;
+            	    alt74 = dfa74.predict(input);
+            	    switch (alt74) {
             	        case 1 :
-            	            // InternalCubeDSL.g:3896:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
+            	            // InternalCubeDSL.g:3994:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
             	            {
-            	            // InternalCubeDSL.g:3896:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
-            	            // InternalCubeDSL.g:3897:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalCubeDSL.g:3994:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
+            	            // InternalCubeDSL.g:3995:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
             	            {
-            	            // InternalCubeDSL.g:3901:7: (lv_explicitOperationCall_17_0= '(' )
-            	            // InternalCubeDSL.g:3902:8: lv_explicitOperationCall_17_0= '('
+            	            // InternalCubeDSL.g:3999:7: (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalCubeDSL.g:4000:8: lv_explicitOperationCall_17_0= '('
             	            {
-            	            lv_explicitOperationCall_17_0=(Token)match(input,44,FOLLOW_71); if (state.failed) return current;
+            	            lv_explicitOperationCall_17_0=(Token)match(input,47,FOLLOW_74); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              								newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
@@ -11030,25 +11267,25 @@
 
             	            }
 
-            	            // InternalCubeDSL.g:3914:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
-            	            int alt70=3;
-            	            alt70 = dfa70.predict(input);
-            	            switch (alt70) {
+            	            // InternalCubeDSL.g:4012:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
+            	            int alt73=3;
+            	            alt73 = dfa73.predict(input);
+            	            switch (alt73) {
             	                case 1 :
-            	                    // InternalCubeDSL.g:3915:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalCubeDSL.g:4013:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
             	                    {
-            	                    // InternalCubeDSL.g:3915:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
-            	                    // InternalCubeDSL.g:3916:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalCubeDSL.g:4013:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalCubeDSL.g:4014:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
             	                    {
-            	                    // InternalCubeDSL.g:3941:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
-            	                    // InternalCubeDSL.g:3942:9: lv_memberCallArguments_18_0= ruleXShortClosure
+            	                    // InternalCubeDSL.g:4039:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalCubeDSL.g:4040:9: lv_memberCallArguments_18_0= ruleXShortClosure
             	                    {
             	                    if ( state.backtracking==0 ) {
 
             	                      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
             	                      								
             	                    }
-            	                    pushFollow(FOLLOW_41);
+            	                    pushFollow(FOLLOW_44);
             	                    lv_memberCallArguments_18_0=ruleXShortClosure();
 
             	                    state._fsp--;
@@ -11076,23 +11313,23 @@
             	                    }
             	                    break;
             	                case 2 :
-            	                    // InternalCubeDSL.g:3960:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalCubeDSL.g:4058:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
             	                    {
-            	                    // InternalCubeDSL.g:3960:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
-            	                    // InternalCubeDSL.g:3961:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    // InternalCubeDSL.g:4058:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalCubeDSL.g:4059:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
             	                    {
-            	                    // InternalCubeDSL.g:3961:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
-            	                    // InternalCubeDSL.g:3962:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalCubeDSL.g:4059:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
+            	                    // InternalCubeDSL.g:4060:9: (lv_memberCallArguments_19_0= ruleXExpression )
             	                    {
-            	                    // InternalCubeDSL.g:3962:9: (lv_memberCallArguments_19_0= ruleXExpression )
-            	                    // InternalCubeDSL.g:3963:10: lv_memberCallArguments_19_0= ruleXExpression
+            	                    // InternalCubeDSL.g:4060:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalCubeDSL.g:4061:10: lv_memberCallArguments_19_0= ruleXExpression
             	                    {
             	                    if ( state.backtracking==0 ) {
 
             	                      										newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
             	                      									
             	                    }
-            	                    pushFollow(FOLLOW_40);
+            	                    pushFollow(FOLLOW_43);
             	                    lv_memberCallArguments_19_0=ruleXExpression();
 
             	                    state._fsp--;
@@ -11116,39 +11353,39 @@
 
             	                    }
 
-            	                    // InternalCubeDSL.g:3980:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
-            	                    loop69:
+            	                    // InternalCubeDSL.g:4078:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    loop72:
             	                    do {
-            	                        int alt69=2;
-            	                        int LA69_0 = input.LA(1);
+            	                        int alt72=2;
+            	                        int LA72_0 = input.LA(1);
 
-            	                        if ( (LA69_0==45) ) {
-            	                            alt69=1;
+            	                        if ( (LA72_0==48) ) {
+            	                            alt72=1;
             	                        }
 
 
-            	                        switch (alt69) {
+            	                        switch (alt72) {
             	                    	case 1 :
-            	                    	    // InternalCubeDSL.g:3981:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalCubeDSL.g:4079:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
             	                    	    {
-            	                    	    otherlv_20=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+            	                    	    otherlv_20=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
             	                    	    if ( state.backtracking==0 ) {
 
             	                    	      									newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
             	                    	      								
             	                    	    }
-            	                    	    // InternalCubeDSL.g:3985:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
-            	                    	    // InternalCubeDSL.g:3986:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalCubeDSL.g:4083:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalCubeDSL.g:4084:10: (lv_memberCallArguments_21_0= ruleXExpression )
             	                    	    {
-            	                    	    // InternalCubeDSL.g:3986:10: (lv_memberCallArguments_21_0= ruleXExpression )
-            	                    	    // InternalCubeDSL.g:3987:11: lv_memberCallArguments_21_0= ruleXExpression
+            	                    	    // InternalCubeDSL.g:4084:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalCubeDSL.g:4085:11: lv_memberCallArguments_21_0= ruleXExpression
             	                    	    {
             	                    	    if ( state.backtracking==0 ) {
 
             	                    	      											newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
             	                    	      										
             	                    	    }
-            	                    	    pushFollow(FOLLOW_40);
+            	                    	    pushFollow(FOLLOW_43);
             	                    	    lv_memberCallArguments_21_0=ruleXExpression();
 
             	                    	    state._fsp--;
@@ -11177,7 +11414,7 @@
             	                    	    break;
 
             	                    	default :
-            	                    	    break loop69;
+            	                    	    break loop72;
             	                        }
             	                    } while (true);
 
@@ -11190,7 +11427,7 @@
 
             	            }
 
-            	            otherlv_22=(Token)match(input,46,FOLLOW_72); if (state.failed) return current;
+            	            otherlv_22=(Token)match(input,49,FOLLOW_75); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              						newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
@@ -11202,22 +11439,22 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:4012:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
-            	    int alt72=2;
-            	    alt72 = dfa72.predict(input);
-            	    switch (alt72) {
+            	    // InternalCubeDSL.g:4110:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    int alt75=2;
+            	    alt75 = dfa75.predict(input);
+            	    switch (alt75) {
             	        case 1 :
-            	            // InternalCubeDSL.g:4013:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalCubeDSL.g:4111:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
             	            {
-            	            // InternalCubeDSL.g:4019:6: (lv_memberCallArguments_23_0= ruleXClosure )
-            	            // InternalCubeDSL.g:4020:7: lv_memberCallArguments_23_0= ruleXClosure
+            	            // InternalCubeDSL.g:4117:6: (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalCubeDSL.g:4118:7: lv_memberCallArguments_23_0= ruleXClosure
             	            {
             	            if ( state.backtracking==0 ) {
 
             	              							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
             	              						
             	            }
-            	            pushFollow(FOLLOW_65);
+            	            pushFollow(FOLLOW_68);
             	            lv_memberCallArguments_23_0=ruleXClosure();
 
             	            state._fsp--;
@@ -11252,7 +11489,7 @@
             	    break;
 
             	default :
-            	    break loop73;
+            	    break loop76;
                 }
             } while (true);
 
@@ -11281,7 +11518,7 @@
 
 
     // $ANTLR start "entryRuleXPrimaryExpression"
-    // InternalCubeDSL.g:4043:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
+    // InternalCubeDSL.g:4141:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
     public final EObject entryRuleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11289,8 +11526,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4043:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
-            // InternalCubeDSL.g:4044:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
+            // InternalCubeDSL.g:4141:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
+            // InternalCubeDSL.g:4142:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); 
@@ -11321,7 +11558,7 @@
 
 
     // $ANTLR start "ruleXPrimaryExpression"
-    // InternalCubeDSL.g:4050:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
+    // InternalCubeDSL.g:4148:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
     public final EObject ruleXPrimaryExpression() throws RecognitionException {
         EObject current = null;
 
@@ -11360,15 +11597,15 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4056:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
-            // InternalCubeDSL.g:4057:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            // InternalCubeDSL.g:4154:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
+            // InternalCubeDSL.g:4155:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
             {
-            // InternalCubeDSL.g:4057:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
-            int alt74=15;
-            alt74 = dfa74.predict(input);
-            switch (alt74) {
+            // InternalCubeDSL.g:4155:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            int alt77=15;
+            alt77 = dfa77.predict(input);
+            switch (alt77) {
                 case 1 :
-                    // InternalCubeDSL.g:4058:3: this_XConstructorCall_0= ruleXConstructorCall
+                    // InternalCubeDSL.g:4156:3: this_XConstructorCall_0= ruleXConstructorCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11390,7 +11627,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:4067:3: this_XBlockExpression_1= ruleXBlockExpression
+                    // InternalCubeDSL.g:4165:3: this_XBlockExpression_1= ruleXBlockExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11412,7 +11649,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:4076:3: this_XSwitchExpression_2= ruleXSwitchExpression
+                    // InternalCubeDSL.g:4174:3: this_XSwitchExpression_2= ruleXSwitchExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11434,10 +11671,10 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:4085:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalCubeDSL.g:4183:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
                     {
-                    // InternalCubeDSL.g:4085:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
-                    // InternalCubeDSL.g:4086:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
+                    // InternalCubeDSL.g:4183:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalCubeDSL.g:4184:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11462,7 +11699,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:4103:3: this_XFeatureCall_4= ruleXFeatureCall
+                    // InternalCubeDSL.g:4201:3: this_XFeatureCall_4= ruleXFeatureCall
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11484,7 +11721,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:4112:3: this_XLiteral_5= ruleXLiteral
+                    // InternalCubeDSL.g:4210:3: this_XLiteral_5= ruleXLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11506,7 +11743,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:4121:3: this_XIfExpression_6= ruleXIfExpression
+                    // InternalCubeDSL.g:4219:3: this_XIfExpression_6= ruleXIfExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11528,10 +11765,10 @@
                     }
                     break;
                 case 8 :
-                    // InternalCubeDSL.g:4130:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalCubeDSL.g:4228:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
                     {
-                    // InternalCubeDSL.g:4130:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
-                    // InternalCubeDSL.g:4131:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
+                    // InternalCubeDSL.g:4228:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalCubeDSL.g:4229:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11556,7 +11793,7 @@
                     }
                     break;
                 case 9 :
-                    // InternalCubeDSL.g:4154:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
+                    // InternalCubeDSL.g:4252:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11578,7 +11815,7 @@
                     }
                     break;
                 case 10 :
-                    // InternalCubeDSL.g:4163:3: this_XWhileExpression_9= ruleXWhileExpression
+                    // InternalCubeDSL.g:4261:3: this_XWhileExpression_9= ruleXWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11600,7 +11837,7 @@
                     }
                     break;
                 case 11 :
-                    // InternalCubeDSL.g:4172:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
+                    // InternalCubeDSL.g:4270:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11622,7 +11859,7 @@
                     }
                     break;
                 case 12 :
-                    // InternalCubeDSL.g:4181:3: this_XThrowExpression_11= ruleXThrowExpression
+                    // InternalCubeDSL.g:4279:3: this_XThrowExpression_11= ruleXThrowExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11644,7 +11881,7 @@
                     }
                     break;
                 case 13 :
-                    // InternalCubeDSL.g:4190:3: this_XReturnExpression_12= ruleXReturnExpression
+                    // InternalCubeDSL.g:4288:3: this_XReturnExpression_12= ruleXReturnExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11666,7 +11903,7 @@
                     }
                     break;
                 case 14 :
-                    // InternalCubeDSL.g:4199:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
+                    // InternalCubeDSL.g:4297:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11688,7 +11925,7 @@
                     }
                     break;
                 case 15 :
-                    // InternalCubeDSL.g:4208:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
+                    // InternalCubeDSL.g:4306:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11734,7 +11971,7 @@
 
 
     // $ANTLR start "entryRuleXLiteral"
-    // InternalCubeDSL.g:4220:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
+    // InternalCubeDSL.g:4318:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
     public final EObject entryRuleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11742,8 +11979,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4220:49: (iv_ruleXLiteral= ruleXLiteral EOF )
-            // InternalCubeDSL.g:4221:2: iv_ruleXLiteral= ruleXLiteral EOF
+            // InternalCubeDSL.g:4318:49: (iv_ruleXLiteral= ruleXLiteral EOF )
+            // InternalCubeDSL.g:4319:2: iv_ruleXLiteral= ruleXLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXLiteralRule()); 
@@ -11774,7 +12011,7 @@
 
 
     // $ANTLR start "ruleXLiteral"
-    // InternalCubeDSL.g:4227:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
+    // InternalCubeDSL.g:4325:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
     public final EObject ruleXLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -11797,44 +12034,44 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4233:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
-            // InternalCubeDSL.g:4234:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            // InternalCubeDSL.g:4331:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
+            // InternalCubeDSL.g:4332:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
             {
-            // InternalCubeDSL.g:4234:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
-            int alt75=7;
-            int LA75_0 = input.LA(1);
+            // InternalCubeDSL.g:4332:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            int alt78=7;
+            int LA78_0 = input.LA(1);
 
-            if ( (LA75_0==48) ) {
-                alt75=1;
+            if ( (LA78_0==51) ) {
+                alt78=1;
             }
-            else if ( (LA75_0==49) && (synpred27_InternalCubeDSL())) {
-                alt75=2;
+            else if ( (LA78_0==52) && (synpred27_InternalCubeDSL())) {
+                alt78=2;
             }
-            else if ( ((LA75_0>=98 && LA75_0<=99)) ) {
-                alt75=3;
+            else if ( ((LA78_0>=101 && LA78_0<=102)) ) {
+                alt78=3;
             }
-            else if ( ((LA75_0>=RULE_HEX && LA75_0<=RULE_DECIMAL)) ) {
-                alt75=4;
+            else if ( ((LA78_0>=RULE_HEX && LA78_0<=RULE_DECIMAL)) ) {
+                alt78=4;
             }
-            else if ( (LA75_0==100) ) {
-                alt75=5;
+            else if ( (LA78_0==103) ) {
+                alt78=5;
             }
-            else if ( (LA75_0==RULE_STRING) ) {
-                alt75=6;
+            else if ( (LA78_0==RULE_STRING) ) {
+                alt78=6;
             }
-            else if ( (LA75_0==101) ) {
-                alt75=7;
+            else if ( (LA78_0==104) ) {
+                alt78=7;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 75, 0, input);
+                    new NoViableAltException("", 78, 0, input);
 
                 throw nvae;
             }
-            switch (alt75) {
+            switch (alt78) {
                 case 1 :
-                    // InternalCubeDSL.g:4235:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
+                    // InternalCubeDSL.g:4333:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11856,10 +12093,10 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:4244:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalCubeDSL.g:4342:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
                     {
-                    // InternalCubeDSL.g:4244:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
-                    // InternalCubeDSL.g:4245:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
+                    // InternalCubeDSL.g:4342:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalCubeDSL.g:4343:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11884,7 +12121,7 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:4261:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
+                    // InternalCubeDSL.g:4359:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11906,7 +12143,7 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:4270:3: this_XNumberLiteral_3= ruleXNumberLiteral
+                    // InternalCubeDSL.g:4368:3: this_XNumberLiteral_3= ruleXNumberLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11928,7 +12165,7 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:4279:3: this_XNullLiteral_4= ruleXNullLiteral
+                    // InternalCubeDSL.g:4377:3: this_XNullLiteral_4= ruleXNullLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11950,7 +12187,7 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:4288:3: this_XStringLiteral_5= ruleXStringLiteral
+                    // InternalCubeDSL.g:4386:3: this_XStringLiteral_5= ruleXStringLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -11972,7 +12209,7 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:4297:3: this_XTypeLiteral_6= ruleXTypeLiteral
+                    // InternalCubeDSL.g:4395:3: this_XTypeLiteral_6= ruleXTypeLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12018,7 +12255,7 @@
 
 
     // $ANTLR start "entryRuleXCollectionLiteral"
-    // InternalCubeDSL.g:4309:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
+    // InternalCubeDSL.g:4407:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
     public final EObject entryRuleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -12026,8 +12263,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4309:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
-            // InternalCubeDSL.g:4310:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
+            // InternalCubeDSL.g:4407:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
+            // InternalCubeDSL.g:4408:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCollectionLiteralRule()); 
@@ -12058,7 +12295,7 @@
 
 
     // $ANTLR start "ruleXCollectionLiteral"
-    // InternalCubeDSL.g:4316:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
+    // InternalCubeDSL.g:4414:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
     public final EObject ruleXCollectionLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -12071,26 +12308,26 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4322:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
-            // InternalCubeDSL.g:4323:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            // InternalCubeDSL.g:4420:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
+            // InternalCubeDSL.g:4421:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
             {
-            // InternalCubeDSL.g:4323:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
-            int alt76=2;
-            int LA76_0 = input.LA(1);
+            // InternalCubeDSL.g:4421:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            int alt79=2;
+            int LA79_0 = input.LA(1);
 
-            if ( (LA76_0==48) ) {
-                int LA76_1 = input.LA(2);
+            if ( (LA79_0==51) ) {
+                int LA79_1 = input.LA(2);
 
-                if ( (LA76_1==49) ) {
-                    alt76=2;
+                if ( (LA79_1==52) ) {
+                    alt79=2;
                 }
-                else if ( (LA76_1==14) ) {
-                    alt76=1;
+                else if ( (LA79_1==14) ) {
+                    alt79=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 76, 1, input);
+                        new NoViableAltException("", 79, 1, input);
 
                     throw nvae;
                 }
@@ -12098,13 +12335,13 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 76, 0, input);
+                    new NoViableAltException("", 79, 0, input);
 
                 throw nvae;
             }
-            switch (alt76) {
+            switch (alt79) {
                 case 1 :
-                    // InternalCubeDSL.g:4324:3: this_XSetLiteral_0= ruleXSetLiteral
+                    // InternalCubeDSL.g:4422:3: this_XSetLiteral_0= ruleXSetLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12126,7 +12363,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:4333:3: this_XListLiteral_1= ruleXListLiteral
+                    // InternalCubeDSL.g:4431:3: this_XListLiteral_1= ruleXListLiteral
                     {
                     if ( state.backtracking==0 ) {
 
@@ -12172,7 +12409,7 @@
 
 
     // $ANTLR start "entryRuleXSetLiteral"
-    // InternalCubeDSL.g:4345:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
+    // InternalCubeDSL.g:4443:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
     public final EObject entryRuleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -12180,8 +12417,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4345:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
-            // InternalCubeDSL.g:4346:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
+            // InternalCubeDSL.g:4443:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
+            // InternalCubeDSL.g:4444:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSetLiteralRule()); 
@@ -12212,7 +12449,7 @@
 
 
     // $ANTLR start "ruleXSetLiteral"
-    // InternalCubeDSL.g:4352:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
+    // InternalCubeDSL.g:4450:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
     public final EObject ruleXSetLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -12229,14 +12466,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4358:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
-            // InternalCubeDSL.g:4359:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalCubeDSL.g:4456:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
+            // InternalCubeDSL.g:4457:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
             {
-            // InternalCubeDSL.g:4359:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
-            // InternalCubeDSL.g:4360:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
+            // InternalCubeDSL.g:4457:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalCubeDSL.g:4458:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
             {
-            // InternalCubeDSL.g:4360:3: ()
-            // InternalCubeDSL.g:4361:4: 
+            // InternalCubeDSL.g:4458:3: ()
+            // InternalCubeDSL.g:4459:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12248,41 +12485,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,48,FOLLOW_10); if (state.failed) return current;
+            otherlv_1=(Token)match(input,51,FOLLOW_10); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,14,FOLLOW_73); if (state.failed) return current;
+            otherlv_2=(Token)match(input,14,FOLLOW_76); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
               		
             }
-            // InternalCubeDSL.g:4375:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
-            int alt78=2;
-            int LA78_0 = input.LA(1);
+            // InternalCubeDSL.g:4473:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt81=2;
+            int LA81_0 = input.LA(1);
 
-            if ( ((LA78_0>=RULE_ID && LA78_0<=RULE_DECIMAL)||LA78_0==14||(LA78_0>=37 && LA78_0<=39)||LA78_0==44||(LA78_0>=48 && LA78_0<=49)||LA78_0==56||(LA78_0>=72 && LA78_0<=73)||LA78_0==77||LA78_0==84||LA78_0==86||(LA78_0>=90 && LA78_0<=92)||(LA78_0>=95 && LA78_0<=104)||LA78_0==106) ) {
-                alt78=1;
+            if ( ((LA81_0>=RULE_ID && LA81_0<=RULE_DECIMAL)||LA81_0==14||(LA81_0>=40 && LA81_0<=42)||LA81_0==47||(LA81_0>=51 && LA81_0<=52)||LA81_0==59||(LA81_0>=75 && LA81_0<=76)||LA81_0==80||LA81_0==87||LA81_0==89||(LA81_0>=93 && LA81_0<=95)||(LA81_0>=98 && LA81_0<=107)||LA81_0==109) ) {
+                alt81=1;
             }
-            switch (alt78) {
+            switch (alt81) {
                 case 1 :
-                    // InternalCubeDSL.g:4376:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalCubeDSL.g:4474:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalCubeDSL.g:4376:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:4377:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalCubeDSL.g:4474:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:4475:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:4377:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalCubeDSL.g:4378:6: lv_elements_3_0= ruleXExpression
+                    // InternalCubeDSL.g:4475:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalCubeDSL.g:4476:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_74);
+                    pushFollow(FOLLOW_77);
                     lv_elements_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -12306,39 +12543,39 @@
 
                     }
 
-                    // InternalCubeDSL.g:4395:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
-                    loop77:
+                    // InternalCubeDSL.g:4493:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop80:
                     do {
-                        int alt77=2;
-                        int LA77_0 = input.LA(1);
+                        int alt80=2;
+                        int LA80_0 = input.LA(1);
 
-                        if ( (LA77_0==45) ) {
-                            alt77=1;
+                        if ( (LA80_0==48) ) {
+                            alt80=1;
                         }
 
 
-                        switch (alt77) {
+                        switch (alt80) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:4396:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalCubeDSL.g:4494:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalCubeDSL.g:4400:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalCubeDSL.g:4401:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalCubeDSL.g:4498:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalCubeDSL.g:4499:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalCubeDSL.g:4401:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalCubeDSL.g:4402:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalCubeDSL.g:4499:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalCubeDSL.g:4500:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_74);
+                    	    pushFollow(FOLLOW_77);
                     	    lv_elements_5_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -12367,7 +12604,7 @@
                     	    break;
 
                     	default :
-                    	    break loop77;
+                    	    break loop80;
                         }
                     } while (true);
 
@@ -12408,7 +12645,7 @@
 
 
     // $ANTLR start "entryRuleXListLiteral"
-    // InternalCubeDSL.g:4429:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
+    // InternalCubeDSL.g:4527:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
     public final EObject entryRuleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -12416,8 +12653,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4429:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
-            // InternalCubeDSL.g:4430:2: iv_ruleXListLiteral= ruleXListLiteral EOF
+            // InternalCubeDSL.g:4527:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
+            // InternalCubeDSL.g:4528:2: iv_ruleXListLiteral= ruleXListLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXListLiteralRule()); 
@@ -12448,7 +12685,7 @@
 
 
     // $ANTLR start "ruleXListLiteral"
-    // InternalCubeDSL.g:4436:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
+    // InternalCubeDSL.g:4534:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
     public final EObject ruleXListLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -12465,14 +12702,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4442:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
-            // InternalCubeDSL.g:4443:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalCubeDSL.g:4540:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
+            // InternalCubeDSL.g:4541:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
             {
-            // InternalCubeDSL.g:4443:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
-            // InternalCubeDSL.g:4444:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
+            // InternalCubeDSL.g:4541:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalCubeDSL.g:4542:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
             {
-            // InternalCubeDSL.g:4444:3: ()
-            // InternalCubeDSL.g:4445:4: 
+            // InternalCubeDSL.g:4542:3: ()
+            // InternalCubeDSL.g:4543:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12484,41 +12721,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,48,FOLLOW_44); if (state.failed) return current;
+            otherlv_1=(Token)match(input,51,FOLLOW_47); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,49,FOLLOW_45); if (state.failed) return current;
+            otherlv_2=(Token)match(input,52,FOLLOW_48); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
               		
             }
-            // InternalCubeDSL.g:4459:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
-            int alt80=2;
-            int LA80_0 = input.LA(1);
+            // InternalCubeDSL.g:4557:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt83=2;
+            int LA83_0 = input.LA(1);
 
-            if ( ((LA80_0>=RULE_ID && LA80_0<=RULE_DECIMAL)||LA80_0==14||(LA80_0>=37 && LA80_0<=39)||LA80_0==44||(LA80_0>=48 && LA80_0<=49)||LA80_0==56||(LA80_0>=72 && LA80_0<=73)||LA80_0==77||LA80_0==84||LA80_0==86||(LA80_0>=90 && LA80_0<=92)||(LA80_0>=95 && LA80_0<=104)||LA80_0==106) ) {
-                alt80=1;
+            if ( ((LA83_0>=RULE_ID && LA83_0<=RULE_DECIMAL)||LA83_0==14||(LA83_0>=40 && LA83_0<=42)||LA83_0==47||(LA83_0>=51 && LA83_0<=52)||LA83_0==59||(LA83_0>=75 && LA83_0<=76)||LA83_0==80||LA83_0==87||LA83_0==89||(LA83_0>=93 && LA83_0<=95)||(LA83_0>=98 && LA83_0<=107)||LA83_0==109) ) {
+                alt83=1;
             }
-            switch (alt80) {
+            switch (alt83) {
                 case 1 :
-                    // InternalCubeDSL.g:4460:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    // InternalCubeDSL.g:4558:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                     {
-                    // InternalCubeDSL.g:4460:4: ( (lv_elements_3_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:4461:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalCubeDSL.g:4558:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:4559:5: (lv_elements_3_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:4461:5: (lv_elements_3_0= ruleXExpression )
-                    // InternalCubeDSL.g:4462:6: lv_elements_3_0= ruleXExpression
+                    // InternalCubeDSL.g:4559:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalCubeDSL.g:4560:6: lv_elements_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_46);
+                    pushFollow(FOLLOW_49);
                     lv_elements_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -12542,39 +12779,39 @@
 
                     }
 
-                    // InternalCubeDSL.g:4479:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
-                    loop79:
+                    // InternalCubeDSL.g:4577:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop82:
                     do {
-                        int alt79=2;
-                        int LA79_0 = input.LA(1);
+                        int alt82=2;
+                        int LA82_0 = input.LA(1);
 
-                        if ( (LA79_0==45) ) {
-                            alt79=1;
+                        if ( (LA82_0==48) ) {
+                            alt82=1;
                         }
 
 
-                        switch (alt79) {
+                        switch (alt82) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:4480:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalCubeDSL.g:4578:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalCubeDSL.g:4484:5: ( (lv_elements_5_0= ruleXExpression ) )
-                    	    // InternalCubeDSL.g:4485:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalCubeDSL.g:4582:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalCubeDSL.g:4583:6: (lv_elements_5_0= ruleXExpression )
                     	    {
-                    	    // InternalCubeDSL.g:4485:6: (lv_elements_5_0= ruleXExpression )
-                    	    // InternalCubeDSL.g:4486:7: lv_elements_5_0= ruleXExpression
+                    	    // InternalCubeDSL.g:4583:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalCubeDSL.g:4584:7: lv_elements_5_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_46);
+                    	    pushFollow(FOLLOW_49);
                     	    lv_elements_5_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -12603,7 +12840,7 @@
                     	    break;
 
                     	default :
-                    	    break loop79;
+                    	    break loop82;
                         }
                     } while (true);
 
@@ -12613,7 +12850,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
@@ -12644,7 +12881,7 @@
 
 
     // $ANTLR start "entryRuleXClosure"
-    // InternalCubeDSL.g:4513:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
+    // InternalCubeDSL.g:4611:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
     public final EObject entryRuleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12652,8 +12889,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4513:49: (iv_ruleXClosure= ruleXClosure EOF )
-            // InternalCubeDSL.g:4514:2: iv_ruleXClosure= ruleXClosure EOF
+            // InternalCubeDSL.g:4611:49: (iv_ruleXClosure= ruleXClosure EOF )
+            // InternalCubeDSL.g:4612:2: iv_ruleXClosure= ruleXClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXClosureRule()); 
@@ -12684,7 +12921,7 @@
 
 
     // $ANTLR start "ruleXClosure"
-    // InternalCubeDSL.g:4520:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
+    // InternalCubeDSL.g:4618:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
     public final EObject ruleXClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12703,20 +12940,20 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4526:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
-            // InternalCubeDSL.g:4527:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalCubeDSL.g:4624:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
+            // InternalCubeDSL.g:4625:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
             {
-            // InternalCubeDSL.g:4527:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
-            // InternalCubeDSL.g:4528:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
+            // InternalCubeDSL.g:4625:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalCubeDSL.g:4626:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
             {
-            // InternalCubeDSL.g:4528:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
-            // InternalCubeDSL.g:4529:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
+            // InternalCubeDSL.g:4626:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
+            // InternalCubeDSL.g:4627:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
             {
-            // InternalCubeDSL.g:4535:4: ( () otherlv_1= '[' )
-            // InternalCubeDSL.g:4536:5: () otherlv_1= '['
+            // InternalCubeDSL.g:4633:4: ( () otherlv_1= '[' )
+            // InternalCubeDSL.g:4634:5: () otherlv_1= '['
             {
-            // InternalCubeDSL.g:4536:5: ()
-            // InternalCubeDSL.g:4537:6: 
+            // InternalCubeDSL.g:4634:5: ()
+            // InternalCubeDSL.g:4635:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -12728,7 +12965,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,49,FOLLOW_75); if (state.failed) return current;
+            otherlv_1=(Token)match(input,52,FOLLOW_78); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
@@ -12740,39 +12977,39 @@
 
             }
 
-            // InternalCubeDSL.g:4549:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
-            int alt83=2;
-            alt83 = dfa83.predict(input);
-            switch (alt83) {
+            // InternalCubeDSL.g:4647:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
+            int alt86=2;
+            alt86 = dfa86.predict(input);
+            switch (alt86) {
                 case 1 :
-                    // InternalCubeDSL.g:4550:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalCubeDSL.g:4648:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
                     {
-                    // InternalCubeDSL.g:4573:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
-                    // InternalCubeDSL.g:4574:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalCubeDSL.g:4671:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalCubeDSL.g:4672:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
                     {
-                    // InternalCubeDSL.g:4574:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
-                    int alt82=2;
-                    int LA82_0 = input.LA(1);
+                    // InternalCubeDSL.g:4672:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
+                    int alt85=2;
+                    int LA85_0 = input.LA(1);
 
-                    if ( (LA82_0==RULE_ID||LA82_0==44||LA82_0==69) ) {
-                        alt82=1;
+                    if ( (LA85_0==RULE_ID||LA85_0==47||LA85_0==72) ) {
+                        alt85=1;
                     }
-                    switch (alt82) {
+                    switch (alt85) {
                         case 1 :
-                            // InternalCubeDSL.g:4575:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            // InternalCubeDSL.g:4673:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
                             {
-                            // InternalCubeDSL.g:4575:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
-                            // InternalCubeDSL.g:4576:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalCubeDSL.g:4673:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
+                            // InternalCubeDSL.g:4674:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
                             {
-                            // InternalCubeDSL.g:4576:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
-                            // InternalCubeDSL.g:4577:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
+                            // InternalCubeDSL.g:4674:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalCubeDSL.g:4675:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_76);
+                            pushFollow(FOLLOW_79);
                             lv_declaredFormalParameters_2_0=ruleJvmFormalParameter();
 
                             state._fsp--;
@@ -12796,39 +13033,39 @@
 
                             }
 
-                            // InternalCubeDSL.g:4594:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
-                            loop81:
+                            // InternalCubeDSL.g:4692:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            loop84:
                             do {
-                                int alt81=2;
-                                int LA81_0 = input.LA(1);
+                                int alt84=2;
+                                int LA84_0 = input.LA(1);
 
-                                if ( (LA81_0==45) ) {
-                                    alt81=1;
+                                if ( (LA84_0==48) ) {
+                                    alt84=1;
                                 }
 
 
-                                switch (alt81) {
+                                switch (alt84) {
                             	case 1 :
-                            	    // InternalCubeDSL.g:4595:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalCubeDSL.g:4693:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
                             	    {
-                            	    otherlv_3=(Token)match(input,45,FOLLOW_56); if (state.failed) return current;
+                            	    otherlv_3=(Token)match(input,48,FOLLOW_59); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
                             	      						
                             	    }
-                            	    // InternalCubeDSL.g:4599:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
-                            	    // InternalCubeDSL.g:4600:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalCubeDSL.g:4697:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalCubeDSL.g:4698:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
                             	    {
-                            	    // InternalCubeDSL.g:4600:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
-                            	    // InternalCubeDSL.g:4601:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
+                            	    // InternalCubeDSL.g:4698:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalCubeDSL.g:4699:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_76);
+                            	    pushFollow(FOLLOW_79);
                             	    lv_declaredFormalParameters_4_0=ruleJvmFormalParameter();
 
                             	    state._fsp--;
@@ -12857,7 +13094,7 @@
                             	    break;
 
                             	default :
-                            	    break loop81;
+                            	    break loop84;
                                 }
                             } while (true);
 
@@ -12867,13 +13104,13 @@
 
                     }
 
-                    // InternalCubeDSL.g:4620:5: ( (lv_explicitSyntax_5_0= '|' ) )
-                    // InternalCubeDSL.g:4621:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalCubeDSL.g:4718:5: ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalCubeDSL.g:4719:6: (lv_explicitSyntax_5_0= '|' )
                     {
-                    // InternalCubeDSL.g:4621:6: (lv_explicitSyntax_5_0= '|' )
-                    // InternalCubeDSL.g:4622:7: lv_explicitSyntax_5_0= '|'
+                    // InternalCubeDSL.g:4719:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalCubeDSL.g:4720:7: lv_explicitSyntax_5_0= '|'
                     {
-                    lv_explicitSyntax_5_0=(Token)match(input,83,FOLLOW_77); if (state.failed) return current;
+                    lv_explicitSyntax_5_0=(Token)match(input,86,FOLLOW_80); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
@@ -12902,18 +13139,18 @@
 
             }
 
-            // InternalCubeDSL.g:4636:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
-            // InternalCubeDSL.g:4637:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalCubeDSL.g:4734:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
+            // InternalCubeDSL.g:4735:4: (lv_expression_6_0= ruleXExpressionInClosure )
             {
-            // InternalCubeDSL.g:4637:4: (lv_expression_6_0= ruleXExpressionInClosure )
-            // InternalCubeDSL.g:4638:5: lv_expression_6_0= ruleXExpressionInClosure
+            // InternalCubeDSL.g:4735:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalCubeDSL.g:4736:5: lv_expression_6_0= ruleXExpressionInClosure
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_78);
+            pushFollow(FOLLOW_81);
             lv_expression_6_0=ruleXExpressionInClosure();
 
             state._fsp--;
@@ -12937,7 +13174,7 @@
 
             }
 
-            otherlv_7=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+            otherlv_7=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
@@ -12968,7 +13205,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionInClosure"
-    // InternalCubeDSL.g:4663:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
+    // InternalCubeDSL.g:4761:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
     public final EObject entryRuleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -12976,8 +13213,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4663:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
-            // InternalCubeDSL.g:4664:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
+            // InternalCubeDSL.g:4761:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
+            // InternalCubeDSL.g:4762:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionInClosureRule()); 
@@ -13008,7 +13245,7 @@
 
 
     // $ANTLR start "ruleXExpressionInClosure"
-    // InternalCubeDSL.g:4670:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
+    // InternalCubeDSL.g:4768:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
     public final EObject ruleXExpressionInClosure() throws RecognitionException {
         EObject current = null;
 
@@ -13020,14 +13257,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4676:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
-            // InternalCubeDSL.g:4677:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalCubeDSL.g:4774:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
+            // InternalCubeDSL.g:4775:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
             {
-            // InternalCubeDSL.g:4677:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
-            // InternalCubeDSL.g:4678:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            // InternalCubeDSL.g:4775:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalCubeDSL.g:4776:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
             {
-            // InternalCubeDSL.g:4678:3: ()
-            // InternalCubeDSL.g:4679:4: 
+            // InternalCubeDSL.g:4776:3: ()
+            // InternalCubeDSL.g:4777:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13039,33 +13276,33 @@
 
             }
 
-            // InternalCubeDSL.g:4685:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
-            loop85:
+            // InternalCubeDSL.g:4783:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            loop88:
             do {
-                int alt85=2;
-                int LA85_0 = input.LA(1);
+                int alt88=2;
+                int LA88_0 = input.LA(1);
 
-                if ( ((LA85_0>=RULE_ID && LA85_0<=RULE_DECIMAL)||LA85_0==14||(LA85_0>=37 && LA85_0<=39)||LA85_0==44||(LA85_0>=48 && LA85_0<=49)||LA85_0==56||(LA85_0>=72 && LA85_0<=73)||LA85_0==77||LA85_0==84||LA85_0==86||(LA85_0>=90 && LA85_0<=104)||LA85_0==106) ) {
-                    alt85=1;
+                if ( ((LA88_0>=RULE_ID && LA88_0<=RULE_DECIMAL)||LA88_0==14||(LA88_0>=40 && LA88_0<=42)||LA88_0==47||(LA88_0>=51 && LA88_0<=52)||LA88_0==59||(LA88_0>=75 && LA88_0<=76)||LA88_0==80||LA88_0==87||LA88_0==89||(LA88_0>=93 && LA88_0<=107)||LA88_0==109) ) {
+                    alt88=1;
                 }
 
 
-                switch (alt85) {
+                switch (alt88) {
             	case 1 :
-            	    // InternalCubeDSL.g:4686:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
+            	    // InternalCubeDSL.g:4784:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
             	    {
-            	    // InternalCubeDSL.g:4686:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalCubeDSL.g:4687:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalCubeDSL.g:4784:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalCubeDSL.g:4785:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalCubeDSL.g:4687:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalCubeDSL.g:4688:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
+            	    // InternalCubeDSL.g:4785:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalCubeDSL.g:4786:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_79);
+            	    pushFollow(FOLLOW_82);
             	    lv_expressions_1_0=ruleXExpressionOrVarDeclaration();
 
             	    state._fsp--;
@@ -13089,18 +13326,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:4705:4: (otherlv_2= ';' )?
-            	    int alt84=2;
-            	    int LA84_0 = input.LA(1);
+            	    // InternalCubeDSL.g:4803:4: (otherlv_2= ';' )?
+            	    int alt87=2;
+            	    int LA87_0 = input.LA(1);
 
-            	    if ( (LA84_0==42) ) {
-            	        alt84=1;
+            	    if ( (LA87_0==45) ) {
+            	        alt87=1;
             	    }
-            	    switch (alt84) {
+            	    switch (alt87) {
             	        case 1 :
-            	            // InternalCubeDSL.g:4706:5: otherlv_2= ';'
+            	            // InternalCubeDSL.g:4804:5: otherlv_2= ';'
             	            {
-            	            otherlv_2=(Token)match(input,42,FOLLOW_80); if (state.failed) return current;
+            	            otherlv_2=(Token)match(input,45,FOLLOW_83); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
@@ -13117,7 +13354,7 @@
             	    break;
 
             	default :
-            	    break loop85;
+            	    break loop88;
                 }
             } while (true);
 
@@ -13146,7 +13383,7 @@
 
 
     // $ANTLR start "entryRuleXShortClosure"
-    // InternalCubeDSL.g:4716:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
+    // InternalCubeDSL.g:4814:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
     public final EObject entryRuleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -13154,8 +13391,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4716:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
-            // InternalCubeDSL.g:4717:2: iv_ruleXShortClosure= ruleXShortClosure EOF
+            // InternalCubeDSL.g:4814:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
+            // InternalCubeDSL.g:4815:2: iv_ruleXShortClosure= ruleXShortClosure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXShortClosureRule()); 
@@ -13186,7 +13423,7 @@
 
 
     // $ANTLR start "ruleXShortClosure"
-    // InternalCubeDSL.g:4723:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    // InternalCubeDSL.g:4821:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXShortClosure() throws RecognitionException {
         EObject current = null;
 
@@ -13203,20 +13440,20 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4729:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalCubeDSL.g:4730:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:4827:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalCubeDSL.g:4828:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalCubeDSL.g:4730:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalCubeDSL.g:4731:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:4828:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:4829:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalCubeDSL.g:4731:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
-            // InternalCubeDSL.g:4732:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalCubeDSL.g:4829:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
+            // InternalCubeDSL.g:4830:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
             {
-            // InternalCubeDSL.g:4757:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
-            // InternalCubeDSL.g:4758:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalCubeDSL.g:4855:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalCubeDSL.g:4856:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
             {
-            // InternalCubeDSL.g:4758:5: ()
-            // InternalCubeDSL.g:4759:6: 
+            // InternalCubeDSL.g:4856:5: ()
+            // InternalCubeDSL.g:4857:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13228,29 +13465,29 @@
 
             }
 
-            // InternalCubeDSL.g:4765:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
-            int alt87=2;
-            int LA87_0 = input.LA(1);
+            // InternalCubeDSL.g:4863:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
+            int alt90=2;
+            int LA90_0 = input.LA(1);
 
-            if ( (LA87_0==RULE_ID||LA87_0==44||LA87_0==69) ) {
-                alt87=1;
+            if ( (LA90_0==RULE_ID||LA90_0==47||LA90_0==72) ) {
+                alt90=1;
             }
-            switch (alt87) {
+            switch (alt90) {
                 case 1 :
-                    // InternalCubeDSL.g:4766:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    // InternalCubeDSL.g:4864:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
                     {
-                    // InternalCubeDSL.g:4766:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
-                    // InternalCubeDSL.g:4767:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalCubeDSL.g:4864:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
+                    // InternalCubeDSL.g:4865:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
                     {
-                    // InternalCubeDSL.g:4767:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
-                    // InternalCubeDSL.g:4768:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
+                    // InternalCubeDSL.g:4865:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalCubeDSL.g:4866:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
                       								newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
                       							
                     }
-                    pushFollow(FOLLOW_76);
+                    pushFollow(FOLLOW_79);
                     lv_declaredFormalParameters_1_0=ruleJvmFormalParameter();
 
                     state._fsp--;
@@ -13274,39 +13511,39 @@
 
                     }
 
-                    // InternalCubeDSL.g:4785:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
-                    loop86:
+                    // InternalCubeDSL.g:4883:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    loop89:
                     do {
-                        int alt86=2;
-                        int LA86_0 = input.LA(1);
+                        int alt89=2;
+                        int LA89_0 = input.LA(1);
 
-                        if ( (LA86_0==45) ) {
-                            alt86=1;
+                        if ( (LA89_0==48) ) {
+                            alt89=1;
                         }
 
 
-                        switch (alt86) {
+                        switch (alt89) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:4786:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalCubeDSL.g:4884:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
                     	    {
-                    	    otherlv_2=(Token)match(input,45,FOLLOW_56); if (state.failed) return current;
+                    	    otherlv_2=(Token)match(input,48,FOLLOW_59); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
                     	      						
                     	    }
-                    	    // InternalCubeDSL.g:4790:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
-                    	    // InternalCubeDSL.g:4791:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalCubeDSL.g:4888:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalCubeDSL.g:4889:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
                     	    {
-                    	    // InternalCubeDSL.g:4791:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
-                    	    // InternalCubeDSL.g:4792:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
+                    	    // InternalCubeDSL.g:4889:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalCubeDSL.g:4890:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      									newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
                     	      								
                     	    }
-                    	    pushFollow(FOLLOW_76);
+                    	    pushFollow(FOLLOW_79);
                     	    lv_declaredFormalParameters_3_0=ruleJvmFormalParameter();
 
                     	    state._fsp--;
@@ -13335,7 +13572,7 @@
                     	    break;
 
                     	default :
-                    	    break loop86;
+                    	    break loop89;
                         }
                     } while (true);
 
@@ -13345,13 +13582,13 @@
 
             }
 
-            // InternalCubeDSL.g:4811:5: ( (lv_explicitSyntax_4_0= '|' ) )
-            // InternalCubeDSL.g:4812:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalCubeDSL.g:4909:5: ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalCubeDSL.g:4910:6: (lv_explicitSyntax_4_0= '|' )
             {
-            // InternalCubeDSL.g:4812:6: (lv_explicitSyntax_4_0= '|' )
-            // InternalCubeDSL.g:4813:7: lv_explicitSyntax_4_0= '|'
+            // InternalCubeDSL.g:4910:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalCubeDSL.g:4911:7: lv_explicitSyntax_4_0= '|'
             {
-            lv_explicitSyntax_4_0=(Token)match(input,83,FOLLOW_43); if (state.failed) return current;
+            lv_explicitSyntax_4_0=(Token)match(input,86,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               							newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
@@ -13377,11 +13614,11 @@
 
             }
 
-            // InternalCubeDSL.g:4827:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalCubeDSL.g:4828:4: (lv_expression_5_0= ruleXExpression )
+            // InternalCubeDSL.g:4925:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:4926:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:4828:4: (lv_expression_5_0= ruleXExpression )
-            // InternalCubeDSL.g:4829:5: lv_expression_5_0= ruleXExpression
+            // InternalCubeDSL.g:4926:4: (lv_expression_5_0= ruleXExpression )
+            // InternalCubeDSL.g:4927:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -13437,7 +13674,7 @@
 
 
     // $ANTLR start "entryRuleXParenthesizedExpression"
-    // InternalCubeDSL.g:4850:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
+    // InternalCubeDSL.g:4948:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
     public final EObject entryRuleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13445,8 +13682,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4850:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
-            // InternalCubeDSL.g:4851:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
+            // InternalCubeDSL.g:4948:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
+            // InternalCubeDSL.g:4949:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); 
@@ -13477,7 +13714,7 @@
 
 
     // $ANTLR start "ruleXParenthesizedExpression"
-    // InternalCubeDSL.g:4857:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
+    // InternalCubeDSL.g:4955:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
     public final EObject ruleXParenthesizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13490,13 +13727,13 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4863:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
-            // InternalCubeDSL.g:4864:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalCubeDSL.g:4961:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
+            // InternalCubeDSL.g:4962:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
             {
-            // InternalCubeDSL.g:4864:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
-            // InternalCubeDSL.g:4865:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
+            // InternalCubeDSL.g:4962:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalCubeDSL.g:4963:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,44,FOLLOW_43); if (state.failed) return current;
+            otherlv_0=(Token)match(input,47,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
@@ -13507,7 +13744,7 @@
               			newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
               		
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             this_XExpression_1=ruleXExpression();
 
             state._fsp--;
@@ -13518,7 +13755,7 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            otherlv_2=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
+            otherlv_2=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
@@ -13549,7 +13786,7 @@
 
 
     // $ANTLR start "entryRuleXIfExpression"
-    // InternalCubeDSL.g:4885:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
+    // InternalCubeDSL.g:4983:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
     public final EObject entryRuleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13557,8 +13794,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4885:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
-            // InternalCubeDSL.g:4886:2: iv_ruleXIfExpression= ruleXIfExpression EOF
+            // InternalCubeDSL.g:4983:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
+            // InternalCubeDSL.g:4984:2: iv_ruleXIfExpression= ruleXIfExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXIfExpressionRule()); 
@@ -13589,7 +13826,7 @@
 
 
     // $ANTLR start "ruleXIfExpression"
-    // InternalCubeDSL.g:4892:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
+    // InternalCubeDSL.g:4990:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
     public final EObject ruleXIfExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13608,14 +13845,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:4898:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
-            // InternalCubeDSL.g:4899:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalCubeDSL.g:4996:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
+            // InternalCubeDSL.g:4997:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
             {
-            // InternalCubeDSL.g:4899:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
-            // InternalCubeDSL.g:4900:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            // InternalCubeDSL.g:4997:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalCubeDSL.g:4998:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
             {
-            // InternalCubeDSL.g:4900:3: ()
-            // InternalCubeDSL.g:4901:4: 
+            // InternalCubeDSL.g:4998:3: ()
+            // InternalCubeDSL.g:4999:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13627,30 +13864,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,84,FOLLOW_81); if (state.failed) return current;
+            otherlv_1=(Token)match(input,87,FOLLOW_84); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,44,FOLLOW_43); if (state.failed) return current;
+            otherlv_2=(Token)match(input,47,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalCubeDSL.g:4915:3: ( (lv_if_3_0= ruleXExpression ) )
-            // InternalCubeDSL.g:4916:4: (lv_if_3_0= ruleXExpression )
+            // InternalCubeDSL.g:5013:3: ( (lv_if_3_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5014:4: (lv_if_3_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:4916:4: (lv_if_3_0= ruleXExpression )
-            // InternalCubeDSL.g:4917:5: lv_if_3_0= ruleXExpression
+            // InternalCubeDSL.g:5014:4: (lv_if_3_0= ruleXExpression )
+            // InternalCubeDSL.g:5015:5: lv_if_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
               				
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             lv_if_3_0=ruleXExpression();
 
             state._fsp--;
@@ -13674,24 +13911,24 @@
 
             }
 
-            otherlv_4=(Token)match(input,46,FOLLOW_43); if (state.failed) return current;
+            otherlv_4=(Token)match(input,49,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalCubeDSL.g:4938:3: ( (lv_then_5_0= ruleXExpression ) )
-            // InternalCubeDSL.g:4939:4: (lv_then_5_0= ruleXExpression )
+            // InternalCubeDSL.g:5036:3: ( (lv_then_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5037:4: (lv_then_5_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:4939:4: (lv_then_5_0= ruleXExpression )
-            // InternalCubeDSL.g:4940:5: lv_then_5_0= ruleXExpression
+            // InternalCubeDSL.g:5037:4: (lv_then_5_0= ruleXExpression )
+            // InternalCubeDSL.g:5038:5: lv_then_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
               				
             }
-            pushFollow(FOLLOW_82);
+            pushFollow(FOLLOW_85);
             lv_then_5_0=ruleXExpression();
 
             state._fsp--;
@@ -13715,25 +13952,25 @@
 
             }
 
-            // InternalCubeDSL.g:4957:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
-            int alt88=2;
-            int LA88_0 = input.LA(1);
+            // InternalCubeDSL.g:5055:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( (LA88_0==85) ) {
-                int LA88_1 = input.LA(2);
+            if ( (LA91_0==88) ) {
+                int LA91_1 = input.LA(2);
 
                 if ( (synpred31_InternalCubeDSL()) ) {
-                    alt88=1;
+                    alt91=1;
                 }
             }
-            switch (alt88) {
+            switch (alt91) {
                 case 1 :
-                    // InternalCubeDSL.g:4958:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5056:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
                     {
-                    // InternalCubeDSL.g:4958:4: ( ( 'else' )=>otherlv_6= 'else' )
-                    // InternalCubeDSL.g:4959:5: ( 'else' )=>otherlv_6= 'else'
+                    // InternalCubeDSL.g:5056:4: ( ( 'else' )=>otherlv_6= 'else' )
+                    // InternalCubeDSL.g:5057:5: ( 'else' )=>otherlv_6= 'else'
                     {
-                    otherlv_6=(Token)match(input,85,FOLLOW_43); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,88,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
@@ -13742,11 +13979,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:4965:4: ( (lv_else_7_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:4966:5: (lv_else_7_0= ruleXExpression )
+                    // InternalCubeDSL.g:5063:4: ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5064:5: (lv_else_7_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:4966:5: (lv_else_7_0= ruleXExpression )
-                    // InternalCubeDSL.g:4967:6: lv_else_7_0= ruleXExpression
+                    // InternalCubeDSL.g:5064:5: (lv_else_7_0= ruleXExpression )
+                    // InternalCubeDSL.g:5065:6: lv_else_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -13808,7 +14045,7 @@
 
 
     // $ANTLR start "entryRuleXSwitchExpression"
-    // InternalCubeDSL.g:4989:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
+    // InternalCubeDSL.g:5087:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
     public final EObject entryRuleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13816,8 +14053,8 @@
 
 
         try {
-            // InternalCubeDSL.g:4989:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
-            // InternalCubeDSL.g:4990:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
+            // InternalCubeDSL.g:5087:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
+            // InternalCubeDSL.g:5088:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSwitchExpressionRule()); 
@@ -13848,7 +14085,7 @@
 
 
     // $ANTLR start "ruleXSwitchExpression"
-    // InternalCubeDSL.g:4996:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
+    // InternalCubeDSL.g:5094:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
     public final EObject ruleXSwitchExpression() throws RecognitionException {
         EObject current = null;
 
@@ -13878,14 +14115,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5002:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
-            // InternalCubeDSL.g:5003:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalCubeDSL.g:5100:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
+            // InternalCubeDSL.g:5101:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
             {
-            // InternalCubeDSL.g:5003:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
-            // InternalCubeDSL.g:5004:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
+            // InternalCubeDSL.g:5101:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalCubeDSL.g:5102:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
             {
-            // InternalCubeDSL.g:5004:3: ()
-            // InternalCubeDSL.g:5005:4: 
+            // InternalCubeDSL.g:5102:3: ()
+            // InternalCubeDSL.g:5103:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -13897,46 +14134,46 @@
 
             }
 
-            otherlv_1=(Token)match(input,86,FOLLOW_83); if (state.failed) return current;
+            otherlv_1=(Token)match(input,89,FOLLOW_86); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
               		
             }
-            // InternalCubeDSL.g:5015:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
-            int alt90=2;
-            alt90 = dfa90.predict(input);
-            switch (alt90) {
+            // InternalCubeDSL.g:5113:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
+            int alt93=2;
+            alt93 = dfa93.predict(input);
+            switch (alt93) {
                 case 1 :
-                    // InternalCubeDSL.g:5016:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalCubeDSL.g:5114:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
                     {
-                    // InternalCubeDSL.g:5016:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
-                    // InternalCubeDSL.g:5017:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
+                    // InternalCubeDSL.g:5114:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalCubeDSL.g:5115:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
                     {
-                    // InternalCubeDSL.g:5017:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-                    // InternalCubeDSL.g:5018:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalCubeDSL.g:5115:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+                    // InternalCubeDSL.g:5116:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
                     {
-                    // InternalCubeDSL.g:5028:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-                    // InternalCubeDSL.g:5029:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+                    // InternalCubeDSL.g:5126:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalCubeDSL.g:5127:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
                     {
-                    otherlv_2=(Token)match(input,44,FOLLOW_56); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,47,FOLLOW_59); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
                       						
                     }
-                    // InternalCubeDSL.g:5033:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-                    // InternalCubeDSL.g:5034:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalCubeDSL.g:5131:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+                    // InternalCubeDSL.g:5132:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
                     {
-                    // InternalCubeDSL.g:5034:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-                    // InternalCubeDSL.g:5035:9: lv_declaredParam_3_0= ruleJvmFormalParameter
+                    // InternalCubeDSL.g:5132:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalCubeDSL.g:5133:9: lv_declaredParam_3_0= ruleJvmFormalParameter
                     {
                     if ( state.backtracking==0 ) {
 
                       									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0());
                       								
                     }
-                    pushFollow(FOLLOW_84);
+                    pushFollow(FOLLOW_87);
                     lv_declaredParam_3_0=ruleJvmFormalParameter();
 
                     state._fsp--;
@@ -13960,7 +14197,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,87,FOLLOW_43); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,90,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       							newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
@@ -13972,18 +14209,18 @@
 
                     }
 
-                    // InternalCubeDSL.g:5058:5: ( (lv_switch_5_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:5059:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalCubeDSL.g:5156:5: ( (lv_switch_5_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5157:6: (lv_switch_5_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:5059:6: (lv_switch_5_0= ruleXExpression )
-                    // InternalCubeDSL.g:5060:7: lv_switch_5_0= ruleXExpression
+                    // InternalCubeDSL.g:5157:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalCubeDSL.g:5158:7: lv_switch_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
                       						
                     }
-                    pushFollow(FOLLOW_41);
+                    pushFollow(FOLLOW_44);
                     lv_switch_5_0=ruleXExpression();
 
                     state._fsp--;
@@ -14007,7 +14244,7 @@
 
                     }
 
-                    otherlv_6=(Token)match(input,46,FOLLOW_10); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,49,FOLLOW_10); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
@@ -14020,33 +14257,33 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:5083:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalCubeDSL.g:5181:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
                     {
-                    // InternalCubeDSL.g:5083:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
-                    // InternalCubeDSL.g:5084:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5181:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalCubeDSL.g:5182:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
                     {
-                    // InternalCubeDSL.g:5084:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
-                    int alt89=2;
-                    alt89 = dfa89.predict(input);
-                    switch (alt89) {
+                    // InternalCubeDSL.g:5182:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
+                    int alt92=2;
+                    alt92 = dfa92.predict(input);
+                    switch (alt92) {
                         case 1 :
-                            // InternalCubeDSL.g:5085:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalCubeDSL.g:5183:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
                             {
-                            // InternalCubeDSL.g:5094:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
-                            // InternalCubeDSL.g:5095:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
+                            // InternalCubeDSL.g:5192:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalCubeDSL.g:5193:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
                             {
-                            // InternalCubeDSL.g:5095:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
-                            // InternalCubeDSL.g:5096:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalCubeDSL.g:5193:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
+                            // InternalCubeDSL.g:5194:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
                             {
-                            // InternalCubeDSL.g:5096:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
-                            // InternalCubeDSL.g:5097:9: lv_declaredParam_7_0= ruleJvmFormalParameter
+                            // InternalCubeDSL.g:5194:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalCubeDSL.g:5195:9: lv_declaredParam_7_0= ruleJvmFormalParameter
                             {
                             if ( state.backtracking==0 ) {
 
                               									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0());
                               								
                             }
-                            pushFollow(FOLLOW_84);
+                            pushFollow(FOLLOW_87);
                             lv_declaredParam_7_0=ruleJvmFormalParameter();
 
                             state._fsp--;
@@ -14070,7 +14307,7 @@
 
                             }
 
-                            otherlv_8=(Token)match(input,87,FOLLOW_43); if (state.failed) return current;
+                            otherlv_8=(Token)match(input,90,FOLLOW_46); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
@@ -14085,11 +14322,11 @@
 
                     }
 
-                    // InternalCubeDSL.g:5120:5: ( (lv_switch_9_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:5121:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalCubeDSL.g:5218:5: ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5219:6: (lv_switch_9_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:5121:6: (lv_switch_9_0= ruleXExpression )
-                    // InternalCubeDSL.g:5122:7: lv_switch_9_0= ruleXExpression
+                    // InternalCubeDSL.g:5219:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalCubeDSL.g:5220:7: lv_switch_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14129,36 +14366,36 @@
 
             }
 
-            otherlv_10=(Token)match(input,14,FOLLOW_85); if (state.failed) return current;
+            otherlv_10=(Token)match(input,14,FOLLOW_88); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
               		
             }
-            // InternalCubeDSL.g:5145:3: ( (lv_cases_11_0= ruleXCasePart ) )*
-            loop91:
+            // InternalCubeDSL.g:5243:3: ( (lv_cases_11_0= ruleXCasePart ) )*
+            loop94:
             do {
-                int alt91=2;
-                int LA91_0 = input.LA(1);
+                int alt94=2;
+                int LA94_0 = input.LA(1);
 
-                if ( (LA91_0==RULE_ID||(LA91_0>=44 && LA91_0<=45)||LA91_0==69||LA91_0==87||LA91_0==89) ) {
-                    alt91=1;
+                if ( (LA94_0==RULE_ID||(LA94_0>=47 && LA94_0<=48)||LA94_0==72||LA94_0==90||LA94_0==92) ) {
+                    alt94=1;
                 }
 
 
-                switch (alt91) {
+                switch (alt94) {
             	case 1 :
-            	    // InternalCubeDSL.g:5146:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalCubeDSL.g:5244:4: (lv_cases_11_0= ruleXCasePart )
             	    {
-            	    // InternalCubeDSL.g:5146:4: (lv_cases_11_0= ruleXCasePart )
-            	    // InternalCubeDSL.g:5147:5: lv_cases_11_0= ruleXCasePart
+            	    // InternalCubeDSL.g:5244:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalCubeDSL.g:5245:5: lv_cases_11_0= ruleXCasePart
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_85);
+            	    pushFollow(FOLLOW_88);
             	    lv_cases_11_0=ruleXCasePart();
 
             	    state._fsp--;
@@ -14184,38 +14421,38 @@
             	    break;
 
             	default :
-            	    break loop91;
+            	    break loop94;
                 }
             } while (true);
 
-            // InternalCubeDSL.g:5164:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
-            int alt92=2;
-            int LA92_0 = input.LA(1);
+            // InternalCubeDSL.g:5262:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
+            int alt95=2;
+            int LA95_0 = input.LA(1);
 
-            if ( (LA92_0==88) ) {
-                alt92=1;
+            if ( (LA95_0==91) ) {
+                alt95=1;
             }
-            switch (alt92) {
+            switch (alt95) {
                 case 1 :
-                    // InternalCubeDSL.g:5165:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5263:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
                     {
-                    otherlv_12=(Token)match(input,88,FOLLOW_84); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,91,FOLLOW_87); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
                       			
                     }
-                    otherlv_13=(Token)match(input,87,FOLLOW_43); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,90,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
                       			
                     }
-                    // InternalCubeDSL.g:5173:4: ( (lv_default_14_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:5174:5: (lv_default_14_0= ruleXExpression )
+                    // InternalCubeDSL.g:5271:4: ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5272:5: (lv_default_14_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:5174:5: (lv_default_14_0= ruleXExpression )
-                    // InternalCubeDSL.g:5175:6: lv_default_14_0= ruleXExpression
+                    // InternalCubeDSL.g:5272:5: (lv_default_14_0= ruleXExpression )
+                    // InternalCubeDSL.g:5273:6: lv_default_14_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14283,7 +14520,7 @@
 
 
     // $ANTLR start "entryRuleXCasePart"
-    // InternalCubeDSL.g:5201:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
+    // InternalCubeDSL.g:5299:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
     public final EObject entryRuleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -14291,8 +14528,8 @@
 
 
         try {
-            // InternalCubeDSL.g:5201:50: (iv_ruleXCasePart= ruleXCasePart EOF )
-            // InternalCubeDSL.g:5202:2: iv_ruleXCasePart= ruleXCasePart EOF
+            // InternalCubeDSL.g:5299:50: (iv_ruleXCasePart= ruleXCasePart EOF )
+            // InternalCubeDSL.g:5300:2: iv_ruleXCasePart= ruleXCasePart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCasePartRule()); 
@@ -14323,7 +14560,7 @@
 
 
     // $ANTLR start "ruleXCasePart"
-    // InternalCubeDSL.g:5208:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
+    // InternalCubeDSL.g:5306:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
     public final EObject ruleXCasePart() throws RecognitionException {
         EObject current = null;
 
@@ -14341,14 +14578,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5214:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
-            // InternalCubeDSL.g:5215:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalCubeDSL.g:5312:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
+            // InternalCubeDSL.g:5313:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
             {
-            // InternalCubeDSL.g:5215:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
-            // InternalCubeDSL.g:5216:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            // InternalCubeDSL.g:5313:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalCubeDSL.g:5314:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
             {
-            // InternalCubeDSL.g:5216:3: ()
-            // InternalCubeDSL.g:5217:4: 
+            // InternalCubeDSL.g:5314:3: ()
+            // InternalCubeDSL.g:5315:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14360,26 +14597,26 @@
 
             }
 
-            // InternalCubeDSL.g:5223:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
-            int alt93=2;
-            int LA93_0 = input.LA(1);
+            // InternalCubeDSL.g:5321:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
+            int alt96=2;
+            int LA96_0 = input.LA(1);
 
-            if ( (LA93_0==RULE_ID||LA93_0==44||LA93_0==69) ) {
-                alt93=1;
+            if ( (LA96_0==RULE_ID||LA96_0==47||LA96_0==72) ) {
+                alt96=1;
             }
-            switch (alt93) {
+            switch (alt96) {
                 case 1 :
-                    // InternalCubeDSL.g:5224:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalCubeDSL.g:5322:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
                     {
-                    // InternalCubeDSL.g:5224:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
-                    // InternalCubeDSL.g:5225:5: lv_typeGuard_1_0= ruleJvmTypeReference
+                    // InternalCubeDSL.g:5322:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalCubeDSL.g:5323:5: lv_typeGuard_1_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       					newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0());
                       				
                     }
-                    pushFollow(FOLLOW_86);
+                    pushFollow(FOLLOW_89);
                     lv_typeGuard_1_0=ruleJvmTypeReference();
 
                     state._fsp--;
@@ -14406,35 +14643,35 @@
 
             }
 
-            // InternalCubeDSL.g:5242:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
-            int alt94=2;
-            int LA94_0 = input.LA(1);
+            // InternalCubeDSL.g:5340:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
+            int alt97=2;
+            int LA97_0 = input.LA(1);
 
-            if ( (LA94_0==89) ) {
-                alt94=1;
+            if ( (LA97_0==92) ) {
+                alt97=1;
             }
-            switch (alt94) {
+            switch (alt97) {
                 case 1 :
-                    // InternalCubeDSL.g:5243:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5341:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
                     {
-                    otherlv_2=(Token)match(input,89,FOLLOW_43); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,92,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
                       			
                     }
-                    // InternalCubeDSL.g:5247:4: ( (lv_case_3_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:5248:5: (lv_case_3_0= ruleXExpression )
+                    // InternalCubeDSL.g:5345:4: ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5346:5: (lv_case_3_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:5248:5: (lv_case_3_0= ruleXExpression )
-                    // InternalCubeDSL.g:5249:6: lv_case_3_0= ruleXExpression
+                    // InternalCubeDSL.g:5346:5: (lv_case_3_0= ruleXExpression )
+                    // InternalCubeDSL.g:5347:6: lv_case_3_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_87);
+                    pushFollow(FOLLOW_90);
                     lv_case_3_0=ruleXExpression();
 
                     state._fsp--;
@@ -14464,41 +14701,41 @@
 
             }
 
-            // InternalCubeDSL.g:5267:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
-            int alt95=2;
-            int LA95_0 = input.LA(1);
+            // InternalCubeDSL.g:5365:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            int alt98=2;
+            int LA98_0 = input.LA(1);
 
-            if ( (LA95_0==87) ) {
-                alt95=1;
+            if ( (LA98_0==90) ) {
+                alt98=1;
             }
-            else if ( (LA95_0==45) ) {
-                alt95=2;
+            else if ( (LA98_0==48) ) {
+                alt98=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 95, 0, input);
+                    new NoViableAltException("", 98, 0, input);
 
                 throw nvae;
             }
-            switch (alt95) {
+            switch (alt98) {
                 case 1 :
-                    // InternalCubeDSL.g:5268:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalCubeDSL.g:5366:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
                     {
-                    // InternalCubeDSL.g:5268:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
-                    // InternalCubeDSL.g:5269:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5366:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalCubeDSL.g:5367:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
                     {
-                    otherlv_4=(Token)match(input,87,FOLLOW_43); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,90,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
                       				
                     }
-                    // InternalCubeDSL.g:5273:5: ( (lv_then_5_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:5274:6: (lv_then_5_0= ruleXExpression )
+                    // InternalCubeDSL.g:5371:5: ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5372:6: (lv_then_5_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:5274:6: (lv_then_5_0= ruleXExpression )
-                    // InternalCubeDSL.g:5275:7: lv_then_5_0= ruleXExpression
+                    // InternalCubeDSL.g:5372:6: (lv_then_5_0= ruleXExpression )
+                    // InternalCubeDSL.g:5373:7: lv_then_5_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -14536,15 +14773,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:5294:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalCubeDSL.g:5392:4: ( (lv_fallThrough_6_0= ',' ) )
                     {
-                    // InternalCubeDSL.g:5294:4: ( (lv_fallThrough_6_0= ',' ) )
-                    // InternalCubeDSL.g:5295:5: (lv_fallThrough_6_0= ',' )
+                    // InternalCubeDSL.g:5392:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalCubeDSL.g:5393:5: (lv_fallThrough_6_0= ',' )
                     {
-                    // InternalCubeDSL.g:5295:5: (lv_fallThrough_6_0= ',' )
-                    // InternalCubeDSL.g:5296:6: lv_fallThrough_6_0= ','
+                    // InternalCubeDSL.g:5393:5: (lv_fallThrough_6_0= ',' )
+                    // InternalCubeDSL.g:5394:6: lv_fallThrough_6_0= ','
                     {
-                    lv_fallThrough_6_0=(Token)match(input,45,FOLLOW_2); if (state.failed) return current;
+                    lv_fallThrough_6_0=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
@@ -14595,7 +14832,7 @@
 
 
     // $ANTLR start "entryRuleXForLoopExpression"
-    // InternalCubeDSL.g:5313:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
+    // InternalCubeDSL.g:5411:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
     public final EObject entryRuleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14603,8 +14840,8 @@
 
 
         try {
-            // InternalCubeDSL.g:5313:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
-            // InternalCubeDSL.g:5314:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
+            // InternalCubeDSL.g:5411:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
+            // InternalCubeDSL.g:5412:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXForLoopExpressionRule()); 
@@ -14635,7 +14872,7 @@
 
 
     // $ANTLR start "ruleXForLoopExpression"
-    // InternalCubeDSL.g:5320:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
+    // InternalCubeDSL.g:5418:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
     public final EObject ruleXForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14654,20 +14891,20 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5326:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
-            // InternalCubeDSL.g:5327:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:5424:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
+            // InternalCubeDSL.g:5425:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
             {
-            // InternalCubeDSL.g:5327:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
-            // InternalCubeDSL.g:5328:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5425:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:5426:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
             {
-            // InternalCubeDSL.g:5328:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
-            // InternalCubeDSL.g:5329:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalCubeDSL.g:5426:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+            // InternalCubeDSL.g:5427:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
             {
-            // InternalCubeDSL.g:5342:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
-            // InternalCubeDSL.g:5343:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+            // InternalCubeDSL.g:5440:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalCubeDSL.g:5441:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
             {
-            // InternalCubeDSL.g:5343:5: ()
-            // InternalCubeDSL.g:5344:6: 
+            // InternalCubeDSL.g:5441:5: ()
+            // InternalCubeDSL.g:5442:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14679,30 +14916,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,90,FOLLOW_81); if (state.failed) return current;
+            otherlv_1=(Token)match(input,93,FOLLOW_84); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,44,FOLLOW_56); if (state.failed) return current;
+            otherlv_2=(Token)match(input,47,FOLLOW_59); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
               				
             }
-            // InternalCubeDSL.g:5358:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
-            // InternalCubeDSL.g:5359:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalCubeDSL.g:5456:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+            // InternalCubeDSL.g:5457:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
             {
-            // InternalCubeDSL.g:5359:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
-            // InternalCubeDSL.g:5360:7: lv_declaredParam_3_0= ruleJvmFormalParameter
+            // InternalCubeDSL.g:5457:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalCubeDSL.g:5458:7: lv_declaredParam_3_0= ruleJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
               							newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0());
               						
             }
-            pushFollow(FOLLOW_84);
+            pushFollow(FOLLOW_87);
             lv_declaredParam_3_0=ruleJvmFormalParameter();
 
             state._fsp--;
@@ -14726,7 +14963,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,87,FOLLOW_43); if (state.failed) return current;
+            otherlv_4=(Token)match(input,90,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
@@ -14738,18 +14975,18 @@
 
             }
 
-            // InternalCubeDSL.g:5383:3: ( (lv_forExpression_5_0= ruleXExpression ) )
-            // InternalCubeDSL.g:5384:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalCubeDSL.g:5481:3: ( (lv_forExpression_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5482:4: (lv_forExpression_5_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:5384:4: (lv_forExpression_5_0= ruleXExpression )
-            // InternalCubeDSL.g:5385:5: lv_forExpression_5_0= ruleXExpression
+            // InternalCubeDSL.g:5482:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalCubeDSL.g:5483:5: lv_forExpression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             lv_forExpression_5_0=ruleXExpression();
 
             state._fsp--;
@@ -14773,17 +15010,17 @@
 
             }
 
-            otherlv_6=(Token)match(input,46,FOLLOW_43); if (state.failed) return current;
+            otherlv_6=(Token)match(input,49,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalCubeDSL.g:5406:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
-            // InternalCubeDSL.g:5407:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalCubeDSL.g:5504:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5505:4: (lv_eachExpression_7_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:5407:4: (lv_eachExpression_7_0= ruleXExpression )
-            // InternalCubeDSL.g:5408:5: lv_eachExpression_7_0= ruleXExpression
+            // InternalCubeDSL.g:5505:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalCubeDSL.g:5506:5: lv_eachExpression_7_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -14839,7 +15076,7 @@
 
 
     // $ANTLR start "entryRuleXBasicForLoopExpression"
-    // InternalCubeDSL.g:5429:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
+    // InternalCubeDSL.g:5527:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
     public final EObject entryRuleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14847,8 +15084,8 @@
 
 
         try {
-            // InternalCubeDSL.g:5429:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
-            // InternalCubeDSL.g:5430:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
+            // InternalCubeDSL.g:5527:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
+            // InternalCubeDSL.g:5528:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); 
@@ -14879,7 +15116,7 @@
 
 
     // $ANTLR start "ruleXBasicForLoopExpression"
-    // InternalCubeDSL.g:5436:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
+    // InternalCubeDSL.g:5534:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
     public final EObject ruleXBasicForLoopExpression() throws RecognitionException {
         EObject current = null;
 
@@ -14907,14 +15144,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5442:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
-            // InternalCubeDSL.g:5443:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:5540:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
+            // InternalCubeDSL.g:5541:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
             {
-            // InternalCubeDSL.g:5443:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
-            // InternalCubeDSL.g:5444:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5541:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:5542:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
             {
-            // InternalCubeDSL.g:5444:3: ()
-            // InternalCubeDSL.g:5445:4: 
+            // InternalCubeDSL.g:5542:3: ()
+            // InternalCubeDSL.g:5543:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -14926,41 +15163,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,90,FOLLOW_81); if (state.failed) return current;
+            otherlv_1=(Token)match(input,93,FOLLOW_84); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,44,FOLLOW_88); if (state.failed) return current;
+            otherlv_2=(Token)match(input,47,FOLLOW_91); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalCubeDSL.g:5459:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
-            int alt97=2;
-            int LA97_0 = input.LA(1);
+            // InternalCubeDSL.g:5557:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
+            int alt100=2;
+            int LA100_0 = input.LA(1);
 
-            if ( ((LA97_0>=RULE_ID && LA97_0<=RULE_DECIMAL)||LA97_0==14||(LA97_0>=37 && LA97_0<=39)||LA97_0==44||(LA97_0>=48 && LA97_0<=49)||LA97_0==56||(LA97_0>=72 && LA97_0<=73)||LA97_0==77||LA97_0==84||LA97_0==86||(LA97_0>=90 && LA97_0<=104)||LA97_0==106) ) {
-                alt97=1;
+            if ( ((LA100_0>=RULE_ID && LA100_0<=RULE_DECIMAL)||LA100_0==14||(LA100_0>=40 && LA100_0<=42)||LA100_0==47||(LA100_0>=51 && LA100_0<=52)||LA100_0==59||(LA100_0>=75 && LA100_0<=76)||LA100_0==80||LA100_0==87||LA100_0==89||(LA100_0>=93 && LA100_0<=107)||LA100_0==109) ) {
+                alt100=1;
             }
-            switch (alt97) {
+            switch (alt100) {
                 case 1 :
-                    // InternalCubeDSL.g:5460:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    // InternalCubeDSL.g:5558:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
                     {
-                    // InternalCubeDSL.g:5460:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
-                    // InternalCubeDSL.g:5461:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalCubeDSL.g:5558:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
+                    // InternalCubeDSL.g:5559:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
                     {
-                    // InternalCubeDSL.g:5461:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
-                    // InternalCubeDSL.g:5462:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
+                    // InternalCubeDSL.g:5559:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalCubeDSL.g:5560:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_89);
+                    pushFollow(FOLLOW_92);
                     lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration();
 
                     state._fsp--;
@@ -14984,39 +15221,39 @@
 
                     }
 
-                    // InternalCubeDSL.g:5479:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
-                    loop96:
+                    // InternalCubeDSL.g:5577:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    loop99:
                     do {
-                        int alt96=2;
-                        int LA96_0 = input.LA(1);
+                        int alt99=2;
+                        int LA99_0 = input.LA(1);
 
-                        if ( (LA96_0==45) ) {
-                            alt96=1;
+                        if ( (LA99_0==48) ) {
+                            alt99=1;
                         }
 
 
-                        switch (alt96) {
+                        switch (alt99) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:5480:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalCubeDSL.g:5578:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,45,FOLLOW_90); if (state.failed) return current;
+                    	    otherlv_4=(Token)match(input,48,FOLLOW_93); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
                     	      				
                     	    }
-                    	    // InternalCubeDSL.g:5484:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
-                    	    // InternalCubeDSL.g:5485:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalCubeDSL.g:5582:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalCubeDSL.g:5583:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
                     	    {
-                    	    // InternalCubeDSL.g:5485:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
-                    	    // InternalCubeDSL.g:5486:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
+                    	    // InternalCubeDSL.g:5583:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalCubeDSL.g:5584:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_89);
+                    	    pushFollow(FOLLOW_92);
                     	    lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration();
 
                     	    state._fsp--;
@@ -15045,7 +15282,7 @@
                     	    break;
 
                     	default :
-                    	    break loop96;
+                    	    break loop99;
                         }
                     } while (true);
 
@@ -15055,32 +15292,32 @@
 
             }
 
-            otherlv_6=(Token)match(input,42,FOLLOW_91); if (state.failed) return current;
+            otherlv_6=(Token)match(input,45,FOLLOW_94); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
               		
             }
-            // InternalCubeDSL.g:5509:3: ( (lv_expression_7_0= ruleXExpression ) )?
-            int alt98=2;
-            int LA98_0 = input.LA(1);
+            // InternalCubeDSL.g:5607:3: ( (lv_expression_7_0= ruleXExpression ) )?
+            int alt101=2;
+            int LA101_0 = input.LA(1);
 
-            if ( ((LA98_0>=RULE_ID && LA98_0<=RULE_DECIMAL)||LA98_0==14||(LA98_0>=37 && LA98_0<=39)||LA98_0==44||(LA98_0>=48 && LA98_0<=49)||LA98_0==56||(LA98_0>=72 && LA98_0<=73)||LA98_0==77||LA98_0==84||LA98_0==86||(LA98_0>=90 && LA98_0<=92)||(LA98_0>=95 && LA98_0<=104)||LA98_0==106) ) {
-                alt98=1;
+            if ( ((LA101_0>=RULE_ID && LA101_0<=RULE_DECIMAL)||LA101_0==14||(LA101_0>=40 && LA101_0<=42)||LA101_0==47||(LA101_0>=51 && LA101_0<=52)||LA101_0==59||(LA101_0>=75 && LA101_0<=76)||LA101_0==80||LA101_0==87||LA101_0==89||(LA101_0>=93 && LA101_0<=95)||(LA101_0>=98 && LA101_0<=107)||LA101_0==109) ) {
+                alt101=1;
             }
-            switch (alt98) {
+            switch (alt101) {
                 case 1 :
-                    // InternalCubeDSL.g:5510:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalCubeDSL.g:5608:4: (lv_expression_7_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:5510:4: (lv_expression_7_0= ruleXExpression )
-                    // InternalCubeDSL.g:5511:5: lv_expression_7_0= ruleXExpression
+                    // InternalCubeDSL.g:5608:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalCubeDSL.g:5609:5: lv_expression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       					newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0());
                       				
                     }
-                    pushFollow(FOLLOW_92);
+                    pushFollow(FOLLOW_95);
                     lv_expression_7_0=ruleXExpression();
 
                     state._fsp--;
@@ -15107,35 +15344,35 @@
 
             }
 
-            otherlv_8=(Token)match(input,42,FOLLOW_39); if (state.failed) return current;
+            otherlv_8=(Token)match(input,45,FOLLOW_42); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
               		
             }
-            // InternalCubeDSL.g:5532:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
-            int alt100=2;
-            int LA100_0 = input.LA(1);
+            // InternalCubeDSL.g:5630:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
+            int alt103=2;
+            int LA103_0 = input.LA(1);
 
-            if ( ((LA100_0>=RULE_ID && LA100_0<=RULE_DECIMAL)||LA100_0==14||(LA100_0>=37 && LA100_0<=39)||LA100_0==44||(LA100_0>=48 && LA100_0<=49)||LA100_0==56||(LA100_0>=72 && LA100_0<=73)||LA100_0==77||LA100_0==84||LA100_0==86||(LA100_0>=90 && LA100_0<=92)||(LA100_0>=95 && LA100_0<=104)||LA100_0==106) ) {
-                alt100=1;
+            if ( ((LA103_0>=RULE_ID && LA103_0<=RULE_DECIMAL)||LA103_0==14||(LA103_0>=40 && LA103_0<=42)||LA103_0==47||(LA103_0>=51 && LA103_0<=52)||LA103_0==59||(LA103_0>=75 && LA103_0<=76)||LA103_0==80||LA103_0==87||LA103_0==89||(LA103_0>=93 && LA103_0<=95)||(LA103_0>=98 && LA103_0<=107)||LA103_0==109) ) {
+                alt103=1;
             }
-            switch (alt100) {
+            switch (alt103) {
                 case 1 :
-                    // InternalCubeDSL.g:5533:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    // InternalCubeDSL.g:5631:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
                     {
-                    // InternalCubeDSL.g:5533:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:5534:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalCubeDSL.g:5631:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:5632:5: (lv_updateExpressions_9_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:5534:5: (lv_updateExpressions_9_0= ruleXExpression )
-                    // InternalCubeDSL.g:5535:6: lv_updateExpressions_9_0= ruleXExpression
+                    // InternalCubeDSL.g:5632:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalCubeDSL.g:5633:6: lv_updateExpressions_9_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_40);
+                    pushFollow(FOLLOW_43);
                     lv_updateExpressions_9_0=ruleXExpression();
 
                     state._fsp--;
@@ -15159,39 +15396,39 @@
 
                     }
 
-                    // InternalCubeDSL.g:5552:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
-                    loop99:
+                    // InternalCubeDSL.g:5650:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    loop102:
                     do {
-                        int alt99=2;
-                        int LA99_0 = input.LA(1);
+                        int alt102=2;
+                        int LA102_0 = input.LA(1);
 
-                        if ( (LA99_0==45) ) {
-                            alt99=1;
+                        if ( (LA102_0==48) ) {
+                            alt102=1;
                         }
 
 
-                        switch (alt99) {
+                        switch (alt102) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:5553:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalCubeDSL.g:5651:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
                     	    {
-                    	    otherlv_10=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+                    	    otherlv_10=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
                     	      				
                     	    }
-                    	    // InternalCubeDSL.g:5557:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
-                    	    // InternalCubeDSL.g:5558:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalCubeDSL.g:5655:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalCubeDSL.g:5656:6: (lv_updateExpressions_11_0= ruleXExpression )
                     	    {
-                    	    // InternalCubeDSL.g:5558:6: (lv_updateExpressions_11_0= ruleXExpression )
-                    	    // InternalCubeDSL.g:5559:7: lv_updateExpressions_11_0= ruleXExpression
+                    	    // InternalCubeDSL.g:5656:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalCubeDSL.g:5657:7: lv_updateExpressions_11_0= ruleXExpression
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_40);
+                    	    pushFollow(FOLLOW_43);
                     	    lv_updateExpressions_11_0=ruleXExpression();
 
                     	    state._fsp--;
@@ -15220,7 +15457,7 @@
                     	    break;
 
                     	default :
-                    	    break loop99;
+                    	    break loop102;
                         }
                     } while (true);
 
@@ -15230,17 +15467,17 @@
 
             }
 
-            otherlv_12=(Token)match(input,46,FOLLOW_43); if (state.failed) return current;
+            otherlv_12=(Token)match(input,49,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
               		
             }
-            // InternalCubeDSL.g:5582:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
-            // InternalCubeDSL.g:5583:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalCubeDSL.g:5680:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5681:4: (lv_eachExpression_13_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:5583:4: (lv_eachExpression_13_0= ruleXExpression )
-            // InternalCubeDSL.g:5584:5: lv_eachExpression_13_0= ruleXExpression
+            // InternalCubeDSL.g:5681:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalCubeDSL.g:5682:5: lv_eachExpression_13_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -15296,7 +15533,7 @@
 
 
     // $ANTLR start "entryRuleXWhileExpression"
-    // InternalCubeDSL.g:5605:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
+    // InternalCubeDSL.g:5703:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
     public final EObject entryRuleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15304,8 +15541,8 @@
 
 
         try {
-            // InternalCubeDSL.g:5605:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
-            // InternalCubeDSL.g:5606:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
+            // InternalCubeDSL.g:5703:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
+            // InternalCubeDSL.g:5704:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXWhileExpressionRule()); 
@@ -15336,7 +15573,7 @@
 
 
     // $ANTLR start "ruleXWhileExpression"
-    // InternalCubeDSL.g:5612:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
+    // InternalCubeDSL.g:5710:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15352,14 +15589,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5618:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
-            // InternalCubeDSL.g:5619:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:5716:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
+            // InternalCubeDSL.g:5717:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
             {
-            // InternalCubeDSL.g:5619:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
-            // InternalCubeDSL.g:5620:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5717:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:5718:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
             {
-            // InternalCubeDSL.g:5620:3: ()
-            // InternalCubeDSL.g:5621:4: 
+            // InternalCubeDSL.g:5718:3: ()
+            // InternalCubeDSL.g:5719:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15371,30 +15608,30 @@
 
             }
 
-            otherlv_1=(Token)match(input,91,FOLLOW_81); if (state.failed) return current;
+            otherlv_1=(Token)match(input,94,FOLLOW_84); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,44,FOLLOW_43); if (state.failed) return current;
+            otherlv_2=(Token)match(input,47,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalCubeDSL.g:5635:3: ( (lv_predicate_3_0= ruleXExpression ) )
-            // InternalCubeDSL.g:5636:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalCubeDSL.g:5733:3: ( (lv_predicate_3_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5734:4: (lv_predicate_3_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:5636:4: (lv_predicate_3_0= ruleXExpression )
-            // InternalCubeDSL.g:5637:5: lv_predicate_3_0= ruleXExpression
+            // InternalCubeDSL.g:5734:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalCubeDSL.g:5735:5: lv_predicate_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
               				
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             lv_predicate_3_0=ruleXExpression();
 
             state._fsp--;
@@ -15418,17 +15655,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,46,FOLLOW_43); if (state.failed) return current;
+            otherlv_4=(Token)match(input,49,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
               		
             }
-            // InternalCubeDSL.g:5658:3: ( (lv_body_5_0= ruleXExpression ) )
-            // InternalCubeDSL.g:5659:4: (lv_body_5_0= ruleXExpression )
+            // InternalCubeDSL.g:5756:3: ( (lv_body_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5757:4: (lv_body_5_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:5659:4: (lv_body_5_0= ruleXExpression )
-            // InternalCubeDSL.g:5660:5: lv_body_5_0= ruleXExpression
+            // InternalCubeDSL.g:5757:4: (lv_body_5_0= ruleXExpression )
+            // InternalCubeDSL.g:5758:5: lv_body_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -15484,7 +15721,7 @@
 
 
     // $ANTLR start "entryRuleXDoWhileExpression"
-    // InternalCubeDSL.g:5681:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
+    // InternalCubeDSL.g:5779:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
     public final EObject entryRuleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15492,8 +15729,8 @@
 
 
         try {
-            // InternalCubeDSL.g:5681:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
-            // InternalCubeDSL.g:5682:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
+            // InternalCubeDSL.g:5779:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
+            // InternalCubeDSL.g:5780:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); 
@@ -15524,7 +15761,7 @@
 
 
     // $ANTLR start "ruleXDoWhileExpression"
-    // InternalCubeDSL.g:5688:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
+    // InternalCubeDSL.g:5786:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
     public final EObject ruleXDoWhileExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15541,14 +15778,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5694:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
-            // InternalCubeDSL.g:5695:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalCubeDSL.g:5792:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
+            // InternalCubeDSL.g:5793:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
             {
-            // InternalCubeDSL.g:5695:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
-            // InternalCubeDSL.g:5696:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
+            // InternalCubeDSL.g:5793:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalCubeDSL.g:5794:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
             {
-            // InternalCubeDSL.g:5696:3: ()
-            // InternalCubeDSL.g:5697:4: 
+            // InternalCubeDSL.g:5794:3: ()
+            // InternalCubeDSL.g:5795:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15560,24 +15797,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,92,FOLLOW_43); if (state.failed) return current;
+            otherlv_1=(Token)match(input,95,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
               		
             }
-            // InternalCubeDSL.g:5707:3: ( (lv_body_2_0= ruleXExpression ) )
-            // InternalCubeDSL.g:5708:4: (lv_body_2_0= ruleXExpression )
+            // InternalCubeDSL.g:5805:3: ( (lv_body_2_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5806:4: (lv_body_2_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:5708:4: (lv_body_2_0= ruleXExpression )
-            // InternalCubeDSL.g:5709:5: lv_body_2_0= ruleXExpression
+            // InternalCubeDSL.g:5806:4: (lv_body_2_0= ruleXExpression )
+            // InternalCubeDSL.g:5807:5: lv_body_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_93);
+            pushFollow(FOLLOW_96);
             lv_body_2_0=ruleXExpression();
 
             state._fsp--;
@@ -15601,30 +15838,30 @@
 
             }
 
-            otherlv_3=(Token)match(input,91,FOLLOW_81); if (state.failed) return current;
+            otherlv_3=(Token)match(input,94,FOLLOW_84); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
               		
             }
-            otherlv_4=(Token)match(input,44,FOLLOW_43); if (state.failed) return current;
+            otherlv_4=(Token)match(input,47,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
               		
             }
-            // InternalCubeDSL.g:5734:3: ( (lv_predicate_5_0= ruleXExpression ) )
-            // InternalCubeDSL.g:5735:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalCubeDSL.g:5832:3: ( (lv_predicate_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:5833:4: (lv_predicate_5_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:5735:4: (lv_predicate_5_0= ruleXExpression )
-            // InternalCubeDSL.g:5736:5: lv_predicate_5_0= ruleXExpression
+            // InternalCubeDSL.g:5833:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalCubeDSL.g:5834:5: lv_predicate_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
               				
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             lv_predicate_5_0=ruleXExpression();
 
             state._fsp--;
@@ -15648,7 +15885,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
+            otherlv_6=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
@@ -15679,7 +15916,7 @@
 
 
     // $ANTLR start "entryRuleXBlockExpression"
-    // InternalCubeDSL.g:5761:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
+    // InternalCubeDSL.g:5859:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
     public final EObject entryRuleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15687,8 +15924,8 @@
 
 
         try {
-            // InternalCubeDSL.g:5761:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
-            // InternalCubeDSL.g:5762:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
+            // InternalCubeDSL.g:5859:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
+            // InternalCubeDSL.g:5860:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBlockExpressionRule()); 
@@ -15719,7 +15956,7 @@
 
 
     // $ANTLR start "ruleXBlockExpression"
-    // InternalCubeDSL.g:5768:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
+    // InternalCubeDSL.g:5866:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
     public final EObject ruleXBlockExpression() throws RecognitionException {
         EObject current = null;
 
@@ -15733,14 +15970,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5774:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
-            // InternalCubeDSL.g:5775:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalCubeDSL.g:5872:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
+            // InternalCubeDSL.g:5873:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
             {
-            // InternalCubeDSL.g:5775:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
-            // InternalCubeDSL.g:5776:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
+            // InternalCubeDSL.g:5873:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalCubeDSL.g:5874:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
             {
-            // InternalCubeDSL.g:5776:3: ()
-            // InternalCubeDSL.g:5777:4: 
+            // InternalCubeDSL.g:5874:3: ()
+            // InternalCubeDSL.g:5875:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -15752,39 +15989,39 @@
 
             }
 
-            otherlv_1=(Token)match(input,14,FOLLOW_94); if (state.failed) return current;
+            otherlv_1=(Token)match(input,14,FOLLOW_97); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
               		
             }
-            // InternalCubeDSL.g:5787:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
-            loop102:
+            // InternalCubeDSL.g:5885:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
+            loop105:
             do {
-                int alt102=2;
-                int LA102_0 = input.LA(1);
+                int alt105=2;
+                int LA105_0 = input.LA(1);
 
-                if ( ((LA102_0>=RULE_ID && LA102_0<=RULE_DECIMAL)||LA102_0==14||(LA102_0>=37 && LA102_0<=39)||LA102_0==44||(LA102_0>=48 && LA102_0<=49)||LA102_0==56||(LA102_0>=72 && LA102_0<=73)||LA102_0==77||LA102_0==84||LA102_0==86||(LA102_0>=90 && LA102_0<=104)||LA102_0==106) ) {
-                    alt102=1;
+                if ( ((LA105_0>=RULE_ID && LA105_0<=RULE_DECIMAL)||LA105_0==14||(LA105_0>=40 && LA105_0<=42)||LA105_0==47||(LA105_0>=51 && LA105_0<=52)||LA105_0==59||(LA105_0>=75 && LA105_0<=76)||LA105_0==80||LA105_0==87||LA105_0==89||(LA105_0>=93 && LA105_0<=107)||LA105_0==109) ) {
+                    alt105=1;
                 }
 
 
-                switch (alt102) {
+                switch (alt105) {
             	case 1 :
-            	    // InternalCubeDSL.g:5788:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
+            	    // InternalCubeDSL.g:5886:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
             	    {
-            	    // InternalCubeDSL.g:5788:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
-            	    // InternalCubeDSL.g:5789:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalCubeDSL.g:5886:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalCubeDSL.g:5887:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
             	    {
-            	    // InternalCubeDSL.g:5789:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
-            	    // InternalCubeDSL.g:5790:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
+            	    // InternalCubeDSL.g:5887:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalCubeDSL.g:5888:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_95);
+            	    pushFollow(FOLLOW_98);
             	    lv_expressions_2_0=ruleXExpressionOrVarDeclaration();
 
             	    state._fsp--;
@@ -15808,18 +16045,18 @@
 
             	    }
 
-            	    // InternalCubeDSL.g:5807:4: (otherlv_3= ';' )?
-            	    int alt101=2;
-            	    int LA101_0 = input.LA(1);
+            	    // InternalCubeDSL.g:5905:4: (otherlv_3= ';' )?
+            	    int alt104=2;
+            	    int LA104_0 = input.LA(1);
 
-            	    if ( (LA101_0==42) ) {
-            	        alt101=1;
+            	    if ( (LA104_0==45) ) {
+            	        alt104=1;
             	    }
-            	    switch (alt101) {
+            	    switch (alt104) {
             	        case 1 :
-            	            // InternalCubeDSL.g:5808:5: otherlv_3= ';'
+            	            // InternalCubeDSL.g:5906:5: otherlv_3= ';'
             	            {
-            	            otherlv_3=(Token)match(input,42,FOLLOW_94); if (state.failed) return current;
+            	            otherlv_3=(Token)match(input,45,FOLLOW_97); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
             	              					newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
@@ -15836,7 +16073,7 @@
             	    break;
 
             	default :
-            	    break loop102;
+            	    break loop105;
                 }
             } while (true);
 
@@ -15871,7 +16108,7 @@
 
 
     // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
-    // InternalCubeDSL.g:5822:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
+    // InternalCubeDSL.g:5920:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
     public final EObject entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -15879,8 +16116,8 @@
 
 
         try {
-            // InternalCubeDSL.g:5822:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
-            // InternalCubeDSL.g:5823:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
+            // InternalCubeDSL.g:5920:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
+            // InternalCubeDSL.g:5921:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); 
@@ -15911,7 +16148,7 @@
 
 
     // $ANTLR start "ruleXExpressionOrVarDeclaration"
-    // InternalCubeDSL.g:5829:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
+    // InternalCubeDSL.g:5927:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
     public final EObject ruleXExpressionOrVarDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -15924,29 +16161,29 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5835:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
-            // InternalCubeDSL.g:5836:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            // InternalCubeDSL.g:5933:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
+            // InternalCubeDSL.g:5934:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
             {
-            // InternalCubeDSL.g:5836:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
-            int alt103=2;
-            int LA103_0 = input.LA(1);
+            // InternalCubeDSL.g:5934:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            int alt106=2;
+            int LA106_0 = input.LA(1);
 
-            if ( ((LA103_0>=93 && LA103_0<=94)) ) {
-                alt103=1;
+            if ( ((LA106_0>=96 && LA106_0<=97)) ) {
+                alt106=1;
             }
-            else if ( ((LA103_0>=RULE_ID && LA103_0<=RULE_DECIMAL)||LA103_0==14||(LA103_0>=37 && LA103_0<=39)||LA103_0==44||(LA103_0>=48 && LA103_0<=49)||LA103_0==56||(LA103_0>=72 && LA103_0<=73)||LA103_0==77||LA103_0==84||LA103_0==86||(LA103_0>=90 && LA103_0<=92)||(LA103_0>=95 && LA103_0<=104)||LA103_0==106) ) {
-                alt103=2;
+            else if ( ((LA106_0>=RULE_ID && LA106_0<=RULE_DECIMAL)||LA106_0==14||(LA106_0>=40 && LA106_0<=42)||LA106_0==47||(LA106_0>=51 && LA106_0<=52)||LA106_0==59||(LA106_0>=75 && LA106_0<=76)||LA106_0==80||LA106_0==87||LA106_0==89||(LA106_0>=93 && LA106_0<=95)||(LA106_0>=98 && LA106_0<=107)||LA106_0==109) ) {
+                alt106=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 103, 0, input);
+                    new NoViableAltException("", 106, 0, input);
 
                 throw nvae;
             }
-            switch (alt103) {
+            switch (alt106) {
                 case 1 :
-                    // InternalCubeDSL.g:5837:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
+                    // InternalCubeDSL.g:5935:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
                     {
                     if ( state.backtracking==0 ) {
 
@@ -15968,7 +16205,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:5846:3: this_XExpression_1= ruleXExpression
+                    // InternalCubeDSL.g:5944:3: this_XExpression_1= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16014,7 +16251,7 @@
 
 
     // $ANTLR start "entryRuleXVariableDeclaration"
-    // InternalCubeDSL.g:5858:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
+    // InternalCubeDSL.g:5956:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
     public final EObject entryRuleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -16022,8 +16259,8 @@
 
 
         try {
-            // InternalCubeDSL.g:5858:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
-            // InternalCubeDSL.g:5859:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
+            // InternalCubeDSL.g:5956:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
+            // InternalCubeDSL.g:5957:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXVariableDeclarationRule()); 
@@ -16054,7 +16291,7 @@
 
 
     // $ANTLR start "ruleXVariableDeclaration"
-    // InternalCubeDSL.g:5865:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
+    // InternalCubeDSL.g:5963:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
     public final EObject ruleXVariableDeclaration() throws RecognitionException {
         EObject current = null;
 
@@ -16074,14 +16311,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:5871:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
-            // InternalCubeDSL.g:5872:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalCubeDSL.g:5969:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
+            // InternalCubeDSL.g:5970:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
             {
-            // InternalCubeDSL.g:5872:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
-            // InternalCubeDSL.g:5873:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            // InternalCubeDSL.g:5970:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalCubeDSL.g:5971:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
             {
-            // InternalCubeDSL.g:5873:3: ()
-            // InternalCubeDSL.g:5874:4: 
+            // InternalCubeDSL.g:5971:3: ()
+            // InternalCubeDSL.g:5972:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16093,34 +16330,34 @@
 
             }
 
-            // InternalCubeDSL.g:5880:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
-            int alt104=2;
-            int LA104_0 = input.LA(1);
+            // InternalCubeDSL.g:5978:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
+            int alt107=2;
+            int LA107_0 = input.LA(1);
 
-            if ( (LA104_0==93) ) {
-                alt104=1;
+            if ( (LA107_0==96) ) {
+                alt107=1;
             }
-            else if ( (LA104_0==94) ) {
-                alt104=2;
+            else if ( (LA107_0==97) ) {
+                alt107=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 104, 0, input);
+                    new NoViableAltException("", 107, 0, input);
 
                 throw nvae;
             }
-            switch (alt104) {
+            switch (alt107) {
                 case 1 :
-                    // InternalCubeDSL.g:5881:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalCubeDSL.g:5979:4: ( (lv_writeable_1_0= 'var' ) )
                     {
-                    // InternalCubeDSL.g:5881:4: ( (lv_writeable_1_0= 'var' ) )
-                    // InternalCubeDSL.g:5882:5: (lv_writeable_1_0= 'var' )
+                    // InternalCubeDSL.g:5979:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalCubeDSL.g:5980:5: (lv_writeable_1_0= 'var' )
                     {
-                    // InternalCubeDSL.g:5882:5: (lv_writeable_1_0= 'var' )
-                    // InternalCubeDSL.g:5883:6: lv_writeable_1_0= 'var'
+                    // InternalCubeDSL.g:5980:5: (lv_writeable_1_0= 'var' )
+                    // InternalCubeDSL.g:5981:6: lv_writeable_1_0= 'var'
                     {
-                    lv_writeable_1_0=(Token)match(input,93,FOLLOW_56); if (state.failed) return current;
+                    lv_writeable_1_0=(Token)match(input,96,FOLLOW_59); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
@@ -16144,9 +16381,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:5896:4: otherlv_2= 'val'
+                    // InternalCubeDSL.g:5994:4: otherlv_2= 'val'
                     {
-                    otherlv_2=(Token)match(input,94,FOLLOW_56); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,97,FOLLOW_59); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
@@ -16158,55 +16395,55 @@
 
             }
 
-            // InternalCubeDSL.g:5901:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
-            int alt105=2;
-            int LA105_0 = input.LA(1);
+            // InternalCubeDSL.g:5999:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
+            int alt108=2;
+            int LA108_0 = input.LA(1);
 
-            if ( (LA105_0==RULE_ID) ) {
-                int LA105_1 = input.LA(2);
+            if ( (LA108_0==RULE_ID) ) {
+                int LA108_1 = input.LA(2);
 
                 if ( (synpred35_InternalCubeDSL()) ) {
-                    alt105=1;
+                    alt108=1;
                 }
                 else if ( (true) ) {
-                    alt105=2;
+                    alt108=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return current;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 105, 1, input);
+                        new NoViableAltException("", 108, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA105_0==44) && (synpred35_InternalCubeDSL())) {
-                alt105=1;
+            else if ( (LA108_0==47) && (synpred35_InternalCubeDSL())) {
+                alt108=1;
             }
-            else if ( (LA105_0==69) && (synpred35_InternalCubeDSL())) {
-                alt105=1;
+            else if ( (LA108_0==72) && (synpred35_InternalCubeDSL())) {
+                alt108=1;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 105, 0, input);
+                    new NoViableAltException("", 108, 0, input);
 
                 throw nvae;
             }
-            switch (alt105) {
+            switch (alt108) {
                 case 1 :
-                    // InternalCubeDSL.g:5902:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalCubeDSL.g:6000:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
                     {
-                    // InternalCubeDSL.g:5902:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
-                    // InternalCubeDSL.g:5903:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalCubeDSL.g:6000:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalCubeDSL.g:6001:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
                     {
-                    // InternalCubeDSL.g:5916:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
-                    // InternalCubeDSL.g:5917:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
+                    // InternalCubeDSL.g:6014:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalCubeDSL.g:6015:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
                     {
-                    // InternalCubeDSL.g:5917:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
-                    // InternalCubeDSL.g:5918:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalCubeDSL.g:6015:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
+                    // InternalCubeDSL.g:6016:7: (lv_type_3_0= ruleJvmTypeReference )
                     {
-                    // InternalCubeDSL.g:5918:7: (lv_type_3_0= ruleJvmTypeReference )
-                    // InternalCubeDSL.g:5919:8: lv_type_3_0= ruleJvmTypeReference
+                    // InternalCubeDSL.g:6016:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalCubeDSL.g:6017:8: lv_type_3_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16237,18 +16474,18 @@
 
                     }
 
-                    // InternalCubeDSL.g:5936:6: ( (lv_name_4_0= ruleValidID ) )
-                    // InternalCubeDSL.g:5937:7: (lv_name_4_0= ruleValidID )
+                    // InternalCubeDSL.g:6034:6: ( (lv_name_4_0= ruleValidID ) )
+                    // InternalCubeDSL.g:6035:7: (lv_name_4_0= ruleValidID )
                     {
-                    // InternalCubeDSL.g:5937:7: (lv_name_4_0= ruleValidID )
-                    // InternalCubeDSL.g:5938:8: lv_name_4_0= ruleValidID
+                    // InternalCubeDSL.g:6035:7: (lv_name_4_0= ruleValidID )
+                    // InternalCubeDSL.g:6036:8: lv_name_4_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
                       								newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
                       							
                     }
-                    pushFollow(FOLLOW_96);
+                    pushFollow(FOLLOW_99);
                     lv_name_4_0=ruleValidID();
 
                     state._fsp--;
@@ -16282,20 +16519,20 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:5958:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalCubeDSL.g:6056:4: ( (lv_name_5_0= ruleValidID ) )
                     {
-                    // InternalCubeDSL.g:5958:4: ( (lv_name_5_0= ruleValidID ) )
-                    // InternalCubeDSL.g:5959:5: (lv_name_5_0= ruleValidID )
+                    // InternalCubeDSL.g:6056:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalCubeDSL.g:6057:5: (lv_name_5_0= ruleValidID )
                     {
-                    // InternalCubeDSL.g:5959:5: (lv_name_5_0= ruleValidID )
-                    // InternalCubeDSL.g:5960:6: lv_name_5_0= ruleValidID
+                    // InternalCubeDSL.g:6057:5: (lv_name_5_0= ruleValidID )
+                    // InternalCubeDSL.g:6058:6: lv_name_5_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_96);
+                    pushFollow(FOLLOW_99);
                     lv_name_5_0=ruleValidID();
 
                     state._fsp--;
@@ -16325,28 +16562,28 @@
 
             }
 
-            // InternalCubeDSL.g:5978:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
-            int alt106=2;
-            int LA106_0 = input.LA(1);
+            // InternalCubeDSL.g:6076:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            int alt109=2;
+            int LA109_0 = input.LA(1);
 
-            if ( (LA106_0==47) ) {
-                alt106=1;
+            if ( (LA109_0==50) ) {
+                alt109=1;
             }
-            switch (alt106) {
+            switch (alt109) {
                 case 1 :
-                    // InternalCubeDSL.g:5979:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:6077:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,47,FOLLOW_43); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,50,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
                       			
                     }
-                    // InternalCubeDSL.g:5983:4: ( (lv_right_7_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:5984:5: (lv_right_7_0= ruleXExpression )
+                    // InternalCubeDSL.g:6081:4: ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:6082:5: (lv_right_7_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:5984:5: (lv_right_7_0= ruleXExpression )
-                    // InternalCubeDSL.g:5985:6: lv_right_7_0= ruleXExpression
+                    // InternalCubeDSL.g:6082:5: (lv_right_7_0= ruleXExpression )
+                    // InternalCubeDSL.g:6083:6: lv_right_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16408,7 +16645,7 @@
 
 
     // $ANTLR start "entryRuleJvmFormalParameter"
-    // InternalCubeDSL.g:6007:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
+    // InternalCubeDSL.g:6105:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
     public final EObject entryRuleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -16416,8 +16653,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6007:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
-            // InternalCubeDSL.g:6008:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
+            // InternalCubeDSL.g:6105:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
+            // InternalCubeDSL.g:6106:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmFormalParameterRule()); 
@@ -16448,7 +16685,7 @@
 
 
     // $ANTLR start "ruleJvmFormalParameter"
-    // InternalCubeDSL.g:6014:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalCubeDSL.g:6112:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
     public final EObject ruleJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -16461,32 +16698,32 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6020:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalCubeDSL.g:6021:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalCubeDSL.g:6118:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalCubeDSL.g:6119:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalCubeDSL.g:6021:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalCubeDSL.g:6022:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
+            // InternalCubeDSL.g:6119:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalCubeDSL.g:6120:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalCubeDSL.g:6022:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
-            int alt107=2;
-            int LA107_0 = input.LA(1);
+            // InternalCubeDSL.g:6120:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
+            int alt110=2;
+            int LA110_0 = input.LA(1);
 
-            if ( (LA107_0==RULE_ID) ) {
-                int LA107_1 = input.LA(2);
+            if ( (LA110_0==RULE_ID) ) {
+                int LA110_1 = input.LA(2);
 
-                if ( (LA107_1==RULE_ID||LA107_1==36||LA107_1==49||LA107_1==56) ) {
-                    alt107=1;
+                if ( (LA110_1==RULE_ID||LA110_1==39||LA110_1==52||LA110_1==59) ) {
+                    alt110=1;
                 }
             }
-            else if ( (LA107_0==44||LA107_0==69) ) {
-                alt107=1;
+            else if ( (LA110_0==47||LA110_0==72) ) {
+                alt110=1;
             }
-            switch (alt107) {
+            switch (alt110) {
                 case 1 :
-                    // InternalCubeDSL.g:6023:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalCubeDSL.g:6121:4: (lv_parameterType_0_0= ruleJvmTypeReference )
                     {
-                    // InternalCubeDSL.g:6023:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-                    // InternalCubeDSL.g:6024:5: lv_parameterType_0_0= ruleJvmTypeReference
+                    // InternalCubeDSL.g:6121:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalCubeDSL.g:6122:5: lv_parameterType_0_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -16520,11 +16757,11 @@
 
             }
 
-            // InternalCubeDSL.g:6041:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalCubeDSL.g:6042:4: (lv_name_1_0= ruleValidID )
+            // InternalCubeDSL.g:6139:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalCubeDSL.g:6140:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalCubeDSL.g:6042:4: (lv_name_1_0= ruleValidID )
-            // InternalCubeDSL.g:6043:5: lv_name_1_0= ruleValidID
+            // InternalCubeDSL.g:6140:4: (lv_name_1_0= ruleValidID )
+            // InternalCubeDSL.g:6141:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -16580,7 +16817,7 @@
 
 
     // $ANTLR start "entryRuleFullJvmFormalParameter"
-    // InternalCubeDSL.g:6064:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
+    // InternalCubeDSL.g:6162:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
     public final EObject entryRuleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -16588,8 +16825,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6064:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
-            // InternalCubeDSL.g:6065:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
+            // InternalCubeDSL.g:6162:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
+            // InternalCubeDSL.g:6163:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); 
@@ -16620,7 +16857,7 @@
 
 
     // $ANTLR start "ruleFullJvmFormalParameter"
-    // InternalCubeDSL.g:6071:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
+    // InternalCubeDSL.g:6169:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
     public final EObject ruleFullJvmFormalParameter() throws RecognitionException {
         EObject current = null;
 
@@ -16633,17 +16870,17 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6077:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
-            // InternalCubeDSL.g:6078:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalCubeDSL.g:6175:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalCubeDSL.g:6176:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
             {
-            // InternalCubeDSL.g:6078:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
-            // InternalCubeDSL.g:6079:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
+            // InternalCubeDSL.g:6176:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalCubeDSL.g:6177:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
             {
-            // InternalCubeDSL.g:6079:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:6080:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:6177:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:6178:4: (lv_parameterType_0_0= ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:6080:4: (lv_parameterType_0_0= ruleJvmTypeReference )
-            // InternalCubeDSL.g:6081:5: lv_parameterType_0_0= ruleJvmTypeReference
+            // InternalCubeDSL.g:6178:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:6179:5: lv_parameterType_0_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -16674,11 +16911,11 @@
 
             }
 
-            // InternalCubeDSL.g:6098:3: ( (lv_name_1_0= ruleValidID ) )
-            // InternalCubeDSL.g:6099:4: (lv_name_1_0= ruleValidID )
+            // InternalCubeDSL.g:6196:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalCubeDSL.g:6197:4: (lv_name_1_0= ruleValidID )
             {
-            // InternalCubeDSL.g:6099:4: (lv_name_1_0= ruleValidID )
-            // InternalCubeDSL.g:6100:5: lv_name_1_0= ruleValidID
+            // InternalCubeDSL.g:6197:4: (lv_name_1_0= ruleValidID )
+            // InternalCubeDSL.g:6198:5: lv_name_1_0= ruleValidID
             {
             if ( state.backtracking==0 ) {
 
@@ -16734,7 +16971,7 @@
 
 
     // $ANTLR start "entryRuleXFeatureCall"
-    // InternalCubeDSL.g:6121:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
+    // InternalCubeDSL.g:6219:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
     public final EObject entryRuleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -16742,8 +16979,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6121:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
-            // InternalCubeDSL.g:6122:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
+            // InternalCubeDSL.g:6219:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
+            // InternalCubeDSL.g:6220:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFeatureCallRule()); 
@@ -16774,7 +17011,7 @@
 
 
     // $ANTLR start "ruleXFeatureCall"
-    // InternalCubeDSL.g:6128:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
+    // InternalCubeDSL.g:6226:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
     public final EObject ruleXFeatureCall() throws RecognitionException {
         EObject current = null;
 
@@ -16801,14 +17038,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6134:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
-            // InternalCubeDSL.g:6135:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalCubeDSL.g:6232:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
+            // InternalCubeDSL.g:6233:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
             {
-            // InternalCubeDSL.g:6135:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
-            // InternalCubeDSL.g:6136:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            // InternalCubeDSL.g:6233:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalCubeDSL.g:6234:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
             {
-            // InternalCubeDSL.g:6136:3: ()
-            // InternalCubeDSL.g:6137:4: 
+            // InternalCubeDSL.g:6234:3: ()
+            // InternalCubeDSL.g:6235:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -16820,35 +17057,35 @@
 
             }
 
-            // InternalCubeDSL.g:6143:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
-            int alt109=2;
-            int LA109_0 = input.LA(1);
+            // InternalCubeDSL.g:6241:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+            int alt112=2;
+            int LA112_0 = input.LA(1);
 
-            if ( (LA109_0==56) ) {
-                alt109=1;
+            if ( (LA112_0==59) ) {
+                alt112=1;
             }
-            switch (alt109) {
+            switch (alt112) {
                 case 1 :
-                    // InternalCubeDSL.g:6144:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
+                    // InternalCubeDSL.g:6242:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
                     {
-                    otherlv_1=(Token)match(input,56,FOLLOW_68); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,59,FOLLOW_71); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
                       			
                     }
-                    // InternalCubeDSL.g:6148:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalCubeDSL.g:6149:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalCubeDSL.g:6246:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalCubeDSL.g:6247:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalCubeDSL.g:6149:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalCubeDSL.g:6150:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalCubeDSL.g:6247:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalCubeDSL.g:6248:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_69);
+                    pushFollow(FOLLOW_72);
                     lv_typeArguments_2_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -16872,39 +17109,39 @@
 
                     }
 
-                    // InternalCubeDSL.g:6167:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop108:
+                    // InternalCubeDSL.g:6265:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop111:
                     do {
-                        int alt108=2;
-                        int LA108_0 = input.LA(1);
+                        int alt111=2;
+                        int LA111_0 = input.LA(1);
 
-                        if ( (LA108_0==45) ) {
-                            alt108=1;
+                        if ( (LA111_0==48) ) {
+                            alt111=1;
                         }
 
 
-                        switch (alt108) {
+                        switch (alt111) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:6168:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalCubeDSL.g:6266:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,45,FOLLOW_68); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,48,FOLLOW_71); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalCubeDSL.g:6172:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalCubeDSL.g:6173:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalCubeDSL.g:6270:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalCubeDSL.g:6271:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalCubeDSL.g:6173:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalCubeDSL.g:6174:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalCubeDSL.g:6271:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalCubeDSL.g:6272:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_69);
+                    	    pushFollow(FOLLOW_72);
                     	    lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -16933,11 +17170,11 @@
                     	    break;
 
                     	default :
-                    	    break loop108;
+                    	    break loop111;
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,57,FOLLOW_67); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,60,FOLLOW_70); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
@@ -16949,11 +17186,11 @@
 
             }
 
-            // InternalCubeDSL.g:6197:3: ( ( ruleIdOrSuper ) )
-            // InternalCubeDSL.g:6198:4: ( ruleIdOrSuper )
+            // InternalCubeDSL.g:6295:3: ( ( ruleIdOrSuper ) )
+            // InternalCubeDSL.g:6296:4: ( ruleIdOrSuper )
             {
-            // InternalCubeDSL.g:6198:4: ( ruleIdOrSuper )
-            // InternalCubeDSL.g:6199:5: ruleIdOrSuper
+            // InternalCubeDSL.g:6296:4: ( ruleIdOrSuper )
+            // InternalCubeDSL.g:6297:5: ruleIdOrSuper
             {
             if ( state.backtracking==0 ) {
 
@@ -16967,7 +17204,7 @@
               					newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_97);
+            pushFollow(FOLLOW_100);
             ruleIdOrSuper();
 
             state._fsp--;
@@ -16983,20 +17220,20 @@
 
             }
 
-            // InternalCubeDSL.g:6213:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
-            int alt112=2;
-            alt112 = dfa112.predict(input);
-            switch (alt112) {
+            // InternalCubeDSL.g:6311:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
+            int alt115=2;
+            alt115 = dfa115.predict(input);
+            switch (alt115) {
                 case 1 :
-                    // InternalCubeDSL.g:6214:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
+                    // InternalCubeDSL.g:6312:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
                     {
-                    // InternalCubeDSL.g:6214:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
-                    // InternalCubeDSL.g:6215:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
+                    // InternalCubeDSL.g:6312:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
+                    // InternalCubeDSL.g:6313:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
                     {
-                    // InternalCubeDSL.g:6219:5: (lv_explicitOperationCall_7_0= '(' )
-                    // InternalCubeDSL.g:6220:6: lv_explicitOperationCall_7_0= '('
+                    // InternalCubeDSL.g:6317:5: (lv_explicitOperationCall_7_0= '(' )
+                    // InternalCubeDSL.g:6318:6: lv_explicitOperationCall_7_0= '('
                     {
-                    lv_explicitOperationCall_7_0=(Token)match(input,44,FOLLOW_71); if (state.failed) return current;
+                    lv_explicitOperationCall_7_0=(Token)match(input,47,FOLLOW_74); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
@@ -17016,25 +17253,25 @@
 
                     }
 
-                    // InternalCubeDSL.g:6232:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
-                    int alt111=3;
-                    alt111 = dfa111.predict(input);
-                    switch (alt111) {
+                    // InternalCubeDSL.g:6330:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
+                    int alt114=3;
+                    alt114 = dfa114.predict(input);
+                    switch (alt114) {
                         case 1 :
-                            // InternalCubeDSL.g:6233:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalCubeDSL.g:6331:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
                             {
-                            // InternalCubeDSL.g:6233:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
-                            // InternalCubeDSL.g:6234:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalCubeDSL.g:6331:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalCubeDSL.g:6332:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
                             {
-                            // InternalCubeDSL.g:6259:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
-                            // InternalCubeDSL.g:6260:7: lv_featureCallArguments_8_0= ruleXShortClosure
+                            // InternalCubeDSL.g:6357:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalCubeDSL.g:6358:7: lv_featureCallArguments_8_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_41);
+                            pushFollow(FOLLOW_44);
                             lv_featureCallArguments_8_0=ruleXShortClosure();
 
                             state._fsp--;
@@ -17062,23 +17299,23 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:6278:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalCubeDSL.g:6376:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
                             {
-                            // InternalCubeDSL.g:6278:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
-                            // InternalCubeDSL.g:6279:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            // InternalCubeDSL.g:6376:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalCubeDSL.g:6377:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
                             {
-                            // InternalCubeDSL.g:6279:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
-                            // InternalCubeDSL.g:6280:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalCubeDSL.g:6377:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
+                            // InternalCubeDSL.g:6378:7: (lv_featureCallArguments_9_0= ruleXExpression )
                             {
-                            // InternalCubeDSL.g:6280:7: (lv_featureCallArguments_9_0= ruleXExpression )
-                            // InternalCubeDSL.g:6281:8: lv_featureCallArguments_9_0= ruleXExpression
+                            // InternalCubeDSL.g:6378:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalCubeDSL.g:6379:8: lv_featureCallArguments_9_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_40);
+                            pushFollow(FOLLOW_43);
                             lv_featureCallArguments_9_0=ruleXExpression();
 
                             state._fsp--;
@@ -17102,39 +17339,39 @@
 
                             }
 
-                            // InternalCubeDSL.g:6298:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
-                            loop110:
+                            // InternalCubeDSL.g:6396:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            loop113:
                             do {
-                                int alt110=2;
-                                int LA110_0 = input.LA(1);
+                                int alt113=2;
+                                int LA113_0 = input.LA(1);
 
-                                if ( (LA110_0==45) ) {
-                                    alt110=1;
+                                if ( (LA113_0==48) ) {
+                                    alt113=1;
                                 }
 
 
-                                switch (alt110) {
+                                switch (alt113) {
                             	case 1 :
-                            	    // InternalCubeDSL.g:6299:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalCubeDSL.g:6397:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_10=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+                            	    otherlv_10=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalCubeDSL.g:6303:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
-                            	    // InternalCubeDSL.g:6304:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalCubeDSL.g:6401:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalCubeDSL.g:6402:8: (lv_featureCallArguments_11_0= ruleXExpression )
                             	    {
-                            	    // InternalCubeDSL.g:6304:8: (lv_featureCallArguments_11_0= ruleXExpression )
-                            	    // InternalCubeDSL.g:6305:9: lv_featureCallArguments_11_0= ruleXExpression
+                            	    // InternalCubeDSL.g:6402:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalCubeDSL.g:6403:9: lv_featureCallArguments_11_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_40);
+                            	    pushFollow(FOLLOW_43);
                             	    lv_featureCallArguments_11_0=ruleXExpression();
 
                             	    state._fsp--;
@@ -17163,7 +17400,7 @@
                             	    break;
 
                             	default :
-                            	    break loop110;
+                            	    break loop113;
                                 }
                             } while (true);
 
@@ -17176,7 +17413,7 @@
 
                     }
 
-                    otherlv_12=(Token)match(input,46,FOLLOW_98); if (state.failed) return current;
+                    otherlv_12=(Token)match(input,49,FOLLOW_101); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
@@ -17188,15 +17425,15 @@
 
             }
 
-            // InternalCubeDSL.g:6330:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
-            int alt113=2;
-            alt113 = dfa113.predict(input);
-            switch (alt113) {
+            // InternalCubeDSL.g:6428:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            int alt116=2;
+            alt116 = dfa116.predict(input);
+            switch (alt116) {
                 case 1 :
-                    // InternalCubeDSL.g:6331:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalCubeDSL.g:6429:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
                     {
-                    // InternalCubeDSL.g:6337:4: (lv_featureCallArguments_13_0= ruleXClosure )
-                    // InternalCubeDSL.g:6338:5: lv_featureCallArguments_13_0= ruleXClosure
+                    // InternalCubeDSL.g:6435:4: (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalCubeDSL.g:6436:5: lv_featureCallArguments_13_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17255,7 +17492,7 @@
 
 
     // $ANTLR start "entryRuleFeatureCallID"
-    // InternalCubeDSL.g:6359:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
+    // InternalCubeDSL.g:6457:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
     public final String entryRuleFeatureCallID() throws RecognitionException {
         String current = null;
 
@@ -17263,8 +17500,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6359:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
-            // InternalCubeDSL.g:6360:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
+            // InternalCubeDSL.g:6457:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
+            // InternalCubeDSL.g:6458:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFeatureCallIDRule()); 
@@ -17295,7 +17532,7 @@
 
 
     // $ANTLR start "ruleFeatureCallID"
-    // InternalCubeDSL.g:6366:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
+    // InternalCubeDSL.g:6464:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
     public final AntlrDatatypeRuleToken ruleFeatureCallID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -17307,48 +17544,48 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6372:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
-            // InternalCubeDSL.g:6373:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            // InternalCubeDSL.g:6470:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
+            // InternalCubeDSL.g:6471:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
             {
-            // InternalCubeDSL.g:6373:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
-            int alt114=5;
+            // InternalCubeDSL.g:6471:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            int alt117=5;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                alt114=1;
+                alt117=1;
                 }
                 break;
-            case 95:
+            case 98:
                 {
-                alt114=2;
+                alt117=2;
                 }
                 break;
-            case 38:
+            case 41:
                 {
-                alt114=3;
+                alt117=3;
                 }
                 break;
-            case 37:
+            case 40:
                 {
-                alt114=4;
+                alt117=4;
                 }
                 break;
-            case 39:
+            case 42:
                 {
-                alt114=5;
+                alt117=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 114, 0, input);
+                    new NoViableAltException("", 117, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt114) {
+            switch (alt117) {
                 case 1 :
-                    // InternalCubeDSL.g:6374:3: this_ValidID_0= ruleValidID
+                    // InternalCubeDSL.g:6472:3: this_ValidID_0= ruleValidID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17374,9 +17611,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:6385:3: kw= 'extends'
+                    // InternalCubeDSL.g:6483:3: kw= 'extends'
                     {
-                    kw=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,98,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -17387,9 +17624,9 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:6391:3: kw= 'static'
+                    // InternalCubeDSL.g:6489:3: kw= 'static'
                     {
-                    kw=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,41,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -17400,9 +17637,9 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:6397:3: kw= 'import'
+                    // InternalCubeDSL.g:6495:3: kw= 'import'
                     {
-                    kw=(Token)match(input,37,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -17413,9 +17650,9 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:6403:3: kw= 'extension'
+                    // InternalCubeDSL.g:6501:3: kw= 'extension'
                     {
-                    kw=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -17450,7 +17687,7 @@
 
 
     // $ANTLR start "entryRuleIdOrSuper"
-    // InternalCubeDSL.g:6412:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
+    // InternalCubeDSL.g:6510:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
     public final String entryRuleIdOrSuper() throws RecognitionException {
         String current = null;
 
@@ -17458,8 +17695,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6412:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
-            // InternalCubeDSL.g:6413:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
+            // InternalCubeDSL.g:6510:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
+            // InternalCubeDSL.g:6511:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIdOrSuperRule()); 
@@ -17490,7 +17727,7 @@
 
 
     // $ANTLR start "ruleIdOrSuper"
-    // InternalCubeDSL.g:6419:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
+    // InternalCubeDSL.g:6517:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
     public final AntlrDatatypeRuleToken ruleIdOrSuper() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -17502,29 +17739,29 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6425:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
-            // InternalCubeDSL.g:6426:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            // InternalCubeDSL.g:6523:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
+            // InternalCubeDSL.g:6524:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
             {
-            // InternalCubeDSL.g:6426:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
-            int alt115=2;
-            int LA115_0 = input.LA(1);
+            // InternalCubeDSL.g:6524:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            int alt118=2;
+            int LA118_0 = input.LA(1);
 
-            if ( (LA115_0==RULE_ID||(LA115_0>=37 && LA115_0<=39)||LA115_0==95) ) {
-                alt115=1;
+            if ( (LA118_0==RULE_ID||(LA118_0>=40 && LA118_0<=42)||LA118_0==98) ) {
+                alt118=1;
             }
-            else if ( (LA115_0==96) ) {
-                alt115=2;
+            else if ( (LA118_0==99) ) {
+                alt118=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 115, 0, input);
+                    new NoViableAltException("", 118, 0, input);
 
                 throw nvae;
             }
-            switch (alt115) {
+            switch (alt118) {
                 case 1 :
-                    // InternalCubeDSL.g:6427:3: this_FeatureCallID_0= ruleFeatureCallID
+                    // InternalCubeDSL.g:6525:3: this_FeatureCallID_0= ruleFeatureCallID
                     {
                     if ( state.backtracking==0 ) {
 
@@ -17550,9 +17787,9 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:6438:3: kw= 'super'
+                    // InternalCubeDSL.g:6536:3: kw= 'super'
                     {
-                    kw=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
+                    kw=(Token)match(input,99,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       			current.merge(kw);
@@ -17587,7 +17824,7 @@
 
 
     // $ANTLR start "entryRuleXConstructorCall"
-    // InternalCubeDSL.g:6447:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
+    // InternalCubeDSL.g:6545:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
     public final EObject entryRuleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -17595,8 +17832,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6447:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
-            // InternalCubeDSL.g:6448:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
+            // InternalCubeDSL.g:6545:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
+            // InternalCubeDSL.g:6546:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXConstructorCallRule()); 
@@ -17627,7 +17864,7 @@
 
 
     // $ANTLR start "ruleXConstructorCall"
-    // InternalCubeDSL.g:6454:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
+    // InternalCubeDSL.g:6552:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
     public final EObject ruleXConstructorCall() throws RecognitionException {
         EObject current = null;
 
@@ -17655,14 +17892,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6460:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
-            // InternalCubeDSL.g:6461:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalCubeDSL.g:6558:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
+            // InternalCubeDSL.g:6559:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
             {
-            // InternalCubeDSL.g:6461:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
-            // InternalCubeDSL.g:6462:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            // InternalCubeDSL.g:6559:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalCubeDSL.g:6560:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
             {
-            // InternalCubeDSL.g:6462:3: ()
-            // InternalCubeDSL.g:6463:4: 
+            // InternalCubeDSL.g:6560:3: ()
+            // InternalCubeDSL.g:6561:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -17674,17 +17911,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,97,FOLLOW_4); if (state.failed) return current;
+            otherlv_1=(Token)match(input,100,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
               		
             }
-            // InternalCubeDSL.g:6473:3: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:6474:4: ( ruleQualifiedName )
+            // InternalCubeDSL.g:6571:3: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:6572:4: ( ruleQualifiedName )
             {
-            // InternalCubeDSL.g:6474:4: ( ruleQualifiedName )
-            // InternalCubeDSL.g:6475:5: ruleQualifiedName
+            // InternalCubeDSL.g:6572:4: ( ruleQualifiedName )
+            // InternalCubeDSL.g:6573:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -17698,7 +17935,7 @@
               					newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_99);
+            pushFollow(FOLLOW_102);
             ruleQualifiedName();
 
             state._fsp--;
@@ -17714,17 +17951,17 @@
 
             }
 
-            // InternalCubeDSL.g:6489:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
-            int alt117=2;
-            alt117 = dfa117.predict(input);
-            switch (alt117) {
+            // InternalCubeDSL.g:6587:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
+            int alt120=2;
+            alt120 = dfa120.predict(input);
+            switch (alt120) {
                 case 1 :
-                    // InternalCubeDSL.g:6490:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
+                    // InternalCubeDSL.g:6588:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
                     {
-                    // InternalCubeDSL.g:6490:4: ( ( '<' )=>otherlv_3= '<' )
-                    // InternalCubeDSL.g:6491:5: ( '<' )=>otherlv_3= '<'
+                    // InternalCubeDSL.g:6588:4: ( ( '<' )=>otherlv_3= '<' )
+                    // InternalCubeDSL.g:6589:5: ( '<' )=>otherlv_3= '<'
                     {
-                    otherlv_3=(Token)match(input,56,FOLLOW_68); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,59,FOLLOW_71); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
@@ -17733,18 +17970,18 @@
 
                     }
 
-                    // InternalCubeDSL.g:6497:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
-                    // InternalCubeDSL.g:6498:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalCubeDSL.g:6595:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    // InternalCubeDSL.g:6596:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalCubeDSL.g:6498:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
-                    // InternalCubeDSL.g:6499:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    // InternalCubeDSL.g:6596:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalCubeDSL.g:6597:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_69);
+                    pushFollow(FOLLOW_72);
                     lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -17768,39 +18005,39 @@
 
                     }
 
-                    // InternalCubeDSL.g:6516:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop116:
+                    // InternalCubeDSL.g:6614:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop119:
                     do {
-                        int alt116=2;
-                        int LA116_0 = input.LA(1);
+                        int alt119=2;
+                        int LA119_0 = input.LA(1);
 
-                        if ( (LA116_0==45) ) {
-                            alt116=1;
+                        if ( (LA119_0==48) ) {
+                            alt119=1;
                         }
 
 
-                        switch (alt116) {
+                        switch (alt119) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:6517:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalCubeDSL.g:6615:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_5=(Token)match(input,45,FOLLOW_68); if (state.failed) return current;
+                    	    otherlv_5=(Token)match(input,48,FOLLOW_71); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
                     	      				
                     	    }
-                    	    // InternalCubeDSL.g:6521:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalCubeDSL.g:6522:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalCubeDSL.g:6619:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalCubeDSL.g:6620:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalCubeDSL.g:6522:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
-                    	    // InternalCubeDSL.g:6523:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
+                    	    // InternalCubeDSL.g:6620:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalCubeDSL.g:6621:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_69);
+                    	    pushFollow(FOLLOW_72);
                     	    lv_typeArguments_6_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -17829,11 +18066,11 @@
                     	    break;
 
                     	default :
-                    	    break loop116;
+                    	    break loop119;
                         }
                     } while (true);
 
-                    otherlv_7=(Token)match(input,57,FOLLOW_97); if (state.failed) return current;
+                    otherlv_7=(Token)match(input,60,FOLLOW_100); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
@@ -17845,20 +18082,20 @@
 
             }
 
-            // InternalCubeDSL.g:6546:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
-            int alt120=2;
-            alt120 = dfa120.predict(input);
-            switch (alt120) {
+            // InternalCubeDSL.g:6644:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
+            int alt123=2;
+            alt123 = dfa123.predict(input);
+            switch (alt123) {
                 case 1 :
-                    // InternalCubeDSL.g:6547:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
+                    // InternalCubeDSL.g:6645:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
                     {
-                    // InternalCubeDSL.g:6547:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
-                    // InternalCubeDSL.g:6548:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalCubeDSL.g:6645:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
+                    // InternalCubeDSL.g:6646:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
                     {
-                    // InternalCubeDSL.g:6552:5: (lv_explicitConstructorCall_8_0= '(' )
-                    // InternalCubeDSL.g:6553:6: lv_explicitConstructorCall_8_0= '('
+                    // InternalCubeDSL.g:6650:5: (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalCubeDSL.g:6651:6: lv_explicitConstructorCall_8_0= '('
                     {
-                    lv_explicitConstructorCall_8_0=(Token)match(input,44,FOLLOW_71); if (state.failed) return current;
+                    lv_explicitConstructorCall_8_0=(Token)match(input,47,FOLLOW_74); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
@@ -17878,25 +18115,25 @@
 
                     }
 
-                    // InternalCubeDSL.g:6565:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
-                    int alt119=3;
-                    alt119 = dfa119.predict(input);
-                    switch (alt119) {
+                    // InternalCubeDSL.g:6663:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
+                    int alt122=3;
+                    alt122 = dfa122.predict(input);
+                    switch (alt122) {
                         case 1 :
-                            // InternalCubeDSL.g:6566:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalCubeDSL.g:6664:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
                             {
-                            // InternalCubeDSL.g:6566:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
-                            // InternalCubeDSL.g:6567:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalCubeDSL.g:6664:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalCubeDSL.g:6665:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
                             {
-                            // InternalCubeDSL.g:6592:6: (lv_arguments_9_0= ruleXShortClosure )
-                            // InternalCubeDSL.g:6593:7: lv_arguments_9_0= ruleXShortClosure
+                            // InternalCubeDSL.g:6690:6: (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalCubeDSL.g:6691:7: lv_arguments_9_0= ruleXShortClosure
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_41);
+                            pushFollow(FOLLOW_44);
                             lv_arguments_9_0=ruleXShortClosure();
 
                             state._fsp--;
@@ -17924,23 +18161,23 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:6611:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalCubeDSL.g:6709:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
                             {
-                            // InternalCubeDSL.g:6611:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
-                            // InternalCubeDSL.g:6612:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            // InternalCubeDSL.g:6709:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalCubeDSL.g:6710:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
                             {
-                            // InternalCubeDSL.g:6612:6: ( (lv_arguments_10_0= ruleXExpression ) )
-                            // InternalCubeDSL.g:6613:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalCubeDSL.g:6710:6: ( (lv_arguments_10_0= ruleXExpression ) )
+                            // InternalCubeDSL.g:6711:7: (lv_arguments_10_0= ruleXExpression )
                             {
-                            // InternalCubeDSL.g:6613:7: (lv_arguments_10_0= ruleXExpression )
-                            // InternalCubeDSL.g:6614:8: lv_arguments_10_0= ruleXExpression
+                            // InternalCubeDSL.g:6711:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalCubeDSL.g:6712:8: lv_arguments_10_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
                               								newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
                               							
                             }
-                            pushFollow(FOLLOW_40);
+                            pushFollow(FOLLOW_43);
                             lv_arguments_10_0=ruleXExpression();
 
                             state._fsp--;
@@ -17964,39 +18201,39 @@
 
                             }
 
-                            // InternalCubeDSL.g:6631:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
-                            loop118:
+                            // InternalCubeDSL.g:6729:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            loop121:
                             do {
-                                int alt118=2;
-                                int LA118_0 = input.LA(1);
+                                int alt121=2;
+                                int LA121_0 = input.LA(1);
 
-                                if ( (LA118_0==45) ) {
-                                    alt118=1;
+                                if ( (LA121_0==48) ) {
+                                    alt121=1;
                                 }
 
 
-                                switch (alt118) {
+                                switch (alt121) {
                             	case 1 :
-                            	    // InternalCubeDSL.g:6632:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalCubeDSL.g:6730:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
                             	    {
-                            	    otherlv_11=(Token)match(input,45,FOLLOW_43); if (state.failed) return current;
+                            	    otherlv_11=(Token)match(input,48,FOLLOW_46); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      							newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
                             	      						
                             	    }
-                            	    // InternalCubeDSL.g:6636:7: ( (lv_arguments_12_0= ruleXExpression ) )
-                            	    // InternalCubeDSL.g:6637:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalCubeDSL.g:6734:7: ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalCubeDSL.g:6735:8: (lv_arguments_12_0= ruleXExpression )
                             	    {
-                            	    // InternalCubeDSL.g:6637:8: (lv_arguments_12_0= ruleXExpression )
-                            	    // InternalCubeDSL.g:6638:9: lv_arguments_12_0= ruleXExpression
+                            	    // InternalCubeDSL.g:6735:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalCubeDSL.g:6736:9: lv_arguments_12_0= ruleXExpression
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      									newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
                             	      								
                             	    }
-                            	    pushFollow(FOLLOW_40);
+                            	    pushFollow(FOLLOW_43);
                             	    lv_arguments_12_0=ruleXExpression();
 
                             	    state._fsp--;
@@ -18025,7 +18262,7 @@
                             	    break;
 
                             	default :
-                            	    break loop118;
+                            	    break loop121;
                                 }
                             } while (true);
 
@@ -18038,7 +18275,7 @@
 
                     }
 
-                    otherlv_13=(Token)match(input,46,FOLLOW_98); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,49,FOLLOW_101); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
@@ -18050,15 +18287,15 @@
 
             }
 
-            // InternalCubeDSL.g:6663:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
-            int alt121=2;
-            alt121 = dfa121.predict(input);
-            switch (alt121) {
+            // InternalCubeDSL.g:6761:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            int alt124=2;
+            alt124 = dfa124.predict(input);
+            switch (alt124) {
                 case 1 :
-                    // InternalCubeDSL.g:6664:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
+                    // InternalCubeDSL.g:6762:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
                     {
-                    // InternalCubeDSL.g:6670:4: (lv_arguments_14_0= ruleXClosure )
-                    // InternalCubeDSL.g:6671:5: lv_arguments_14_0= ruleXClosure
+                    // InternalCubeDSL.g:6768:4: (lv_arguments_14_0= ruleXClosure )
+                    // InternalCubeDSL.g:6769:5: lv_arguments_14_0= ruleXClosure
                     {
                     if ( state.backtracking==0 ) {
 
@@ -18117,7 +18354,7 @@
 
 
     // $ANTLR start "entryRuleXBooleanLiteral"
-    // InternalCubeDSL.g:6692:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
+    // InternalCubeDSL.g:6790:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
     public final EObject entryRuleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18125,8 +18362,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6692:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
-            // InternalCubeDSL.g:6693:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
+            // InternalCubeDSL.g:6790:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
+            // InternalCubeDSL.g:6791:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXBooleanLiteralRule()); 
@@ -18157,7 +18394,7 @@
 
 
     // $ANTLR start "ruleXBooleanLiteral"
-    // InternalCubeDSL.g:6699:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
+    // InternalCubeDSL.g:6797:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
     public final EObject ruleXBooleanLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18168,14 +18405,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6705:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
-            // InternalCubeDSL.g:6706:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalCubeDSL.g:6803:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
+            // InternalCubeDSL.g:6804:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
             {
-            // InternalCubeDSL.g:6706:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
-            // InternalCubeDSL.g:6707:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            // InternalCubeDSL.g:6804:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalCubeDSL.g:6805:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
             {
-            // InternalCubeDSL.g:6707:3: ()
-            // InternalCubeDSL.g:6708:4: 
+            // InternalCubeDSL.g:6805:3: ()
+            // InternalCubeDSL.g:6806:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18187,28 +18424,28 @@
 
             }
 
-            // InternalCubeDSL.g:6714:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
-            int alt122=2;
-            int LA122_0 = input.LA(1);
+            // InternalCubeDSL.g:6812:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            int alt125=2;
+            int LA125_0 = input.LA(1);
 
-            if ( (LA122_0==98) ) {
-                alt122=1;
+            if ( (LA125_0==101) ) {
+                alt125=1;
             }
-            else if ( (LA122_0==99) ) {
-                alt122=2;
+            else if ( (LA125_0==102) ) {
+                alt125=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 122, 0, input);
+                    new NoViableAltException("", 125, 0, input);
 
                 throw nvae;
             }
-            switch (alt122) {
+            switch (alt125) {
                 case 1 :
-                    // InternalCubeDSL.g:6715:4: otherlv_1= 'false'
+                    // InternalCubeDSL.g:6813:4: otherlv_1= 'false'
                     {
-                    otherlv_1=(Token)match(input,98,FOLLOW_2); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,101,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
@@ -18218,15 +18455,15 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:6720:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalCubeDSL.g:6818:4: ( (lv_isTrue_2_0= 'true' ) )
                     {
-                    // InternalCubeDSL.g:6720:4: ( (lv_isTrue_2_0= 'true' ) )
-                    // InternalCubeDSL.g:6721:5: (lv_isTrue_2_0= 'true' )
+                    // InternalCubeDSL.g:6818:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalCubeDSL.g:6819:5: (lv_isTrue_2_0= 'true' )
                     {
-                    // InternalCubeDSL.g:6721:5: (lv_isTrue_2_0= 'true' )
-                    // InternalCubeDSL.g:6722:6: lv_isTrue_2_0= 'true'
+                    // InternalCubeDSL.g:6819:5: (lv_isTrue_2_0= 'true' )
+                    // InternalCubeDSL.g:6820:6: lv_isTrue_2_0= 'true'
                     {
-                    lv_isTrue_2_0=(Token)match(input,99,FOLLOW_2); if (state.failed) return current;
+                    lv_isTrue_2_0=(Token)match(input,102,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
@@ -18277,7 +18514,7 @@
 
 
     // $ANTLR start "entryRuleXNullLiteral"
-    // InternalCubeDSL.g:6739:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
+    // InternalCubeDSL.g:6837:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
     public final EObject entryRuleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18285,8 +18522,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6739:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
-            // InternalCubeDSL.g:6740:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
+            // InternalCubeDSL.g:6837:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
+            // InternalCubeDSL.g:6838:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNullLiteralRule()); 
@@ -18317,7 +18554,7 @@
 
 
     // $ANTLR start "ruleXNullLiteral"
-    // InternalCubeDSL.g:6746:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+    // InternalCubeDSL.g:6844:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
     public final EObject ruleXNullLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18327,14 +18564,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6752:2: ( ( () otherlv_1= 'null' ) )
-            // InternalCubeDSL.g:6753:2: ( () otherlv_1= 'null' )
+            // InternalCubeDSL.g:6850:2: ( ( () otherlv_1= 'null' ) )
+            // InternalCubeDSL.g:6851:2: ( () otherlv_1= 'null' )
             {
-            // InternalCubeDSL.g:6753:2: ( () otherlv_1= 'null' )
-            // InternalCubeDSL.g:6754:3: () otherlv_1= 'null'
+            // InternalCubeDSL.g:6851:2: ( () otherlv_1= 'null' )
+            // InternalCubeDSL.g:6852:3: () otherlv_1= 'null'
             {
-            // InternalCubeDSL.g:6754:3: ()
-            // InternalCubeDSL.g:6755:4: 
+            // InternalCubeDSL.g:6852:3: ()
+            // InternalCubeDSL.g:6853:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18346,7 +18583,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,100,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,103,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
@@ -18377,7 +18614,7 @@
 
 
     // $ANTLR start "entryRuleXNumberLiteral"
-    // InternalCubeDSL.g:6769:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
+    // InternalCubeDSL.g:6867:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
     public final EObject entryRuleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18385,8 +18622,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6769:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
-            // InternalCubeDSL.g:6770:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
+            // InternalCubeDSL.g:6867:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
+            // InternalCubeDSL.g:6868:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXNumberLiteralRule()); 
@@ -18417,7 +18654,7 @@
 
 
     // $ANTLR start "ruleXNumberLiteral"
-    // InternalCubeDSL.g:6776:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
+    // InternalCubeDSL.g:6874:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
     public final EObject ruleXNumberLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18428,14 +18665,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6782:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
-            // InternalCubeDSL.g:6783:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalCubeDSL.g:6880:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
+            // InternalCubeDSL.g:6881:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
             {
-            // InternalCubeDSL.g:6783:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
-            // InternalCubeDSL.g:6784:3: () ( (lv_value_1_0= ruleNumber ) )
+            // InternalCubeDSL.g:6881:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalCubeDSL.g:6882:3: () ( (lv_value_1_0= ruleNumber ) )
             {
-            // InternalCubeDSL.g:6784:3: ()
-            // InternalCubeDSL.g:6785:4: 
+            // InternalCubeDSL.g:6882:3: ()
+            // InternalCubeDSL.g:6883:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18447,11 +18684,11 @@
 
             }
 
-            // InternalCubeDSL.g:6791:3: ( (lv_value_1_0= ruleNumber ) )
-            // InternalCubeDSL.g:6792:4: (lv_value_1_0= ruleNumber )
+            // InternalCubeDSL.g:6889:3: ( (lv_value_1_0= ruleNumber ) )
+            // InternalCubeDSL.g:6890:4: (lv_value_1_0= ruleNumber )
             {
-            // InternalCubeDSL.g:6792:4: (lv_value_1_0= ruleNumber )
-            // InternalCubeDSL.g:6793:5: lv_value_1_0= ruleNumber
+            // InternalCubeDSL.g:6890:4: (lv_value_1_0= ruleNumber )
+            // InternalCubeDSL.g:6891:5: lv_value_1_0= ruleNumber
             {
             if ( state.backtracking==0 ) {
 
@@ -18507,7 +18744,7 @@
 
 
     // $ANTLR start "entryRuleXStringLiteral"
-    // InternalCubeDSL.g:6814:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
+    // InternalCubeDSL.g:6912:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
     public final EObject entryRuleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18515,8 +18752,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6814:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
-            // InternalCubeDSL.g:6815:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
+            // InternalCubeDSL.g:6912:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
+            // InternalCubeDSL.g:6913:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXStringLiteralRule()); 
@@ -18547,7 +18784,7 @@
 
 
     // $ANTLR start "ruleXStringLiteral"
-    // InternalCubeDSL.g:6821:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
+    // InternalCubeDSL.g:6919:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleXStringLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18557,14 +18794,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6827:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
-            // InternalCubeDSL.g:6828:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalCubeDSL.g:6925:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
+            // InternalCubeDSL.g:6926:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
             {
-            // InternalCubeDSL.g:6828:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
-            // InternalCubeDSL.g:6829:3: () ( (lv_value_1_0= RULE_STRING ) )
+            // InternalCubeDSL.g:6926:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalCubeDSL.g:6927:3: () ( (lv_value_1_0= RULE_STRING ) )
             {
-            // InternalCubeDSL.g:6829:3: ()
-            // InternalCubeDSL.g:6830:4: 
+            // InternalCubeDSL.g:6927:3: ()
+            // InternalCubeDSL.g:6928:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18576,11 +18813,11 @@
 
             }
 
-            // InternalCubeDSL.g:6836:3: ( (lv_value_1_0= RULE_STRING ) )
-            // InternalCubeDSL.g:6837:4: (lv_value_1_0= RULE_STRING )
+            // InternalCubeDSL.g:6934:3: ( (lv_value_1_0= RULE_STRING ) )
+            // InternalCubeDSL.g:6935:4: (lv_value_1_0= RULE_STRING )
             {
-            // InternalCubeDSL.g:6837:4: (lv_value_1_0= RULE_STRING )
-            // InternalCubeDSL.g:6838:5: lv_value_1_0= RULE_STRING
+            // InternalCubeDSL.g:6935:4: (lv_value_1_0= RULE_STRING )
+            // InternalCubeDSL.g:6936:5: lv_value_1_0= RULE_STRING
             {
             lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -18631,7 +18868,7 @@
 
 
     // $ANTLR start "entryRuleXTypeLiteral"
-    // InternalCubeDSL.g:6858:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
+    // InternalCubeDSL.g:6956:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
     public final EObject entryRuleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18639,8 +18876,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6858:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
-            // InternalCubeDSL.g:6859:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
+            // InternalCubeDSL.g:6956:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
+            // InternalCubeDSL.g:6957:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTypeLiteralRule()); 
@@ -18671,7 +18908,7 @@
 
 
     // $ANTLR start "ruleXTypeLiteral"
-    // InternalCubeDSL.g:6865:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
+    // InternalCubeDSL.g:6963:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
     public final EObject ruleXTypeLiteral() throws RecognitionException {
         EObject current = null;
 
@@ -18685,14 +18922,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6871:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
-            // InternalCubeDSL.g:6872:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalCubeDSL.g:6969:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
+            // InternalCubeDSL.g:6970:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
             {
-            // InternalCubeDSL.g:6872:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
-            // InternalCubeDSL.g:6873:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
+            // InternalCubeDSL.g:6970:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalCubeDSL.g:6971:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
             {
-            // InternalCubeDSL.g:6873:3: ()
-            // InternalCubeDSL.g:6874:4: 
+            // InternalCubeDSL.g:6971:3: ()
+            // InternalCubeDSL.g:6972:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18704,23 +18941,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,101,FOLLOW_81); if (state.failed) return current;
+            otherlv_1=(Token)match(input,104,FOLLOW_84); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
               		
             }
-            otherlv_2=(Token)match(input,44,FOLLOW_4); if (state.failed) return current;
+            otherlv_2=(Token)match(input,47,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
               		
             }
-            // InternalCubeDSL.g:6888:3: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:6889:4: ( ruleQualifiedName )
+            // InternalCubeDSL.g:6986:3: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:6987:4: ( ruleQualifiedName )
             {
-            // InternalCubeDSL.g:6889:4: ( ruleQualifiedName )
-            // InternalCubeDSL.g:6890:5: ruleQualifiedName
+            // InternalCubeDSL.g:6987:4: ( ruleQualifiedName )
+            // InternalCubeDSL.g:6988:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -18734,7 +18971,7 @@
               					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
               				
             }
-            pushFollow(FOLLOW_100);
+            pushFollow(FOLLOW_103);
             ruleQualifiedName();
 
             state._fsp--;
@@ -18750,30 +18987,30 @@
 
             }
 
-            // InternalCubeDSL.g:6904:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
-            loop123:
+            // InternalCubeDSL.g:7002:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
+            loop126:
             do {
-                int alt123=2;
-                int LA123_0 = input.LA(1);
+                int alt126=2;
+                int LA126_0 = input.LA(1);
 
-                if ( (LA123_0==49) ) {
-                    alt123=1;
+                if ( (LA126_0==52) ) {
+                    alt126=1;
                 }
 
 
-                switch (alt123) {
+                switch (alt126) {
             	case 1 :
-            	    // InternalCubeDSL.g:6905:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalCubeDSL.g:7003:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
             	    {
-            	    // InternalCubeDSL.g:6905:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
-            	    // InternalCubeDSL.g:6906:5: lv_arrayDimensions_4_0= ruleArrayBrackets
+            	    // InternalCubeDSL.g:7003:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalCubeDSL.g:7004:5: lv_arrayDimensions_4_0= ruleArrayBrackets
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_100);
+            	    pushFollow(FOLLOW_103);
             	    lv_arrayDimensions_4_0=ruleArrayBrackets();
 
             	    state._fsp--;
@@ -18799,11 +19036,11 @@
             	    break;
 
             	default :
-            	    break loop123;
+            	    break loop126;
                 }
             } while (true);
 
-            otherlv_5=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
+            otherlv_5=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
@@ -18834,7 +19071,7 @@
 
 
     // $ANTLR start "entryRuleXThrowExpression"
-    // InternalCubeDSL.g:6931:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
+    // InternalCubeDSL.g:7029:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
     public final EObject entryRuleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18842,8 +19079,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6931:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
-            // InternalCubeDSL.g:6932:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
+            // InternalCubeDSL.g:7029:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
+            // InternalCubeDSL.g:7030:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXThrowExpressionRule()); 
@@ -18874,7 +19111,7 @@
 
 
     // $ANTLR start "ruleXThrowExpression"
-    // InternalCubeDSL.g:6938:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
+    // InternalCubeDSL.g:7036:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
     public final EObject ruleXThrowExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18886,14 +19123,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6944:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
-            // InternalCubeDSL.g:6945:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:7042:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
+            // InternalCubeDSL.g:7043:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
             {
-            // InternalCubeDSL.g:6945:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
-            // InternalCubeDSL.g:6946:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalCubeDSL.g:7043:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:7044:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
             {
-            // InternalCubeDSL.g:6946:3: ()
-            // InternalCubeDSL.g:6947:4: 
+            // InternalCubeDSL.g:7044:3: ()
+            // InternalCubeDSL.g:7045:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -18905,17 +19142,17 @@
 
             }
 
-            otherlv_1=(Token)match(input,102,FOLLOW_43); if (state.failed) return current;
+            otherlv_1=(Token)match(input,105,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
               		
             }
-            // InternalCubeDSL.g:6957:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalCubeDSL.g:6958:4: (lv_expression_2_0= ruleXExpression )
+            // InternalCubeDSL.g:7055:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalCubeDSL.g:7056:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:6958:4: (lv_expression_2_0= ruleXExpression )
-            // InternalCubeDSL.g:6959:5: lv_expression_2_0= ruleXExpression
+            // InternalCubeDSL.g:7056:4: (lv_expression_2_0= ruleXExpression )
+            // InternalCubeDSL.g:7057:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -18971,7 +19208,7 @@
 
 
     // $ANTLR start "entryRuleXReturnExpression"
-    // InternalCubeDSL.g:6980:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
+    // InternalCubeDSL.g:7078:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
     public final EObject entryRuleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -18979,8 +19216,8 @@
 
 
         try {
-            // InternalCubeDSL.g:6980:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
-            // InternalCubeDSL.g:6981:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
+            // InternalCubeDSL.g:7078:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
+            // InternalCubeDSL.g:7079:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXReturnExpressionRule()); 
@@ -19011,7 +19248,7 @@
 
 
     // $ANTLR start "ruleXReturnExpression"
-    // InternalCubeDSL.g:6987:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
+    // InternalCubeDSL.g:7085:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
     public final EObject ruleXReturnExpression() throws RecognitionException {
         EObject current = null;
 
@@ -19023,14 +19260,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:6993:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
-            // InternalCubeDSL.g:6994:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalCubeDSL.g:7091:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
+            // InternalCubeDSL.g:7092:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
             {
-            // InternalCubeDSL.g:6994:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
-            // InternalCubeDSL.g:6995:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            // InternalCubeDSL.g:7092:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalCubeDSL.g:7093:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
             {
-            // InternalCubeDSL.g:6995:3: ()
-            // InternalCubeDSL.g:6996:4: 
+            // InternalCubeDSL.g:7093:3: ()
+            // InternalCubeDSL.g:7094:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -19042,21 +19279,21 @@
 
             }
 
-            otherlv_1=(Token)match(input,103,FOLLOW_101); if (state.failed) return current;
+            otherlv_1=(Token)match(input,106,FOLLOW_104); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
               		
             }
-            // InternalCubeDSL.g:7006:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
-            int alt124=2;
-            alt124 = dfa124.predict(input);
-            switch (alt124) {
+            // InternalCubeDSL.g:7104:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            int alt127=2;
+            alt127 = dfa127.predict(input);
+            switch (alt127) {
                 case 1 :
-                    // InternalCubeDSL.g:7007:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
+                    // InternalCubeDSL.g:7105:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:7008:4: (lv_expression_2_0= ruleXExpression )
-                    // InternalCubeDSL.g:7009:5: lv_expression_2_0= ruleXExpression
+                    // InternalCubeDSL.g:7106:4: (lv_expression_2_0= ruleXExpression )
+                    // InternalCubeDSL.g:7107:5: lv_expression_2_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19115,7 +19352,7 @@
 
 
     // $ANTLR start "entryRuleXTryCatchFinallyExpression"
-    // InternalCubeDSL.g:7030:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
+    // InternalCubeDSL.g:7128:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
     public final EObject entryRuleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -19123,8 +19360,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7030:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
-            // InternalCubeDSL.g:7031:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
+            // InternalCubeDSL.g:7128:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
+            // InternalCubeDSL.g:7129:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); 
@@ -19155,7 +19392,7 @@
 
 
     // $ANTLR start "ruleXTryCatchFinallyExpression"
-    // InternalCubeDSL.g:7037:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
+    // InternalCubeDSL.g:7135:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
     public final EObject ruleXTryCatchFinallyExpression() throws RecognitionException {
         EObject current = null;
 
@@ -19175,14 +19412,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7043:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
-            // InternalCubeDSL.g:7044:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalCubeDSL.g:7141:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
+            // InternalCubeDSL.g:7142:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
             {
-            // InternalCubeDSL.g:7044:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
-            // InternalCubeDSL.g:7045:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            // InternalCubeDSL.g:7142:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalCubeDSL.g:7143:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
             {
-            // InternalCubeDSL.g:7045:3: ()
-            // InternalCubeDSL.g:7046:4: 
+            // InternalCubeDSL.g:7143:3: ()
+            // InternalCubeDSL.g:7144:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -19194,24 +19431,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,104,FOLLOW_43); if (state.failed) return current;
+            otherlv_1=(Token)match(input,107,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
               		
             }
-            // InternalCubeDSL.g:7056:3: ( (lv_expression_2_0= ruleXExpression ) )
-            // InternalCubeDSL.g:7057:4: (lv_expression_2_0= ruleXExpression )
+            // InternalCubeDSL.g:7154:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalCubeDSL.g:7155:4: (lv_expression_2_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:7057:4: (lv_expression_2_0= ruleXExpression )
-            // InternalCubeDSL.g:7058:5: lv_expression_2_0= ruleXExpression
+            // InternalCubeDSL.g:7155:4: (lv_expression_2_0= ruleXExpression )
+            // InternalCubeDSL.g:7156:5: lv_expression_2_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_102);
+            pushFollow(FOLLOW_105);
             lv_expression_2_0=ruleXExpression();
 
             state._fsp--;
@@ -19235,61 +19472,61 @@
 
             }
 
-            // InternalCubeDSL.g:7075:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
-            int alt127=2;
-            int LA127_0 = input.LA(1);
+            // InternalCubeDSL.g:7173:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            int alt130=2;
+            int LA130_0 = input.LA(1);
 
-            if ( (LA127_0==107) ) {
-                alt127=1;
+            if ( (LA130_0==110) ) {
+                alt130=1;
             }
-            else if ( (LA127_0==105) ) {
-                alt127=2;
+            else if ( (LA130_0==108) ) {
+                alt130=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 127, 0, input);
+                    new NoViableAltException("", 130, 0, input);
 
                 throw nvae;
             }
-            switch (alt127) {
+            switch (alt130) {
                 case 1 :
-                    // InternalCubeDSL.g:7076:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalCubeDSL.g:7174:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
                     {
-                    // InternalCubeDSL.g:7076:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
-                    // InternalCubeDSL.g:7077:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    // InternalCubeDSL.g:7174:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalCubeDSL.g:7175:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
                     {
-                    // InternalCubeDSL.g:7077:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
-                    int cnt125=0;
-                    loop125:
+                    // InternalCubeDSL.g:7175:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
+                    int cnt128=0;
+                    loop128:
                     do {
-                        int alt125=2;
-                        int LA125_0 = input.LA(1);
+                        int alt128=2;
+                        int LA128_0 = input.LA(1);
 
-                        if ( (LA125_0==107) ) {
-                            int LA125_2 = input.LA(2);
+                        if ( (LA128_0==110) ) {
+                            int LA128_2 = input.LA(2);
 
                             if ( (synpred44_InternalCubeDSL()) ) {
-                                alt125=1;
+                                alt128=1;
                             }
 
 
                         }
 
 
-                        switch (alt125) {
+                        switch (alt128) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:7078:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalCubeDSL.g:7176:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
                     	    {
-                    	    // InternalCubeDSL.g:7079:6: (lv_catchClauses_3_0= ruleXCatchClause )
-                    	    // InternalCubeDSL.g:7080:7: lv_catchClauses_3_0= ruleXCatchClause
+                    	    // InternalCubeDSL.g:7177:6: (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalCubeDSL.g:7178:7: lv_catchClauses_3_0= ruleXCatchClause
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_103);
+                    	    pushFollow(FOLLOW_106);
                     	    lv_catchClauses_3_0=ruleXCatchClause();
 
                     	    state._fsp--;
@@ -19315,34 +19552,34 @@
                     	    break;
 
                     	default :
-                    	    if ( cnt125 >= 1 ) break loop125;
+                    	    if ( cnt128 >= 1 ) break loop128;
                     	    if (state.backtracking>0) {state.failed=true; return current;}
                                 EarlyExitException eee =
-                                    new EarlyExitException(125, input);
+                                    new EarlyExitException(128, input);
                                 throw eee;
                         }
-                        cnt125++;
+                        cnt128++;
                     } while (true);
 
-                    // InternalCubeDSL.g:7097:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
-                    int alt126=2;
-                    int LA126_0 = input.LA(1);
+                    // InternalCubeDSL.g:7195:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    int alt129=2;
+                    int LA129_0 = input.LA(1);
 
-                    if ( (LA126_0==105) ) {
-                        int LA126_1 = input.LA(2);
+                    if ( (LA129_0==108) ) {
+                        int LA129_1 = input.LA(2);
 
                         if ( (synpred45_InternalCubeDSL()) ) {
-                            alt126=1;
+                            alt129=1;
                         }
                     }
-                    switch (alt126) {
+                    switch (alt129) {
                         case 1 :
-                            // InternalCubeDSL.g:7098:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalCubeDSL.g:7196:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
                             {
-                            // InternalCubeDSL.g:7098:6: ( ( 'finally' )=>otherlv_4= 'finally' )
-                            // InternalCubeDSL.g:7099:7: ( 'finally' )=>otherlv_4= 'finally'
+                            // InternalCubeDSL.g:7196:6: ( ( 'finally' )=>otherlv_4= 'finally' )
+                            // InternalCubeDSL.g:7197:7: ( 'finally' )=>otherlv_4= 'finally'
                             {
-                            otherlv_4=(Token)match(input,105,FOLLOW_43); if (state.failed) return current;
+                            otherlv_4=(Token)match(input,108,FOLLOW_46); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               							newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
@@ -19351,11 +19588,11 @@
 
                             }
 
-                            // InternalCubeDSL.g:7105:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
-                            // InternalCubeDSL.g:7106:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalCubeDSL.g:7203:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalCubeDSL.g:7204:7: (lv_finallyExpression_5_0= ruleXExpression )
                             {
-                            // InternalCubeDSL.g:7106:7: (lv_finallyExpression_5_0= ruleXExpression )
-                            // InternalCubeDSL.g:7107:8: lv_finallyExpression_5_0= ruleXExpression
+                            // InternalCubeDSL.g:7204:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalCubeDSL.g:7205:8: lv_finallyExpression_5_0= ruleXExpression
                             {
                             if ( state.backtracking==0 ) {
 
@@ -19399,22 +19636,22 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:7127:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalCubeDSL.g:7225:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
                     {
-                    // InternalCubeDSL.g:7127:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
-                    // InternalCubeDSL.g:7128:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:7225:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalCubeDSL.g:7226:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
                     {
-                    otherlv_6=(Token)match(input,105,FOLLOW_43); if (state.failed) return current;
+                    otherlv_6=(Token)match(input,108,FOLLOW_46); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
                       				
                     }
-                    // InternalCubeDSL.g:7132:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
-                    // InternalCubeDSL.g:7133:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalCubeDSL.g:7230:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalCubeDSL.g:7231:6: (lv_finallyExpression_7_0= ruleXExpression )
                     {
-                    // InternalCubeDSL.g:7133:6: (lv_finallyExpression_7_0= ruleXExpression )
-                    // InternalCubeDSL.g:7134:7: lv_finallyExpression_7_0= ruleXExpression
+                    // InternalCubeDSL.g:7231:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalCubeDSL.g:7232:7: lv_finallyExpression_7_0= ruleXExpression
                     {
                     if ( state.backtracking==0 ) {
 
@@ -19479,7 +19716,7 @@
 
 
     // $ANTLR start "entryRuleXSynchronizedExpression"
-    // InternalCubeDSL.g:7157:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
+    // InternalCubeDSL.g:7255:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
     public final EObject entryRuleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -19487,8 +19724,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7157:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
-            // InternalCubeDSL.g:7158:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
+            // InternalCubeDSL.g:7255:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
+            // InternalCubeDSL.g:7256:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); 
@@ -19519,7 +19756,7 @@
 
 
     // $ANTLR start "ruleXSynchronizedExpression"
-    // InternalCubeDSL.g:7164:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    // InternalCubeDSL.g:7262:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
     public final EObject ruleXSynchronizedExpression() throws RecognitionException {
         EObject current = null;
 
@@ -19535,20 +19772,20 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7170:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
-            // InternalCubeDSL.g:7171:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:7268:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalCubeDSL.g:7269:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
             {
-            // InternalCubeDSL.g:7171:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
-            // InternalCubeDSL.g:7172:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:7269:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:7270:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
             {
-            // InternalCubeDSL.g:7172:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
-            // InternalCubeDSL.g:7173:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalCubeDSL.g:7270:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
+            // InternalCubeDSL.g:7271:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
             {
-            // InternalCubeDSL.g:7180:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
-            // InternalCubeDSL.g:7181:5: () otherlv_1= 'synchronized' otherlv_2= '('
+            // InternalCubeDSL.g:7278:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalCubeDSL.g:7279:5: () otherlv_1= 'synchronized' otherlv_2= '('
             {
-            // InternalCubeDSL.g:7181:5: ()
-            // InternalCubeDSL.g:7182:6: 
+            // InternalCubeDSL.g:7279:5: ()
+            // InternalCubeDSL.g:7280:6: 
             {
             if ( state.backtracking==0 ) {
 
@@ -19560,13 +19797,13 @@
 
             }
 
-            otherlv_1=(Token)match(input,106,FOLLOW_81); if (state.failed) return current;
+            otherlv_1=(Token)match(input,109,FOLLOW_84); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
               				
             }
-            otherlv_2=(Token)match(input,44,FOLLOW_43); if (state.failed) return current;
+            otherlv_2=(Token)match(input,47,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
@@ -19578,18 +19815,18 @@
 
             }
 
-            // InternalCubeDSL.g:7198:3: ( (lv_param_3_0= ruleXExpression ) )
-            // InternalCubeDSL.g:7199:4: (lv_param_3_0= ruleXExpression )
+            // InternalCubeDSL.g:7296:3: ( (lv_param_3_0= ruleXExpression ) )
+            // InternalCubeDSL.g:7297:4: (lv_param_3_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:7199:4: (lv_param_3_0= ruleXExpression )
-            // InternalCubeDSL.g:7200:5: lv_param_3_0= ruleXExpression
+            // InternalCubeDSL.g:7297:4: (lv_param_3_0= ruleXExpression )
+            // InternalCubeDSL.g:7298:5: lv_param_3_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             lv_param_3_0=ruleXExpression();
 
             state._fsp--;
@@ -19613,17 +19850,17 @@
 
             }
 
-            otherlv_4=(Token)match(input,46,FOLLOW_43); if (state.failed) return current;
+            otherlv_4=(Token)match(input,49,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
               		
             }
-            // InternalCubeDSL.g:7221:3: ( (lv_expression_5_0= ruleXExpression ) )
-            // InternalCubeDSL.g:7222:4: (lv_expression_5_0= ruleXExpression )
+            // InternalCubeDSL.g:7319:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalCubeDSL.g:7320:4: (lv_expression_5_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:7222:4: (lv_expression_5_0= ruleXExpression )
-            // InternalCubeDSL.g:7223:5: lv_expression_5_0= ruleXExpression
+            // InternalCubeDSL.g:7320:4: (lv_expression_5_0= ruleXExpression )
+            // InternalCubeDSL.g:7321:5: lv_expression_5_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -19679,7 +19916,7 @@
 
 
     // $ANTLR start "entryRuleXCatchClause"
-    // InternalCubeDSL.g:7244:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
+    // InternalCubeDSL.g:7342:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
     public final EObject entryRuleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -19687,8 +19924,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7244:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
-            // InternalCubeDSL.g:7245:2: iv_ruleXCatchClause= ruleXCatchClause EOF
+            // InternalCubeDSL.g:7342:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
+            // InternalCubeDSL.g:7343:2: iv_ruleXCatchClause= ruleXCatchClause EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXCatchClauseRule()); 
@@ -19719,7 +19956,7 @@
 
 
     // $ANTLR start "ruleXCatchClause"
-    // InternalCubeDSL.g:7251:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
+    // InternalCubeDSL.g:7349:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
     public final EObject ruleXCatchClause() throws RecognitionException {
         EObject current = null;
 
@@ -19735,16 +19972,16 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7257:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
-            // InternalCubeDSL.g:7258:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:7355:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+            // InternalCubeDSL.g:7356:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
             {
-            // InternalCubeDSL.g:7258:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
-            // InternalCubeDSL.g:7259:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalCubeDSL.g:7356:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalCubeDSL.g:7357:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
             {
-            // InternalCubeDSL.g:7259:3: ( ( 'catch' )=>otherlv_0= 'catch' )
-            // InternalCubeDSL.g:7260:4: ( 'catch' )=>otherlv_0= 'catch'
+            // InternalCubeDSL.g:7357:3: ( ( 'catch' )=>otherlv_0= 'catch' )
+            // InternalCubeDSL.g:7358:4: ( 'catch' )=>otherlv_0= 'catch'
             {
-            otherlv_0=(Token)match(input,107,FOLLOW_81); if (state.failed) return current;
+            otherlv_0=(Token)match(input,110,FOLLOW_84); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               				newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
@@ -19753,24 +19990,24 @@
 
             }
 
-            otherlv_1=(Token)match(input,44,FOLLOW_56); if (state.failed) return current;
+            otherlv_1=(Token)match(input,47,FOLLOW_59); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
               		
             }
-            // InternalCubeDSL.g:7270:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
-            // InternalCubeDSL.g:7271:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalCubeDSL.g:7368:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
+            // InternalCubeDSL.g:7369:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
             {
-            // InternalCubeDSL.g:7271:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
-            // InternalCubeDSL.g:7272:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
+            // InternalCubeDSL.g:7369:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalCubeDSL.g:7370:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             lv_declaredParam_2_0=ruleFullJvmFormalParameter();
 
             state._fsp--;
@@ -19794,17 +20031,17 @@
 
             }
 
-            otherlv_3=(Token)match(input,46,FOLLOW_43); if (state.failed) return current;
+            otherlv_3=(Token)match(input,49,FOLLOW_46); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
               		
             }
-            // InternalCubeDSL.g:7293:3: ( (lv_expression_4_0= ruleXExpression ) )
-            // InternalCubeDSL.g:7294:4: (lv_expression_4_0= ruleXExpression )
+            // InternalCubeDSL.g:7391:3: ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalCubeDSL.g:7392:4: (lv_expression_4_0= ruleXExpression )
             {
-            // InternalCubeDSL.g:7294:4: (lv_expression_4_0= ruleXExpression )
-            // InternalCubeDSL.g:7295:5: lv_expression_4_0= ruleXExpression
+            // InternalCubeDSL.g:7392:4: (lv_expression_4_0= ruleXExpression )
+            // InternalCubeDSL.g:7393:5: lv_expression_4_0= ruleXExpression
             {
             if ( state.backtracking==0 ) {
 
@@ -19860,7 +20097,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalCubeDSL.g:7316:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalCubeDSL.g:7414:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -19868,8 +20105,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7316:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalCubeDSL.g:7317:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalCubeDSL.g:7414:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalCubeDSL.g:7415:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameRule()); 
@@ -19900,7 +20137,7 @@
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalCubeDSL.g:7323:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+    // InternalCubeDSL.g:7421:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -19914,18 +20151,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7329:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
-            // InternalCubeDSL.g:7330:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalCubeDSL.g:7427:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+            // InternalCubeDSL.g:7428:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
             {
-            // InternalCubeDSL.g:7330:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
-            // InternalCubeDSL.g:7331:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            // InternalCubeDSL.g:7428:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalCubeDSL.g:7429:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_36);
             this_ValidID_0=ruleValidID();
 
             state._fsp--;
@@ -19940,20 +20177,20 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalCubeDSL.g:7341:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
-            loop128:
+            // InternalCubeDSL.g:7439:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            loop131:
             do {
-                int alt128=2;
-                int LA128_0 = input.LA(1);
+                int alt131=2;
+                int LA131_0 = input.LA(1);
 
-                if ( (LA128_0==36) ) {
-                    int LA128_2 = input.LA(2);
+                if ( (LA131_0==39) ) {
+                    int LA131_2 = input.LA(2);
 
-                    if ( (LA128_2==RULE_ID) ) {
-                        int LA128_3 = input.LA(3);
+                    if ( (LA131_2==RULE_ID) ) {
+                        int LA131_3 = input.LA(3);
 
                         if ( (synpred48_InternalCubeDSL()) ) {
-                            alt128=1;
+                            alt131=1;
                         }
 
 
@@ -19963,14 +20200,14 @@
                 }
 
 
-                switch (alt128) {
+                switch (alt131) {
             	case 1 :
-            	    // InternalCubeDSL.g:7342:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+            	    // InternalCubeDSL.g:7440:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
             	    {
-            	    // InternalCubeDSL.g:7342:4: ( ( '.' )=>kw= '.' )
-            	    // InternalCubeDSL.g:7343:5: ( '.' )=>kw= '.'
+            	    // InternalCubeDSL.g:7440:4: ( ( '.' )=>kw= '.' )
+            	    // InternalCubeDSL.g:7441:5: ( '.' )=>kw= '.'
             	    {
-            	    kw=(Token)match(input,36,FOLLOW_4); if (state.failed) return current;
+            	    kw=(Token)match(input,39,FOLLOW_4); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      					current.merge(kw);
@@ -19985,7 +20222,7 @@
             	      				newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
             	      			
             	    }
-            	    pushFollow(FOLLOW_33);
+            	    pushFollow(FOLLOW_36);
             	    this_ValidID_2=ruleValidID();
 
             	    state._fsp--;
@@ -20005,7 +20242,7 @@
             	    break;
 
             	default :
-            	    break loop128;
+            	    break loop131;
                 }
             } while (true);
 
@@ -20034,7 +20271,7 @@
 
 
     // $ANTLR start "entryRuleNumber"
-    // InternalCubeDSL.g:7365:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
+    // InternalCubeDSL.g:7463:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
     public final String entryRuleNumber() throws RecognitionException {
         String current = null;
 
@@ -20045,8 +20282,8 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalCubeDSL.g:7367:2: (iv_ruleNumber= ruleNumber EOF )
-            // InternalCubeDSL.g:7368:2: iv_ruleNumber= ruleNumber EOF
+            // InternalCubeDSL.g:7465:2: (iv_ruleNumber= ruleNumber EOF )
+            // InternalCubeDSL.g:7466:2: iv_ruleNumber= ruleNumber EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNumberRule()); 
@@ -20080,7 +20317,7 @@
 
 
     // $ANTLR start "ruleNumber"
-    // InternalCubeDSL.g:7377:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
+    // InternalCubeDSL.g:7475:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
     public final AntlrDatatypeRuleToken ruleNumber() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -20096,29 +20333,29 @@
         	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
 
         try {
-            // InternalCubeDSL.g:7384:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
-            // InternalCubeDSL.g:7385:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            // InternalCubeDSL.g:7482:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
+            // InternalCubeDSL.g:7483:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
             {
-            // InternalCubeDSL.g:7385:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
-            int alt132=2;
-            int LA132_0 = input.LA(1);
+            // InternalCubeDSL.g:7483:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            int alt135=2;
+            int LA135_0 = input.LA(1);
 
-            if ( (LA132_0==RULE_HEX) ) {
-                alt132=1;
+            if ( (LA135_0==RULE_HEX) ) {
+                alt135=1;
             }
-            else if ( ((LA132_0>=RULE_INT && LA132_0<=RULE_DECIMAL)) ) {
-                alt132=2;
+            else if ( ((LA135_0>=RULE_INT && LA135_0<=RULE_DECIMAL)) ) {
+                alt135=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 132, 0, input);
+                    new NoViableAltException("", 135, 0, input);
 
                 throw nvae;
             }
-            switch (alt132) {
+            switch (alt135) {
                 case 1 :
-                    // InternalCubeDSL.g:7386:3: this_HEX_0= RULE_HEX
+                    // InternalCubeDSL.g:7484:3: this_HEX_0= RULE_HEX
                     {
                     this_HEX_0=(Token)match(input,RULE_HEX,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -20135,33 +20372,33 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:7394:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalCubeDSL.g:7492:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
                     {
-                    // InternalCubeDSL.g:7394:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
-                    // InternalCubeDSL.g:7395:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    // InternalCubeDSL.g:7492:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalCubeDSL.g:7493:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
                     {
-                    // InternalCubeDSL.g:7395:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
-                    int alt129=2;
-                    int LA129_0 = input.LA(1);
+                    // InternalCubeDSL.g:7493:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
+                    int alt132=2;
+                    int LA132_0 = input.LA(1);
 
-                    if ( (LA129_0==RULE_INT) ) {
-                        alt129=1;
+                    if ( (LA132_0==RULE_INT) ) {
+                        alt132=1;
                     }
-                    else if ( (LA129_0==RULE_DECIMAL) ) {
-                        alt129=2;
+                    else if ( (LA132_0==RULE_DECIMAL) ) {
+                        alt132=2;
                     }
                     else {
                         if (state.backtracking>0) {state.failed=true; return current;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 129, 0, input);
+                            new NoViableAltException("", 132, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt129) {
+                    switch (alt132) {
                         case 1 :
-                            // InternalCubeDSL.g:7396:5: this_INT_1= RULE_INT
+                            // InternalCubeDSL.g:7494:5: this_INT_1= RULE_INT
                             {
-                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_33); if (state.failed) return current;
+                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_36); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(this_INT_1);
@@ -20176,9 +20413,9 @@
                             }
                             break;
                         case 2 :
-                            // InternalCubeDSL.g:7404:5: this_DECIMAL_2= RULE_DECIMAL
+                            // InternalCubeDSL.g:7502:5: this_DECIMAL_2= RULE_DECIMAL
                             {
-                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_33); if (state.failed) return current;
+                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_36); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(this_DECIMAL_2);
@@ -20195,48 +20432,48 @@
 
                     }
 
-                    // InternalCubeDSL.g:7412:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
-                    int alt131=2;
-                    int LA131_0 = input.LA(1);
+                    // InternalCubeDSL.g:7510:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    int alt134=2;
+                    int LA134_0 = input.LA(1);
 
-                    if ( (LA131_0==36) ) {
-                        int LA131_1 = input.LA(2);
+                    if ( (LA134_0==39) ) {
+                        int LA134_1 = input.LA(2);
 
-                        if ( ((LA131_1>=RULE_INT && LA131_1<=RULE_DECIMAL)) ) {
-                            alt131=1;
+                        if ( ((LA134_1>=RULE_INT && LA134_1<=RULE_DECIMAL)) ) {
+                            alt134=1;
                         }
                     }
-                    switch (alt131) {
+                    switch (alt134) {
                         case 1 :
-                            // InternalCubeDSL.g:7413:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            // InternalCubeDSL.g:7511:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
                             {
-                            kw=(Token)match(input,36,FOLLOW_104); if (state.failed) return current;
+                            kw=(Token)match(input,39,FOLLOW_107); if (state.failed) return current;
                             if ( state.backtracking==0 ) {
 
                               					current.merge(kw);
                               					newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
                               				
                             }
-                            // InternalCubeDSL.g:7418:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
-                            int alt130=2;
-                            int LA130_0 = input.LA(1);
+                            // InternalCubeDSL.g:7516:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            int alt133=2;
+                            int LA133_0 = input.LA(1);
 
-                            if ( (LA130_0==RULE_INT) ) {
-                                alt130=1;
+                            if ( (LA133_0==RULE_INT) ) {
+                                alt133=1;
                             }
-                            else if ( (LA130_0==RULE_DECIMAL) ) {
-                                alt130=2;
+                            else if ( (LA133_0==RULE_DECIMAL) ) {
+                                alt133=2;
                             }
                             else {
                                 if (state.backtracking>0) {state.failed=true; return current;}
                                 NoViableAltException nvae =
-                                    new NoViableAltException("", 130, 0, input);
+                                    new NoViableAltException("", 133, 0, input);
 
                                 throw nvae;
                             }
-                            switch (alt130) {
+                            switch (alt133) {
                                 case 1 :
-                                    // InternalCubeDSL.g:7419:6: this_INT_4= RULE_INT
+                                    // InternalCubeDSL.g:7517:6: this_INT_4= RULE_INT
                                     {
                                     this_INT_4=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -20253,7 +20490,7 @@
                                     }
                                     break;
                                 case 2 :
-                                    // InternalCubeDSL.g:7427:6: this_DECIMAL_5= RULE_DECIMAL
+                                    // InternalCubeDSL.g:7525:6: this_DECIMAL_5= RULE_DECIMAL
                                     {
                                     this_DECIMAL_5=(Token)match(input,RULE_DECIMAL,FOLLOW_2); if (state.failed) return current;
                                     if ( state.backtracking==0 ) {
@@ -20312,7 +20549,7 @@
 
 
     // $ANTLR start "entryRuleJvmTypeReference"
-    // InternalCubeDSL.g:7444:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
+    // InternalCubeDSL.g:7542:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
     public final EObject entryRuleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20320,8 +20557,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7444:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
-            // InternalCubeDSL.g:7445:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
+            // InternalCubeDSL.g:7542:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
+            // InternalCubeDSL.g:7543:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); 
@@ -20352,7 +20589,7 @@
 
 
     // $ANTLR start "ruleJvmTypeReference"
-    // InternalCubeDSL.g:7451:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
+    // InternalCubeDSL.g:7549:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
     public final EObject ruleJvmTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20365,39 +20602,39 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7457:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
-            // InternalCubeDSL.g:7458:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            // InternalCubeDSL.g:7555:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
+            // InternalCubeDSL.g:7556:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
             {
-            // InternalCubeDSL.g:7458:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
-            int alt134=2;
-            int LA134_0 = input.LA(1);
+            // InternalCubeDSL.g:7556:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            int alt137=2;
+            int LA137_0 = input.LA(1);
 
-            if ( (LA134_0==RULE_ID) ) {
-                alt134=1;
+            if ( (LA137_0==RULE_ID) ) {
+                alt137=1;
             }
-            else if ( (LA134_0==44||LA134_0==69) ) {
-                alt134=2;
+            else if ( (LA137_0==47||LA137_0==72) ) {
+                alt137=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 134, 0, input);
+                    new NoViableAltException("", 137, 0, input);
 
                 throw nvae;
             }
-            switch (alt134) {
+            switch (alt137) {
                 case 1 :
-                    // InternalCubeDSL.g:7459:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalCubeDSL.g:7557:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
                     {
-                    // InternalCubeDSL.g:7459:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
-                    // InternalCubeDSL.g:7460:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    // InternalCubeDSL.g:7557:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalCubeDSL.g:7558:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
                     {
                     if ( state.backtracking==0 ) {
 
                       				newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
                       			
                     }
-                    pushFollow(FOLLOW_98);
+                    pushFollow(FOLLOW_101);
                     this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference();
 
                     state._fsp--;
@@ -20408,20 +20645,20 @@
                       				afterParserOrEnumRuleCall();
                       			
                     }
-                    // InternalCubeDSL.g:7468:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
-                    loop133:
+                    // InternalCubeDSL.g:7566:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    loop136:
                     do {
-                        int alt133=2;
-                        int LA133_0 = input.LA(1);
+                        int alt136=2;
+                        int LA136_0 = input.LA(1);
 
-                        if ( (LA133_0==49) ) {
-                            int LA133_2 = input.LA(2);
+                        if ( (LA136_0==52) ) {
+                            int LA136_2 = input.LA(2);
 
-                            if ( (LA133_2==50) ) {
-                                int LA133_3 = input.LA(3);
+                            if ( (LA136_2==53) ) {
+                                int LA136_3 = input.LA(3);
 
                                 if ( (synpred49_InternalCubeDSL()) ) {
-                                    alt133=1;
+                                    alt136=1;
                                 }
 
 
@@ -20431,15 +20668,15 @@
                         }
 
 
-                        switch (alt133) {
+                        switch (alt136) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:7469:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
+                    	    // InternalCubeDSL.g:7567:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
                     	    {
-                    	    // InternalCubeDSL.g:7475:5: ( () ruleArrayBrackets )
-                    	    // InternalCubeDSL.g:7476:6: () ruleArrayBrackets
+                    	    // InternalCubeDSL.g:7573:5: ( () ruleArrayBrackets )
+                    	    // InternalCubeDSL.g:7574:6: () ruleArrayBrackets
                     	    {
-                    	    // InternalCubeDSL.g:7476:6: ()
-                    	    // InternalCubeDSL.g:7477:7: 
+                    	    // InternalCubeDSL.g:7574:6: ()
+                    	    // InternalCubeDSL.g:7575:7: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -20456,7 +20693,7 @@
                     	      						newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
                     	      					
                     	    }
-                    	    pushFollow(FOLLOW_98);
+                    	    pushFollow(FOLLOW_101);
                     	    ruleArrayBrackets();
 
                     	    state._fsp--;
@@ -20474,7 +20711,7 @@
                     	    break;
 
                     	default :
-                    	    break loop133;
+                    	    break loop136;
                         }
                     } while (true);
 
@@ -20485,7 +20722,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:7494:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
+                    // InternalCubeDSL.g:7592:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
                     {
                     if ( state.backtracking==0 ) {
 
@@ -20531,7 +20768,7 @@
 
 
     // $ANTLR start "entryRuleArrayBrackets"
-    // InternalCubeDSL.g:7506:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
+    // InternalCubeDSL.g:7604:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
     public final String entryRuleArrayBrackets() throws RecognitionException {
         String current = null;
 
@@ -20539,8 +20776,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7506:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
-            // InternalCubeDSL.g:7507:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
+            // InternalCubeDSL.g:7604:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
+            // InternalCubeDSL.g:7605:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getArrayBracketsRule()); 
@@ -20571,7 +20808,7 @@
 
 
     // $ANTLR start "ruleArrayBrackets"
-    // InternalCubeDSL.g:7513:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
+    // InternalCubeDSL.g:7611:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
     public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -20581,20 +20818,20 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7519:2: ( (kw= '[' kw= ']' ) )
-            // InternalCubeDSL.g:7520:2: (kw= '[' kw= ']' )
+            // InternalCubeDSL.g:7617:2: ( (kw= '[' kw= ']' ) )
+            // InternalCubeDSL.g:7618:2: (kw= '[' kw= ']' )
             {
-            // InternalCubeDSL.g:7520:2: (kw= '[' kw= ']' )
-            // InternalCubeDSL.g:7521:3: kw= '[' kw= ']'
+            // InternalCubeDSL.g:7618:2: (kw= '[' kw= ']' )
+            // InternalCubeDSL.g:7619:3: kw= '[' kw= ']'
             {
-            kw=(Token)match(input,49,FOLLOW_78); if (state.failed) return current;
+            kw=(Token)match(input,52,FOLLOW_81); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
               		
             }
-            kw=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -20626,7 +20863,7 @@
 
 
     // $ANTLR start "entryRuleXFunctionTypeRef"
-    // InternalCubeDSL.g:7535:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
+    // InternalCubeDSL.g:7633:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
     public final EObject entryRuleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -20634,8 +20871,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7535:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
-            // InternalCubeDSL.g:7536:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
+            // InternalCubeDSL.g:7633:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
+            // InternalCubeDSL.g:7634:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); 
@@ -20666,7 +20903,7 @@
 
 
     // $ANTLR start "ruleXFunctionTypeRef"
-    // InternalCubeDSL.g:7542:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
+    // InternalCubeDSL.g:7640:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleXFunctionTypeRef() throws RecognitionException {
         EObject current = null;
 
@@ -20685,52 +20922,52 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7548:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
-            // InternalCubeDSL.g:7549:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:7646:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
+            // InternalCubeDSL.g:7647:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
             {
-            // InternalCubeDSL.g:7549:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
-            // InternalCubeDSL.g:7550:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:7647:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:7648:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
             {
-            // InternalCubeDSL.g:7550:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
-            int alt137=2;
-            int LA137_0 = input.LA(1);
+            // InternalCubeDSL.g:7648:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
+            int alt140=2;
+            int LA140_0 = input.LA(1);
 
-            if ( (LA137_0==44) ) {
-                alt137=1;
+            if ( (LA140_0==47) ) {
+                alt140=1;
             }
-            switch (alt137) {
+            switch (alt140) {
                 case 1 :
-                    // InternalCubeDSL.g:7551:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
+                    // InternalCubeDSL.g:7649:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
                     {
-                    otherlv_0=(Token)match(input,44,FOLLOW_105); if (state.failed) return current;
+                    otherlv_0=(Token)match(input,47,FOLLOW_108); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
                       			
                     }
-                    // InternalCubeDSL.g:7555:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
-                    int alt136=2;
-                    int LA136_0 = input.LA(1);
+                    // InternalCubeDSL.g:7653:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
+                    int alt139=2;
+                    int LA139_0 = input.LA(1);
 
-                    if ( (LA136_0==RULE_ID||LA136_0==44||LA136_0==69) ) {
-                        alt136=1;
+                    if ( (LA139_0==RULE_ID||LA139_0==47||LA139_0==72) ) {
+                        alt139=1;
                     }
-                    switch (alt136) {
+                    switch (alt139) {
                         case 1 :
-                            // InternalCubeDSL.g:7556:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            // InternalCubeDSL.g:7654:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
                             {
-                            // InternalCubeDSL.g:7556:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
-                            // InternalCubeDSL.g:7557:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalCubeDSL.g:7654:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
+                            // InternalCubeDSL.g:7655:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
                             {
-                            // InternalCubeDSL.g:7557:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
-                            // InternalCubeDSL.g:7558:7: lv_paramTypes_1_0= ruleJvmTypeReference
+                            // InternalCubeDSL.g:7655:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalCubeDSL.g:7656:7: lv_paramTypes_1_0= ruleJvmTypeReference
                             {
                             if ( state.backtracking==0 ) {
 
                               							newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
                               						
                             }
-                            pushFollow(FOLLOW_40);
+                            pushFollow(FOLLOW_43);
                             lv_paramTypes_1_0=ruleJvmTypeReference();
 
                             state._fsp--;
@@ -20754,39 +20991,39 @@
 
                             }
 
-                            // InternalCubeDSL.g:7575:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
-                            loop135:
+                            // InternalCubeDSL.g:7673:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            loop138:
                             do {
-                                int alt135=2;
-                                int LA135_0 = input.LA(1);
+                                int alt138=2;
+                                int LA138_0 = input.LA(1);
 
-                                if ( (LA135_0==45) ) {
-                                    alt135=1;
+                                if ( (LA138_0==48) ) {
+                                    alt138=1;
                                 }
 
 
-                                switch (alt135) {
+                                switch (alt138) {
                             	case 1 :
-                            	    // InternalCubeDSL.g:7576:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalCubeDSL.g:7674:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
                             	    {
-                            	    otherlv_2=(Token)match(input,45,FOLLOW_56); if (state.failed) return current;
+                            	    otherlv_2=(Token)match(input,48,FOLLOW_59); if (state.failed) return current;
                             	    if ( state.backtracking==0 ) {
 
                             	      						newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
                             	      					
                             	    }
-                            	    // InternalCubeDSL.g:7580:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
-                            	    // InternalCubeDSL.g:7581:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalCubeDSL.g:7678:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalCubeDSL.g:7679:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
                             	    {
-                            	    // InternalCubeDSL.g:7581:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
-                            	    // InternalCubeDSL.g:7582:8: lv_paramTypes_3_0= ruleJvmTypeReference
+                            	    // InternalCubeDSL.g:7679:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalCubeDSL.g:7680:8: lv_paramTypes_3_0= ruleJvmTypeReference
                             	    {
                             	    if ( state.backtracking==0 ) {
 
                             	      								newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
                             	      							
                             	    }
-                            	    pushFollow(FOLLOW_40);
+                            	    pushFollow(FOLLOW_43);
                             	    lv_paramTypes_3_0=ruleJvmTypeReference();
 
                             	    state._fsp--;
@@ -20815,7 +21052,7 @@
                             	    break;
 
                             	default :
-                            	    break loop135;
+                            	    break loop138;
                                 }
                             } while (true);
 
@@ -20825,7 +21062,7 @@
 
                     }
 
-                    otherlv_4=(Token)match(input,46,FOLLOW_106); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,49,FOLLOW_109); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
@@ -20837,17 +21074,17 @@
 
             }
 
-            otherlv_5=(Token)match(input,69,FOLLOW_56); if (state.failed) return current;
+            otherlv_5=(Token)match(input,72,FOLLOW_59); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
               		
             }
-            // InternalCubeDSL.g:7610:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:7611:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:7708:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:7709:4: (lv_returnType_6_0= ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:7611:4: (lv_returnType_6_0= ruleJvmTypeReference )
-            // InternalCubeDSL.g:7612:5: lv_returnType_6_0= ruleJvmTypeReference
+            // InternalCubeDSL.g:7709:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:7710:5: lv_returnType_6_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -20903,7 +21140,7 @@
 
 
     // $ANTLR start "entryRuleJvmParameterizedTypeReference"
-    // InternalCubeDSL.g:7633:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
+    // InternalCubeDSL.g:7731:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
     public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20911,8 +21148,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7633:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
-            // InternalCubeDSL.g:7634:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
+            // InternalCubeDSL.g:7731:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
+            // InternalCubeDSL.g:7732:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
@@ -20943,7 +21180,7 @@
 
 
     // $ANTLR start "ruleJvmParameterizedTypeReference"
-    // InternalCubeDSL.g:7640:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
+    // InternalCubeDSL.g:7738:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
     public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -20967,17 +21204,17 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7646:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
-            // InternalCubeDSL.g:7647:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalCubeDSL.g:7744:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
+            // InternalCubeDSL.g:7745:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
             {
-            // InternalCubeDSL.g:7647:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
-            // InternalCubeDSL.g:7648:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            // InternalCubeDSL.g:7745:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalCubeDSL.g:7746:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
             {
-            // InternalCubeDSL.g:7648:3: ( ( ruleQualifiedName ) )
-            // InternalCubeDSL.g:7649:4: ( ruleQualifiedName )
+            // InternalCubeDSL.g:7746:3: ( ( ruleQualifiedName ) )
+            // InternalCubeDSL.g:7747:4: ( ruleQualifiedName )
             {
-            // InternalCubeDSL.g:7649:4: ( ruleQualifiedName )
-            // InternalCubeDSL.g:7650:5: ruleQualifiedName
+            // InternalCubeDSL.g:7747:4: ( ruleQualifiedName )
+            // InternalCubeDSL.g:7748:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -20991,7 +21228,7 @@
               					newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
               				
             }
-            pushFollow(FOLLOW_107);
+            pushFollow(FOLLOW_110);
             ruleQualifiedName();
 
             state._fsp--;
@@ -21007,17 +21244,17 @@
 
             }
 
-            // InternalCubeDSL.g:7664:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
-            int alt142=2;
-            alt142 = dfa142.predict(input);
-            switch (alt142) {
+            // InternalCubeDSL.g:7762:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            int alt145=2;
+            alt145 = dfa145.predict(input);
+            switch (alt145) {
                 case 1 :
-                    // InternalCubeDSL.g:7665:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    // InternalCubeDSL.g:7763:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
                     {
-                    // InternalCubeDSL.g:7665:4: ( ( '<' )=>otherlv_1= '<' )
-                    // InternalCubeDSL.g:7666:5: ( '<' )=>otherlv_1= '<'
+                    // InternalCubeDSL.g:7763:4: ( ( '<' )=>otherlv_1= '<' )
+                    // InternalCubeDSL.g:7764:5: ( '<' )=>otherlv_1= '<'
                     {
-                    otherlv_1=(Token)match(input,56,FOLLOW_68); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,59,FOLLOW_71); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
@@ -21026,18 +21263,18 @@
 
                     }
 
-                    // InternalCubeDSL.g:7672:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
-                    // InternalCubeDSL.g:7673:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalCubeDSL.g:7770:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalCubeDSL.g:7771:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
                     {
-                    // InternalCubeDSL.g:7673:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
-                    // InternalCubeDSL.g:7674:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
+                    // InternalCubeDSL.g:7771:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalCubeDSL.g:7772:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
                       					
                     }
-                    pushFollow(FOLLOW_69);
+                    pushFollow(FOLLOW_72);
                     lv_arguments_2_0=ruleJvmArgumentTypeReference();
 
                     state._fsp--;
@@ -21061,39 +21298,39 @@
 
                     }
 
-                    // InternalCubeDSL.g:7691:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
-                    loop138:
+                    // InternalCubeDSL.g:7789:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop141:
                     do {
-                        int alt138=2;
-                        int LA138_0 = input.LA(1);
+                        int alt141=2;
+                        int LA141_0 = input.LA(1);
 
-                        if ( (LA138_0==45) ) {
-                            alt138=1;
+                        if ( (LA141_0==48) ) {
+                            alt141=1;
                         }
 
 
-                        switch (alt138) {
+                        switch (alt141) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:7692:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalCubeDSL.g:7790:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,45,FOLLOW_68); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,48,FOLLOW_71); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
                     	      				
                     	    }
-                    	    // InternalCubeDSL.g:7696:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
-                    	    // InternalCubeDSL.g:7697:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalCubeDSL.g:7794:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalCubeDSL.g:7795:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
                     	    {
-                    	    // InternalCubeDSL.g:7697:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
-                    	    // InternalCubeDSL.g:7698:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
+                    	    // InternalCubeDSL.g:7795:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalCubeDSL.g:7796:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_69);
+                    	    pushFollow(FOLLOW_72);
                     	    lv_arguments_4_0=ruleJvmArgumentTypeReference();
 
                     	    state._fsp--;
@@ -21122,30 +21359,30 @@
                     	    break;
 
                     	default :
-                    	    break loop138;
+                    	    break loop141;
                         }
                     } while (true);
 
-                    otherlv_5=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,60,FOLLOW_36); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
                       			
                     }
-                    // InternalCubeDSL.g:7720:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
-                    loop141:
+                    // InternalCubeDSL.g:7818:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    loop144:
                     do {
-                        int alt141=2;
-                        int LA141_0 = input.LA(1);
+                        int alt144=2;
+                        int LA144_0 = input.LA(1);
 
-                        if ( (LA141_0==36) ) {
-                            int LA141_2 = input.LA(2);
+                        if ( (LA144_0==39) ) {
+                            int LA144_2 = input.LA(2);
 
-                            if ( (LA141_2==RULE_ID) ) {
-                                int LA141_3 = input.LA(3);
+                            if ( (LA144_2==RULE_ID) ) {
+                                int LA144_3 = input.LA(3);
 
                                 if ( (synpred51_InternalCubeDSL()) ) {
-                                    alt141=1;
+                                    alt144=1;
                                 }
 
 
@@ -21155,18 +21392,18 @@
                         }
 
 
-                        switch (alt141) {
+                        switch (alt144) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:7721:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    // InternalCubeDSL.g:7819:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
                     	    {
-                    	    // InternalCubeDSL.g:7721:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
-                    	    // InternalCubeDSL.g:7722:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
+                    	    // InternalCubeDSL.g:7819:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
+                    	    // InternalCubeDSL.g:7820:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
                     	    {
-                    	    // InternalCubeDSL.g:7728:6: ( () otherlv_7= '.' )
-                    	    // InternalCubeDSL.g:7729:7: () otherlv_7= '.'
+                    	    // InternalCubeDSL.g:7826:6: ( () otherlv_7= '.' )
+                    	    // InternalCubeDSL.g:7827:7: () otherlv_7= '.'
                     	    {
-                    	    // InternalCubeDSL.g:7729:7: ()
-                    	    // InternalCubeDSL.g:7730:8: 
+                    	    // InternalCubeDSL.g:7827:7: ()
+                    	    // InternalCubeDSL.g:7828:8: 
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -21178,7 +21415,7 @@
 
                     	    }
 
-                    	    otherlv_7=(Token)match(input,36,FOLLOW_4); if (state.failed) return current;
+                    	    otherlv_7=(Token)match(input,39,FOLLOW_4); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      							newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
@@ -21190,11 +21427,11 @@
 
                     	    }
 
-                    	    // InternalCubeDSL.g:7742:5: ( ( ruleValidID ) )
-                    	    // InternalCubeDSL.g:7743:6: ( ruleValidID )
+                    	    // InternalCubeDSL.g:7840:5: ( ( ruleValidID ) )
+                    	    // InternalCubeDSL.g:7841:6: ( ruleValidID )
                     	    {
-                    	    // InternalCubeDSL.g:7743:6: ( ruleValidID )
-                    	    // InternalCubeDSL.g:7744:7: ruleValidID
+                    	    // InternalCubeDSL.g:7841:6: ( ruleValidID )
+                    	    // InternalCubeDSL.g:7842:7: ruleValidID
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -21208,7 +21445,7 @@
                     	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_108);
+                    	    pushFollow(FOLLOW_111);
                     	    ruleValidID();
 
                     	    state._fsp--;
@@ -21224,17 +21461,17 @@
 
                     	    }
 
-                    	    // InternalCubeDSL.g:7758:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
-                    	    int alt140=2;
-                    	    alt140 = dfa140.predict(input);
-                    	    switch (alt140) {
+                    	    // InternalCubeDSL.g:7856:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    int alt143=2;
+                    	    alt143 = dfa143.predict(input);
+                    	    switch (alt143) {
                     	        case 1 :
-                    	            // InternalCubeDSL.g:7759:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
+                    	            // InternalCubeDSL.g:7857:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
                     	            {
-                    	            // InternalCubeDSL.g:7759:6: ( ( '<' )=>otherlv_9= '<' )
-                    	            // InternalCubeDSL.g:7760:7: ( '<' )=>otherlv_9= '<'
+                    	            // InternalCubeDSL.g:7857:6: ( ( '<' )=>otherlv_9= '<' )
+                    	            // InternalCubeDSL.g:7858:7: ( '<' )=>otherlv_9= '<'
                     	            {
-                    	            otherlv_9=(Token)match(input,56,FOLLOW_68); if (state.failed) return current;
+                    	            otherlv_9=(Token)match(input,59,FOLLOW_71); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              							newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
@@ -21243,18 +21480,18 @@
 
                     	            }
 
-                    	            // InternalCubeDSL.g:7766:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
-                    	            // InternalCubeDSL.g:7767:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalCubeDSL.g:7864:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
+                    	            // InternalCubeDSL.g:7865:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
                     	            {
-                    	            // InternalCubeDSL.g:7767:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
-                    	            // InternalCubeDSL.g:7768:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
+                    	            // InternalCubeDSL.g:7865:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalCubeDSL.g:7866:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
                     	            {
                     	            if ( state.backtracking==0 ) {
 
                     	              								newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0());
                     	              							
                     	            }
-                    	            pushFollow(FOLLOW_69);
+                    	            pushFollow(FOLLOW_72);
                     	            lv_arguments_10_0=ruleJvmArgumentTypeReference();
 
                     	            state._fsp--;
@@ -21278,39 +21515,39 @@
 
                     	            }
 
-                    	            // InternalCubeDSL.g:7785:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
-                    	            loop139:
+                    	            // InternalCubeDSL.g:7883:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
+                    	            loop142:
                     	            do {
-                    	                int alt139=2;
-                    	                int LA139_0 = input.LA(1);
+                    	                int alt142=2;
+                    	                int LA142_0 = input.LA(1);
 
-                    	                if ( (LA139_0==45) ) {
-                    	                    alt139=1;
+                    	                if ( (LA142_0==48) ) {
+                    	                    alt142=1;
                     	                }
 
 
-                    	                switch (alt139) {
+                    	                switch (alt142) {
                     	            	case 1 :
-                    	            	    // InternalCubeDSL.g:7786:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalCubeDSL.g:7884:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
                     	            	    {
-                    	            	    otherlv_11=(Token)match(input,45,FOLLOW_68); if (state.failed) return current;
+                    	            	    otherlv_11=(Token)match(input,48,FOLLOW_71); if (state.failed) return current;
                     	            	    if ( state.backtracking==0 ) {
 
                     	            	      							newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
                     	            	      						
                     	            	    }
-                    	            	    // InternalCubeDSL.g:7790:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
-                    	            	    // InternalCubeDSL.g:7791:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalCubeDSL.g:7888:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalCubeDSL.g:7889:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
                     	            	    {
-                    	            	    // InternalCubeDSL.g:7791:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
-                    	            	    // InternalCubeDSL.g:7792:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
+                    	            	    // InternalCubeDSL.g:7889:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalCubeDSL.g:7890:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
                     	            	    {
                     	            	    if ( state.backtracking==0 ) {
 
                     	            	      									newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0());
                     	            	      								
                     	            	    }
-                    	            	    pushFollow(FOLLOW_69);
+                    	            	    pushFollow(FOLLOW_72);
                     	            	    lv_arguments_12_0=ruleJvmArgumentTypeReference();
 
                     	            	    state._fsp--;
@@ -21339,11 +21576,11 @@
                     	            	    break;
 
                     	            	default :
-                    	            	    break loop139;
+                    	            	    break loop142;
                     	                }
                     	            } while (true);
 
-                    	            otherlv_13=(Token)match(input,57,FOLLOW_33); if (state.failed) return current;
+                    	            otherlv_13=(Token)match(input,60,FOLLOW_36); if (state.failed) return current;
                     	            if ( state.backtracking==0 ) {
 
                     	              						newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
@@ -21360,7 +21597,7 @@
                     	    break;
 
                     	default :
-                    	    break loop141;
+                    	    break loop144;
                         }
                     } while (true);
 
@@ -21395,7 +21632,7 @@
 
 
     // $ANTLR start "entryRuleJvmArgumentTypeReference"
-    // InternalCubeDSL.g:7821:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
+    // InternalCubeDSL.g:7919:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
     public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -21403,8 +21640,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7821:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
-            // InternalCubeDSL.g:7822:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
+            // InternalCubeDSL.g:7919:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
+            // InternalCubeDSL.g:7920:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); 
@@ -21435,7 +21672,7 @@
 
 
     // $ANTLR start "ruleJvmArgumentTypeReference"
-    // InternalCubeDSL.g:7828:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
+    // InternalCubeDSL.g:7926:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
     public final EObject ruleJvmArgumentTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -21448,29 +21685,29 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7834:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
-            // InternalCubeDSL.g:7835:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            // InternalCubeDSL.g:7932:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
+            // InternalCubeDSL.g:7933:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
             {
-            // InternalCubeDSL.g:7835:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
-            int alt143=2;
-            int LA143_0 = input.LA(1);
+            // InternalCubeDSL.g:7933:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            int alt146=2;
+            int LA146_0 = input.LA(1);
 
-            if ( (LA143_0==RULE_ID||LA143_0==44||LA143_0==69) ) {
-                alt143=1;
+            if ( (LA146_0==RULE_ID||LA146_0==47||LA146_0==72) ) {
+                alt146=1;
             }
-            else if ( (LA143_0==108) ) {
-                alt143=2;
+            else if ( (LA146_0==111) ) {
+                alt146=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 143, 0, input);
+                    new NoViableAltException("", 146, 0, input);
 
                 throw nvae;
             }
-            switch (alt143) {
+            switch (alt146) {
                 case 1 :
-                    // InternalCubeDSL.g:7836:3: this_JvmTypeReference_0= ruleJvmTypeReference
+                    // InternalCubeDSL.g:7934:3: this_JvmTypeReference_0= ruleJvmTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -21492,7 +21729,7 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:7845:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
+                    // InternalCubeDSL.g:7943:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
                     {
                     if ( state.backtracking==0 ) {
 
@@ -21538,7 +21775,7 @@
 
 
     // $ANTLR start "entryRuleJvmWildcardTypeReference"
-    // InternalCubeDSL.g:7857:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
+    // InternalCubeDSL.g:7955:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
     public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -21546,8 +21783,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7857:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
-            // InternalCubeDSL.g:7858:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
+            // InternalCubeDSL.g:7955:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
+            // InternalCubeDSL.g:7956:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); 
@@ -21578,7 +21815,7 @@
 
 
     // $ANTLR start "ruleJvmWildcardTypeReference"
-    // InternalCubeDSL.g:7864:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
+    // InternalCubeDSL.g:7962:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
     public final EObject ruleJvmWildcardTypeReference() throws RecognitionException {
         EObject current = null;
 
@@ -21596,14 +21833,14 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7870:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
-            // InternalCubeDSL.g:7871:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalCubeDSL.g:7968:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
+            // InternalCubeDSL.g:7969:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
             {
-            // InternalCubeDSL.g:7871:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
-            // InternalCubeDSL.g:7872:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            // InternalCubeDSL.g:7969:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalCubeDSL.g:7970:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
             {
-            // InternalCubeDSL.g:7872:3: ()
-            // InternalCubeDSL.g:7873:4: 
+            // InternalCubeDSL.g:7970:3: ()
+            // InternalCubeDSL.g:7971:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -21615,41 +21852,41 @@
 
             }
 
-            otherlv_1=(Token)match(input,108,FOLLOW_109); if (state.failed) return current;
+            otherlv_1=(Token)match(input,111,FOLLOW_112); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
               		
             }
-            // InternalCubeDSL.g:7883:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
-            int alt146=3;
-            int LA146_0 = input.LA(1);
+            // InternalCubeDSL.g:7981:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            int alt149=3;
+            int LA149_0 = input.LA(1);
 
-            if ( (LA146_0==95) ) {
-                alt146=1;
+            if ( (LA149_0==98) ) {
+                alt149=1;
             }
-            else if ( (LA146_0==96) ) {
-                alt146=2;
+            else if ( (LA149_0==99) ) {
+                alt149=2;
             }
-            switch (alt146) {
+            switch (alt149) {
                 case 1 :
-                    // InternalCubeDSL.g:7884:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalCubeDSL.g:7982:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
                     {
-                    // InternalCubeDSL.g:7884:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
-                    // InternalCubeDSL.g:7885:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    // InternalCubeDSL.g:7982:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalCubeDSL.g:7983:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
                     {
-                    // InternalCubeDSL.g:7885:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
-                    // InternalCubeDSL.g:7886:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalCubeDSL.g:7983:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
+                    // InternalCubeDSL.g:7984:6: (lv_constraints_2_0= ruleJvmUpperBound )
                     {
-                    // InternalCubeDSL.g:7886:6: (lv_constraints_2_0= ruleJvmUpperBound )
-                    // InternalCubeDSL.g:7887:7: lv_constraints_2_0= ruleJvmUpperBound
+                    // InternalCubeDSL.g:7984:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalCubeDSL.g:7985:7: lv_constraints_2_0= ruleJvmUpperBound
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0());
                       						
                     }
-                    pushFollow(FOLLOW_110);
+                    pushFollow(FOLLOW_113);
                     lv_constraints_2_0=ruleJvmUpperBound();
 
                     state._fsp--;
@@ -21673,30 +21910,30 @@
 
                     }
 
-                    // InternalCubeDSL.g:7904:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
-                    loop144:
+                    // InternalCubeDSL.g:8002:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    loop147:
                     do {
-                        int alt144=2;
-                        int LA144_0 = input.LA(1);
+                        int alt147=2;
+                        int LA147_0 = input.LA(1);
 
-                        if ( (LA144_0==109) ) {
-                            alt144=1;
+                        if ( (LA147_0==112) ) {
+                            alt147=1;
                         }
 
 
-                        switch (alt144) {
+                        switch (alt147) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:7905:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalCubeDSL.g:8003:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
                     	    {
-                    	    // InternalCubeDSL.g:7905:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
-                    	    // InternalCubeDSL.g:7906:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
+                    	    // InternalCubeDSL.g:8003:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalCubeDSL.g:8004:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_110);
+                    	    pushFollow(FOLLOW_113);
                     	    lv_constraints_3_0=ruleJvmUpperBoundAnded();
 
                     	    state._fsp--;
@@ -21722,7 +21959,7 @@
                     	    break;
 
                     	default :
-                    	    break loop144;
+                    	    break loop147;
                         }
                     } while (true);
 
@@ -21733,23 +21970,23 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:7925:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalCubeDSL.g:8023:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
                     {
-                    // InternalCubeDSL.g:7925:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
-                    // InternalCubeDSL.g:7926:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    // InternalCubeDSL.g:8023:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalCubeDSL.g:8024:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
                     {
-                    // InternalCubeDSL.g:7926:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
-                    // InternalCubeDSL.g:7927:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalCubeDSL.g:8024:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
+                    // InternalCubeDSL.g:8025:6: (lv_constraints_4_0= ruleJvmLowerBound )
                     {
-                    // InternalCubeDSL.g:7927:6: (lv_constraints_4_0= ruleJvmLowerBound )
-                    // InternalCubeDSL.g:7928:7: lv_constraints_4_0= ruleJvmLowerBound
+                    // InternalCubeDSL.g:8025:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalCubeDSL.g:8026:7: lv_constraints_4_0= ruleJvmLowerBound
                     {
                     if ( state.backtracking==0 ) {
 
                       							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0());
                       						
                     }
-                    pushFollow(FOLLOW_110);
+                    pushFollow(FOLLOW_113);
                     lv_constraints_4_0=ruleJvmLowerBound();
 
                     state._fsp--;
@@ -21773,30 +22010,30 @@
 
                     }
 
-                    // InternalCubeDSL.g:7945:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
-                    loop145:
+                    // InternalCubeDSL.g:8043:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    loop148:
                     do {
-                        int alt145=2;
-                        int LA145_0 = input.LA(1);
+                        int alt148=2;
+                        int LA148_0 = input.LA(1);
 
-                        if ( (LA145_0==109) ) {
-                            alt145=1;
+                        if ( (LA148_0==112) ) {
+                            alt148=1;
                         }
 
 
-                        switch (alt145) {
+                        switch (alt148) {
                     	case 1 :
-                    	    // InternalCubeDSL.g:7946:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalCubeDSL.g:8044:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
                     	    {
-                    	    // InternalCubeDSL.g:7946:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
-                    	    // InternalCubeDSL.g:7947:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
+                    	    // InternalCubeDSL.g:8044:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalCubeDSL.g:8045:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_110);
+                    	    pushFollow(FOLLOW_113);
                     	    lv_constraints_5_0=ruleJvmLowerBoundAnded();
 
                     	    state._fsp--;
@@ -21822,7 +22059,7 @@
                     	    break;
 
                     	default :
-                    	    break loop145;
+                    	    break loop148;
                         }
                     } while (true);
 
@@ -21860,7 +22097,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBound"
-    // InternalCubeDSL.g:7970:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
+    // InternalCubeDSL.g:8068:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
     public final EObject entryRuleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -21868,8 +22105,8 @@
 
 
         try {
-            // InternalCubeDSL.g:7970:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
-            // InternalCubeDSL.g:7971:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
+            // InternalCubeDSL.g:8068:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
+            // InternalCubeDSL.g:8069:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundRule()); 
@@ -21900,7 +22137,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBound"
-    // InternalCubeDSL.g:7977:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalCubeDSL.g:8075:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBound() throws RecognitionException {
         EObject current = null;
 
@@ -21912,23 +22149,23 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:7983:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalCubeDSL.g:7984:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:8081:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalCubeDSL.g:8082:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalCubeDSL.g:7984:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalCubeDSL.g:7985:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:8082:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:8083:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,95,FOLLOW_56); if (state.failed) return current;
+            otherlv_0=(Token)match(input,98,FOLLOW_59); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
               		
             }
-            // InternalCubeDSL.g:7989:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:7990:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:8087:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:8088:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:7990:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalCubeDSL.g:7991:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalCubeDSL.g:8088:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:8089:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -21984,7 +22221,7 @@
 
 
     // $ANTLR start "entryRuleJvmUpperBoundAnded"
-    // InternalCubeDSL.g:8012:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
+    // InternalCubeDSL.g:8110:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
     public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -21992,8 +22229,8 @@
 
 
         try {
-            // InternalCubeDSL.g:8012:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
-            // InternalCubeDSL.g:8013:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
+            // InternalCubeDSL.g:8110:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
+            // InternalCubeDSL.g:8111:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); 
@@ -22024,7 +22261,7 @@
 
 
     // $ANTLR start "ruleJvmUpperBoundAnded"
-    // InternalCubeDSL.g:8019:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalCubeDSL.g:8117:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmUpperBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -22036,23 +22273,23 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8025:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalCubeDSL.g:8026:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:8123:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalCubeDSL.g:8124:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalCubeDSL.g:8026:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalCubeDSL.g:8027:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:8124:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:8125:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,109,FOLLOW_56); if (state.failed) return current;
+            otherlv_0=(Token)match(input,112,FOLLOW_59); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalCubeDSL.g:8031:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:8032:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:8129:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:8130:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:8032:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalCubeDSL.g:8033:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalCubeDSL.g:8130:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:8131:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -22108,7 +22345,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBound"
-    // InternalCubeDSL.g:8054:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
+    // InternalCubeDSL.g:8152:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
     public final EObject entryRuleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -22116,8 +22353,8 @@
 
 
         try {
-            // InternalCubeDSL.g:8054:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
-            // InternalCubeDSL.g:8055:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
+            // InternalCubeDSL.g:8152:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
+            // InternalCubeDSL.g:8153:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundRule()); 
@@ -22148,7 +22385,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBound"
-    // InternalCubeDSL.g:8061:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalCubeDSL.g:8159:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBound() throws RecognitionException {
         EObject current = null;
 
@@ -22160,23 +22397,23 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8067:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalCubeDSL.g:8068:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:8165:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalCubeDSL.g:8166:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalCubeDSL.g:8068:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalCubeDSL.g:8069:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:8166:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:8167:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,96,FOLLOW_56); if (state.failed) return current;
+            otherlv_0=(Token)match(input,99,FOLLOW_59); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
               		
             }
-            // InternalCubeDSL.g:8073:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:8074:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:8171:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:8172:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:8074:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalCubeDSL.g:8075:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalCubeDSL.g:8172:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:8173:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -22232,7 +22469,7 @@
 
 
     // $ANTLR start "entryRuleJvmLowerBoundAnded"
-    // InternalCubeDSL.g:8096:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
+    // InternalCubeDSL.g:8194:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
     public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -22240,8 +22477,8 @@
 
 
         try {
-            // InternalCubeDSL.g:8096:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
-            // InternalCubeDSL.g:8097:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
+            // InternalCubeDSL.g:8194:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
+            // InternalCubeDSL.g:8195:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); 
@@ -22272,7 +22509,7 @@
 
 
     // $ANTLR start "ruleJvmLowerBoundAnded"
-    // InternalCubeDSL.g:8103:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    // InternalCubeDSL.g:8201:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
     public final EObject ruleJvmLowerBoundAnded() throws RecognitionException {
         EObject current = null;
 
@@ -22284,23 +22521,23 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8109:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
-            // InternalCubeDSL.g:8110:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:8207:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalCubeDSL.g:8208:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
             {
-            // InternalCubeDSL.g:8110:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
-            // InternalCubeDSL.g:8111:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:8208:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalCubeDSL.g:8209:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
             {
-            otherlv_0=(Token)match(input,109,FOLLOW_56); if (state.failed) return current;
+            otherlv_0=(Token)match(input,112,FOLLOW_59); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
               		
             }
-            // InternalCubeDSL.g:8115:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
-            // InternalCubeDSL.g:8116:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:8213:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalCubeDSL.g:8214:4: (lv_typeReference_1_0= ruleJvmTypeReference )
             {
-            // InternalCubeDSL.g:8116:4: (lv_typeReference_1_0= ruleJvmTypeReference )
-            // InternalCubeDSL.g:8117:5: lv_typeReference_1_0= ruleJvmTypeReference
+            // InternalCubeDSL.g:8214:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalCubeDSL.g:8215:5: lv_typeReference_1_0= ruleJvmTypeReference
             {
             if ( state.backtracking==0 ) {
 
@@ -22356,7 +22593,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameWithWildcard"
-    // InternalCubeDSL.g:8138:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
+    // InternalCubeDSL.g:8236:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
     public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
         String current = null;
 
@@ -22364,8 +22601,8 @@
 
 
         try {
-            // InternalCubeDSL.g:8138:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
-            // InternalCubeDSL.g:8139:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
+            // InternalCubeDSL.g:8236:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
+            // InternalCubeDSL.g:8237:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); 
@@ -22396,7 +22633,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameWithWildcard"
-    // InternalCubeDSL.g:8145:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
+    // InternalCubeDSL.g:8243:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -22408,18 +22645,18 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8151:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
-            // InternalCubeDSL.g:8152:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalCubeDSL.g:8249:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
+            // InternalCubeDSL.g:8250:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
             {
-            // InternalCubeDSL.g:8152:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
-            // InternalCubeDSL.g:8153:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
+            // InternalCubeDSL.g:8250:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalCubeDSL.g:8251:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_111);
+            pushFollow(FOLLOW_114);
             this_QualifiedName_0=ruleQualifiedName();
 
             state._fsp--;
@@ -22434,14 +22671,14 @@
               			afterParserOrEnumRuleCall();
               		
             }
-            kw=(Token)match(input,36,FOLLOW_112); if (state.failed) return current;
+            kw=(Token)match(input,39,FOLLOW_115); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
               			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
               		
             }
-            kw=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
+            kw=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			current.merge(kw);
@@ -22473,7 +22710,7 @@
 
 
     // $ANTLR start "entryRuleValidID"
-    // InternalCubeDSL.g:8177:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+    // InternalCubeDSL.g:8275:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
     public final String entryRuleValidID() throws RecognitionException {
         String current = null;
 
@@ -22481,8 +22718,8 @@
 
 
         try {
-            // InternalCubeDSL.g:8177:47: (iv_ruleValidID= ruleValidID EOF )
-            // InternalCubeDSL.g:8178:2: iv_ruleValidID= ruleValidID EOF
+            // InternalCubeDSL.g:8275:47: (iv_ruleValidID= ruleValidID EOF )
+            // InternalCubeDSL.g:8276:2: iv_ruleValidID= ruleValidID EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getValidIDRule()); 
@@ -22513,7 +22750,7 @@
 
 
     // $ANTLR start "ruleValidID"
-    // InternalCubeDSL.g:8184:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    // InternalCubeDSL.g:8282:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
     public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -22523,8 +22760,8 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8190:2: (this_ID_0= RULE_ID )
-            // InternalCubeDSL.g:8191:2: this_ID_0= RULE_ID
+            // InternalCubeDSL.g:8288:2: (this_ID_0= RULE_ID )
+            // InternalCubeDSL.g:8289:2: this_ID_0= RULE_ID
             {
             this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -22559,7 +22796,7 @@
 
 
     // $ANTLR start "entryRuleXImportSection"
-    // InternalCubeDSL.g:8201:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
+    // InternalCubeDSL.g:8299:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
     public final EObject entryRuleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -22567,8 +22804,8 @@
 
 
         try {
-            // InternalCubeDSL.g:8201:55: (iv_ruleXImportSection= ruleXImportSection EOF )
-            // InternalCubeDSL.g:8202:2: iv_ruleXImportSection= ruleXImportSection EOF
+            // InternalCubeDSL.g:8299:55: (iv_ruleXImportSection= ruleXImportSection EOF )
+            // InternalCubeDSL.g:8300:2: iv_ruleXImportSection= ruleXImportSection EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXImportSectionRule()); 
@@ -22599,7 +22836,7 @@
 
 
     // $ANTLR start "ruleXImportSection"
-    // InternalCubeDSL.g:8208:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
+    // InternalCubeDSL.g:8306:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
     public final EObject ruleXImportSection() throws RecognitionException {
         EObject current = null;
 
@@ -22610,34 +22847,34 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8214:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
-            // InternalCubeDSL.g:8215:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            // InternalCubeDSL.g:8312:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
+            // InternalCubeDSL.g:8313:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
             {
-            // InternalCubeDSL.g:8215:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
-            int cnt147=0;
-            loop147:
+            // InternalCubeDSL.g:8313:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            int cnt150=0;
+            loop150:
             do {
-                int alt147=2;
-                int LA147_0 = input.LA(1);
+                int alt150=2;
+                int LA150_0 = input.LA(1);
 
-                if ( (LA147_0==37) ) {
-                    alt147=1;
+                if ( (LA150_0==40) ) {
+                    alt150=1;
                 }
 
 
-                switch (alt147) {
+                switch (alt150) {
             	case 1 :
-            	    // InternalCubeDSL.g:8216:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalCubeDSL.g:8314:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
             	    {
-            	    // InternalCubeDSL.g:8216:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
-            	    // InternalCubeDSL.g:8217:4: lv_importDeclarations_0_0= ruleXImportDeclaration
+            	    // InternalCubeDSL.g:8314:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalCubeDSL.g:8315:4: lv_importDeclarations_0_0= ruleXImportDeclaration
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      				newCompositeNode(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
             	      			
             	    }
-            	    pushFollow(FOLLOW_113);
+            	    pushFollow(FOLLOW_116);
             	    lv_importDeclarations_0_0=ruleXImportDeclaration();
 
             	    state._fsp--;
@@ -22663,13 +22900,13 @@
             	    break;
 
             	default :
-            	    if ( cnt147 >= 1 ) break loop147;
+            	    if ( cnt150 >= 1 ) break loop150;
             	    if (state.backtracking>0) {state.failed=true; return current;}
                         EarlyExitException eee =
-                            new EarlyExitException(147, input);
+                            new EarlyExitException(150, input);
                         throw eee;
                 }
-                cnt147++;
+                cnt150++;
             } while (true);
 
 
@@ -22694,7 +22931,7 @@
 
 
     // $ANTLR start "entryRuleQualifiedNameInStaticImport"
-    // InternalCubeDSL.g:8237:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
+    // InternalCubeDSL.g:8335:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
     public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException {
         String current = null;
 
@@ -22702,8 +22939,8 @@
 
 
         try {
-            // InternalCubeDSL.g:8237:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
-            // InternalCubeDSL.g:8238:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
+            // InternalCubeDSL.g:8335:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
+            // InternalCubeDSL.g:8336:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); 
@@ -22734,7 +22971,7 @@
 
 
     // $ANTLR start "ruleQualifiedNameInStaticImport"
-    // InternalCubeDSL.g:8244:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
+    // InternalCubeDSL.g:8342:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
     public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -22746,37 +22983,37 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8250:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
-            // InternalCubeDSL.g:8251:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            // InternalCubeDSL.g:8348:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
+            // InternalCubeDSL.g:8349:2: (this_ValidID_0= ruleValidID kw= '.' )+
             {
-            // InternalCubeDSL.g:8251:2: (this_ValidID_0= ruleValidID kw= '.' )+
-            int cnt148=0;
-            loop148:
+            // InternalCubeDSL.g:8349:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            int cnt151=0;
+            loop151:
             do {
-                int alt148=2;
-                int LA148_0 = input.LA(1);
+                int alt151=2;
+                int LA151_0 = input.LA(1);
 
-                if ( (LA148_0==RULE_ID) ) {
-                    int LA148_2 = input.LA(2);
+                if ( (LA151_0==RULE_ID) ) {
+                    int LA151_2 = input.LA(2);
 
-                    if ( (LA148_2==36) ) {
-                        alt148=1;
+                    if ( (LA151_2==39) ) {
+                        alt151=1;
                     }
 
 
                 }
 
 
-                switch (alt148) {
+                switch (alt151) {
             	case 1 :
-            	    // InternalCubeDSL.g:8252:3: this_ValidID_0= ruleValidID kw= '.'
+            	    // InternalCubeDSL.g:8350:3: this_ValidID_0= ruleValidID kw= '.'
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      			newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0());
             	      		
             	    }
-            	    pushFollow(FOLLOW_111);
+            	    pushFollow(FOLLOW_114);
             	    this_ValidID_0=ruleValidID();
 
             	    state._fsp--;
@@ -22791,7 +23028,7 @@
             	      			afterParserOrEnumRuleCall();
             	      		
             	    }
-            	    kw=(Token)match(input,36,FOLLOW_114); if (state.failed) return current;
+            	    kw=(Token)match(input,39,FOLLOW_117); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      			current.merge(kw);
@@ -22803,13 +23040,13 @@
             	    break;
 
             	default :
-            	    if ( cnt148 >= 1 ) break loop148;
+            	    if ( cnt151 >= 1 ) break loop151;
             	    if (state.backtracking>0) {state.failed=true; return current;}
                         EarlyExitException eee =
-                            new EarlyExitException(148, input);
+                            new EarlyExitException(151, input);
                         throw eee;
                 }
-                cnt148++;
+                cnt151++;
             } while (true);
 
 
@@ -22834,7 +23071,7 @@
 
 
     // $ANTLR start "ruleCubeAggregatorEnum"
-    // InternalCubeDSL.g:8271:1: ruleCubeAggregatorEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'sum' ) | (enumLiteral_1= 'count' ) | (enumLiteral_2= 'min' ) | (enumLiteral_3= 'max' ) | (enumLiteral_4= 'avg' ) | (enumLiteral_5= 'distinct-count' ) ) ;
+    // InternalCubeDSL.g:8369:1: ruleCubeAggregatorEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'sum' ) | (enumLiteral_1= 'count' ) | (enumLiteral_2= 'min' ) | (enumLiteral_3= 'max' ) | (enumLiteral_4= 'avg' ) | (enumLiteral_5= 'distinct-count' ) ) ;
     public final Enumerator ruleCubeAggregatorEnum() throws RecognitionException {
         Enumerator current = null;
 
@@ -22849,58 +23086,58 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8277:2: ( ( (enumLiteral_0= 'sum' ) | (enumLiteral_1= 'count' ) | (enumLiteral_2= 'min' ) | (enumLiteral_3= 'max' ) | (enumLiteral_4= 'avg' ) | (enumLiteral_5= 'distinct-count' ) ) )
-            // InternalCubeDSL.g:8278:2: ( (enumLiteral_0= 'sum' ) | (enumLiteral_1= 'count' ) | (enumLiteral_2= 'min' ) | (enumLiteral_3= 'max' ) | (enumLiteral_4= 'avg' ) | (enumLiteral_5= 'distinct-count' ) )
+            // InternalCubeDSL.g:8375:2: ( ( (enumLiteral_0= 'sum' ) | (enumLiteral_1= 'count' ) | (enumLiteral_2= 'min' ) | (enumLiteral_3= 'max' ) | (enumLiteral_4= 'avg' ) | (enumLiteral_5= 'distinct-count' ) ) )
+            // InternalCubeDSL.g:8376:2: ( (enumLiteral_0= 'sum' ) | (enumLiteral_1= 'count' ) | (enumLiteral_2= 'min' ) | (enumLiteral_3= 'max' ) | (enumLiteral_4= 'avg' ) | (enumLiteral_5= 'distinct-count' ) )
             {
-            // InternalCubeDSL.g:8278:2: ( (enumLiteral_0= 'sum' ) | (enumLiteral_1= 'count' ) | (enumLiteral_2= 'min' ) | (enumLiteral_3= 'max' ) | (enumLiteral_4= 'avg' ) | (enumLiteral_5= 'distinct-count' ) )
-            int alt149=6;
+            // InternalCubeDSL.g:8376:2: ( (enumLiteral_0= 'sum' ) | (enumLiteral_1= 'count' ) | (enumLiteral_2= 'min' ) | (enumLiteral_3= 'max' ) | (enumLiteral_4= 'avg' ) | (enumLiteral_5= 'distinct-count' ) )
+            int alt152=6;
             switch ( input.LA(1) ) {
-            case 110:
-                {
-                alt149=1;
-                }
-                break;
-            case 111:
-                {
-                alt149=2;
-                }
-                break;
-            case 112:
-                {
-                alt149=3;
-                }
-                break;
             case 113:
                 {
-                alt149=4;
+                alt152=1;
                 }
                 break;
             case 114:
                 {
-                alt149=5;
+                alt152=2;
                 }
                 break;
             case 115:
                 {
-                alt149=6;
+                alt152=3;
+                }
+                break;
+            case 116:
+                {
+                alt152=4;
+                }
+                break;
+            case 117:
+                {
+                alt152=5;
+                }
+                break;
+            case 118:
+                {
+                alt152=6;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 149, 0, input);
+                    new NoViableAltException("", 152, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt149) {
+            switch (alt152) {
                 case 1 :
-                    // InternalCubeDSL.g:8279:3: (enumLiteral_0= 'sum' )
+                    // InternalCubeDSL.g:8377:3: (enumLiteral_0= 'sum' )
                     {
-                    // InternalCubeDSL.g:8279:3: (enumLiteral_0= 'sum' )
-                    // InternalCubeDSL.g:8280:4: enumLiteral_0= 'sum'
+                    // InternalCubeDSL.g:8377:3: (enumLiteral_0= 'sum' )
+                    // InternalCubeDSL.g:8378:4: enumLiteral_0= 'sum'
                     {
-                    enumLiteral_0=(Token)match(input,110,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeAggregatorEnumAccess().getSUMEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -22914,12 +23151,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:8287:3: (enumLiteral_1= 'count' )
+                    // InternalCubeDSL.g:8385:3: (enumLiteral_1= 'count' )
                     {
-                    // InternalCubeDSL.g:8287:3: (enumLiteral_1= 'count' )
-                    // InternalCubeDSL.g:8288:4: enumLiteral_1= 'count'
+                    // InternalCubeDSL.g:8385:3: (enumLiteral_1= 'count' )
+                    // InternalCubeDSL.g:8386:4: enumLiteral_1= 'count'
                     {
-                    enumLiteral_1=(Token)match(input,111,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,114,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeAggregatorEnumAccess().getCOUNTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -22933,12 +23170,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:8295:3: (enumLiteral_2= 'min' )
+                    // InternalCubeDSL.g:8393:3: (enumLiteral_2= 'min' )
                     {
-                    // InternalCubeDSL.g:8295:3: (enumLiteral_2= 'min' )
-                    // InternalCubeDSL.g:8296:4: enumLiteral_2= 'min'
+                    // InternalCubeDSL.g:8393:3: (enumLiteral_2= 'min' )
+                    // InternalCubeDSL.g:8394:4: enumLiteral_2= 'min'
                     {
-                    enumLiteral_2=(Token)match(input,112,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,115,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeAggregatorEnumAccess().getMINEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -22952,12 +23189,12 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:8303:3: (enumLiteral_3= 'max' )
+                    // InternalCubeDSL.g:8401:3: (enumLiteral_3= 'max' )
                     {
-                    // InternalCubeDSL.g:8303:3: (enumLiteral_3= 'max' )
-                    // InternalCubeDSL.g:8304:4: enumLiteral_3= 'max'
+                    // InternalCubeDSL.g:8401:3: (enumLiteral_3= 'max' )
+                    // InternalCubeDSL.g:8402:4: enumLiteral_3= 'max'
                     {
-                    enumLiteral_3=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,116,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeAggregatorEnumAccess().getMAXEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -22971,12 +23208,12 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:8311:3: (enumLiteral_4= 'avg' )
+                    // InternalCubeDSL.g:8409:3: (enumLiteral_4= 'avg' )
                     {
-                    // InternalCubeDSL.g:8311:3: (enumLiteral_4= 'avg' )
-                    // InternalCubeDSL.g:8312:4: enumLiteral_4= 'avg'
+                    // InternalCubeDSL.g:8409:3: (enumLiteral_4= 'avg' )
+                    // InternalCubeDSL.g:8410:4: enumLiteral_4= 'avg'
                     {
-                    enumLiteral_4=(Token)match(input,114,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,117,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeAggregatorEnumAccess().getAVGEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -22990,12 +23227,12 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:8319:3: (enumLiteral_5= 'distinct-count' )
+                    // InternalCubeDSL.g:8417:3: (enumLiteral_5= 'distinct-count' )
                     {
-                    // InternalCubeDSL.g:8319:3: (enumLiteral_5= 'distinct-count' )
-                    // InternalCubeDSL.g:8320:4: enumLiteral_5= 'distinct-count'
+                    // InternalCubeDSL.g:8417:3: (enumLiteral_5= 'distinct-count' )
+                    // InternalCubeDSL.g:8418:4: enumLiteral_5= 'distinct-count'
                     {
-                    enumLiteral_5=(Token)match(input,115,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,118,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeAggregatorEnumAccess().getDSCEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -23033,7 +23270,7 @@
 
 
     // $ANTLR start "ruleCubeLevelPropType"
-    // InternalCubeDSL.g:8330:1: ruleCubeLevelPropType returns [Enumerator current=null] : ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'Numeric' ) | (enumLiteral_2= 'Integer' ) | (enumLiteral_3= 'Boolean' ) | (enumLiteral_4= 'Date' ) | (enumLiteral_5= 'Time' ) | (enumLiteral_6= 'Timestamp' ) ) ;
+    // InternalCubeDSL.g:8428:1: ruleCubeLevelPropType returns [Enumerator current=null] : ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'Numeric' ) | (enumLiteral_2= 'Integer' ) | (enumLiteral_3= 'Boolean' ) | (enumLiteral_4= 'Date' ) | (enumLiteral_5= 'Time' ) | (enumLiteral_6= 'Timestamp' ) ) ;
     public final Enumerator ruleCubeLevelPropType() throws RecognitionException {
         Enumerator current = null;
 
@@ -23049,63 +23286,63 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8336:2: ( ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'Numeric' ) | (enumLiteral_2= 'Integer' ) | (enumLiteral_3= 'Boolean' ) | (enumLiteral_4= 'Date' ) | (enumLiteral_5= 'Time' ) | (enumLiteral_6= 'Timestamp' ) ) )
-            // InternalCubeDSL.g:8337:2: ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'Numeric' ) | (enumLiteral_2= 'Integer' ) | (enumLiteral_3= 'Boolean' ) | (enumLiteral_4= 'Date' ) | (enumLiteral_5= 'Time' ) | (enumLiteral_6= 'Timestamp' ) )
+            // InternalCubeDSL.g:8434:2: ( ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'Numeric' ) | (enumLiteral_2= 'Integer' ) | (enumLiteral_3= 'Boolean' ) | (enumLiteral_4= 'Date' ) | (enumLiteral_5= 'Time' ) | (enumLiteral_6= 'Timestamp' ) ) )
+            // InternalCubeDSL.g:8435:2: ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'Numeric' ) | (enumLiteral_2= 'Integer' ) | (enumLiteral_3= 'Boolean' ) | (enumLiteral_4= 'Date' ) | (enumLiteral_5= 'Time' ) | (enumLiteral_6= 'Timestamp' ) )
             {
-            // InternalCubeDSL.g:8337:2: ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'Numeric' ) | (enumLiteral_2= 'Integer' ) | (enumLiteral_3= 'Boolean' ) | (enumLiteral_4= 'Date' ) | (enumLiteral_5= 'Time' ) | (enumLiteral_6= 'Timestamp' ) )
-            int alt150=7;
+            // InternalCubeDSL.g:8435:2: ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'Numeric' ) | (enumLiteral_2= 'Integer' ) | (enumLiteral_3= 'Boolean' ) | (enumLiteral_4= 'Date' ) | (enumLiteral_5= 'Time' ) | (enumLiteral_6= 'Timestamp' ) )
+            int alt153=7;
             switch ( input.LA(1) ) {
-            case 116:
-                {
-                alt150=1;
-                }
-                break;
-            case 117:
-                {
-                alt150=2;
-                }
-                break;
-            case 118:
-                {
-                alt150=3;
-                }
-                break;
             case 119:
                 {
-                alt150=4;
+                alt153=1;
                 }
                 break;
             case 120:
                 {
-                alt150=5;
+                alt153=2;
                 }
                 break;
             case 121:
                 {
-                alt150=6;
+                alt153=3;
                 }
                 break;
             case 122:
                 {
-                alt150=7;
+                alt153=4;
+                }
+                break;
+            case 123:
+                {
+                alt153=5;
+                }
+                break;
+            case 124:
+                {
+                alt153=6;
+                }
+                break;
+            case 125:
+                {
+                alt153=7;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 150, 0, input);
+                    new NoViableAltException("", 153, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt150) {
+            switch (alt153) {
                 case 1 :
-                    // InternalCubeDSL.g:8338:3: (enumLiteral_0= 'String' )
+                    // InternalCubeDSL.g:8436:3: (enumLiteral_0= 'String' )
                     {
-                    // InternalCubeDSL.g:8338:3: (enumLiteral_0= 'String' )
-                    // InternalCubeDSL.g:8339:4: enumLiteral_0= 'String'
+                    // InternalCubeDSL.g:8436:3: (enumLiteral_0= 'String' )
+                    // InternalCubeDSL.g:8437:4: enumLiteral_0= 'String'
                     {
-                    enumLiteral_0=(Token)match(input,116,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,119,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelPropTypeAccess().getSTRINGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -23119,12 +23356,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:8346:3: (enumLiteral_1= 'Numeric' )
+                    // InternalCubeDSL.g:8444:3: (enumLiteral_1= 'Numeric' )
                     {
-                    // InternalCubeDSL.g:8346:3: (enumLiteral_1= 'Numeric' )
-                    // InternalCubeDSL.g:8347:4: enumLiteral_1= 'Numeric'
+                    // InternalCubeDSL.g:8444:3: (enumLiteral_1= 'Numeric' )
+                    // InternalCubeDSL.g:8445:4: enumLiteral_1= 'Numeric'
                     {
-                    enumLiteral_1=(Token)match(input,117,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,120,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelPropTypeAccess().getNUMERICEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -23138,12 +23375,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:8354:3: (enumLiteral_2= 'Integer' )
+                    // InternalCubeDSL.g:8452:3: (enumLiteral_2= 'Integer' )
                     {
-                    // InternalCubeDSL.g:8354:3: (enumLiteral_2= 'Integer' )
-                    // InternalCubeDSL.g:8355:4: enumLiteral_2= 'Integer'
+                    // InternalCubeDSL.g:8452:3: (enumLiteral_2= 'Integer' )
+                    // InternalCubeDSL.g:8453:4: enumLiteral_2= 'Integer'
                     {
-                    enumLiteral_2=(Token)match(input,118,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,121,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelPropTypeAccess().getINTEGEREnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -23157,12 +23394,12 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:8362:3: (enumLiteral_3= 'Boolean' )
+                    // InternalCubeDSL.g:8460:3: (enumLiteral_3= 'Boolean' )
                     {
-                    // InternalCubeDSL.g:8362:3: (enumLiteral_3= 'Boolean' )
-                    // InternalCubeDSL.g:8363:4: enumLiteral_3= 'Boolean'
+                    // InternalCubeDSL.g:8460:3: (enumLiteral_3= 'Boolean' )
+                    // InternalCubeDSL.g:8461:4: enumLiteral_3= 'Boolean'
                     {
-                    enumLiteral_3=(Token)match(input,119,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,122,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelPropTypeAccess().getBOOLEANEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -23176,12 +23413,12 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:8370:3: (enumLiteral_4= 'Date' )
+                    // InternalCubeDSL.g:8468:3: (enumLiteral_4= 'Date' )
                     {
-                    // InternalCubeDSL.g:8370:3: (enumLiteral_4= 'Date' )
-                    // InternalCubeDSL.g:8371:4: enumLiteral_4= 'Date'
+                    // InternalCubeDSL.g:8468:3: (enumLiteral_4= 'Date' )
+                    // InternalCubeDSL.g:8469:4: enumLiteral_4= 'Date'
                     {
-                    enumLiteral_4=(Token)match(input,120,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,123,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelPropTypeAccess().getDATEEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -23195,12 +23432,12 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:8378:3: (enumLiteral_5= 'Time' )
+                    // InternalCubeDSL.g:8476:3: (enumLiteral_5= 'Time' )
                     {
-                    // InternalCubeDSL.g:8378:3: (enumLiteral_5= 'Time' )
-                    // InternalCubeDSL.g:8379:4: enumLiteral_5= 'Time'
+                    // InternalCubeDSL.g:8476:3: (enumLiteral_5= 'Time' )
+                    // InternalCubeDSL.g:8477:4: enumLiteral_5= 'Time'
                     {
-                    enumLiteral_5=(Token)match(input,121,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,124,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelPropTypeAccess().getTIMEEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -23214,12 +23451,12 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:8386:3: (enumLiteral_6= 'Timestamp' )
+                    // InternalCubeDSL.g:8484:3: (enumLiteral_6= 'Timestamp' )
                     {
-                    // InternalCubeDSL.g:8386:3: (enumLiteral_6= 'Timestamp' )
-                    // InternalCubeDSL.g:8387:4: enumLiteral_6= 'Timestamp'
+                    // InternalCubeDSL.g:8484:3: (enumLiteral_6= 'Timestamp' )
+                    // InternalCubeDSL.g:8485:4: enumLiteral_6= 'Timestamp'
                     {
-                    enumLiteral_6=(Token)match(input,122,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_6=(Token)match(input,125,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelPropTypeAccess().getTIMESTAMPEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
@@ -23257,7 +23494,7 @@
 
 
     // $ANTLR start "ruleCubeLevelLevelType"
-    // InternalCubeDSL.g:8397:1: ruleCubeLevelLevelType returns [Enumerator current=null] : ( (enumLiteral_0= 'Time' ) | (enumLiteral_1= 'TimeYears' ) | (enumLiteral_2= 'TimeHalfYears' ) | (enumLiteral_3= 'TimeQuarters' ) | (enumLiteral_4= 'TimeMonths' ) | (enumLiteral_5= 'TimeWeeks' ) | (enumLiteral_6= 'TimeDays' ) | (enumLiteral_7= 'TimeHours' ) | (enumLiteral_8= 'TimeMinutes' ) | (enumLiteral_9= 'TimeSeconds' ) ) ;
+    // InternalCubeDSL.g:8495:1: ruleCubeLevelLevelType returns [Enumerator current=null] : ( (enumLiteral_0= 'Time' ) | (enumLiteral_1= 'TimeYears' ) | (enumLiteral_2= 'TimeHalfYears' ) | (enumLiteral_3= 'TimeQuarters' ) | (enumLiteral_4= 'TimeMonths' ) | (enumLiteral_5= 'TimeWeeks' ) | (enumLiteral_6= 'TimeDays' ) | (enumLiteral_7= 'TimeHours' ) | (enumLiteral_8= 'TimeMinutes' ) | (enumLiteral_9= 'TimeSeconds' ) ) ;
     public final Enumerator ruleCubeLevelLevelType() throws RecognitionException {
         Enumerator current = null;
 
@@ -23276,78 +23513,78 @@
         	enterRule();
 
         try {
-            // InternalCubeDSL.g:8403:2: ( ( (enumLiteral_0= 'Time' ) | (enumLiteral_1= 'TimeYears' ) | (enumLiteral_2= 'TimeHalfYears' ) | (enumLiteral_3= 'TimeQuarters' ) | (enumLiteral_4= 'TimeMonths' ) | (enumLiteral_5= 'TimeWeeks' ) | (enumLiteral_6= 'TimeDays' ) | (enumLiteral_7= 'TimeHours' ) | (enumLiteral_8= 'TimeMinutes' ) | (enumLiteral_9= 'TimeSeconds' ) ) )
-            // InternalCubeDSL.g:8404:2: ( (enumLiteral_0= 'Time' ) | (enumLiteral_1= 'TimeYears' ) | (enumLiteral_2= 'TimeHalfYears' ) | (enumLiteral_3= 'TimeQuarters' ) | (enumLiteral_4= 'TimeMonths' ) | (enumLiteral_5= 'TimeWeeks' ) | (enumLiteral_6= 'TimeDays' ) | (enumLiteral_7= 'TimeHours' ) | (enumLiteral_8= 'TimeMinutes' ) | (enumLiteral_9= 'TimeSeconds' ) )
+            // InternalCubeDSL.g:8501:2: ( ( (enumLiteral_0= 'Time' ) | (enumLiteral_1= 'TimeYears' ) | (enumLiteral_2= 'TimeHalfYears' ) | (enumLiteral_3= 'TimeQuarters' ) | (enumLiteral_4= 'TimeMonths' ) | (enumLiteral_5= 'TimeWeeks' ) | (enumLiteral_6= 'TimeDays' ) | (enumLiteral_7= 'TimeHours' ) | (enumLiteral_8= 'TimeMinutes' ) | (enumLiteral_9= 'TimeSeconds' ) ) )
+            // InternalCubeDSL.g:8502:2: ( (enumLiteral_0= 'Time' ) | (enumLiteral_1= 'TimeYears' ) | (enumLiteral_2= 'TimeHalfYears' ) | (enumLiteral_3= 'TimeQuarters' ) | (enumLiteral_4= 'TimeMonths' ) | (enumLiteral_5= 'TimeWeeks' ) | (enumLiteral_6= 'TimeDays' ) | (enumLiteral_7= 'TimeHours' ) | (enumLiteral_8= 'TimeMinutes' ) | (enumLiteral_9= 'TimeSeconds' ) )
             {
-            // InternalCubeDSL.g:8404:2: ( (enumLiteral_0= 'Time' ) | (enumLiteral_1= 'TimeYears' ) | (enumLiteral_2= 'TimeHalfYears' ) | (enumLiteral_3= 'TimeQuarters' ) | (enumLiteral_4= 'TimeMonths' ) | (enumLiteral_5= 'TimeWeeks' ) | (enumLiteral_6= 'TimeDays' ) | (enumLiteral_7= 'TimeHours' ) | (enumLiteral_8= 'TimeMinutes' ) | (enumLiteral_9= 'TimeSeconds' ) )
-            int alt151=10;
+            // InternalCubeDSL.g:8502:2: ( (enumLiteral_0= 'Time' ) | (enumLiteral_1= 'TimeYears' ) | (enumLiteral_2= 'TimeHalfYears' ) | (enumLiteral_3= 'TimeQuarters' ) | (enumLiteral_4= 'TimeMonths' ) | (enumLiteral_5= 'TimeWeeks' ) | (enumLiteral_6= 'TimeDays' ) | (enumLiteral_7= 'TimeHours' ) | (enumLiteral_8= 'TimeMinutes' ) | (enumLiteral_9= 'TimeSeconds' ) )
+            int alt154=10;
             switch ( input.LA(1) ) {
-            case 121:
-                {
-                alt151=1;
-                }
-                break;
-            case 123:
-                {
-                alt151=2;
-                }
-                break;
             case 124:
                 {
-                alt151=3;
-                }
-                break;
-            case 125:
-                {
-                alt151=4;
+                alt154=1;
                 }
                 break;
             case 126:
                 {
-                alt151=5;
+                alt154=2;
                 }
                 break;
             case 127:
                 {
-                alt151=6;
+                alt154=3;
                 }
                 break;
             case 128:
                 {
-                alt151=7;
+                alt154=4;
                 }
                 break;
             case 129:
                 {
-                alt151=8;
+                alt154=5;
                 }
                 break;
             case 130:
                 {
-                alt151=9;
+                alt154=6;
                 }
                 break;
             case 131:
                 {
-                alt151=10;
+                alt154=7;
+                }
+                break;
+            case 132:
+                {
+                alt154=8;
+                }
+                break;
+            case 133:
+                {
+                alt154=9;
+                }
+                break;
+            case 134:
+                {
+                alt154=10;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 151, 0, input);
+                    new NoViableAltException("", 154, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt151) {
+            switch (alt154) {
                 case 1 :
-                    // InternalCubeDSL.g:8405:3: (enumLiteral_0= 'Time' )
+                    // InternalCubeDSL.g:8503:3: (enumLiteral_0= 'Time' )
                     {
-                    // InternalCubeDSL.g:8405:3: (enumLiteral_0= 'Time' )
-                    // InternalCubeDSL.g:8406:4: enumLiteral_0= 'Time'
+                    // InternalCubeDSL.g:8503:3: (enumLiteral_0= 'Time' )
+                    // InternalCubeDSL.g:8504:4: enumLiteral_0= 'Time'
                     {
-                    enumLiteral_0=(Token)match(input,121,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,124,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIMEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -23361,12 +23598,12 @@
                     }
                     break;
                 case 2 :
-                    // InternalCubeDSL.g:8413:3: (enumLiteral_1= 'TimeYears' )
+                    // InternalCubeDSL.g:8511:3: (enumLiteral_1= 'TimeYears' )
                     {
-                    // InternalCubeDSL.g:8413:3: (enumLiteral_1= 'TimeYears' )
-                    // InternalCubeDSL.g:8414:4: enumLiteral_1= 'TimeYears'
+                    // InternalCubeDSL.g:8511:3: (enumLiteral_1= 'TimeYears' )
+                    // InternalCubeDSL.g:8512:4: enumLiteral_1= 'TimeYears'
                     {
-                    enumLiteral_1=(Token)match(input,123,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,126,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_YEARSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -23380,12 +23617,12 @@
                     }
                     break;
                 case 3 :
-                    // InternalCubeDSL.g:8421:3: (enumLiteral_2= 'TimeHalfYears' )
+                    // InternalCubeDSL.g:8519:3: (enumLiteral_2= 'TimeHalfYears' )
                     {
-                    // InternalCubeDSL.g:8421:3: (enumLiteral_2= 'TimeHalfYears' )
-                    // InternalCubeDSL.g:8422:4: enumLiteral_2= 'TimeHalfYears'
+                    // InternalCubeDSL.g:8519:3: (enumLiteral_2= 'TimeHalfYears' )
+                    // InternalCubeDSL.g:8520:4: enumLiteral_2= 'TimeHalfYears'
                     {
-                    enumLiteral_2=(Token)match(input,124,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,127,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_HALF_YEARSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -23399,12 +23636,12 @@
                     }
                     break;
                 case 4 :
-                    // InternalCubeDSL.g:8429:3: (enumLiteral_3= 'TimeQuarters' )
+                    // InternalCubeDSL.g:8527:3: (enumLiteral_3= 'TimeQuarters' )
                     {
-                    // InternalCubeDSL.g:8429:3: (enumLiteral_3= 'TimeQuarters' )
-                    // InternalCubeDSL.g:8430:4: enumLiteral_3= 'TimeQuarters'
+                    // InternalCubeDSL.g:8527:3: (enumLiteral_3= 'TimeQuarters' )
+                    // InternalCubeDSL.g:8528:4: enumLiteral_3= 'TimeQuarters'
                     {
-                    enumLiteral_3=(Token)match(input,125,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,128,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_QUARTERSEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -23418,12 +23655,12 @@
                     }
                     break;
                 case 5 :
-                    // InternalCubeDSL.g:8437:3: (enumLiteral_4= 'TimeMonths' )
+                    // InternalCubeDSL.g:8535:3: (enumLiteral_4= 'TimeMonths' )
                     {
-                    // InternalCubeDSL.g:8437:3: (enumLiteral_4= 'TimeMonths' )
-                    // InternalCubeDSL.g:8438:4: enumLiteral_4= 'TimeMonths'
+                    // InternalCubeDSL.g:8535:3: (enumLiteral_4= 'TimeMonths' )
+                    // InternalCubeDSL.g:8536:4: enumLiteral_4= 'TimeMonths'
                     {
-                    enumLiteral_4=(Token)match(input,126,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,129,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_MONTHSEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -23437,12 +23674,12 @@
                     }
                     break;
                 case 6 :
-                    // InternalCubeDSL.g:8445:3: (enumLiteral_5= 'TimeWeeks' )
+                    // InternalCubeDSL.g:8543:3: (enumLiteral_5= 'TimeWeeks' )
                     {
-                    // InternalCubeDSL.g:8445:3: (enumLiteral_5= 'TimeWeeks' )
-                    // InternalCubeDSL.g:8446:4: enumLiteral_5= 'TimeWeeks'
+                    // InternalCubeDSL.g:8543:3: (enumLiteral_5= 'TimeWeeks' )
+                    // InternalCubeDSL.g:8544:4: enumLiteral_5= 'TimeWeeks'
                     {
-                    enumLiteral_5=(Token)match(input,127,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,130,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_WEEKSEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -23456,12 +23693,12 @@
                     }
                     break;
                 case 7 :
-                    // InternalCubeDSL.g:8453:3: (enumLiteral_6= 'TimeDays' )
+                    // InternalCubeDSL.g:8551:3: (enumLiteral_6= 'TimeDays' )
                     {
-                    // InternalCubeDSL.g:8453:3: (enumLiteral_6= 'TimeDays' )
-                    // InternalCubeDSL.g:8454:4: enumLiteral_6= 'TimeDays'
+                    // InternalCubeDSL.g:8551:3: (enumLiteral_6= 'TimeDays' )
+                    // InternalCubeDSL.g:8552:4: enumLiteral_6= 'TimeDays'
                     {
-                    enumLiteral_6=(Token)match(input,128,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_6=(Token)match(input,131,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_DAYSEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
@@ -23475,12 +23712,12 @@
                     }
                     break;
                 case 8 :
-                    // InternalCubeDSL.g:8461:3: (enumLiteral_7= 'TimeHours' )
+                    // InternalCubeDSL.g:8559:3: (enumLiteral_7= 'TimeHours' )
                     {
-                    // InternalCubeDSL.g:8461:3: (enumLiteral_7= 'TimeHours' )
-                    // InternalCubeDSL.g:8462:4: enumLiteral_7= 'TimeHours'
+                    // InternalCubeDSL.g:8559:3: (enumLiteral_7= 'TimeHours' )
+                    // InternalCubeDSL.g:8560:4: enumLiteral_7= 'TimeHours'
                     {
-                    enumLiteral_7=(Token)match(input,129,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_7=(Token)match(input,132,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_HOURSEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
@@ -23494,12 +23731,12 @@
                     }
                     break;
                 case 9 :
-                    // InternalCubeDSL.g:8469:3: (enumLiteral_8= 'TimeMinutes' )
+                    // InternalCubeDSL.g:8567:3: (enumLiteral_8= 'TimeMinutes' )
                     {
-                    // InternalCubeDSL.g:8469:3: (enumLiteral_8= 'TimeMinutes' )
-                    // InternalCubeDSL.g:8470:4: enumLiteral_8= 'TimeMinutes'
+                    // InternalCubeDSL.g:8567:3: (enumLiteral_8= 'TimeMinutes' )
+                    // InternalCubeDSL.g:8568:4: enumLiteral_8= 'TimeMinutes'
                     {
-                    enumLiteral_8=(Token)match(input,130,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_8=(Token)match(input,133,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_MINUTESEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
@@ -23513,12 +23750,12 @@
                     }
                     break;
                 case 10 :
-                    // InternalCubeDSL.g:8477:3: (enumLiteral_9= 'TimeSeconds' )
+                    // InternalCubeDSL.g:8575:3: (enumLiteral_9= 'TimeSeconds' )
                     {
-                    // InternalCubeDSL.g:8477:3: (enumLiteral_9= 'TimeSeconds' )
-                    // InternalCubeDSL.g:8478:4: enumLiteral_9= 'TimeSeconds'
+                    // InternalCubeDSL.g:8575:3: (enumLiteral_9= 'TimeSeconds' )
+                    // InternalCubeDSL.g:8576:4: enumLiteral_9= 'TimeSeconds'
                     {
-                    enumLiteral_9=(Token)match(input,131,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_9=(Token)match(input,134,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getCubeLevelLevelTypeAccess().getMDLEVEL_TYPE_TIME_SECONDSEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
@@ -23556,10 +23793,10 @@
 
     // $ANTLR start synpred1_InternalCubeDSL
     public final void synpred1_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:1647:5: ( '(' )
-        // InternalCubeDSL.g:1647:6: '('
+        // InternalCubeDSL.g:1745:5: ( '(' )
+        // InternalCubeDSL.g:1745:6: '('
         {
-        match(input,44,FOLLOW_2); if (state.failed) return ;
+        match(input,47,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -23567,19 +23804,19 @@
 
     // $ANTLR start synpred2_InternalCubeDSL
     public final void synpred2_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:1656:7: ( ( ( ( ruleValidID ) ) '=' ) )
-        // InternalCubeDSL.g:1656:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalCubeDSL.g:1754:7: ( ( ( ( ruleValidID ) ) '=' ) )
+        // InternalCubeDSL.g:1754:8: ( ( ( ruleValidID ) ) '=' )
         {
-        // InternalCubeDSL.g:1656:8: ( ( ( ruleValidID ) ) '=' )
-        // InternalCubeDSL.g:1657:8: ( ( ruleValidID ) ) '='
+        // InternalCubeDSL.g:1754:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalCubeDSL.g:1755:8: ( ( ruleValidID ) ) '='
         {
-        // InternalCubeDSL.g:1657:8: ( ( ruleValidID ) )
-        // InternalCubeDSL.g:1658:9: ( ruleValidID )
+        // InternalCubeDSL.g:1755:8: ( ( ruleValidID ) )
+        // InternalCubeDSL.g:1756:9: ( ruleValidID )
         {
-        // InternalCubeDSL.g:1658:9: ( ruleValidID )
-        // InternalCubeDSL.g:1659:10: ruleValidID
+        // InternalCubeDSL.g:1756:9: ( ruleValidID )
+        // InternalCubeDSL.g:1757:10: ruleValidID
         {
-        pushFollow(FOLLOW_42);
+        pushFollow(FOLLOW_45);
         ruleValidID();
 
         state._fsp--;
@@ -23590,7 +23827,7 @@
 
         }
 
-        match(input,47,FOLLOW_2); if (state.failed) return ;
+        match(input,50,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23601,19 +23838,19 @@
 
     // $ANTLR start synpred5_InternalCubeDSL
     public final void synpred5_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:1836:5: ( ( () '#' '[' ) )
-        // InternalCubeDSL.g:1836:6: ( () '#' '[' )
+        // InternalCubeDSL.g:1934:5: ( ( () '#' '[' ) )
+        // InternalCubeDSL.g:1934:6: ( () '#' '[' )
         {
-        // InternalCubeDSL.g:1836:6: ( () '#' '[' )
-        // InternalCubeDSL.g:1837:6: () '#' '['
+        // InternalCubeDSL.g:1934:6: ( () '#' '[' )
+        // InternalCubeDSL.g:1935:6: () '#' '['
         {
-        // InternalCubeDSL.g:1837:6: ()
-        // InternalCubeDSL.g:1838:6: 
+        // InternalCubeDSL.g:1935:6: ()
+        // InternalCubeDSL.g:1936:6: 
         {
         }
 
-        match(input,48,FOLLOW_44); if (state.failed) return ;
-        match(input,49,FOLLOW_2); if (state.failed) return ;
+        match(input,51,FOLLOW_47); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23624,19 +23861,19 @@
 
     // $ANTLR start synpred6_InternalCubeDSL
     public final void synpred6_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:1978:5: ( ( () '#' '[' ) )
-        // InternalCubeDSL.g:1978:6: ( () '#' '[' )
+        // InternalCubeDSL.g:2076:5: ( ( () '#' '[' ) )
+        // InternalCubeDSL.g:2076:6: ( () '#' '[' )
         {
-        // InternalCubeDSL.g:1978:6: ( () '#' '[' )
-        // InternalCubeDSL.g:1979:6: () '#' '['
+        // InternalCubeDSL.g:2076:6: ( () '#' '[' )
+        // InternalCubeDSL.g:2077:6: () '#' '['
         {
-        // InternalCubeDSL.g:1979:6: ()
-        // InternalCubeDSL.g:1980:6: 
+        // InternalCubeDSL.g:2077:6: ()
+        // InternalCubeDSL.g:2078:6: 
         {
         }
 
-        match(input,48,FOLLOW_44); if (state.failed) return ;
-        match(input,49,FOLLOW_2); if (state.failed) return ;
+        match(input,51,FOLLOW_47); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23647,22 +23884,22 @@
 
     // $ANTLR start synpred7_InternalCubeDSL
     public final void synpred7_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2206:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
-        // InternalCubeDSL.g:2206:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalCubeDSL.g:2304:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
+        // InternalCubeDSL.g:2304:7: ( () ( ( ruleOpMultiAssign ) ) )
         {
-        // InternalCubeDSL.g:2206:7: ( () ( ( ruleOpMultiAssign ) ) )
-        // InternalCubeDSL.g:2207:7: () ( ( ruleOpMultiAssign ) )
+        // InternalCubeDSL.g:2304:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalCubeDSL.g:2305:7: () ( ( ruleOpMultiAssign ) )
         {
-        // InternalCubeDSL.g:2207:7: ()
-        // InternalCubeDSL.g:2208:7: 
+        // InternalCubeDSL.g:2305:7: ()
+        // InternalCubeDSL.g:2306:7: 
         {
         }
 
-        // InternalCubeDSL.g:2209:7: ( ( ruleOpMultiAssign ) )
-        // InternalCubeDSL.g:2210:8: ( ruleOpMultiAssign )
+        // InternalCubeDSL.g:2307:7: ( ( ruleOpMultiAssign ) )
+        // InternalCubeDSL.g:2308:8: ( ruleOpMultiAssign )
         {
-        // InternalCubeDSL.g:2210:8: ( ruleOpMultiAssign )
-        // InternalCubeDSL.g:2211:9: ruleOpMultiAssign
+        // InternalCubeDSL.g:2308:8: ( ruleOpMultiAssign )
+        // InternalCubeDSL.g:2309:9: ruleOpMultiAssign
         {
         pushFollow(FOLLOW_2);
         ruleOpMultiAssign();
@@ -23685,22 +23922,22 @@
 
     // $ANTLR start synpred8_InternalCubeDSL
     public final void synpred8_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2400:5: ( ( () ( ( ruleOpOr ) ) ) )
-        // InternalCubeDSL.g:2400:6: ( () ( ( ruleOpOr ) ) )
+        // InternalCubeDSL.g:2498:5: ( ( () ( ( ruleOpOr ) ) ) )
+        // InternalCubeDSL.g:2498:6: ( () ( ( ruleOpOr ) ) )
         {
-        // InternalCubeDSL.g:2400:6: ( () ( ( ruleOpOr ) ) )
-        // InternalCubeDSL.g:2401:6: () ( ( ruleOpOr ) )
+        // InternalCubeDSL.g:2498:6: ( () ( ( ruleOpOr ) ) )
+        // InternalCubeDSL.g:2499:6: () ( ( ruleOpOr ) )
         {
-        // InternalCubeDSL.g:2401:6: ()
-        // InternalCubeDSL.g:2402:6: 
+        // InternalCubeDSL.g:2499:6: ()
+        // InternalCubeDSL.g:2500:6: 
         {
         }
 
-        // InternalCubeDSL.g:2403:6: ( ( ruleOpOr ) )
-        // InternalCubeDSL.g:2404:7: ( ruleOpOr )
+        // InternalCubeDSL.g:2501:6: ( ( ruleOpOr ) )
+        // InternalCubeDSL.g:2502:7: ( ruleOpOr )
         {
-        // InternalCubeDSL.g:2404:7: ( ruleOpOr )
-        // InternalCubeDSL.g:2405:8: ruleOpOr
+        // InternalCubeDSL.g:2502:7: ( ruleOpOr )
+        // InternalCubeDSL.g:2503:8: ruleOpOr
         {
         pushFollow(FOLLOW_2);
         ruleOpOr();
@@ -23723,22 +23960,22 @@
 
     // $ANTLR start synpred9_InternalCubeDSL
     public final void synpred9_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2507:5: ( ( () ( ( ruleOpAnd ) ) ) )
-        // InternalCubeDSL.g:2507:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalCubeDSL.g:2605:5: ( ( () ( ( ruleOpAnd ) ) ) )
+        // InternalCubeDSL.g:2605:6: ( () ( ( ruleOpAnd ) ) )
         {
-        // InternalCubeDSL.g:2507:6: ( () ( ( ruleOpAnd ) ) )
-        // InternalCubeDSL.g:2508:6: () ( ( ruleOpAnd ) )
+        // InternalCubeDSL.g:2605:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalCubeDSL.g:2606:6: () ( ( ruleOpAnd ) )
         {
-        // InternalCubeDSL.g:2508:6: ()
-        // InternalCubeDSL.g:2509:6: 
+        // InternalCubeDSL.g:2606:6: ()
+        // InternalCubeDSL.g:2607:6: 
         {
         }
 
-        // InternalCubeDSL.g:2510:6: ( ( ruleOpAnd ) )
-        // InternalCubeDSL.g:2511:7: ( ruleOpAnd )
+        // InternalCubeDSL.g:2608:6: ( ( ruleOpAnd ) )
+        // InternalCubeDSL.g:2609:7: ( ruleOpAnd )
         {
-        // InternalCubeDSL.g:2511:7: ( ruleOpAnd )
-        // InternalCubeDSL.g:2512:8: ruleOpAnd
+        // InternalCubeDSL.g:2609:7: ( ruleOpAnd )
+        // InternalCubeDSL.g:2610:8: ruleOpAnd
         {
         pushFollow(FOLLOW_2);
         ruleOpAnd();
@@ -23761,22 +23998,22 @@
 
     // $ANTLR start synpred10_InternalCubeDSL
     public final void synpred10_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2614:5: ( ( () ( ( ruleOpEquality ) ) ) )
-        // InternalCubeDSL.g:2614:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalCubeDSL.g:2712:5: ( ( () ( ( ruleOpEquality ) ) ) )
+        // InternalCubeDSL.g:2712:6: ( () ( ( ruleOpEquality ) ) )
         {
-        // InternalCubeDSL.g:2614:6: ( () ( ( ruleOpEquality ) ) )
-        // InternalCubeDSL.g:2615:6: () ( ( ruleOpEquality ) )
+        // InternalCubeDSL.g:2712:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalCubeDSL.g:2713:6: () ( ( ruleOpEquality ) )
         {
-        // InternalCubeDSL.g:2615:6: ()
-        // InternalCubeDSL.g:2616:6: 
+        // InternalCubeDSL.g:2713:6: ()
+        // InternalCubeDSL.g:2714:6: 
         {
         }
 
-        // InternalCubeDSL.g:2617:6: ( ( ruleOpEquality ) )
-        // InternalCubeDSL.g:2618:7: ( ruleOpEquality )
+        // InternalCubeDSL.g:2715:6: ( ( ruleOpEquality ) )
+        // InternalCubeDSL.g:2716:7: ( ruleOpEquality )
         {
-        // InternalCubeDSL.g:2618:7: ( ruleOpEquality )
-        // InternalCubeDSL.g:2619:8: ruleOpEquality
+        // InternalCubeDSL.g:2716:7: ( ruleOpEquality )
+        // InternalCubeDSL.g:2717:8: ruleOpEquality
         {
         pushFollow(FOLLOW_2);
         ruleOpEquality();
@@ -23799,18 +24036,18 @@
 
     // $ANTLR start synpred11_InternalCubeDSL
     public final void synpred11_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2742:6: ( ( () 'instanceof' ) )
-        // InternalCubeDSL.g:2742:7: ( () 'instanceof' )
+        // InternalCubeDSL.g:2840:6: ( ( () 'instanceof' ) )
+        // InternalCubeDSL.g:2840:7: ( () 'instanceof' )
         {
-        // InternalCubeDSL.g:2742:7: ( () 'instanceof' )
-        // InternalCubeDSL.g:2743:7: () 'instanceof'
+        // InternalCubeDSL.g:2840:7: ( () 'instanceof' )
+        // InternalCubeDSL.g:2841:7: () 'instanceof'
         {
-        // InternalCubeDSL.g:2743:7: ()
-        // InternalCubeDSL.g:2744:7: 
+        // InternalCubeDSL.g:2841:7: ()
+        // InternalCubeDSL.g:2842:7: 
         {
         }
 
-        match(input,65,FOLLOW_2); if (state.failed) return ;
+        match(input,68,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23821,22 +24058,22 @@
 
     // $ANTLR start synpred12_InternalCubeDSL
     public final void synpred12_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2785:6: ( ( () ( ( ruleOpCompare ) ) ) )
-        // InternalCubeDSL.g:2785:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalCubeDSL.g:2883:6: ( ( () ( ( ruleOpCompare ) ) ) )
+        // InternalCubeDSL.g:2883:7: ( () ( ( ruleOpCompare ) ) )
         {
-        // InternalCubeDSL.g:2785:7: ( () ( ( ruleOpCompare ) ) )
-        // InternalCubeDSL.g:2786:7: () ( ( ruleOpCompare ) )
+        // InternalCubeDSL.g:2883:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalCubeDSL.g:2884:7: () ( ( ruleOpCompare ) )
         {
-        // InternalCubeDSL.g:2786:7: ()
-        // InternalCubeDSL.g:2787:7: 
+        // InternalCubeDSL.g:2884:7: ()
+        // InternalCubeDSL.g:2885:7: 
         {
         }
 
-        // InternalCubeDSL.g:2788:7: ( ( ruleOpCompare ) )
-        // InternalCubeDSL.g:2789:8: ( ruleOpCompare )
+        // InternalCubeDSL.g:2886:7: ( ( ruleOpCompare ) )
+        // InternalCubeDSL.g:2887:8: ( ruleOpCompare )
         {
-        // InternalCubeDSL.g:2789:8: ( ruleOpCompare )
-        // InternalCubeDSL.g:2790:9: ruleOpCompare
+        // InternalCubeDSL.g:2887:8: ( ruleOpCompare )
+        // InternalCubeDSL.g:2888:9: ruleOpCompare
         {
         pushFollow(FOLLOW_2);
         ruleOpCompare();
@@ -23859,22 +24096,22 @@
 
     // $ANTLR start synpred13_InternalCubeDSL
     public final void synpred13_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:2920:5: ( ( () ( ( ruleOpOther ) ) ) )
-        // InternalCubeDSL.g:2920:6: ( () ( ( ruleOpOther ) ) )
+        // InternalCubeDSL.g:3018:5: ( ( () ( ( ruleOpOther ) ) ) )
+        // InternalCubeDSL.g:3018:6: ( () ( ( ruleOpOther ) ) )
         {
-        // InternalCubeDSL.g:2920:6: ( () ( ( ruleOpOther ) ) )
-        // InternalCubeDSL.g:2921:6: () ( ( ruleOpOther ) )
+        // InternalCubeDSL.g:3018:6: ( () ( ( ruleOpOther ) ) )
+        // InternalCubeDSL.g:3019:6: () ( ( ruleOpOther ) )
         {
-        // InternalCubeDSL.g:2921:6: ()
-        // InternalCubeDSL.g:2922:6: 
+        // InternalCubeDSL.g:3019:6: ()
+        // InternalCubeDSL.g:3020:6: 
         {
         }
 
-        // InternalCubeDSL.g:2923:6: ( ( ruleOpOther ) )
-        // InternalCubeDSL.g:2924:7: ( ruleOpOther )
+        // InternalCubeDSL.g:3021:6: ( ( ruleOpOther ) )
+        // InternalCubeDSL.g:3022:7: ( ruleOpOther )
         {
-        // InternalCubeDSL.g:2924:7: ( ruleOpOther )
-        // InternalCubeDSL.g:2925:8: ruleOpOther
+        // InternalCubeDSL.g:3022:7: ( ruleOpOther )
+        // InternalCubeDSL.g:3023:8: ruleOpOther
         {
         pushFollow(FOLLOW_2);
         ruleOpOther();
@@ -23897,14 +24134,14 @@
 
     // $ANTLR start synpred14_InternalCubeDSL
     public final void synpred14_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3040:6: ( ( '>' '>' ) )
-        // InternalCubeDSL.g:3040:7: ( '>' '>' )
+        // InternalCubeDSL.g:3138:6: ( ( '>' '>' ) )
+        // InternalCubeDSL.g:3138:7: ( '>' '>' )
         {
-        // InternalCubeDSL.g:3040:7: ( '>' '>' )
-        // InternalCubeDSL.g:3041:7: '>' '>'
+        // InternalCubeDSL.g:3138:7: ( '>' '>' )
+        // InternalCubeDSL.g:3139:7: '>' '>'
         {
-        match(input,57,FOLLOW_59); if (state.failed) return ;
-        match(input,57,FOLLOW_2); if (state.failed) return ;
+        match(input,60,FOLLOW_62); if (state.failed) return ;
+        match(input,60,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23915,14 +24152,14 @@
 
     // $ANTLR start synpred15_InternalCubeDSL
     public final void synpred15_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3075:6: ( ( '<' '<' ) )
-        // InternalCubeDSL.g:3075:7: ( '<' '<' )
+        // InternalCubeDSL.g:3173:6: ( ( '<' '<' ) )
+        // InternalCubeDSL.g:3173:7: ( '<' '<' )
         {
-        // InternalCubeDSL.g:3075:7: ( '<' '<' )
-        // InternalCubeDSL.g:3076:7: '<' '<'
+        // InternalCubeDSL.g:3173:7: ( '<' '<' )
+        // InternalCubeDSL.g:3174:7: '<' '<'
         {
-        match(input,56,FOLLOW_49); if (state.failed) return ;
-        match(input,56,FOLLOW_2); if (state.failed) return ;
+        match(input,59,FOLLOW_52); if (state.failed) return ;
+        match(input,59,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -23933,22 +24170,22 @@
 
     // $ANTLR start synpred16_InternalCubeDSL
     public final void synpred16_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3148:5: ( ( () ( ( ruleOpAdd ) ) ) )
-        // InternalCubeDSL.g:3148:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalCubeDSL.g:3246:5: ( ( () ( ( ruleOpAdd ) ) ) )
+        // InternalCubeDSL.g:3246:6: ( () ( ( ruleOpAdd ) ) )
         {
-        // InternalCubeDSL.g:3148:6: ( () ( ( ruleOpAdd ) ) )
-        // InternalCubeDSL.g:3149:6: () ( ( ruleOpAdd ) )
+        // InternalCubeDSL.g:3246:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalCubeDSL.g:3247:6: () ( ( ruleOpAdd ) )
         {
-        // InternalCubeDSL.g:3149:6: ()
-        // InternalCubeDSL.g:3150:6: 
+        // InternalCubeDSL.g:3247:6: ()
+        // InternalCubeDSL.g:3248:6: 
         {
         }
 
-        // InternalCubeDSL.g:3151:6: ( ( ruleOpAdd ) )
-        // InternalCubeDSL.g:3152:7: ( ruleOpAdd )
+        // InternalCubeDSL.g:3249:6: ( ( ruleOpAdd ) )
+        // InternalCubeDSL.g:3250:7: ( ruleOpAdd )
         {
-        // InternalCubeDSL.g:3152:7: ( ruleOpAdd )
-        // InternalCubeDSL.g:3153:8: ruleOpAdd
+        // InternalCubeDSL.g:3250:7: ( ruleOpAdd )
+        // InternalCubeDSL.g:3251:8: ruleOpAdd
         {
         pushFollow(FOLLOW_2);
         ruleOpAdd();
@@ -23971,22 +24208,22 @@
 
     // $ANTLR start synpred17_InternalCubeDSL
     public final void synpred17_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3263:5: ( ( () ( ( ruleOpMulti ) ) ) )
-        // InternalCubeDSL.g:3263:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalCubeDSL.g:3361:5: ( ( () ( ( ruleOpMulti ) ) ) )
+        // InternalCubeDSL.g:3361:6: ( () ( ( ruleOpMulti ) ) )
         {
-        // InternalCubeDSL.g:3263:6: ( () ( ( ruleOpMulti ) ) )
-        // InternalCubeDSL.g:3264:6: () ( ( ruleOpMulti ) )
+        // InternalCubeDSL.g:3361:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalCubeDSL.g:3362:6: () ( ( ruleOpMulti ) )
         {
-        // InternalCubeDSL.g:3264:6: ()
-        // InternalCubeDSL.g:3265:6: 
+        // InternalCubeDSL.g:3362:6: ()
+        // InternalCubeDSL.g:3363:6: 
         {
         }
 
-        // InternalCubeDSL.g:3266:6: ( ( ruleOpMulti ) )
-        // InternalCubeDSL.g:3267:7: ( ruleOpMulti )
+        // InternalCubeDSL.g:3364:6: ( ( ruleOpMulti ) )
+        // InternalCubeDSL.g:3365:7: ( ruleOpMulti )
         {
-        // InternalCubeDSL.g:3267:7: ( ruleOpMulti )
-        // InternalCubeDSL.g:3268:8: ruleOpMulti
+        // InternalCubeDSL.g:3365:7: ( ruleOpMulti )
+        // InternalCubeDSL.g:3366:8: ruleOpMulti
         {
         pushFollow(FOLLOW_2);
         ruleOpMulti();
@@ -24009,18 +24246,18 @@
 
     // $ANTLR start synpred18_InternalCubeDSL
     public final void synpred18_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3498:5: ( ( () 'as' ) )
-        // InternalCubeDSL.g:3498:6: ( () 'as' )
+        // InternalCubeDSL.g:3596:5: ( ( () 'as' ) )
+        // InternalCubeDSL.g:3596:6: ( () 'as' )
         {
-        // InternalCubeDSL.g:3498:6: ( () 'as' )
-        // InternalCubeDSL.g:3499:6: () 'as'
+        // InternalCubeDSL.g:3596:6: ( () 'as' )
+        // InternalCubeDSL.g:3597:6: () 'as'
         {
-        // InternalCubeDSL.g:3499:6: ()
-        // InternalCubeDSL.g:3500:6: 
+        // InternalCubeDSL.g:3597:6: ()
+        // InternalCubeDSL.g:3598:6: 
         {
         }
 
-        match(input,78,FOLLOW_2); if (state.failed) return ;
+        match(input,81,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24031,22 +24268,22 @@
 
     // $ANTLR start synpred19_InternalCubeDSL
     public final void synpred19_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3566:4: ( ( () ( ( ruleOpPostfix ) ) ) )
-        // InternalCubeDSL.g:3566:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalCubeDSL.g:3664:4: ( ( () ( ( ruleOpPostfix ) ) ) )
+        // InternalCubeDSL.g:3664:5: ( () ( ( ruleOpPostfix ) ) )
         {
-        // InternalCubeDSL.g:3566:5: ( () ( ( ruleOpPostfix ) ) )
-        // InternalCubeDSL.g:3567:5: () ( ( ruleOpPostfix ) )
+        // InternalCubeDSL.g:3664:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalCubeDSL.g:3665:5: () ( ( ruleOpPostfix ) )
         {
-        // InternalCubeDSL.g:3567:5: ()
-        // InternalCubeDSL.g:3568:5: 
+        // InternalCubeDSL.g:3665:5: ()
+        // InternalCubeDSL.g:3666:5: 
         {
         }
 
-        // InternalCubeDSL.g:3569:5: ( ( ruleOpPostfix ) )
-        // InternalCubeDSL.g:3570:6: ( ruleOpPostfix )
+        // InternalCubeDSL.g:3667:5: ( ( ruleOpPostfix ) )
+        // InternalCubeDSL.g:3668:6: ( ruleOpPostfix )
         {
-        // InternalCubeDSL.g:3570:6: ( ruleOpPostfix )
-        // InternalCubeDSL.g:3571:7: ruleOpPostfix
+        // InternalCubeDSL.g:3668:6: ( ruleOpPostfix )
+        // InternalCubeDSL.g:3669:7: ruleOpPostfix
         {
         pushFollow(FOLLOW_2);
         ruleOpPostfix();
@@ -24069,52 +24306,52 @@
 
     // $ANTLR start synpred20_InternalCubeDSL
     public final void synpred20_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3662:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
-        // InternalCubeDSL.g:3662:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalCubeDSL.g:3760:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+        // InternalCubeDSL.g:3760:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
         {
-        // InternalCubeDSL.g:3662:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
-        // InternalCubeDSL.g:3663:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+        // InternalCubeDSL.g:3760:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalCubeDSL.g:3761:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
         {
-        // InternalCubeDSL.g:3663:7: ()
-        // InternalCubeDSL.g:3664:7: 
+        // InternalCubeDSL.g:3761:7: ()
+        // InternalCubeDSL.g:3762:7: 
         {
         }
 
-        // InternalCubeDSL.g:3665:7: ( '.' | ( ( '::' ) ) )
-        int alt152=2;
-        int LA152_0 = input.LA(1);
+        // InternalCubeDSL.g:3763:7: ( '.' | ( ( '::' ) ) )
+        int alt155=2;
+        int LA155_0 = input.LA(1);
 
-        if ( (LA152_0==36) ) {
-            alt152=1;
+        if ( (LA155_0==39) ) {
+            alt155=1;
         }
-        else if ( (LA152_0==81) ) {
-            alt152=2;
+        else if ( (LA155_0==84) ) {
+            alt155=2;
         }
         else {
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 152, 0, input);
+                new NoViableAltException("", 155, 0, input);
 
             throw nvae;
         }
-        switch (alt152) {
+        switch (alt155) {
             case 1 :
-                // InternalCubeDSL.g:3666:8: '.'
+                // InternalCubeDSL.g:3764:8: '.'
                 {
-                match(input,36,FOLLOW_66); if (state.failed) return ;
+                match(input,39,FOLLOW_69); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalCubeDSL.g:3668:8: ( ( '::' ) )
+                // InternalCubeDSL.g:3766:8: ( ( '::' ) )
                 {
-                // InternalCubeDSL.g:3668:8: ( ( '::' ) )
-                // InternalCubeDSL.g:3669:9: ( '::' )
+                // InternalCubeDSL.g:3766:8: ( ( '::' ) )
+                // InternalCubeDSL.g:3767:9: ( '::' )
                 {
-                // InternalCubeDSL.g:3669:9: ( '::' )
-                // InternalCubeDSL.g:3670:10: '::'
+                // InternalCubeDSL.g:3767:9: ( '::' )
+                // InternalCubeDSL.g:3768:10: '::'
                 {
-                match(input,81,FOLLOW_66); if (state.failed) return ;
+                match(input,84,FOLLOW_69); if (state.failed) return ;
 
                 }
 
@@ -24127,13 +24364,13 @@
 
         }
 
-        // InternalCubeDSL.g:3674:7: ( ( ruleFeatureCallID ) )
-        // InternalCubeDSL.g:3675:8: ( ruleFeatureCallID )
+        // InternalCubeDSL.g:3772:7: ( ( ruleFeatureCallID ) )
+        // InternalCubeDSL.g:3773:8: ( ruleFeatureCallID )
         {
-        // InternalCubeDSL.g:3675:8: ( ruleFeatureCallID )
-        // InternalCubeDSL.g:3676:9: ruleFeatureCallID
+        // InternalCubeDSL.g:3773:8: ( ruleFeatureCallID )
+        // InternalCubeDSL.g:3774:9: ruleFeatureCallID
         {
-        pushFollow(FOLLOW_42);
+        pushFollow(FOLLOW_45);
         ruleFeatureCallID();
 
         state._fsp--;
@@ -24159,61 +24396,61 @@
 
     // $ANTLR start synpred21_InternalCubeDSL
     public final void synpred21_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3759:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
-        // InternalCubeDSL.g:3759:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalCubeDSL.g:3857:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
+        // InternalCubeDSL.g:3857:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
         {
-        // InternalCubeDSL.g:3759:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
-        // InternalCubeDSL.g:3760:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        // InternalCubeDSL.g:3857:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalCubeDSL.g:3858:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
         {
-        // InternalCubeDSL.g:3760:7: ()
-        // InternalCubeDSL.g:3761:7: 
+        // InternalCubeDSL.g:3858:7: ()
+        // InternalCubeDSL.g:3859:7: 
         {
         }
 
-        // InternalCubeDSL.g:3762:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
-        int alt153=3;
+        // InternalCubeDSL.g:3860:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        int alt156=3;
         switch ( input.LA(1) ) {
-        case 36:
+        case 39:
             {
-            alt153=1;
+            alt156=1;
             }
             break;
-        case 82:
+        case 85:
             {
-            alt153=2;
+            alt156=2;
             }
             break;
-        case 81:
+        case 84:
             {
-            alt153=3;
+            alt156=3;
             }
             break;
         default:
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 153, 0, input);
+                new NoViableAltException("", 156, 0, input);
 
             throw nvae;
         }
 
-        switch (alt153) {
+        switch (alt156) {
             case 1 :
-                // InternalCubeDSL.g:3763:8: '.'
+                // InternalCubeDSL.g:3861:8: '.'
                 {
-                match(input,36,FOLLOW_2); if (state.failed) return ;
+                match(input,39,FOLLOW_2); if (state.failed) return ;
 
                 }
                 break;
             case 2 :
-                // InternalCubeDSL.g:3765:8: ( ( '?.' ) )
+                // InternalCubeDSL.g:3863:8: ( ( '?.' ) )
                 {
-                // InternalCubeDSL.g:3765:8: ( ( '?.' ) )
-                // InternalCubeDSL.g:3766:9: ( '?.' )
+                // InternalCubeDSL.g:3863:8: ( ( '?.' ) )
+                // InternalCubeDSL.g:3864:9: ( '?.' )
                 {
-                // InternalCubeDSL.g:3766:9: ( '?.' )
-                // InternalCubeDSL.g:3767:10: '?.'
+                // InternalCubeDSL.g:3864:9: ( '?.' )
+                // InternalCubeDSL.g:3865:10: '?.'
                 {
-                match(input,82,FOLLOW_2); if (state.failed) return ;
+                match(input,85,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -24224,15 +24461,15 @@
                 }
                 break;
             case 3 :
-                // InternalCubeDSL.g:3771:8: ( ( '::' ) )
+                // InternalCubeDSL.g:3869:8: ( ( '::' ) )
                 {
-                // InternalCubeDSL.g:3771:8: ( ( '::' ) )
-                // InternalCubeDSL.g:3772:9: ( '::' )
+                // InternalCubeDSL.g:3869:8: ( ( '::' ) )
+                // InternalCubeDSL.g:3870:9: ( '::' )
                 {
-                // InternalCubeDSL.g:3772:9: ( '::' )
-                // InternalCubeDSL.g:3773:10: '::'
+                // InternalCubeDSL.g:3870:9: ( '::' )
+                // InternalCubeDSL.g:3871:10: '::'
                 {
-                match(input,81,FOLLOW_2); if (state.failed) return ;
+                match(input,84,FOLLOW_2); if (state.failed) return ;
 
                 }
 
@@ -24255,13 +24492,13 @@
 
     // $ANTLR start synpred22_InternalCubeDSL
     public final void synpred22_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3897:7: ( ( '(' ) )
-        // InternalCubeDSL.g:3897:8: ( '(' )
+        // InternalCubeDSL.g:3995:7: ( ( '(' ) )
+        // InternalCubeDSL.g:3995:8: ( '(' )
         {
-        // InternalCubeDSL.g:3897:8: ( '(' )
-        // InternalCubeDSL.g:3898:8: '('
+        // InternalCubeDSL.g:3995:8: ( '(' )
+        // InternalCubeDSL.g:3996:8: '('
         {
-        match(input,44,FOLLOW_2); if (state.failed) return ;
+        match(input,47,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24272,35 +24509,35 @@
 
     // $ANTLR start synpred23_InternalCubeDSL
     public final void synpred23_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:3916:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalCubeDSL.g:3916:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalCubeDSL.g:4014:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalCubeDSL.g:4014:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalCubeDSL.g:3916:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalCubeDSL.g:3917:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalCubeDSL.g:4014:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalCubeDSL.g:4015:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalCubeDSL.g:3917:9: ()
-        // InternalCubeDSL.g:3918:9: 
+        // InternalCubeDSL.g:4015:9: ()
+        // InternalCubeDSL.g:4016:9: 
         {
         }
 
-        // InternalCubeDSL.g:3919:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt155=2;
-        int LA155_0 = input.LA(1);
+        // InternalCubeDSL.g:4017:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt158=2;
+        int LA158_0 = input.LA(1);
 
-        if ( (LA155_0==RULE_ID||LA155_0==44||LA155_0==69) ) {
-            alt155=1;
+        if ( (LA158_0==RULE_ID||LA158_0==47||LA158_0==72) ) {
+            alt158=1;
         }
-        switch (alt155) {
+        switch (alt158) {
             case 1 :
-                // InternalCubeDSL.g:3920:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalCubeDSL.g:4018:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalCubeDSL.g:3920:10: ( ( ruleJvmFormalParameter ) )
-                // InternalCubeDSL.g:3921:11: ( ruleJvmFormalParameter )
+                // InternalCubeDSL.g:4018:10: ( ( ruleJvmFormalParameter ) )
+                // InternalCubeDSL.g:4019:11: ( ruleJvmFormalParameter )
                 {
-                // InternalCubeDSL.g:3921:11: ( ruleJvmFormalParameter )
-                // InternalCubeDSL.g:3922:12: ruleJvmFormalParameter
+                // InternalCubeDSL.g:4019:11: ( ruleJvmFormalParameter )
+                // InternalCubeDSL.g:4020:12: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_76);
+                pushFollow(FOLLOW_79);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -24311,29 +24548,29 @@
 
                 }
 
-                // InternalCubeDSL.g:3925:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop154:
+                // InternalCubeDSL.g:4023:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop157:
                 do {
-                    int alt154=2;
-                    int LA154_0 = input.LA(1);
+                    int alt157=2;
+                    int LA157_0 = input.LA(1);
 
-                    if ( (LA154_0==45) ) {
-                        alt154=1;
+                    if ( (LA157_0==48) ) {
+                        alt157=1;
                     }
 
 
-                    switch (alt154) {
+                    switch (alt157) {
                 	case 1 :
-                	    // InternalCubeDSL.g:3926:11: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalCubeDSL.g:4024:11: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,45,FOLLOW_56); if (state.failed) return ;
-                	    // InternalCubeDSL.g:3927:11: ( ( ruleJvmFormalParameter ) )
-                	    // InternalCubeDSL.g:3928:12: ( ruleJvmFormalParameter )
+                	    match(input,48,FOLLOW_59); if (state.failed) return ;
+                	    // InternalCubeDSL.g:4025:11: ( ( ruleJvmFormalParameter ) )
+                	    // InternalCubeDSL.g:4026:12: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalCubeDSL.g:3928:12: ( ruleJvmFormalParameter )
-                	    // InternalCubeDSL.g:3929:13: ruleJvmFormalParameter
+                	    // InternalCubeDSL.g:4026:12: ( ruleJvmFormalParameter )
+                	    // InternalCubeDSL.g:4027:13: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_76);
+                	    pushFollow(FOLLOW_79);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -24349,7 +24586,7 @@
                 	    break;
 
                 	default :
-                	    break loop154;
+                	    break loop157;
                     }
                 } while (true);
 
@@ -24359,13 +24596,13 @@
 
         }
 
-        // InternalCubeDSL.g:3934:9: ( ( '|' ) )
-        // InternalCubeDSL.g:3935:10: ( '|' )
+        // InternalCubeDSL.g:4032:9: ( ( '|' ) )
+        // InternalCubeDSL.g:4033:10: ( '|' )
         {
-        // InternalCubeDSL.g:3935:10: ( '|' )
-        // InternalCubeDSL.g:3936:11: '|'
+        // InternalCubeDSL.g:4033:10: ( '|' )
+        // InternalCubeDSL.g:4034:11: '|'
         {
-        match(input,83,FOLLOW_2); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24382,18 +24619,18 @@
 
     // $ANTLR start synpred24_InternalCubeDSL
     public final void synpred24_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:4013:6: ( ( () '[' ) )
-        // InternalCubeDSL.g:4013:7: ( () '[' )
+        // InternalCubeDSL.g:4111:6: ( ( () '[' ) )
+        // InternalCubeDSL.g:4111:7: ( () '[' )
         {
-        // InternalCubeDSL.g:4013:7: ( () '[' )
-        // InternalCubeDSL.g:4014:7: () '['
+        // InternalCubeDSL.g:4111:7: ( () '[' )
+        // InternalCubeDSL.g:4112:7: () '['
         {
-        // InternalCubeDSL.g:4014:7: ()
-        // InternalCubeDSL.g:4015:7: 
+        // InternalCubeDSL.g:4112:7: ()
+        // InternalCubeDSL.g:4113:7: 
         {
         }
 
-        match(input,49,FOLLOW_2); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24404,19 +24641,19 @@
 
     // $ANTLR start synpred25_InternalCubeDSL
     public final void synpred25_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:4086:4: ( ( () 'synchronized' '(' ) )
-        // InternalCubeDSL.g:4086:5: ( () 'synchronized' '(' )
+        // InternalCubeDSL.g:4184:4: ( ( () 'synchronized' '(' ) )
+        // InternalCubeDSL.g:4184:5: ( () 'synchronized' '(' )
         {
-        // InternalCubeDSL.g:4086:5: ( () 'synchronized' '(' )
-        // InternalCubeDSL.g:4087:5: () 'synchronized' '('
+        // InternalCubeDSL.g:4184:5: ( () 'synchronized' '(' )
+        // InternalCubeDSL.g:4185:5: () 'synchronized' '('
         {
-        // InternalCubeDSL.g:4087:5: ()
-        // InternalCubeDSL.g:4088:5: 
+        // InternalCubeDSL.g:4185:5: ()
+        // InternalCubeDSL.g:4186:5: 
         {
         }
 
-        match(input,106,FOLLOW_81); if (state.failed) return ;
-        match(input,44,FOLLOW_2); if (state.failed) return ;
+        match(input,109,FOLLOW_84); if (state.failed) return ;
+        match(input,47,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24427,26 +24664,26 @@
 
     // $ANTLR start synpred26_InternalCubeDSL
     public final void synpred26_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:4131:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalCubeDSL.g:4131:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalCubeDSL.g:4229:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalCubeDSL.g:4229:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalCubeDSL.g:4131:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalCubeDSL.g:4132:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalCubeDSL.g:4229:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalCubeDSL.g:4230:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalCubeDSL.g:4132:5: ()
-        // InternalCubeDSL.g:4133:5: 
+        // InternalCubeDSL.g:4230:5: ()
+        // InternalCubeDSL.g:4231:5: 
         {
         }
 
-        match(input,90,FOLLOW_81); if (state.failed) return ;
-        match(input,44,FOLLOW_56); if (state.failed) return ;
-        // InternalCubeDSL.g:4136:5: ( ( ruleJvmFormalParameter ) )
-        // InternalCubeDSL.g:4137:6: ( ruleJvmFormalParameter )
+        match(input,93,FOLLOW_84); if (state.failed) return ;
+        match(input,47,FOLLOW_59); if (state.failed) return ;
+        // InternalCubeDSL.g:4234:5: ( ( ruleJvmFormalParameter ) )
+        // InternalCubeDSL.g:4235:6: ( ruleJvmFormalParameter )
         {
-        // InternalCubeDSL.g:4137:6: ( ruleJvmFormalParameter )
-        // InternalCubeDSL.g:4138:7: ruleJvmFormalParameter
+        // InternalCubeDSL.g:4235:6: ( ruleJvmFormalParameter )
+        // InternalCubeDSL.g:4236:7: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_84);
+        pushFollow(FOLLOW_87);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -24457,7 +24694,7 @@
 
         }
 
-        match(input,87,FOLLOW_2); if (state.failed) return ;
+        match(input,90,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24468,18 +24705,18 @@
 
     // $ANTLR start synpred27_InternalCubeDSL
     public final void synpred27_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:4245:4: ( ( () '[' ) )
-        // InternalCubeDSL.g:4245:5: ( () '[' )
+        // InternalCubeDSL.g:4343:4: ( ( () '[' ) )
+        // InternalCubeDSL.g:4343:5: ( () '[' )
         {
-        // InternalCubeDSL.g:4245:5: ( () '[' )
-        // InternalCubeDSL.g:4246:5: () '['
+        // InternalCubeDSL.g:4343:5: ( () '[' )
+        // InternalCubeDSL.g:4344:5: () '['
         {
-        // InternalCubeDSL.g:4246:5: ()
-        // InternalCubeDSL.g:4247:5: 
+        // InternalCubeDSL.g:4344:5: ()
+        // InternalCubeDSL.g:4345:5: 
         {
         }
 
-        match(input,49,FOLLOW_2); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24490,30 +24727,30 @@
 
     // $ANTLR start synpred29_InternalCubeDSL
     public final void synpred29_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:4550:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalCubeDSL.g:4550:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalCubeDSL.g:4648:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalCubeDSL.g:4648:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalCubeDSL.g:4550:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalCubeDSL.g:4551:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalCubeDSL.g:4648:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalCubeDSL.g:4649:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalCubeDSL.g:4551:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt157=2;
-        int LA157_0 = input.LA(1);
+        // InternalCubeDSL.g:4649:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt160=2;
+        int LA160_0 = input.LA(1);
 
-        if ( (LA157_0==RULE_ID||LA157_0==44||LA157_0==69) ) {
-            alt157=1;
+        if ( (LA160_0==RULE_ID||LA160_0==47||LA160_0==72) ) {
+            alt160=1;
         }
-        switch (alt157) {
+        switch (alt160) {
             case 1 :
-                // InternalCubeDSL.g:4552:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalCubeDSL.g:4650:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalCubeDSL.g:4552:6: ( ( ruleJvmFormalParameter ) )
-                // InternalCubeDSL.g:4553:7: ( ruleJvmFormalParameter )
+                // InternalCubeDSL.g:4650:6: ( ( ruleJvmFormalParameter ) )
+                // InternalCubeDSL.g:4651:7: ( ruleJvmFormalParameter )
                 {
-                // InternalCubeDSL.g:4553:7: ( ruleJvmFormalParameter )
-                // InternalCubeDSL.g:4554:8: ruleJvmFormalParameter
+                // InternalCubeDSL.g:4651:7: ( ruleJvmFormalParameter )
+                // InternalCubeDSL.g:4652:8: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_76);
+                pushFollow(FOLLOW_79);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -24524,29 +24761,29 @@
 
                 }
 
-                // InternalCubeDSL.g:4557:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop156:
+                // InternalCubeDSL.g:4655:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop159:
                 do {
-                    int alt156=2;
-                    int LA156_0 = input.LA(1);
+                    int alt159=2;
+                    int LA159_0 = input.LA(1);
 
-                    if ( (LA156_0==45) ) {
-                        alt156=1;
+                    if ( (LA159_0==48) ) {
+                        alt159=1;
                     }
 
 
-                    switch (alt156) {
+                    switch (alt159) {
                 	case 1 :
-                	    // InternalCubeDSL.g:4558:7: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalCubeDSL.g:4656:7: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,45,FOLLOW_56); if (state.failed) return ;
-                	    // InternalCubeDSL.g:4559:7: ( ( ruleJvmFormalParameter ) )
-                	    // InternalCubeDSL.g:4560:8: ( ruleJvmFormalParameter )
+                	    match(input,48,FOLLOW_59); if (state.failed) return ;
+                	    // InternalCubeDSL.g:4657:7: ( ( ruleJvmFormalParameter ) )
+                	    // InternalCubeDSL.g:4658:8: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalCubeDSL.g:4560:8: ( ruleJvmFormalParameter )
-                	    // InternalCubeDSL.g:4561:9: ruleJvmFormalParameter
+                	    // InternalCubeDSL.g:4658:8: ( ruleJvmFormalParameter )
+                	    // InternalCubeDSL.g:4659:9: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_76);
+                	    pushFollow(FOLLOW_79);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -24562,7 +24799,7 @@
                 	    break;
 
                 	default :
-                	    break loop156;
+                	    break loop159;
                     }
                 } while (true);
 
@@ -24572,13 +24809,13 @@
 
         }
 
-        // InternalCubeDSL.g:4566:5: ( ( '|' ) )
-        // InternalCubeDSL.g:4567:6: ( '|' )
+        // InternalCubeDSL.g:4664:5: ( ( '|' ) )
+        // InternalCubeDSL.g:4665:6: ( '|' )
         {
-        // InternalCubeDSL.g:4567:6: ( '|' )
-        // InternalCubeDSL.g:4568:7: '|'
+        // InternalCubeDSL.g:4665:6: ( '|' )
+        // InternalCubeDSL.g:4666:7: '|'
         {
-        match(input,83,FOLLOW_2); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24595,10 +24832,10 @@
 
     // $ANTLR start synpred31_InternalCubeDSL
     public final void synpred31_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:4959:5: ( 'else' )
-        // InternalCubeDSL.g:4959:6: 'else'
+        // InternalCubeDSL.g:5057:5: ( 'else' )
+        // InternalCubeDSL.g:5057:6: 'else'
         {
-        match(input,85,FOLLOW_2); if (state.failed) return ;
+        match(input,88,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -24606,20 +24843,20 @@
 
     // $ANTLR start synpred32_InternalCubeDSL
     public final void synpred32_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:5018:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalCubeDSL.g:5018:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalCubeDSL.g:5116:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalCubeDSL.g:5116:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalCubeDSL.g:5018:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalCubeDSL.g:5019:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalCubeDSL.g:5116:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalCubeDSL.g:5117:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
         {
-        match(input,44,FOLLOW_56); if (state.failed) return ;
-        // InternalCubeDSL.g:5020:7: ( ( ruleJvmFormalParameter ) )
-        // InternalCubeDSL.g:5021:8: ( ruleJvmFormalParameter )
+        match(input,47,FOLLOW_59); if (state.failed) return ;
+        // InternalCubeDSL.g:5118:7: ( ( ruleJvmFormalParameter ) )
+        // InternalCubeDSL.g:5119:8: ( ruleJvmFormalParameter )
         {
-        // InternalCubeDSL.g:5021:8: ( ruleJvmFormalParameter )
-        // InternalCubeDSL.g:5022:9: ruleJvmFormalParameter
+        // InternalCubeDSL.g:5119:8: ( ruleJvmFormalParameter )
+        // InternalCubeDSL.g:5120:9: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_84);
+        pushFollow(FOLLOW_87);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -24630,7 +24867,7 @@
 
         }
 
-        match(input,87,FOLLOW_2); if (state.failed) return ;
+        match(input,90,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24641,19 +24878,19 @@
 
     // $ANTLR start synpred33_InternalCubeDSL
     public final void synpred33_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:5085:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
-        // InternalCubeDSL.g:5085:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalCubeDSL.g:5183:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalCubeDSL.g:5183:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
         {
-        // InternalCubeDSL.g:5085:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
-        // InternalCubeDSL.g:5086:7: ( ( ruleJvmFormalParameter ) ) ':'
+        // InternalCubeDSL.g:5183:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalCubeDSL.g:5184:7: ( ( ruleJvmFormalParameter ) ) ':'
         {
-        // InternalCubeDSL.g:5086:7: ( ( ruleJvmFormalParameter ) )
-        // InternalCubeDSL.g:5087:8: ( ruleJvmFormalParameter )
+        // InternalCubeDSL.g:5184:7: ( ( ruleJvmFormalParameter ) )
+        // InternalCubeDSL.g:5185:8: ( ruleJvmFormalParameter )
         {
-        // InternalCubeDSL.g:5087:8: ( ruleJvmFormalParameter )
-        // InternalCubeDSL.g:5088:9: ruleJvmFormalParameter
+        // InternalCubeDSL.g:5185:8: ( ruleJvmFormalParameter )
+        // InternalCubeDSL.g:5186:9: ruleJvmFormalParameter
         {
-        pushFollow(FOLLOW_84);
+        pushFollow(FOLLOW_87);
         ruleJvmFormalParameter();
 
         state._fsp--;
@@ -24664,7 +24901,7 @@
 
         }
 
-        match(input,87,FOLLOW_2); if (state.failed) return ;
+        match(input,90,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24675,17 +24912,17 @@
 
     // $ANTLR start synpred35_InternalCubeDSL
     public final void synpred35_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:5903:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
-        // InternalCubeDSL.g:5903:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalCubeDSL.g:6001:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
+        // InternalCubeDSL.g:6001:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
         {
-        // InternalCubeDSL.g:5903:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
-        // InternalCubeDSL.g:5904:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
+        // InternalCubeDSL.g:6001:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalCubeDSL.g:6002:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
         {
-        // InternalCubeDSL.g:5904:6: ( ( ruleJvmTypeReference ) )
-        // InternalCubeDSL.g:5905:7: ( ruleJvmTypeReference )
+        // InternalCubeDSL.g:6002:6: ( ( ruleJvmTypeReference ) )
+        // InternalCubeDSL.g:6003:7: ( ruleJvmTypeReference )
         {
-        // InternalCubeDSL.g:5905:7: ( ruleJvmTypeReference )
-        // InternalCubeDSL.g:5906:8: ruleJvmTypeReference
+        // InternalCubeDSL.g:6003:7: ( ruleJvmTypeReference )
+        // InternalCubeDSL.g:6004:8: ruleJvmTypeReference
         {
         pushFollow(FOLLOW_4);
         ruleJvmTypeReference();
@@ -24698,11 +24935,11 @@
 
         }
 
-        // InternalCubeDSL.g:5909:6: ( ( ruleValidID ) )
-        // InternalCubeDSL.g:5910:7: ( ruleValidID )
+        // InternalCubeDSL.g:6007:6: ( ( ruleValidID ) )
+        // InternalCubeDSL.g:6008:7: ( ruleValidID )
         {
-        // InternalCubeDSL.g:5910:7: ( ruleValidID )
-        // InternalCubeDSL.g:5911:8: ruleValidID
+        // InternalCubeDSL.g:6008:7: ( ruleValidID )
+        // InternalCubeDSL.g:6009:8: ruleValidID
         {
         pushFollow(FOLLOW_2);
         ruleValidID();
@@ -24725,13 +24962,13 @@
 
     // $ANTLR start synpred36_InternalCubeDSL
     public final void synpred36_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:6215:5: ( ( '(' ) )
-        // InternalCubeDSL.g:6215:6: ( '(' )
+        // InternalCubeDSL.g:6313:5: ( ( '(' ) )
+        // InternalCubeDSL.g:6313:6: ( '(' )
         {
-        // InternalCubeDSL.g:6215:6: ( '(' )
-        // InternalCubeDSL.g:6216:6: '('
+        // InternalCubeDSL.g:6313:6: ( '(' )
+        // InternalCubeDSL.g:6314:6: '('
         {
-        match(input,44,FOLLOW_2); if (state.failed) return ;
+        match(input,47,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24742,35 +24979,35 @@
 
     // $ANTLR start synpred37_InternalCubeDSL
     public final void synpred37_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:6234:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalCubeDSL.g:6234:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalCubeDSL.g:6332:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalCubeDSL.g:6332:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalCubeDSL.g:6234:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalCubeDSL.g:6235:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalCubeDSL.g:6332:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalCubeDSL.g:6333:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalCubeDSL.g:6235:7: ()
-        // InternalCubeDSL.g:6236:7: 
+        // InternalCubeDSL.g:6333:7: ()
+        // InternalCubeDSL.g:6334:7: 
         {
         }
 
-        // InternalCubeDSL.g:6237:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt161=2;
-        int LA161_0 = input.LA(1);
+        // InternalCubeDSL.g:6335:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt164=2;
+        int LA164_0 = input.LA(1);
 
-        if ( (LA161_0==RULE_ID||LA161_0==44||LA161_0==69) ) {
-            alt161=1;
+        if ( (LA164_0==RULE_ID||LA164_0==47||LA164_0==72) ) {
+            alt164=1;
         }
-        switch (alt161) {
+        switch (alt164) {
             case 1 :
-                // InternalCubeDSL.g:6238:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalCubeDSL.g:6336:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalCubeDSL.g:6238:8: ( ( ruleJvmFormalParameter ) )
-                // InternalCubeDSL.g:6239:9: ( ruleJvmFormalParameter )
+                // InternalCubeDSL.g:6336:8: ( ( ruleJvmFormalParameter ) )
+                // InternalCubeDSL.g:6337:9: ( ruleJvmFormalParameter )
                 {
-                // InternalCubeDSL.g:6239:9: ( ruleJvmFormalParameter )
-                // InternalCubeDSL.g:6240:10: ruleJvmFormalParameter
+                // InternalCubeDSL.g:6337:9: ( ruleJvmFormalParameter )
+                // InternalCubeDSL.g:6338:10: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_76);
+                pushFollow(FOLLOW_79);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -24781,29 +25018,29 @@
 
                 }
 
-                // InternalCubeDSL.g:6243:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop160:
+                // InternalCubeDSL.g:6341:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop163:
                 do {
-                    int alt160=2;
-                    int LA160_0 = input.LA(1);
+                    int alt163=2;
+                    int LA163_0 = input.LA(1);
 
-                    if ( (LA160_0==45) ) {
-                        alt160=1;
+                    if ( (LA163_0==48) ) {
+                        alt163=1;
                     }
 
 
-                    switch (alt160) {
+                    switch (alt163) {
                 	case 1 :
-                	    // InternalCubeDSL.g:6244:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalCubeDSL.g:6342:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,45,FOLLOW_56); if (state.failed) return ;
-                	    // InternalCubeDSL.g:6245:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalCubeDSL.g:6246:10: ( ruleJvmFormalParameter )
+                	    match(input,48,FOLLOW_59); if (state.failed) return ;
+                	    // InternalCubeDSL.g:6343:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalCubeDSL.g:6344:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalCubeDSL.g:6246:10: ( ruleJvmFormalParameter )
-                	    // InternalCubeDSL.g:6247:11: ruleJvmFormalParameter
+                	    // InternalCubeDSL.g:6344:10: ( ruleJvmFormalParameter )
+                	    // InternalCubeDSL.g:6345:11: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_76);
+                	    pushFollow(FOLLOW_79);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -24819,7 +25056,7 @@
                 	    break;
 
                 	default :
-                	    break loop160;
+                	    break loop163;
                     }
                 } while (true);
 
@@ -24829,13 +25066,13 @@
 
         }
 
-        // InternalCubeDSL.g:6252:7: ( ( '|' ) )
-        // InternalCubeDSL.g:6253:8: ( '|' )
+        // InternalCubeDSL.g:6350:7: ( ( '|' ) )
+        // InternalCubeDSL.g:6351:8: ( '|' )
         {
-        // InternalCubeDSL.g:6253:8: ( '|' )
-        // InternalCubeDSL.g:6254:9: '|'
+        // InternalCubeDSL.g:6351:8: ( '|' )
+        // InternalCubeDSL.g:6352:9: '|'
         {
-        match(input,83,FOLLOW_2); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24852,18 +25089,18 @@
 
     // $ANTLR start synpred38_InternalCubeDSL
     public final void synpred38_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:6331:4: ( ( () '[' ) )
-        // InternalCubeDSL.g:6331:5: ( () '[' )
+        // InternalCubeDSL.g:6429:4: ( ( () '[' ) )
+        // InternalCubeDSL.g:6429:5: ( () '[' )
         {
-        // InternalCubeDSL.g:6331:5: ( () '[' )
-        // InternalCubeDSL.g:6332:5: () '['
+        // InternalCubeDSL.g:6429:5: ( () '[' )
+        // InternalCubeDSL.g:6430:5: () '['
         {
-        // InternalCubeDSL.g:6332:5: ()
-        // InternalCubeDSL.g:6333:5: 
+        // InternalCubeDSL.g:6430:5: ()
+        // InternalCubeDSL.g:6431:5: 
         {
         }
 
-        match(input,49,FOLLOW_2); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24874,10 +25111,10 @@
 
     // $ANTLR start synpred39_InternalCubeDSL
     public final void synpred39_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:6491:5: ( '<' )
-        // InternalCubeDSL.g:6491:6: '<'
+        // InternalCubeDSL.g:6589:5: ( '<' )
+        // InternalCubeDSL.g:6589:6: '<'
         {
-        match(input,56,FOLLOW_2); if (state.failed) return ;
+        match(input,59,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -24885,13 +25122,13 @@
 
     // $ANTLR start synpred40_InternalCubeDSL
     public final void synpred40_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:6548:5: ( ( '(' ) )
-        // InternalCubeDSL.g:6548:6: ( '(' )
+        // InternalCubeDSL.g:6646:5: ( ( '(' ) )
+        // InternalCubeDSL.g:6646:6: ( '(' )
         {
-        // InternalCubeDSL.g:6548:6: ( '(' )
-        // InternalCubeDSL.g:6549:6: '('
+        // InternalCubeDSL.g:6646:6: ( '(' )
+        // InternalCubeDSL.g:6647:6: '('
         {
-        match(input,44,FOLLOW_2); if (state.failed) return ;
+        match(input,47,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -24902,35 +25139,35 @@
 
     // $ANTLR start synpred41_InternalCubeDSL
     public final void synpred41_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:6567:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
-        // InternalCubeDSL.g:6567:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalCubeDSL.g:6665:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalCubeDSL.g:6665:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
         {
-        // InternalCubeDSL.g:6567:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
-        // InternalCubeDSL.g:6568:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        // InternalCubeDSL.g:6665:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalCubeDSL.g:6666:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
         {
-        // InternalCubeDSL.g:6568:7: ()
-        // InternalCubeDSL.g:6569:7: 
+        // InternalCubeDSL.g:6666:7: ()
+        // InternalCubeDSL.g:6667:7: 
         {
         }
 
-        // InternalCubeDSL.g:6570:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
-        int alt163=2;
-        int LA163_0 = input.LA(1);
+        // InternalCubeDSL.g:6668:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt166=2;
+        int LA166_0 = input.LA(1);
 
-        if ( (LA163_0==RULE_ID||LA163_0==44||LA163_0==69) ) {
-            alt163=1;
+        if ( (LA166_0==RULE_ID||LA166_0==47||LA166_0==72) ) {
+            alt166=1;
         }
-        switch (alt163) {
+        switch (alt166) {
             case 1 :
-                // InternalCubeDSL.g:6571:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                // InternalCubeDSL.g:6669:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                 {
-                // InternalCubeDSL.g:6571:8: ( ( ruleJvmFormalParameter ) )
-                // InternalCubeDSL.g:6572:9: ( ruleJvmFormalParameter )
+                // InternalCubeDSL.g:6669:8: ( ( ruleJvmFormalParameter ) )
+                // InternalCubeDSL.g:6670:9: ( ruleJvmFormalParameter )
                 {
-                // InternalCubeDSL.g:6572:9: ( ruleJvmFormalParameter )
-                // InternalCubeDSL.g:6573:10: ruleJvmFormalParameter
+                // InternalCubeDSL.g:6670:9: ( ruleJvmFormalParameter )
+                // InternalCubeDSL.g:6671:10: ruleJvmFormalParameter
                 {
-                pushFollow(FOLLOW_76);
+                pushFollow(FOLLOW_79);
                 ruleJvmFormalParameter();
 
                 state._fsp--;
@@ -24941,29 +25178,29 @@
 
                 }
 
-                // InternalCubeDSL.g:6576:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
-                loop162:
+                // InternalCubeDSL.g:6674:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop165:
                 do {
-                    int alt162=2;
-                    int LA162_0 = input.LA(1);
+                    int alt165=2;
+                    int LA165_0 = input.LA(1);
 
-                    if ( (LA162_0==45) ) {
-                        alt162=1;
+                    if ( (LA165_0==48) ) {
+                        alt165=1;
                     }
 
 
-                    switch (alt162) {
+                    switch (alt165) {
                 	case 1 :
-                	    // InternalCubeDSL.g:6577:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    // InternalCubeDSL.g:6675:9: ',' ( ( ruleJvmFormalParameter ) )
                 	    {
-                	    match(input,45,FOLLOW_56); if (state.failed) return ;
-                	    // InternalCubeDSL.g:6578:9: ( ( ruleJvmFormalParameter ) )
-                	    // InternalCubeDSL.g:6579:10: ( ruleJvmFormalParameter )
+                	    match(input,48,FOLLOW_59); if (state.failed) return ;
+                	    // InternalCubeDSL.g:6676:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalCubeDSL.g:6677:10: ( ruleJvmFormalParameter )
                 	    {
-                	    // InternalCubeDSL.g:6579:10: ( ruleJvmFormalParameter )
-                	    // InternalCubeDSL.g:6580:11: ruleJvmFormalParameter
+                	    // InternalCubeDSL.g:6677:10: ( ruleJvmFormalParameter )
+                	    // InternalCubeDSL.g:6678:11: ruleJvmFormalParameter
                 	    {
-                	    pushFollow(FOLLOW_76);
+                	    pushFollow(FOLLOW_79);
                 	    ruleJvmFormalParameter();
 
                 	    state._fsp--;
@@ -24979,7 +25216,7 @@
                 	    break;
 
                 	default :
-                	    break loop162;
+                	    break loop165;
                     }
                 } while (true);
 
@@ -24989,13 +25226,13 @@
 
         }
 
-        // InternalCubeDSL.g:6585:7: ( ( '|' ) )
-        // InternalCubeDSL.g:6586:8: ( '|' )
+        // InternalCubeDSL.g:6683:7: ( ( '|' ) )
+        // InternalCubeDSL.g:6684:8: ( '|' )
         {
-        // InternalCubeDSL.g:6586:8: ( '|' )
-        // InternalCubeDSL.g:6587:9: '|'
+        // InternalCubeDSL.g:6684:8: ( '|' )
+        // InternalCubeDSL.g:6685:9: '|'
         {
-        match(input,83,FOLLOW_2); if (state.failed) return ;
+        match(input,86,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25012,18 +25249,18 @@
 
     // $ANTLR start synpred42_InternalCubeDSL
     public final void synpred42_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:6664:4: ( ( () '[' ) )
-        // InternalCubeDSL.g:6664:5: ( () '[' )
+        // InternalCubeDSL.g:6762:4: ( ( () '[' ) )
+        // InternalCubeDSL.g:6762:5: ( () '[' )
         {
-        // InternalCubeDSL.g:6664:5: ( () '[' )
-        // InternalCubeDSL.g:6665:5: () '['
+        // InternalCubeDSL.g:6762:5: ( () '[' )
+        // InternalCubeDSL.g:6763:5: () '['
         {
-        // InternalCubeDSL.g:6665:5: ()
-        // InternalCubeDSL.g:6666:5: 
+        // InternalCubeDSL.g:6763:5: ()
+        // InternalCubeDSL.g:6764:5: 
         {
         }
 
-        match(input,49,FOLLOW_2); if (state.failed) return ;
+        match(input,52,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25034,10 +25271,10 @@
 
     // $ANTLR start synpred43_InternalCubeDSL
     public final void synpred43_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:7007:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
+        // InternalCubeDSL.g:7105:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
         // InternalCubeDSL.g:
         {
-        if ( (input.LA(1)>=RULE_ID && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||(input.LA(1)>=37 && input.LA(1)<=39)||input.LA(1)==44||(input.LA(1)>=48 && input.LA(1)<=49)||input.LA(1)==56||(input.LA(1)>=72 && input.LA(1)<=73)||input.LA(1)==77||input.LA(1)==84||input.LA(1)==86||(input.LA(1)>=90 && input.LA(1)<=92)||(input.LA(1)>=95 && input.LA(1)<=104)||input.LA(1)==106 ) {
+        if ( (input.LA(1)>=RULE_ID && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==14||(input.LA(1)>=40 && input.LA(1)<=42)||input.LA(1)==47||(input.LA(1)>=51 && input.LA(1)<=52)||input.LA(1)==59||(input.LA(1)>=75 && input.LA(1)<=76)||input.LA(1)==80||input.LA(1)==87||input.LA(1)==89||(input.LA(1)>=93 && input.LA(1)<=95)||(input.LA(1)>=98 && input.LA(1)<=107)||input.LA(1)==109 ) {
             input.consume();
             state.errorRecovery=false;state.failed=false;
         }
@@ -25054,10 +25291,10 @@
 
     // $ANTLR start synpred44_InternalCubeDSL
     public final void synpred44_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:7078:6: ( 'catch' )
-        // InternalCubeDSL.g:7078:7: 'catch'
+        // InternalCubeDSL.g:7176:6: ( 'catch' )
+        // InternalCubeDSL.g:7176:7: 'catch'
         {
-        match(input,107,FOLLOW_2); if (state.failed) return ;
+        match(input,110,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -25065,10 +25302,10 @@
 
     // $ANTLR start synpred45_InternalCubeDSL
     public final void synpred45_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:7099:7: ( 'finally' )
-        // InternalCubeDSL.g:7099:8: 'finally'
+        // InternalCubeDSL.g:7197:7: ( 'finally' )
+        // InternalCubeDSL.g:7197:8: 'finally'
         {
-        match(input,105,FOLLOW_2); if (state.failed) return ;
+        match(input,108,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -25076,10 +25313,10 @@
 
     // $ANTLR start synpred48_InternalCubeDSL
     public final void synpred48_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:7343:5: ( '.' )
-        // InternalCubeDSL.g:7343:6: '.'
+        // InternalCubeDSL.g:7441:5: ( '.' )
+        // InternalCubeDSL.g:7441:6: '.'
         {
-        match(input,36,FOLLOW_2); if (state.failed) return ;
+        match(input,39,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -25087,14 +25324,14 @@
 
     // $ANTLR start synpred49_InternalCubeDSL
     public final void synpred49_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:7469:5: ( ( () ruleArrayBrackets ) )
-        // InternalCubeDSL.g:7469:6: ( () ruleArrayBrackets )
+        // InternalCubeDSL.g:7567:5: ( ( () ruleArrayBrackets ) )
+        // InternalCubeDSL.g:7567:6: ( () ruleArrayBrackets )
         {
-        // InternalCubeDSL.g:7469:6: ( () ruleArrayBrackets )
-        // InternalCubeDSL.g:7470:6: () ruleArrayBrackets
+        // InternalCubeDSL.g:7567:6: ( () ruleArrayBrackets )
+        // InternalCubeDSL.g:7568:6: () ruleArrayBrackets
         {
-        // InternalCubeDSL.g:7470:6: ()
-        // InternalCubeDSL.g:7471:6: 
+        // InternalCubeDSL.g:7568:6: ()
+        // InternalCubeDSL.g:7569:6: 
         {
         }
 
@@ -25113,10 +25350,10 @@
 
     // $ANTLR start synpred50_InternalCubeDSL
     public final void synpred50_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:7666:5: ( '<' )
-        // InternalCubeDSL.g:7666:6: '<'
+        // InternalCubeDSL.g:7764:5: ( '<' )
+        // InternalCubeDSL.g:7764:6: '<'
         {
-        match(input,56,FOLLOW_2); if (state.failed) return ;
+        match(input,59,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -25124,18 +25361,18 @@
 
     // $ANTLR start synpred51_InternalCubeDSL
     public final void synpred51_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:7722:6: ( ( () '.' ) )
-        // InternalCubeDSL.g:7722:7: ( () '.' )
+        // InternalCubeDSL.g:7820:6: ( ( () '.' ) )
+        // InternalCubeDSL.g:7820:7: ( () '.' )
         {
-        // InternalCubeDSL.g:7722:7: ( () '.' )
-        // InternalCubeDSL.g:7723:7: () '.'
+        // InternalCubeDSL.g:7820:7: ( () '.' )
+        // InternalCubeDSL.g:7821:7: () '.'
         {
-        // InternalCubeDSL.g:7723:7: ()
-        // InternalCubeDSL.g:7724:7: 
+        // InternalCubeDSL.g:7821:7: ()
+        // InternalCubeDSL.g:7822:7: 
         {
         }
 
-        match(input,36,FOLLOW_2); if (state.failed) return ;
+        match(input,39,FOLLOW_2); if (state.failed) return ;
 
         }
 
@@ -25146,10 +25383,10 @@
 
     // $ANTLR start synpred52_InternalCubeDSL
     public final void synpred52_InternalCubeDSL_fragment() throws RecognitionException {   
-        // InternalCubeDSL.g:7760:7: ( '<' )
-        // InternalCubeDSL.g:7760:8: '<'
+        // InternalCubeDSL.g:7858:7: ( '<' )
+        // InternalCubeDSL.g:7858:8: '<'
         {
-        match(input,56,FOLLOW_2); if (state.failed) return ;
+        match(input,59,FOLLOW_2); if (state.failed) return ;
 
         }
     }
@@ -25789,45 +26026,45 @@
     }
 
 
-    protected DFA28 dfa28 = new DFA28(this);
     protected DFA31 dfa31 = new DFA31(this);
-    protected DFA37 dfa37 = new DFA37(this);
+    protected DFA34 dfa34 = new DFA34(this);
     protected DFA40 dfa40 = new DFA40(this);
-    protected DFA42 dfa42 = new DFA42(this);
-    protected DFA52 dfa52 = new DFA52(this);
+    protected DFA43 dfa43 = new DFA43(this);
+    protected DFA45 dfa45 = new DFA45(this);
     protected DFA55 dfa55 = new DFA55(this);
-    protected DFA71 dfa71 = new DFA71(this);
-    protected DFA70 dfa70 = new DFA70(this);
-    protected DFA72 dfa72 = new DFA72(this);
+    protected DFA58 dfa58 = new DFA58(this);
     protected DFA74 dfa74 = new DFA74(this);
-    protected DFA83 dfa83 = new DFA83(this);
-    protected DFA90 dfa90 = new DFA90(this);
-    protected DFA89 dfa89 = new DFA89(this);
-    protected DFA112 dfa112 = new DFA112(this);
-    protected DFA111 dfa111 = new DFA111(this);
-    protected DFA113 dfa113 = new DFA113(this);
-    protected DFA117 dfa117 = new DFA117(this);
+    protected DFA73 dfa73 = new DFA73(this);
+    protected DFA75 dfa75 = new DFA75(this);
+    protected DFA77 dfa77 = new DFA77(this);
+    protected DFA86 dfa86 = new DFA86(this);
+    protected DFA93 dfa93 = new DFA93(this);
+    protected DFA92 dfa92 = new DFA92(this);
+    protected DFA115 dfa115 = new DFA115(this);
+    protected DFA114 dfa114 = new DFA114(this);
+    protected DFA116 dfa116 = new DFA116(this);
     protected DFA120 dfa120 = new DFA120(this);
-    protected DFA119 dfa119 = new DFA119(this);
-    protected DFA121 dfa121 = new DFA121(this);
+    protected DFA123 dfa123 = new DFA123(this);
+    protected DFA122 dfa122 = new DFA122(this);
     protected DFA124 dfa124 = new DFA124(this);
-    protected DFA142 dfa142 = new DFA142(this);
-    protected DFA140 dfa140 = new DFA140(this);
+    protected DFA127 dfa127 = new DFA127(this);
+    protected DFA145 dfa145 = new DFA145(this);
+    protected DFA143 dfa143 = new DFA143(this);
     static final String dfa_1s = "\10\uffff";
-    static final String dfa_2s = "\2\uffff\1\5\3\uffff\1\5\1\uffff";
-    static final String dfa_3s = "\1\4\1\uffff\1\15\1\uffff\1\4\1\uffff\1\15\1\uffff";
-    static final String dfa_4s = "\1\51\1\uffff\1\52\1\uffff\1\50\1\uffff\1\52\1\uffff";
-    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\uffff\1\3";
+    static final String dfa_2s = "\2\uffff\1\5\4\uffff\1\5";
+    static final String dfa_3s = "\1\4\1\uffff\1\15\1\uffff\1\4\2\uffff\1\15";
+    static final String dfa_4s = "\1\54\1\uffff\1\55\1\uffff\1\53\2\uffff\1\55";
+    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\3\1\uffff";
     static final String dfa_6s = "\10\uffff}>";
     static final String[] dfa_7s = {
-            "\1\2\41\uffff\1\1\2\uffff\1\3",
+            "\1\2\44\uffff\1\1\2\uffff\1\3",
             "",
-            "\1\5\26\uffff\1\4\1\5\4\uffff\1\5",
+            "\1\5\31\uffff\1\4\1\5\4\uffff\1\5",
             "",
-            "\1\6\43\uffff\1\7",
+            "\1\7\46\uffff\1\6",
             "",
-            "\1\5\26\uffff\1\4\1\5\4\uffff\1\5",
-            ""
+            "",
+            "\1\5\31\uffff\1\4\1\5\4\uffff\1\5"
     };
 
     static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -25838,11 +26075,11 @@
     static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
     static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
 
-    class DFA28 extends DFA {
+    class DFA31 extends DFA {
 
-        public DFA28(BaseRecognizer recognizer) {
+        public DFA31(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 28;
+            this.decisionNumber = 31;
             this.eot = dfa_1;
             this.eof = dfa_2;
             this.min = dfa_3;
@@ -25852,16 +26089,16 @@
             this.transition = dfa_7;
         }
         public String getDescription() {
-            return "1436:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
+            return "1534:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
         }
     }
     static final String dfa_8s = "\44\uffff";
     static final String dfa_9s = "\1\4\1\0\42\uffff";
-    static final String dfa_10s = "\1\152\1\0\42\uffff";
+    static final String dfa_10s = "\1\155\1\0\42\uffff";
     static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\3\1\1";
     static final String dfa_12s = "\1\uffff\1\0\42\uffff}>";
     static final String[] dfa_13s = {
-            "\1\1\4\2\5\uffff\1\2\26\uffff\3\2\3\uffff\2\2\1\uffff\1\42\1\uffff\2\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\1\1\4\2\5\uffff\1\2\31\uffff\3\2\3\uffff\2\2\1\uffff\1\42\1\uffff\2\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -25906,11 +26143,11 @@
     static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
     static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
 
-    class DFA31 extends DFA {
+    class DFA34 extends DFA {
 
-        public DFA31(BaseRecognizer recognizer) {
+        public DFA34(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 31;
+            this.decisionNumber = 34;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_9;
@@ -25920,17 +26157,17 @@
             this.transition = dfa_13;
         }
         public String getDescription() {
-            return "1653:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
+            return "1751:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA31_1 = input.LA(1);
+                        int LA34_1 = input.LA(1);
 
                          
-                        int index31_1 = input.index();
+                        int index34_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred2_InternalCubeDSL()) ) {s = 35;}
@@ -25938,24 +26175,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index31_1);
+                        input.seek(index34_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 31, _s, input);
+                new NoViableAltException(getDescription(), 34, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_14s = "\43\uffff";
     static final String dfa_15s = "\1\4\1\0\41\uffff";
-    static final String dfa_16s = "\1\152\1\0\41\uffff";
+    static final String dfa_16s = "\1\155\1\0\41\uffff";
     static final String dfa_17s = "\2\uffff\1\2\37\uffff\1\1";
     static final String dfa_18s = "\1\uffff\1\0\41\uffff}>";
     static final String[] dfa_19s = {
-            "\5\2\5\uffff\1\2\26\uffff\3\2\3\uffff\2\2\3\uffff\1\1\1\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\5\uffff\1\2\31\uffff\3\2\3\uffff\2\2\3\uffff\1\1\1\2\6\uffff\1\2\17\uffff\2\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -25999,50 +26236,6 @@
     static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
     static final short[][] dfa_19 = unpackEncodedStringArray(dfa_19s);
 
-    class DFA37 extends DFA {
-
-        public DFA37(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 37;
-            this.eot = dfa_14;
-            this.eof = dfa_14;
-            this.min = dfa_15;
-            this.max = dfa_16;
-            this.accept = dfa_17;
-            this.special = dfa_18;
-            this.transition = dfa_19;
-        }
-        public String getDescription() {
-            return "1833:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
-        }
-        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            TokenStream input = (TokenStream)_input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA37_1 = input.LA(1);
-
-                         
-                        int index37_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred5_InternalCubeDSL()) ) {s = 34;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index37_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 37, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA40 extends DFA {
 
         public DFA40(BaseRecognizer recognizer) {
@@ -26057,7 +26250,7 @@
             this.transition = dfa_19;
         }
         public String getDescription() {
-            return "1975:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
+            return "1931:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -26070,7 +26263,7 @@
                         int index40_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred6_InternalCubeDSL()) ) {s = 34;}
+                        if ( (synpred5_InternalCubeDSL()) ) {s = 34;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -26086,14 +26279,58 @@
             throw nvae;
         }
     }
+
+    class DFA43 extends DFA {
+
+        public DFA43(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 43;
+            this.eot = dfa_14;
+            this.eof = dfa_14;
+            this.min = dfa_15;
+            this.max = dfa_16;
+            this.accept = dfa_17;
+            this.special = dfa_18;
+            this.transition = dfa_19;
+        }
+        public String getDescription() {
+            return "2073:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA43_1 = input.LA(1);
+
+                         
+                        int index43_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred6_InternalCubeDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index43_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 43, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
     static final String dfa_20s = "\12\uffff";
     static final String dfa_21s = "\1\10\11\uffff";
     static final String dfa_22s = "\1\4\7\0\2\uffff";
-    static final String dfa_23s = "\1\153\7\0\2\uffff";
+    static final String dfa_23s = "\1\156\7\0\2\uffff";
     static final String dfa_24s = "\10\uffff\1\2\1\1";
-    static final String dfa_25s = "\1\uffff\1\2\1\3\1\4\1\5\1\6\1\1\1\0\2\uffff}>";
+    static final String dfa_25s = "\1\uffff\1\2\1\3\1\4\1\5\1\6\1\0\1\1\2\uffff}>";
     static final String[] dfa_26s = {
-            "\5\10\5\uffff\2\10\24\uffff\5\10\1\uffff\1\10\1\uffff\3\10\1\uffff\3\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\31\10\1\uffff\30\10",
+            "\5\10\5\uffff\2\10\27\uffff\5\10\1\uffff\1\10\1\uffff\3\10\1\uffff\3\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\31\10\1\uffff\30\10",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -26113,11 +26350,11 @@
     static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s);
     static final short[][] dfa_26 = unpackEncodedStringArray(dfa_26s);
 
-    class DFA42 extends DFA {
+    class DFA45 extends DFA {
 
-        public DFA42(BaseRecognizer recognizer) {
+        public DFA45(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 42;
+            this.decisionNumber = 45;
             this.eot = dfa_20;
             this.eof = dfa_21;
             this.min = dfa_22;
@@ -26127,17 +26364,17 @@
             this.transition = dfa_26;
         }
         public String getDescription() {
-            return "2204:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
+            return "2302:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA42_7 = input.LA(1);
+                        int LA45_6 = input.LA(1);
 
                          
-                        int index42_7 = input.index();
+                        int index45_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalCubeDSL()) ) {s = 9;}
@@ -26145,14 +26382,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index42_7);
+                        input.seek(index45_6);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA42_6 = input.LA(1);
+                        int LA45_7 = input.LA(1);
 
                          
-                        int index42_6 = input.index();
+                        int index45_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalCubeDSL()) ) {s = 9;}
@@ -26160,14 +26397,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index42_6);
+                        input.seek(index45_7);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA42_1 = input.LA(1);
+                        int LA45_1 = input.LA(1);
 
                          
-                        int index42_1 = input.index();
+                        int index45_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalCubeDSL()) ) {s = 9;}
@@ -26175,14 +26412,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index42_1);
+                        input.seek(index45_1);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA42_2 = input.LA(1);
+                        int LA45_2 = input.LA(1);
 
                          
-                        int index42_2 = input.index();
+                        int index45_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalCubeDSL()) ) {s = 9;}
@@ -26190,14 +26427,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index42_2);
+                        input.seek(index45_2);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA42_3 = input.LA(1);
+                        int LA45_3 = input.LA(1);
 
                          
-                        int index42_3 = input.index();
+                        int index45_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalCubeDSL()) ) {s = 9;}
@@ -26205,14 +26442,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index42_3);
+                        input.seek(index45_3);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA42_4 = input.LA(1);
+                        int LA45_4 = input.LA(1);
 
                          
-                        int index42_4 = input.index();
+                        int index45_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalCubeDSL()) ) {s = 9;}
@@ -26220,14 +26457,14 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index42_4);
+                        input.seek(index45_4);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA42_5 = input.LA(1);
+                        int LA45_5 = input.LA(1);
 
                          
-                        int index42_5 = input.index();
+                        int index45_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred7_InternalCubeDSL()) ) {s = 9;}
@@ -26235,13 +26472,13 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index42_5);
+                        input.seek(index45_5);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 42, _s, input);
+                new NoViableAltException(getDescription(), 45, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -26249,11 +26486,11 @@
     static final String dfa_27s = "\13\uffff";
     static final String dfa_28s = "\1\1\12\uffff";
     static final String dfa_29s = "\1\4\1\uffff\10\0\1\uffff";
-    static final String dfa_30s = "\1\153\1\uffff\10\0\1\uffff";
+    static final String dfa_30s = "\1\156\1\uffff\10\0\1\uffff";
     static final String dfa_31s = "\1\uffff\1\2\10\uffff\1\1";
-    static final String dfa_32s = "\2\uffff\1\6\1\2\1\3\1\4\1\7\1\5\1\0\1\1\1\uffff}>";
+    static final String dfa_32s = "\2\uffff\1\6\1\0\1\4\1\5\1\7\1\3\1\1\1\2\1\uffff}>";
     static final String[] dfa_33s = {
-            "\5\1\5\uffff\2\1\24\uffff\5\1\1\uffff\1\1\1\uffff\3\1\1\uffff\10\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\13\1\1\uffff\30\1",
+            "\5\1\5\uffff\2\1\27\uffff\5\1\1\uffff\1\1\1\uffff\3\1\1\uffff\10\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\13\1\1\uffff\30\1",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -26274,11 +26511,11 @@
     static final short[] dfa_32 = DFA.unpackEncodedString(dfa_32s);
     static final short[][] dfa_33 = unpackEncodedStringArray(dfa_33s);
 
-    class DFA52 extends DFA {
+    class DFA55 extends DFA {
 
-        public DFA52(BaseRecognizer recognizer) {
+        public DFA55(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 52;
+            this.decisionNumber = 55;
             this.eot = dfa_27;
             this.eof = dfa_28;
             this.min = dfa_29;
@@ -26288,17 +26525,17 @@
             this.transition = dfa_33;
         }
         public String getDescription() {
-            return "()* loopback of 2918:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
+            return "()* loopback of 3016:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA52_8 = input.LA(1);
+                        int LA55_3 = input.LA(1);
 
                          
-                        int index52_8 = input.index();
+                        int index55_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalCubeDSL()) ) {s = 10;}
@@ -26306,14 +26543,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index52_8);
+                        input.seek(index55_3);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA52_9 = input.LA(1);
+                        int LA55_8 = input.LA(1);
 
                          
-                        int index52_9 = input.index();
+                        int index55_8 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalCubeDSL()) ) {s = 10;}
@@ -26321,14 +26558,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index52_9);
+                        input.seek(index55_8);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA52_3 = input.LA(1);
+                        int LA55_9 = input.LA(1);
 
                          
-                        int index52_3 = input.index();
+                        int index55_9 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalCubeDSL()) ) {s = 10;}
@@ -26336,14 +26573,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index52_3);
+                        input.seek(index55_9);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA52_4 = input.LA(1);
+                        int LA55_7 = input.LA(1);
 
                          
-                        int index52_4 = input.index();
+                        int index55_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalCubeDSL()) ) {s = 10;}
@@ -26351,14 +26588,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index52_4);
+                        input.seek(index55_7);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA52_5 = input.LA(1);
+                        int LA55_4 = input.LA(1);
 
                          
-                        int index52_5 = input.index();
+                        int index55_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalCubeDSL()) ) {s = 10;}
@@ -26366,14 +26603,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index52_5);
+                        input.seek(index55_4);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA52_7 = input.LA(1);
+                        int LA55_5 = input.LA(1);
 
                          
-                        int index52_7 = input.index();
+                        int index55_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalCubeDSL()) ) {s = 10;}
@@ -26381,14 +26618,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index52_7);
+                        input.seek(index55_5);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA52_2 = input.LA(1);
+                        int LA55_2 = input.LA(1);
 
                          
-                        int index52_2 = input.index();
+                        int index55_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalCubeDSL()) ) {s = 10;}
@@ -26396,14 +26633,14 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index52_2);
+                        input.seek(index55_2);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA52_6 = input.LA(1);
+                        int LA55_6 = input.LA(1);
 
                          
-                        int index52_6 = input.index();
+                        int index55_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred13_InternalCubeDSL()) ) {s = 10;}
@@ -26411,26 +26648,26 @@
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index52_6);
+                        input.seek(index55_6);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 52, _s, input);
+                new NoViableAltException(getDescription(), 55, _s, input);
             error(nvae);
             throw nvae;
         }
     }
-    static final String dfa_34s = "\1\70\2\uffff\1\71\7\uffff";
-    static final String dfa_35s = "\1\107\2\uffff\1\104\7\uffff";
-    static final String dfa_36s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\6\1\3";
+    static final String dfa_34s = "\1\73\2\uffff\1\74\7\uffff";
+    static final String dfa_35s = "\1\112\2\uffff\1\107\7\uffff";
+    static final String dfa_36s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\3\1\6";
     static final String dfa_37s = "\13\uffff}>";
     static final String[] dfa_38s = {
             "\1\6\1\3\10\uffff\1\1\1\2\1\4\1\5\1\7\1\10",
             "",
             "",
-            "\1\11\12\uffff\1\12",
+            "\1\12\12\uffff\1\11",
             "",
             "",
             "",
@@ -26445,11 +26682,11 @@
     static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
     static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
 
-    class DFA55 extends DFA {
+    class DFA58 extends DFA {
 
-        public DFA55(BaseRecognizer recognizer) {
+        public DFA58(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 55;
+            this.decisionNumber = 58;
             this.eot = dfa_27;
             this.eof = dfa_27;
             this.min = dfa_34;
@@ -26459,17 +26696,17 @@
             this.transition = dfa_38;
         }
         public String getDescription() {
-            return "2994:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
+            return "3092:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
         }
     }
     static final String dfa_39s = "\116\uffff";
     static final String dfa_40s = "\1\2\115\uffff";
     static final String dfa_41s = "\1\4\1\0\114\uffff";
-    static final String dfa_42s = "\1\153\1\0\114\uffff";
+    static final String dfa_42s = "\1\156\1\0\114\uffff";
     static final String dfa_43s = "\2\uffff\1\2\112\uffff\1\1";
     static final String dfa_44s = "\1\uffff\1\0\114\uffff}>";
     static final String[] dfa_45s = {
-            "\5\2\5\uffff\2\2\24\uffff\5\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\43\2\1\uffff\30\2",
+            "\5\2\5\uffff\2\2\27\uffff\5\2\1\uffff\1\2\1\uffff\1\1\2\2\1\uffff\43\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -26557,11 +26794,11 @@
     static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
     static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
 
-    class DFA71 extends DFA {
+    class DFA74 extends DFA {
 
-        public DFA71(BaseRecognizer recognizer) {
+        public DFA74(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 71;
+            this.decisionNumber = 74;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -26571,17 +26808,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "3895:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
+            return "3993:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA71_1 = input.LA(1);
+                        int LA74_1 = input.LA(1);
 
                          
-                        int index71_1 = input.index();
+                        int index74_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred22_InternalCubeDSL()) ) {s = 77;}
@@ -26589,23 +26826,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index71_1);
+                        input.seek(index74_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 71, _s, input);
+                new NoViableAltException(getDescription(), 74, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_46s = "\1\4\2\0\41\uffff";
-    static final String dfa_47s = "\1\152\2\0\41\uffff";
+    static final String dfa_47s = "\1\155\2\0\41\uffff";
     static final String dfa_48s = "\3\uffff\2\1\1\2\35\uffff\1\3";
     static final String dfa_49s = "\1\0\1\1\1\2\41\uffff}>";
     static final String[] dfa_50s = {
-            "\1\1\4\5\5\uffff\1\5\26\uffff\3\5\4\uffff\1\2\1\uffff\1\43\1\uffff\2\5\6\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\5\uffff\1\4\1\5\1\uffff\1\5\3\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
+            "\1\1\4\5\5\uffff\1\5\31\uffff\3\5\4\uffff\1\2\1\uffff\1\43\1\uffff\2\5\6\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\5\uffff\1\4\1\5\1\uffff\1\5\3\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -26648,11 +26885,11 @@
     static final short[] dfa_49 = DFA.unpackEncodedString(dfa_49s);
     static final short[][] dfa_50 = unpackEncodedStringArray(dfa_50s);
 
-    class DFA70 extends DFA {
+    class DFA73 extends DFA {
 
-        public DFA70(BaseRecognizer recognizer) {
+        public DFA73(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 70;
+            this.decisionNumber = 73;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -26662,40 +26899,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "3914:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
+            return "4012:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA70_0 = input.LA(1);
+                        int LA73_0 = input.LA(1);
 
                          
-                        int index70_0 = input.index();
+                        int index73_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA70_0==RULE_ID) ) {s = 1;}
+                        if ( (LA73_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA70_0==44) ) {s = 2;}
+                        else if ( (LA73_0==47) ) {s = 2;}
 
-                        else if ( (LA70_0==69) && (synpred23_InternalCubeDSL())) {s = 3;}
+                        else if ( (LA73_0==72) && (synpred23_InternalCubeDSL())) {s = 3;}
 
-                        else if ( (LA70_0==83) && (synpred23_InternalCubeDSL())) {s = 4;}
+                        else if ( (LA73_0==86) && (synpred23_InternalCubeDSL())) {s = 4;}
 
-                        else if ( ((LA70_0>=RULE_STRING && LA70_0<=RULE_DECIMAL)||LA70_0==14||(LA70_0>=37 && LA70_0<=39)||(LA70_0>=48 && LA70_0<=49)||LA70_0==56||(LA70_0>=72 && LA70_0<=73)||LA70_0==77||LA70_0==84||LA70_0==86||(LA70_0>=90 && LA70_0<=92)||(LA70_0>=95 && LA70_0<=104)||LA70_0==106) ) {s = 5;}
+                        else if ( ((LA73_0>=RULE_STRING && LA73_0<=RULE_DECIMAL)||LA73_0==14||(LA73_0>=40 && LA73_0<=42)||(LA73_0>=51 && LA73_0<=52)||LA73_0==59||(LA73_0>=75 && LA73_0<=76)||LA73_0==80||LA73_0==87||LA73_0==89||(LA73_0>=93 && LA73_0<=95)||(LA73_0>=98 && LA73_0<=107)||LA73_0==109) ) {s = 5;}
 
-                        else if ( (LA70_0==46) ) {s = 35;}
+                        else if ( (LA73_0==49) ) {s = 35;}
 
                          
-                        input.seek(index70_0);
+                        input.seek(index73_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA70_1 = input.LA(1);
+                        int LA73_1 = input.LA(1);
 
                          
-                        int index70_1 = input.index();
+                        int index73_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred23_InternalCubeDSL()) ) {s = 4;}
@@ -26703,14 +26940,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index70_1);
+                        input.seek(index73_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA70_2 = input.LA(1);
+                        int LA73_2 = input.LA(1);
 
                          
-                        int index70_2 = input.index();
+                        int index73_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred23_InternalCubeDSL()) ) {s = 4;}
@@ -26718,19 +26955,19 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index70_2);
+                        input.seek(index73_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 70, _s, input);
+                new NoViableAltException(getDescription(), 73, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_51s = {
-            "\5\2\5\uffff\2\2\24\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\1\2\1\1\41\2\1\uffff\30\2",
+            "\5\2\5\uffff\2\2\27\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\1\2\1\1\41\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -26811,11 +27048,11 @@
     };
     static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
 
-    class DFA72 extends DFA {
+    class DFA75 extends DFA {
 
-        public DFA72(BaseRecognizer recognizer) {
+        public DFA75(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 72;
+            this.decisionNumber = 75;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -26825,17 +27062,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "4012:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
+            return "4110:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA72_1 = input.LA(1);
+                        int LA75_1 = input.LA(1);
 
                          
-                        int index72_1 = input.index();
+                        int index75_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred24_InternalCubeDSL()) ) {s = 77;}
@@ -26843,24 +27080,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index72_1);
+                        input.seek(index75_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 72, _s, input);
+                new NoViableAltException(getDescription(), 75, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_52s = "\40\uffff";
     static final String dfa_53s = "\1\4\26\uffff\1\0\10\uffff";
-    static final String dfa_54s = "\1\152\26\uffff\1\0\10\uffff";
+    static final String dfa_54s = "\1\155\26\uffff\1\0\10\uffff";
     static final String dfa_55s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
     static final String dfa_56s = "\1\0\26\uffff\1\1\10\uffff}>";
     static final String[] dfa_57s = {
-            "\1\5\4\14\5\uffff\1\2\26\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\33\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
+            "\1\5\4\14\5\uffff\1\2\31\uffff\3\5\4\uffff\1\35\3\uffff\2\14\6\uffff\1\5\33\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
             "",
             "",
             "",
@@ -26901,11 +27138,11 @@
     static final short[] dfa_56 = DFA.unpackEncodedString(dfa_56s);
     static final short[][] dfa_57 = unpackEncodedStringArray(dfa_57s);
 
-    class DFA74 extends DFA {
+    class DFA77 extends DFA {
 
-        public DFA74(BaseRecognizer recognizer) {
+        public DFA77(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 74;
+            this.decisionNumber = 77;
             this.eot = dfa_52;
             this.eof = dfa_52;
             this.min = dfa_53;
@@ -26915,56 +27152,56 @@
             this.transition = dfa_57;
         }
         public String getDescription() {
-            return "4057:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
+            return "4155:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA74_0 = input.LA(1);
+                        int LA77_0 = input.LA(1);
 
                          
-                        int index74_0 = input.index();
+                        int index77_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA74_0==97) ) {s = 1;}
+                        if ( (LA77_0==100) ) {s = 1;}
 
-                        else if ( (LA74_0==14) ) {s = 2;}
+                        else if ( (LA77_0==14) ) {s = 2;}
 
-                        else if ( (LA74_0==86) ) {s = 3;}
+                        else if ( (LA77_0==89) ) {s = 3;}
 
-                        else if ( (LA74_0==106) && (synpred25_InternalCubeDSL())) {s = 4;}
+                        else if ( (LA77_0==109) && (synpred25_InternalCubeDSL())) {s = 4;}
 
-                        else if ( (LA74_0==RULE_ID||(LA74_0>=37 && LA74_0<=39)||LA74_0==56||(LA74_0>=95 && LA74_0<=96)) ) {s = 5;}
+                        else if ( (LA77_0==RULE_ID||(LA77_0>=40 && LA77_0<=42)||LA77_0==59||(LA77_0>=98 && LA77_0<=99)) ) {s = 5;}
 
-                        else if ( ((LA74_0>=RULE_STRING && LA74_0<=RULE_DECIMAL)||(LA74_0>=48 && LA74_0<=49)||(LA74_0>=98 && LA74_0<=101)) ) {s = 12;}
+                        else if ( ((LA77_0>=RULE_STRING && LA77_0<=RULE_DECIMAL)||(LA77_0>=51 && LA77_0<=52)||(LA77_0>=101 && LA77_0<=104)) ) {s = 12;}
 
-                        else if ( (LA74_0==84) ) {s = 22;}
+                        else if ( (LA77_0==87) ) {s = 22;}
 
-                        else if ( (LA74_0==90) ) {s = 23;}
+                        else if ( (LA77_0==93) ) {s = 23;}
 
-                        else if ( (LA74_0==91) ) {s = 24;}
+                        else if ( (LA77_0==94) ) {s = 24;}
 
-                        else if ( (LA74_0==92) ) {s = 25;}
+                        else if ( (LA77_0==95) ) {s = 25;}
 
-                        else if ( (LA74_0==102) ) {s = 26;}
+                        else if ( (LA77_0==105) ) {s = 26;}
 
-                        else if ( (LA74_0==103) ) {s = 27;}
+                        else if ( (LA77_0==106) ) {s = 27;}
 
-                        else if ( (LA74_0==104) ) {s = 28;}
+                        else if ( (LA77_0==107) ) {s = 28;}
 
-                        else if ( (LA74_0==44) ) {s = 29;}
+                        else if ( (LA77_0==47) ) {s = 29;}
 
                          
-                        input.seek(index74_0);
+                        input.seek(index77_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA74_23 = input.LA(1);
+                        int LA77_23 = input.LA(1);
 
                          
-                        int index74_23 = input.index();
+                        int index77_23 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred26_InternalCubeDSL()) ) {s = 30;}
@@ -26972,24 +27209,24 @@
                         else if ( (true) ) {s = 31;}
 
                          
-                        input.seek(index74_23);
+                        input.seek(index77_23);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 74, _s, input);
+                new NoViableAltException(getDescription(), 77, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_58s = "\46\uffff";
     static final String dfa_59s = "\1\4\2\0\43\uffff";
-    static final String dfa_60s = "\1\152\2\0\43\uffff";
+    static final String dfa_60s = "\1\155\2\0\43\uffff";
     static final String dfa_61s = "\3\uffff\2\1\1\2\40\uffff";
     static final String dfa_62s = "\1\0\1\1\1\2\43\uffff}>";
     static final String[] dfa_63s = {
-            "\1\1\4\5\5\uffff\1\5\26\uffff\3\5\4\uffff\1\2\3\uffff\3\5\5\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\5\uffff\1\4\1\5\1\uffff\1\5\3\uffff\17\5\1\uffff\1\5",
+            "\1\1\4\5\5\uffff\1\5\31\uffff\3\5\4\uffff\1\2\3\uffff\3\5\5\uffff\1\5\14\uffff\1\3\2\uffff\2\5\3\uffff\1\5\5\uffff\1\4\1\5\1\uffff\1\5\3\uffff\17\5\1\uffff\1\5",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -27036,11 +27273,11 @@
     static final short[] dfa_62 = DFA.unpackEncodedString(dfa_62s);
     static final short[][] dfa_63 = unpackEncodedStringArray(dfa_63s);
 
-    class DFA83 extends DFA {
+    class DFA86 extends DFA {
 
-        public DFA83(BaseRecognizer recognizer) {
+        public DFA86(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 83;
+            this.decisionNumber = 86;
             this.eot = dfa_58;
             this.eof = dfa_58;
             this.min = dfa_59;
@@ -27050,38 +27287,38 @@
             this.transition = dfa_63;
         }
         public String getDescription() {
-            return "4549:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
+            return "4647:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA83_0 = input.LA(1);
+                        int LA86_0 = input.LA(1);
 
                          
-                        int index83_0 = input.index();
+                        int index86_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA83_0==RULE_ID) ) {s = 1;}
+                        if ( (LA86_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA83_0==44) ) {s = 2;}
+                        else if ( (LA86_0==47) ) {s = 2;}
 
-                        else if ( (LA83_0==69) && (synpred29_InternalCubeDSL())) {s = 3;}
+                        else if ( (LA86_0==72) && (synpred29_InternalCubeDSL())) {s = 3;}
 
-                        else if ( (LA83_0==83) && (synpred29_InternalCubeDSL())) {s = 4;}
+                        else if ( (LA86_0==86) && (synpred29_InternalCubeDSL())) {s = 4;}
 
-                        else if ( ((LA83_0>=RULE_STRING && LA83_0<=RULE_DECIMAL)||LA83_0==14||(LA83_0>=37 && LA83_0<=39)||(LA83_0>=48 && LA83_0<=50)||LA83_0==56||(LA83_0>=72 && LA83_0<=73)||LA83_0==77||LA83_0==84||LA83_0==86||(LA83_0>=90 && LA83_0<=104)||LA83_0==106) ) {s = 5;}
+                        else if ( ((LA86_0>=RULE_STRING && LA86_0<=RULE_DECIMAL)||LA86_0==14||(LA86_0>=40 && LA86_0<=42)||(LA86_0>=51 && LA86_0<=53)||LA86_0==59||(LA86_0>=75 && LA86_0<=76)||LA86_0==80||LA86_0==87||LA86_0==89||(LA86_0>=93 && LA86_0<=107)||LA86_0==109) ) {s = 5;}
 
                          
-                        input.seek(index83_0);
+                        input.seek(index86_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA83_1 = input.LA(1);
+                        int LA86_1 = input.LA(1);
 
                          
-                        int index83_1 = input.index();
+                        int index86_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred29_InternalCubeDSL()) ) {s = 4;}
@@ -27089,14 +27326,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index83_1);
+                        input.seek(index86_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA83_2 = input.LA(1);
+                        int LA86_2 = input.LA(1);
 
                          
-                        int index83_2 = input.index();
+                        int index86_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred29_InternalCubeDSL()) ) {s = 4;}
@@ -27104,19 +27341,19 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index83_2);
+                        input.seek(index86_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 83, _s, input);
+                new NoViableAltException(getDescription(), 86, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_64s = {
-            "\5\2\5\uffff\1\2\26\uffff\3\2\4\uffff\1\1\3\uffff\2\2\6\uffff\1\2\14\uffff\1\2\2\uffff\2\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\5\2\5\uffff\1\2\31\uffff\3\2\4\uffff\1\1\3\uffff\2\2\6\uffff\1\2\14\uffff\1\2\2\uffff\2\2\3\uffff\1\2\6\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -27154,11 +27391,11 @@
     };
     static final short[][] dfa_64 = unpackEncodedStringArray(dfa_64s);
 
-    class DFA90 extends DFA {
+    class DFA93 extends DFA {
 
-        public DFA90(BaseRecognizer recognizer) {
+        public DFA93(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 90;
+            this.decisionNumber = 93;
             this.eot = dfa_14;
             this.eof = dfa_14;
             this.min = dfa_15;
@@ -27168,17 +27405,17 @@
             this.transition = dfa_64;
         }
         public String getDescription() {
-            return "5015:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
+            return "5113:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA90_1 = input.LA(1);
+                        int LA93_1 = input.LA(1);
 
                          
-                        int index90_1 = input.index();
+                        int index93_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred32_InternalCubeDSL()) ) {s = 34;}
@@ -27186,24 +27423,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index90_1);
+                        input.seek(index93_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 90, _s, input);
+                new NoViableAltException(getDescription(), 93, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_65s = "\42\uffff";
     static final String dfa_66s = "\1\4\2\0\37\uffff";
-    static final String dfa_67s = "\1\152\2\0\37\uffff";
+    static final String dfa_67s = "\1\155\2\0\37\uffff";
     static final String dfa_68s = "\3\uffff\1\1\1\2\35\uffff";
     static final String dfa_69s = "\1\0\1\1\1\2\37\uffff}>";
     static final String[] dfa_70s = {
-            "\1\1\4\4\5\uffff\1\4\26\uffff\3\4\4\uffff\1\2\3\uffff\2\4\6\uffff\1\4\14\uffff\1\3\2\uffff\2\4\3\uffff\1\4\6\uffff\1\4\1\uffff\1\4\3\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
+            "\1\1\4\4\5\uffff\1\4\31\uffff\3\4\4\uffff\1\2\3\uffff\2\4\6\uffff\1\4\14\uffff\1\3\2\uffff\2\4\3\uffff\1\4\6\uffff\1\4\1\uffff\1\4\3\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
             "\1\uffff",
             "\1\uffff",
             "",
@@ -27246,11 +27483,11 @@
     static final short[] dfa_69 = DFA.unpackEncodedString(dfa_69s);
     static final short[][] dfa_70 = unpackEncodedStringArray(dfa_70s);
 
-    class DFA89 extends DFA {
+    class DFA92 extends DFA {
 
-        public DFA89(BaseRecognizer recognizer) {
+        public DFA92(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 89;
+            this.decisionNumber = 92;
             this.eot = dfa_65;
             this.eof = dfa_65;
             this.min = dfa_66;
@@ -27260,36 +27497,36 @@
             this.transition = dfa_70;
         }
         public String getDescription() {
-            return "5084:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
+            return "5182:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA89_0 = input.LA(1);
+                        int LA92_0 = input.LA(1);
 
                          
-                        int index89_0 = input.index();
+                        int index92_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA89_0==RULE_ID) ) {s = 1;}
+                        if ( (LA92_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA89_0==44) ) {s = 2;}
+                        else if ( (LA92_0==47) ) {s = 2;}
 
-                        else if ( (LA89_0==69) && (synpred33_InternalCubeDSL())) {s = 3;}
+                        else if ( (LA92_0==72) && (synpred33_InternalCubeDSL())) {s = 3;}
 
-                        else if ( ((LA89_0>=RULE_STRING && LA89_0<=RULE_DECIMAL)||LA89_0==14||(LA89_0>=37 && LA89_0<=39)||(LA89_0>=48 && LA89_0<=49)||LA89_0==56||(LA89_0>=72 && LA89_0<=73)||LA89_0==77||LA89_0==84||LA89_0==86||(LA89_0>=90 && LA89_0<=92)||(LA89_0>=95 && LA89_0<=104)||LA89_0==106) ) {s = 4;}
+                        else if ( ((LA92_0>=RULE_STRING && LA92_0<=RULE_DECIMAL)||LA92_0==14||(LA92_0>=40 && LA92_0<=42)||(LA92_0>=51 && LA92_0<=52)||LA92_0==59||(LA92_0>=75 && LA92_0<=76)||LA92_0==80||LA92_0==87||LA92_0==89||(LA92_0>=93 && LA92_0<=95)||(LA92_0>=98 && LA92_0<=107)||LA92_0==109) ) {s = 4;}
 
                          
-                        input.seek(index89_0);
+                        input.seek(index92_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA89_1 = input.LA(1);
+                        int LA92_1 = input.LA(1);
 
                          
-                        int index89_1 = input.index();
+                        int index92_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred33_InternalCubeDSL()) ) {s = 3;}
@@ -27297,14 +27534,14 @@
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index89_1);
+                        input.seek(index92_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA89_2 = input.LA(1);
+                        int LA92_2 = input.LA(1);
 
                          
-                        int index89_2 = input.index();
+                        int index92_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred33_InternalCubeDSL()) ) {s = 3;}
@@ -27312,23 +27549,23 @@
                         else if ( (true) ) {s = 4;}
 
                          
-                        input.seek(index89_2);
+                        input.seek(index92_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 89, _s, input);
+                new NoViableAltException(getDescription(), 92, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA112 extends DFA {
+    class DFA115 extends DFA {
 
-        public DFA112(BaseRecognizer recognizer) {
+        public DFA115(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 112;
+            this.decisionNumber = 115;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -27338,17 +27575,17 @@
             this.transition = dfa_45;
         }
         public String getDescription() {
-            return "6213:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
+            return "6311:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA112_1 = input.LA(1);
+                        int LA115_1 = input.LA(1);
 
                          
-                        int index112_1 = input.index();
+                        int index115_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred36_InternalCubeDSL()) ) {s = 77;}
@@ -27356,23 +27593,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index112_1);
+                        input.seek(index115_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 112, _s, input);
+                new NoViableAltException(getDescription(), 115, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA111 extends DFA {
+    class DFA114 extends DFA {
 
-        public DFA111(BaseRecognizer recognizer) {
+        public DFA114(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 111;
+            this.decisionNumber = 114;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -27382,40 +27619,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "6232:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
+            return "6330:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA111_0 = input.LA(1);
+                        int LA114_0 = input.LA(1);
 
                          
-                        int index111_0 = input.index();
+                        int index114_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA111_0==RULE_ID) ) {s = 1;}
+                        if ( (LA114_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA111_0==44) ) {s = 2;}
+                        else if ( (LA114_0==47) ) {s = 2;}
 
-                        else if ( (LA111_0==69) && (synpred37_InternalCubeDSL())) {s = 3;}
+                        else if ( (LA114_0==72) && (synpred37_InternalCubeDSL())) {s = 3;}
 
-                        else if ( (LA111_0==83) && (synpred37_InternalCubeDSL())) {s = 4;}
+                        else if ( (LA114_0==86) && (synpred37_InternalCubeDSL())) {s = 4;}
 
-                        else if ( ((LA111_0>=RULE_STRING && LA111_0<=RULE_DECIMAL)||LA111_0==14||(LA111_0>=37 && LA111_0<=39)||(LA111_0>=48 && LA111_0<=49)||LA111_0==56||(LA111_0>=72 && LA111_0<=73)||LA111_0==77||LA111_0==84||LA111_0==86||(LA111_0>=90 && LA111_0<=92)||(LA111_0>=95 && LA111_0<=104)||LA111_0==106) ) {s = 5;}
+                        else if ( ((LA114_0>=RULE_STRING && LA114_0<=RULE_DECIMAL)||LA114_0==14||(LA114_0>=40 && LA114_0<=42)||(LA114_0>=51 && LA114_0<=52)||LA114_0==59||(LA114_0>=75 && LA114_0<=76)||LA114_0==80||LA114_0==87||LA114_0==89||(LA114_0>=93 && LA114_0<=95)||(LA114_0>=98 && LA114_0<=107)||LA114_0==109) ) {s = 5;}
 
-                        else if ( (LA111_0==46) ) {s = 35;}
+                        else if ( (LA114_0==49) ) {s = 35;}
 
                          
-                        input.seek(index111_0);
+                        input.seek(index114_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA111_1 = input.LA(1);
+                        int LA114_1 = input.LA(1);
 
                          
-                        int index111_1 = input.index();
+                        int index114_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred37_InternalCubeDSL()) ) {s = 4;}
@@ -27423,14 +27660,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index111_1);
+                        input.seek(index114_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA111_2 = input.LA(1);
+                        int LA114_2 = input.LA(1);
 
                          
-                        int index111_2 = input.index();
+                        int index114_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred37_InternalCubeDSL()) ) {s = 4;}
@@ -27438,23 +27675,23 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index111_2);
+                        input.seek(index114_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 111, _s, input);
+                new NoViableAltException(getDescription(), 114, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA113 extends DFA {
+    class DFA116 extends DFA {
 
-        public DFA113(BaseRecognizer recognizer) {
+        public DFA116(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 113;
+            this.decisionNumber = 116;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -27464,17 +27701,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "6330:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
+            return "6428:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA113_1 = input.LA(1);
+                        int LA116_1 = input.LA(1);
 
                          
-                        int index113_1 = input.index();
+                        int index116_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred38_InternalCubeDSL()) ) {s = 77;}
@@ -27482,19 +27719,19 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index113_1);
+                        input.seek(index116_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 113, _s, input);
+                new NoViableAltException(getDescription(), 116, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String[] dfa_71s = {
-            "\5\2\5\uffff\2\2\24\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\32\2\1\uffff\30\2",
+            "\5\2\5\uffff\2\2\27\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\32\2\1\uffff\30\2",
             "\1\uffff",
             "",
             "",
@@ -27575,50 +27812,6 @@
     };
     static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
 
-    class DFA117 extends DFA {
-
-        public DFA117(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 117;
-            this.eot = dfa_39;
-            this.eof = dfa_40;
-            this.min = dfa_41;
-            this.max = dfa_42;
-            this.accept = dfa_43;
-            this.special = dfa_44;
-            this.transition = dfa_71;
-        }
-        public String getDescription() {
-            return "6489:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
-        }
-        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            TokenStream input = (TokenStream)_input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA117_1 = input.LA(1);
-
-                         
-                        int index117_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred39_InternalCubeDSL()) ) {s = 77;}
-
-                        else if ( (true) ) {s = 2;}
-
-                         
-                        input.seek(index117_1);
-                        if ( s>=0 ) return s;
-                        break;
-            }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 117, _s, input);
-            error(nvae);
-            throw nvae;
-        }
-    }
-
     class DFA120 extends DFA {
 
         public DFA120(BaseRecognizer recognizer) {
@@ -27630,10 +27823,10 @@
             this.max = dfa_42;
             this.accept = dfa_43;
             this.special = dfa_44;
-            this.transition = dfa_45;
+            this.transition = dfa_71;
         }
         public String getDescription() {
-            return "6546:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
+            return "6587:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -27646,7 +27839,7 @@
                         int index120_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred40_InternalCubeDSL()) ) {s = 77;}
+                        if ( (synpred39_InternalCubeDSL()) ) {s = 77;}
 
                         else if ( (true) ) {s = 2;}
 
@@ -27663,11 +27856,55 @@
         }
     }
 
-    class DFA119 extends DFA {
+    class DFA123 extends DFA {
 
-        public DFA119(BaseRecognizer recognizer) {
+        public DFA123(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 119;
+            this.decisionNumber = 123;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_45;
+        }
+        public String getDescription() {
+            return "6644:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA123_1 = input.LA(1);
+
+                         
+                        int index123_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred40_InternalCubeDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index123_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 123, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA122 extends DFA {
+
+        public DFA122(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 122;
             this.eot = dfa_8;
             this.eof = dfa_8;
             this.min = dfa_46;
@@ -27677,40 +27914,40 @@
             this.transition = dfa_50;
         }
         public String getDescription() {
-            return "6565:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
+            return "6663:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA119_0 = input.LA(1);
+                        int LA122_0 = input.LA(1);
 
                          
-                        int index119_0 = input.index();
+                        int index122_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA119_0==RULE_ID) ) {s = 1;}
+                        if ( (LA122_0==RULE_ID) ) {s = 1;}
 
-                        else if ( (LA119_0==44) ) {s = 2;}
+                        else if ( (LA122_0==47) ) {s = 2;}
 
-                        else if ( (LA119_0==69) && (synpred41_InternalCubeDSL())) {s = 3;}
+                        else if ( (LA122_0==72) && (synpred41_InternalCubeDSL())) {s = 3;}
 
-                        else if ( (LA119_0==83) && (synpred41_InternalCubeDSL())) {s = 4;}
+                        else if ( (LA122_0==86) && (synpred41_InternalCubeDSL())) {s = 4;}
 
-                        else if ( ((LA119_0>=RULE_STRING && LA119_0<=RULE_DECIMAL)||LA119_0==14||(LA119_0>=37 && LA119_0<=39)||(LA119_0>=48 && LA119_0<=49)||LA119_0==56||(LA119_0>=72 && LA119_0<=73)||LA119_0==77||LA119_0==84||LA119_0==86||(LA119_0>=90 && LA119_0<=92)||(LA119_0>=95 && LA119_0<=104)||LA119_0==106) ) {s = 5;}
+                        else if ( ((LA122_0>=RULE_STRING && LA122_0<=RULE_DECIMAL)||LA122_0==14||(LA122_0>=40 && LA122_0<=42)||(LA122_0>=51 && LA122_0<=52)||LA122_0==59||(LA122_0>=75 && LA122_0<=76)||LA122_0==80||LA122_0==87||LA122_0==89||(LA122_0>=93 && LA122_0<=95)||(LA122_0>=98 && LA122_0<=107)||LA122_0==109) ) {s = 5;}
 
-                        else if ( (LA119_0==46) ) {s = 35;}
+                        else if ( (LA122_0==49) ) {s = 35;}
 
                          
-                        input.seek(index119_0);
+                        input.seek(index122_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA119_1 = input.LA(1);
+                        int LA122_1 = input.LA(1);
 
                          
-                        int index119_1 = input.index();
+                        int index122_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred41_InternalCubeDSL()) ) {s = 4;}
@@ -27718,14 +27955,14 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index119_1);
+                        input.seek(index122_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA119_2 = input.LA(1);
+                        int LA122_2 = input.LA(1);
 
                          
-                        int index119_2 = input.index();
+                        int index122_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred41_InternalCubeDSL()) ) {s = 4;}
@@ -27733,23 +27970,23 @@
                         else if ( (true) ) {s = 5;}
 
                          
-                        input.seek(index119_2);
+                        input.seek(index122_2);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 119, _s, input);
+                new NoViableAltException(getDescription(), 122, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA121 extends DFA {
+    class DFA124 extends DFA {
 
-        public DFA121(BaseRecognizer recognizer) {
+        public DFA124(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 121;
+            this.decisionNumber = 124;
             this.eot = dfa_39;
             this.eof = dfa_40;
             this.min = dfa_41;
@@ -27759,17 +27996,17 @@
             this.transition = dfa_51;
         }
         public String getDescription() {
-            return "6663:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
+            return "6761:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA121_1 = input.LA(1);
+                        int LA124_1 = input.LA(1);
 
                          
-                        int index121_1 = input.index();
+                        int index124_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred42_InternalCubeDSL()) ) {s = 77;}
@@ -27777,24 +28014,24 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index121_1);
+                        input.seek(index124_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 121, _s, input);
+                new NoViableAltException(getDescription(), 124, _s, input);
             error(nvae);
             throw nvae;
         }
     }
     static final String dfa_72s = "\1\41\115\uffff";
     static final String dfa_73s = "\1\4\40\0\55\uffff";
-    static final String dfa_74s = "\1\153\40\0\55\uffff";
+    static final String dfa_74s = "\1\156\40\0\55\uffff";
     static final String dfa_75s = "\41\uffff\1\2\53\uffff\1\1";
     static final String dfa_76s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
     static final String[] dfa_77s = {
-            "\1\1\1\27\1\23\1\24\1\25\5\uffff\1\12\1\41\24\uffff\1\41\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\40\2\41\1\uffff\1\17\1\20\6\41\1\15\17\41\1\10\1\7\3\41\1\6\5\41\1\uffff\1\31\1\41\1\13\3\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
+            "\1\1\1\27\1\23\1\24\1\25\5\uffff\1\12\1\41\27\uffff\1\41\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\40\2\41\1\uffff\1\17\1\20\6\41\1\15\17\41\1\10\1\7\3\41\1\6\5\41\1\uffff\1\31\1\41\1\13\3\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -27880,11 +28117,11 @@
     static final short[] dfa_76 = DFA.unpackEncodedString(dfa_76s);
     static final short[][] dfa_77 = unpackEncodedStringArray(dfa_77s);
 
-    class DFA124 extends DFA {
+    class DFA127 extends DFA {
 
-        public DFA124(BaseRecognizer recognizer) {
+        public DFA127(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 124;
+            this.decisionNumber = 127;
             this.eot = dfa_39;
             this.eof = dfa_72;
             this.min = dfa_73;
@@ -27894,17 +28131,17 @@
             this.transition = dfa_77;
         }
         public String getDescription() {
-            return "7006:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
+            return "7104:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA124_1 = input.LA(1);
+                        int LA127_1 = input.LA(1);
 
                          
-                        int index124_1 = input.index();
+                        int index127_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -27912,14 +28149,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_1);
+                        input.seek(index127_1);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA124_2 = input.LA(1);
+                        int LA127_2 = input.LA(1);
 
                          
-                        int index124_2 = input.index();
+                        int index127_2 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -27927,14 +28164,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_2);
+                        input.seek(index127_2);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA124_3 = input.LA(1);
+                        int LA127_3 = input.LA(1);
 
                          
-                        int index124_3 = input.index();
+                        int index127_3 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -27942,14 +28179,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_3);
+                        input.seek(index127_3);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA124_4 = input.LA(1);
+                        int LA127_4 = input.LA(1);
 
                          
-                        int index124_4 = input.index();
+                        int index127_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -27957,14 +28194,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_4);
+                        input.seek(index127_4);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA124_5 = input.LA(1);
+                        int LA127_5 = input.LA(1);
 
                          
-                        int index124_5 = input.index();
+                        int index127_5 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -27972,14 +28209,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_5);
+                        input.seek(index127_5);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA124_6 = input.LA(1);
+                        int LA127_6 = input.LA(1);
 
                          
-                        int index124_6 = input.index();
+                        int index127_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -27987,14 +28224,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_6);
+                        input.seek(index127_6);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA124_7 = input.LA(1);
+                        int LA127_7 = input.LA(1);
 
                          
-                        int index124_7 = input.index();
+                        int index127_7 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28002,14 +28239,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_7);
+                        input.seek(index127_7);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA124_8 = input.LA(1);
+                        int LA127_8 = input.LA(1);
 
                          
-                        int index124_8 = input.index();
+                        int index127_8 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28017,14 +28254,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_8);
+                        input.seek(index127_8);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA124_9 = input.LA(1);
+                        int LA127_9 = input.LA(1);
 
                          
-                        int index124_9 = input.index();
+                        int index127_9 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28032,14 +28269,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_9);
+                        input.seek(index127_9);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA124_10 = input.LA(1);
+                        int LA127_10 = input.LA(1);
 
                          
-                        int index124_10 = input.index();
+                        int index127_10 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28047,14 +28284,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_10);
+                        input.seek(index127_10);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA124_11 = input.LA(1);
+                        int LA127_11 = input.LA(1);
 
                          
-                        int index124_11 = input.index();
+                        int index127_11 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28062,14 +28299,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_11);
+                        input.seek(index127_11);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA124_12 = input.LA(1);
+                        int LA127_12 = input.LA(1);
 
                          
-                        int index124_12 = input.index();
+                        int index127_12 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28077,14 +28314,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_12);
+                        input.seek(index127_12);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA124_13 = input.LA(1);
+                        int LA127_13 = input.LA(1);
 
                          
-                        int index124_13 = input.index();
+                        int index127_13 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28092,14 +28329,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_13);
+                        input.seek(index127_13);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA124_14 = input.LA(1);
+                        int LA127_14 = input.LA(1);
 
                          
-                        int index124_14 = input.index();
+                        int index127_14 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28107,14 +28344,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_14);
+                        input.seek(index127_14);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA124_15 = input.LA(1);
+                        int LA127_15 = input.LA(1);
 
                          
-                        int index124_15 = input.index();
+                        int index127_15 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28122,14 +28359,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_15);
+                        input.seek(index127_15);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA124_16 = input.LA(1);
+                        int LA127_16 = input.LA(1);
 
                          
-                        int index124_16 = input.index();
+                        int index127_16 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28137,14 +28374,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_16);
+                        input.seek(index127_16);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA124_17 = input.LA(1);
+                        int LA127_17 = input.LA(1);
 
                          
-                        int index124_17 = input.index();
+                        int index127_17 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28152,14 +28389,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_17);
+                        input.seek(index127_17);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA124_18 = input.LA(1);
+                        int LA127_18 = input.LA(1);
 
                          
-                        int index124_18 = input.index();
+                        int index127_18 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28167,14 +28404,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_18);
+                        input.seek(index127_18);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA124_19 = input.LA(1);
+                        int LA127_19 = input.LA(1);
 
                          
-                        int index124_19 = input.index();
+                        int index127_19 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28182,14 +28419,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_19);
+                        input.seek(index127_19);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA124_20 = input.LA(1);
+                        int LA127_20 = input.LA(1);
 
                          
-                        int index124_20 = input.index();
+                        int index127_20 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28197,14 +28434,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_20);
+                        input.seek(index127_20);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA124_21 = input.LA(1);
+                        int LA127_21 = input.LA(1);
 
                          
-                        int index124_21 = input.index();
+                        int index127_21 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28212,14 +28449,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_21);
+                        input.seek(index127_21);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA124_22 = input.LA(1);
+                        int LA127_22 = input.LA(1);
 
                          
-                        int index124_22 = input.index();
+                        int index127_22 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28227,14 +28464,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_22);
+                        input.seek(index127_22);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA124_23 = input.LA(1);
+                        int LA127_23 = input.LA(1);
 
                          
-                        int index124_23 = input.index();
+                        int index127_23 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28242,14 +28479,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_23);
+                        input.seek(index127_23);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA124_24 = input.LA(1);
+                        int LA127_24 = input.LA(1);
 
                          
-                        int index124_24 = input.index();
+                        int index127_24 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28257,14 +28494,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_24);
+                        input.seek(index127_24);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA124_25 = input.LA(1);
+                        int LA127_25 = input.LA(1);
 
                          
-                        int index124_25 = input.index();
+                        int index127_25 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28272,14 +28509,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_25);
+                        input.seek(index127_25);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA124_26 = input.LA(1);
+                        int LA127_26 = input.LA(1);
 
                          
-                        int index124_26 = input.index();
+                        int index127_26 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28287,14 +28524,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_26);
+                        input.seek(index127_26);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA124_27 = input.LA(1);
+                        int LA127_27 = input.LA(1);
 
                          
-                        int index124_27 = input.index();
+                        int index127_27 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28302,14 +28539,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_27);
+                        input.seek(index127_27);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA124_28 = input.LA(1);
+                        int LA127_28 = input.LA(1);
 
                          
-                        int index124_28 = input.index();
+                        int index127_28 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28317,14 +28554,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_28);
+                        input.seek(index127_28);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA124_29 = input.LA(1);
+                        int LA127_29 = input.LA(1);
 
                          
-                        int index124_29 = input.index();
+                        int index127_29 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28332,14 +28569,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_29);
+                        input.seek(index127_29);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA124_30 = input.LA(1);
+                        int LA127_30 = input.LA(1);
 
                          
-                        int index124_30 = input.index();
+                        int index127_30 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28347,14 +28584,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_30);
+                        input.seek(index127_30);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA124_31 = input.LA(1);
+                        int LA127_31 = input.LA(1);
 
                          
-                        int index124_31 = input.index();
+                        int index127_31 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28362,14 +28599,14 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_31);
+                        input.seek(index127_31);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA124_32 = input.LA(1);
+                        int LA127_32 = input.LA(1);
 
                          
-                        int index124_32 = input.index();
+                        int index127_32 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred43_InternalCubeDSL()) ) {s = 77;}
@@ -28377,13 +28614,13 @@
                         else if ( (true) ) {s = 33;}
 
                          
-                        input.seek(index124_32);
+                        input.seek(index127_32);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 124, _s, input);
+                new NoViableAltException(getDescription(), 127, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -28391,11 +28628,11 @@
     static final String dfa_78s = "\117\uffff";
     static final String dfa_79s = "\1\2\116\uffff";
     static final String dfa_80s = "\1\4\1\0\115\uffff";
-    static final String dfa_81s = "\1\155\1\0\115\uffff";
+    static final String dfa_81s = "\1\160\1\0\115\uffff";
     static final String dfa_82s = "\2\uffff\1\2\113\uffff\1\1";
     static final String dfa_83s = "\1\uffff\1\0\115\uffff}>";
     static final String[] dfa_84s = {
-            "\5\2\5\uffff\2\2\24\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\32\2\1\uffff\30\2\1\uffff\1\2",
+            "\5\2\5\uffff\2\2\27\uffff\5\2\1\uffff\1\2\1\uffff\3\2\1\uffff\10\2\1\1\32\2\1\uffff\30\2\1\uffff\1\2",
             "\1\uffff",
             "",
             "",
@@ -28484,11 +28721,11 @@
     static final short[] dfa_83 = DFA.unpackEncodedString(dfa_83s);
     static final short[][] dfa_84 = unpackEncodedStringArray(dfa_84s);
 
-    class DFA142 extends DFA {
+    class DFA145 extends DFA {
 
-        public DFA142(BaseRecognizer recognizer) {
+        public DFA145(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 142;
+            this.decisionNumber = 145;
             this.eot = dfa_78;
             this.eof = dfa_79;
             this.min = dfa_80;
@@ -28498,17 +28735,17 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "7664:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
+            return "7762:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA142_1 = input.LA(1);
+                        int LA145_1 = input.LA(1);
 
                          
-                        int index142_1 = input.index();
+                        int index145_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred50_InternalCubeDSL()) ) {s = 78;}
@@ -28516,23 +28753,23 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index142_1);
+                        input.seek(index145_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 142, _s, input);
+                new NoViableAltException(getDescription(), 145, _s, input);
             error(nvae);
             throw nvae;
         }
     }
 
-    class DFA140 extends DFA {
+    class DFA143 extends DFA {
 
-        public DFA140(BaseRecognizer recognizer) {
+        public DFA143(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 140;
+            this.decisionNumber = 143;
             this.eot = dfa_78;
             this.eof = dfa_79;
             this.min = dfa_80;
@@ -28542,17 +28779,17 @@
             this.transition = dfa_84;
         }
         public String getDescription() {
-            return "7758:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
+            return "7856:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA140_1 = input.LA(1);
+                        int LA143_1 = input.LA(1);
 
                          
-                        int index140_1 = input.index();
+                        int index143_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred52_InternalCubeDSL()) ) {s = 78;}
@@ -28560,13 +28797,13 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index140_1);
+                        input.seek(index143_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 140, _s, input);
+                new NoViableAltException(getDescription(), 143, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -28593,99 +28830,102 @@
     public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000003004000L});
     public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000002004000L});
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000008000002L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000400048000L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000400008000L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000002000048000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000002000008000L});
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000014008000L});
     public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000020000000L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x00000000C0004002L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000080004002L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0xFA00000000000000L,0x000000000000000FL});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000100008000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000200000002L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0x07F0000000000000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000000L,0x000FC00000000000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000800000002L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000001000000002L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000024000000010L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000008000000010L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000010000000010L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000100000000002L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x010358E0000041F0L,0x000005FF9C502300L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000600000000000L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x010318E0000041F0L,0x000005FF9C502300L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x00000007C0004002L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000780004002L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000700004002L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000600004002L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000400004002L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0xD000000000000000L,0x000000000000007FL});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000800008000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000001000000002L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x3F80000000000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x007E000000000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000004000000002L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000008000000002L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000120000000010L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000040000000010L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000080000000010L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000200000000002L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000800000000002L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x081AC700000041F0L,0x00002FFCE2811800L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0003000000000000L});
     public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x010718E0000041F0L,0x000005FF9C502300L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0004200000000000L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000200000000002L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x03F8000000000002L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0100000000000000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0600000000000000L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0800000000000002L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x1000000000000002L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0xE000000000000002L,0x0000000000000001L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0700000000000002L,0x0000000000000002L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000100000000010L,0x0000000000000020L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0300000000000002L,0x00000000000000FCL});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0200000000000000L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000300L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000010000000002L,0x0000000000001C00L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000002L,0x0000000000018000L});
-    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000001000000002L,0x0000000000060000L});
-    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x000000E000000010L,0x0000000080000000L});
-    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x010000E000000010L,0x0000000180000000L});
-    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000100000000010L,0x0000100000000020L});
-    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0200200000000000L});
-    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0002101000000002L,0x0000000000060000L});
-    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x010358E0000041F0L,0x000005FF9C582320L});
-    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0002001000000002L,0x0000000000060000L});
-    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x010318E00000C1F0L,0x000005FF9C502300L});
-    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000200000008000L});
-    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x010718E0000041F0L,0x000005FFFC582320L});
-    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000200000000000L,0x0000000000080000L});
-    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x010718E0000041F0L,0x000005FFFC502300L});
-    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0004000000000000L});
-    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x01031CE0000041F2L,0x000005FFFC502300L});
-    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x010318E0000041F2L,0x000005FFFC502300L});
-    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
-    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x010318E0000041F0L,0x000005FF9C502320L});
-    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
-    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000300000008010L,0x0000000003800020L});
-    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000200000000000L,0x0000000002800000L});
-    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000200000000000L,0x0000000000800000L});
-    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x01031CE0000041F0L,0x000005FFFC502300L});
-    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000240000000000L});
-    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x010318E0000041F0L,0x000005FFFC502300L});
-    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x01031CE0000041F0L,0x000005FF9C502300L});
-    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x010318E00000C1F0L,0x000005FFFC502300L});
-    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x01031CE00000C1F0L,0x000005FFFC502300L});
-    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000800000000002L});
-    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0002100000000002L});
-    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0002000000000002L});
-    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0102100000000002L});
-    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0002400000000000L});
-    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x010318E0000041F2L,0x000005FF9C502300L});
-    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x00000A0000000000L});
-    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000002L,0x00000A0000000000L});
-    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0000000000000180L});
-    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000500000000010L,0x0000000000000020L});
-    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0100000000000002L});
-    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0100001000000002L});
-    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000002L,0x0000000180000000L});
-    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000002L,0x0000200000000000L});
-    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000001000000000L});
-    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000002000000002L});
-    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0818C700000041F0L,0x00002FFCE2811800L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0010000000000000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0838C700000041F0L,0x00002FFCE2811800L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0021000000000000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0001000000000002L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x1FC0000000000002L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x3000000000000000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x2000000000000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000002L,0x000000000000000FL});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x3800000000000002L,0x0000000000000010L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000800000000010L,0x0000000000000100L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x1800000000000002L,0x00000000000007E0L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x1000000000000000L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0800000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001800L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000080000000002L,0x000000000000E000L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000002L,0x00000000000C0000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000008000000002L,0x0000000000300000L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000070000000010L,0x0000000400000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0800070000000010L,0x0000000C00000000L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000800000000010L,0x0000800000000100L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x1001000000000000L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0010808000000002L,0x0000000000300000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x081AC700000041F0L,0x00002FFCE2C11900L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0010008000000002L,0x0000000000300000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0818C7000000C1F0L,0x00002FFCE2811800L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0001000000008000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0838C700000041F0L,0x00002FFFE2C11900L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0001000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0838C700000041F0L,0x00002FFFE2811800L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0020000000000000L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0818E700000041F2L,0x00002FFFE2811800L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0818C700000041F2L,0x00002FFFE2811800L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0818C700000041F0L,0x00002FFCE2811900L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0001800000008010L,0x000000001C000100L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0001000000000000L,0x0000000014000000L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0001000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0818E700000041F0L,0x00002FFFE2811800L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0001200000000000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0818C700000041F0L,0x00002FFFE2811800L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0818E700000041F0L,0x00002FFCE2811800L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0818C7000000C1F0L,0x00002FFFE2811800L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0818E7000000C1F0L,0x00002FFFE2811800L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0010800000000002L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0010000000000002L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0810800000000002L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0012000000000000L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x0818C700000041F2L,0x00002FFCE2811800L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000000L,0x0000500000000000L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000002L,0x0000500000000000L});
+    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000180L});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0002800000000010L,0x0000000000000100L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0800000000000002L});
+    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0800008000000002L});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000000000002L,0x0000000C00000000L});
+    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
+    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000008000000000L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000010000000002L});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000012L});
 
 }
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/serializer/CubeDSLSemanticSequencer.java b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/serializer/CubeDSLSemanticSequencer.java
index 1b3658b..0fe3ce3 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/serializer/CubeDSLSemanticSequencer.java
+++ b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/serializer/CubeDSLSemanticSequencer.java
@@ -562,6 +562,9 @@
 	 *     (
 	 *         name=TRANSLATABLEID 
 	 *         levelColValue=[LEntityFeature|LFQN] 
+	 *         (nameColumn?='nameColumn' levelNameColValue=[LEntityFeature|LFQN])? 
+	 *         (captionColumn?='captionColumn' levelCaptionColValue=[LEntityFeature|LFQN])? 
+	 *         (ordinalColumn?='ordinalColumn' levelOrdinalColValue=[LEntityFeature|LFQN])? 
 	 *         uniqueMembers?='uniqueMembers'? 
 	 *         (levelType?='levelType' levelTypeValue=CubeLevelLevelType)? 
 	 *         properties+=CubeLevelProp*
diff --git a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/serializer/CubeDSLSyntacticSequencer.java b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/serializer/CubeDSLSyntacticSequencer.java
index 6578a18..02b3aaa 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/serializer/CubeDSLSyntacticSequencer.java
+++ b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/serializer/CubeDSLSyntacticSequencer.java
@@ -36,7 +36,7 @@
 public class CubeDSLSyntacticSequencer extends AbstractSyntacticSequencer {
 
 	protected CubeDSLGrammarAccess grammarAccess;
-	protected AbstractElementAlias match_CubeLevel___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_2__q;
+	protected AbstractElementAlias match_CubeLevel___LeftCurlyBracketKeyword_9_0_RightCurlyBracketKeyword_9_2__q;
 	protected AbstractElementAlias match_CubePackage___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_3__q;
 	protected AbstractElementAlias match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q;
 	protected AbstractElementAlias match_XBlockExpression_SemicolonKeyword_2_1_q;
@@ -49,7 +49,7 @@
 	@Inject
 	protected void init(IGrammarAccess access) {
 		grammarAccess = (CubeDSLGrammarAccess) access;
-		match_CubeLevel___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_6_0()), new TokenAlias(false, false, grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_6_2()));
+		match_CubeLevel___LeftCurlyBracketKeyword_9_0_RightCurlyBracketKeyword_9_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCubeLevelAccess().getLeftCurlyBracketKeyword_9_0()), new TokenAlias(false, false, grammarAccess.getCubeLevelAccess().getRightCurlyBracketKeyword_9_2()));
 		match_CubePackage___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCubePackageAccess().getLeftCurlyBracketKeyword_2_0()), new TokenAlias(false, false, grammarAccess.getCubePackageAccess().getRightCurlyBracketKeyword_2_3()));
 		match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()));
 		match_XBlockExpression_SemicolonKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
@@ -97,8 +97,8 @@
 		List<INode> transitionNodes = collectNodes(fromNode, toNode);
 		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
 			List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
-			if (match_CubeLevel___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_2__q.equals(syntax))
-				emit_CubeLevel___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			if (match_CubeLevel___LeftCurlyBracketKeyword_9_0_RightCurlyBracketKeyword_9_2__q.equals(syntax))
+				emit_CubeLevel___LeftCurlyBracketKeyword_9_0_RightCurlyBracketKeyword_9_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_CubePackage___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_3__q.equals(syntax))
 				emit_CubePackage___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q.equals(syntax))
@@ -124,11 +124,14 @@
 	 *     ('{' '}')?
 	 *
 	 * This ambiguous syntax occurs at:
+	 *     levelCaptionColValue=[LEntityFeature|LFQN] (ambiguity) (rule end)
 	 *     levelColValue=[LEntityFeature|LFQN] (ambiguity) (rule end)
+	 *     levelNameColValue=[LEntityFeature|LFQN] (ambiguity) (rule end)
+	 *     levelOrdinalColValue=[LEntityFeature|LFQN] (ambiguity) (rule end)
 	 *     levelTypeValue=CubeLevelLevelType (ambiguity) (rule end)
 	 *     uniqueMembers?='uniqueMembers' (ambiguity) (rule end)
 	 */
-	protected void emit_CubeLevel___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+	protected void emit_CubeLevel___LeftCurlyBracketKeyword_9_0_RightCurlyBracketKeyword_9_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
diff --git a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/services/CubeDSLGrammarAccess.java b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/services/CubeDSLGrammarAccess.java
index ca6ed62..2e97766 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/services/CubeDSLGrammarAccess.java
+++ b/org.eclipse.osbp.xtext.cubedsl/src-gen/org/eclipse/osbp/xtext/cubedsl/services/CubeDSLGrammarAccess.java
@@ -588,26 +588,50 @@
 		private final Assignment cLevelColValueAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final CrossReference cLevelColValueLEntityFeatureCrossReference_3_0 = (CrossReference)cLevelColValueAssignment_3.eContents().get(0);
 		private final RuleCall cLevelColValueLEntityFeatureLFQNParserRuleCall_3_0_1 = (RuleCall)cLevelColValueLEntityFeatureCrossReference_3_0.eContents().get(1);
-		private final Assignment cUniqueMembersAssignment_4 = (Assignment)cGroup.eContents().get(4);
-		private final Keyword cUniqueMembersUniqueMembersKeyword_4_0 = (Keyword)cUniqueMembersAssignment_4.eContents().get(0);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Assignment cNameColumnAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
+		private final Keyword cNameColumnNameColumnKeyword_4_0_0 = (Keyword)cNameColumnAssignment_4_0.eContents().get(0);
+		private final Assignment cLevelNameColValueAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final CrossReference cLevelNameColValueLEntityFeatureCrossReference_4_1_0 = (CrossReference)cLevelNameColValueAssignment_4_1.eContents().get(0);
+		private final RuleCall cLevelNameColValueLEntityFeatureLFQNParserRuleCall_4_1_0_1 = (RuleCall)cLevelNameColValueLEntityFeatureCrossReference_4_1_0.eContents().get(1);
 		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
-		private final Assignment cLevelTypeAssignment_5_0 = (Assignment)cGroup_5.eContents().get(0);
-		private final Keyword cLevelTypeLevelTypeKeyword_5_0_0 = (Keyword)cLevelTypeAssignment_5_0.eContents().get(0);
-		private final Assignment cLevelTypeValueAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
-		private final RuleCall cLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0 = (RuleCall)cLevelTypeValueAssignment_5_1.eContents().get(0);
+		private final Assignment cCaptionColumnAssignment_5_0 = (Assignment)cGroup_5.eContents().get(0);
+		private final Keyword cCaptionColumnCaptionColumnKeyword_5_0_0 = (Keyword)cCaptionColumnAssignment_5_0.eContents().get(0);
+		private final Assignment cLevelCaptionColValueAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final CrossReference cLevelCaptionColValueLEntityFeatureCrossReference_5_1_0 = (CrossReference)cLevelCaptionColValueAssignment_5_1.eContents().get(0);
+		private final RuleCall cLevelCaptionColValueLEntityFeatureLFQNParserRuleCall_5_1_0_1 = (RuleCall)cLevelCaptionColValueLEntityFeatureCrossReference_5_1_0.eContents().get(1);
 		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
-		private final Keyword cLeftCurlyBracketKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
-		private final Assignment cPropertiesAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
-		private final RuleCall cPropertiesCubeLevelPropParserRuleCall_6_1_0 = (RuleCall)cPropertiesAssignment_6_1.eContents().get(0);
-		private final Keyword cRightCurlyBracketKeyword_6_2 = (Keyword)cGroup_6.eContents().get(2);
+		private final Assignment cOrdinalColumnAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
+		private final Keyword cOrdinalColumnOrdinalColumnKeyword_6_0_0 = (Keyword)cOrdinalColumnAssignment_6_0.eContents().get(0);
+		private final Assignment cLevelOrdinalColValueAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
+		private final CrossReference cLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0 = (CrossReference)cLevelOrdinalColValueAssignment_6_1.eContents().get(0);
+		private final RuleCall cLevelOrdinalColValueLEntityFeatureLFQNParserRuleCall_6_1_0_1 = (RuleCall)cLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0.eContents().get(1);
+		private final Assignment cUniqueMembersAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final Keyword cUniqueMembersUniqueMembersKeyword_7_0 = (Keyword)cUniqueMembersAssignment_7.eContents().get(0);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Assignment cLevelTypeAssignment_8_0 = (Assignment)cGroup_8.eContents().get(0);
+		private final Keyword cLevelTypeLevelTypeKeyword_8_0_0 = (Keyword)cLevelTypeAssignment_8_0.eContents().get(0);
+		private final Assignment cLevelTypeValueAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
+		private final RuleCall cLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0 = (RuleCall)cLevelTypeValueAssignment_8_1.eContents().get(0);
+		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
+		private final Keyword cLeftCurlyBracketKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
+		private final Assignment cPropertiesAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
+		private final RuleCall cPropertiesCubeLevelPropParserRuleCall_9_1_0 = (RuleCall)cPropertiesAssignment_9_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9_2 = (Keyword)cGroup_9.eContents().get(2);
 		
 		//CubeLevel:
-		//	'level' name=TRANSLATABLEID 'column' levelColValue=[entity::LEntityFeature|LFQN] uniqueMembers?='uniqueMembers'?
-		//	(levelType?='levelType' levelTypeValue=CubeLevelLevelType)? ('{' properties+=CubeLevelProp* '}')?;
+		//	'level' name=TRANSLATABLEID 'column' levelColValue=[entity::LEntityFeature|LFQN] (nameColumn?='nameColumn'
+		//	levelNameColValue=[entity::LEntityFeature|LFQN])? (captionColumn?='captionColumn'
+		//	levelCaptionColValue=[entity::LEntityFeature|LFQN])? (ordinalColumn?='ordinalColumn'
+		//	levelOrdinalColValue=[entity::LEntityFeature|LFQN])? uniqueMembers?='uniqueMembers'? (levelType?='levelType'
+		//	levelTypeValue=CubeLevelLevelType)? ('{' properties+=CubeLevelProp* '}')?;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'level' name=TRANSLATABLEID 'column' levelColValue=[entity::LEntityFeature|LFQN] uniqueMembers?='uniqueMembers'?
-		//(levelType?='levelType' levelTypeValue=CubeLevelLevelType)? ('{' properties+=CubeLevelProp* '}')?
+		//'level' name=TRANSLATABLEID 'column' levelColValue=[entity::LEntityFeature|LFQN] (nameColumn?='nameColumn'
+		//levelNameColValue=[entity::LEntityFeature|LFQN])? (captionColumn?='captionColumn'
+		//levelCaptionColValue=[entity::LEntityFeature|LFQN])? (ordinalColumn?='ordinalColumn'
+		//levelOrdinalColValue=[entity::LEntityFeature|LFQN])? uniqueMembers?='uniqueMembers'? (levelType?='levelType'
+		//levelTypeValue=CubeLevelLevelType)? ('{' properties+=CubeLevelProp* '}')?
 		public Group getGroup() { return cGroup; }
 		
 		//'level'
@@ -631,41 +655,95 @@
 		//LFQN
 		public RuleCall getLevelColValueLEntityFeatureLFQNParserRuleCall_3_0_1() { return cLevelColValueLEntityFeatureLFQNParserRuleCall_3_0_1; }
 		
-		//uniqueMembers?='uniqueMembers'?
-		public Assignment getUniqueMembersAssignment_4() { return cUniqueMembersAssignment_4; }
+		//(nameColumn?='nameColumn' levelNameColValue=[entity::LEntityFeature|LFQN])?
+		public Group getGroup_4() { return cGroup_4; }
 		
-		//'uniqueMembers'
-		public Keyword getUniqueMembersUniqueMembersKeyword_4_0() { return cUniqueMembersUniqueMembersKeyword_4_0; }
+		//nameColumn?='nameColumn'
+		public Assignment getNameColumnAssignment_4_0() { return cNameColumnAssignment_4_0; }
 		
-		//(levelType?='levelType' levelTypeValue=CubeLevelLevelType)?
+		//'nameColumn'
+		public Keyword getNameColumnNameColumnKeyword_4_0_0() { return cNameColumnNameColumnKeyword_4_0_0; }
+		
+		//levelNameColValue=[entity::LEntityFeature|LFQN]
+		public Assignment getLevelNameColValueAssignment_4_1() { return cLevelNameColValueAssignment_4_1; }
+		
+		//[entity::LEntityFeature|LFQN]
+		public CrossReference getLevelNameColValueLEntityFeatureCrossReference_4_1_0() { return cLevelNameColValueLEntityFeatureCrossReference_4_1_0; }
+		
+		//LFQN
+		public RuleCall getLevelNameColValueLEntityFeatureLFQNParserRuleCall_4_1_0_1() { return cLevelNameColValueLEntityFeatureLFQNParserRuleCall_4_1_0_1; }
+		
+		//(captionColumn?='captionColumn' levelCaptionColValue=[entity::LEntityFeature|LFQN])?
 		public Group getGroup_5() { return cGroup_5; }
 		
-		//levelType?='levelType'
-		public Assignment getLevelTypeAssignment_5_0() { return cLevelTypeAssignment_5_0; }
+		//captionColumn?='captionColumn'
+		public Assignment getCaptionColumnAssignment_5_0() { return cCaptionColumnAssignment_5_0; }
 		
-		//'levelType'
-		public Keyword getLevelTypeLevelTypeKeyword_5_0_0() { return cLevelTypeLevelTypeKeyword_5_0_0; }
+		//'captionColumn'
+		public Keyword getCaptionColumnCaptionColumnKeyword_5_0_0() { return cCaptionColumnCaptionColumnKeyword_5_0_0; }
 		
-		//levelTypeValue=CubeLevelLevelType
-		public Assignment getLevelTypeValueAssignment_5_1() { return cLevelTypeValueAssignment_5_1; }
+		//levelCaptionColValue=[entity::LEntityFeature|LFQN]
+		public Assignment getLevelCaptionColValueAssignment_5_1() { return cLevelCaptionColValueAssignment_5_1; }
 		
-		//CubeLevelLevelType
-		public RuleCall getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0() { return cLevelTypeValueCubeLevelLevelTypeEnumRuleCall_5_1_0; }
+		//[entity::LEntityFeature|LFQN]
+		public CrossReference getLevelCaptionColValueLEntityFeatureCrossReference_5_1_0() { return cLevelCaptionColValueLEntityFeatureCrossReference_5_1_0; }
 		
-		//('{' properties+=CubeLevelProp* '}')?
+		//LFQN
+		public RuleCall getLevelCaptionColValueLEntityFeatureLFQNParserRuleCall_5_1_0_1() { return cLevelCaptionColValueLEntityFeatureLFQNParserRuleCall_5_1_0_1; }
+		
+		//(ordinalColumn?='ordinalColumn' levelOrdinalColValue=[entity::LEntityFeature|LFQN])?
 		public Group getGroup_6() { return cGroup_6; }
 		
+		//ordinalColumn?='ordinalColumn'
+		public Assignment getOrdinalColumnAssignment_6_0() { return cOrdinalColumnAssignment_6_0; }
+		
+		//'ordinalColumn'
+		public Keyword getOrdinalColumnOrdinalColumnKeyword_6_0_0() { return cOrdinalColumnOrdinalColumnKeyword_6_0_0; }
+		
+		//levelOrdinalColValue=[entity::LEntityFeature|LFQN]
+		public Assignment getLevelOrdinalColValueAssignment_6_1() { return cLevelOrdinalColValueAssignment_6_1; }
+		
+		//[entity::LEntityFeature|LFQN]
+		public CrossReference getLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0() { return cLevelOrdinalColValueLEntityFeatureCrossReference_6_1_0; }
+		
+		//LFQN
+		public RuleCall getLevelOrdinalColValueLEntityFeatureLFQNParserRuleCall_6_1_0_1() { return cLevelOrdinalColValueLEntityFeatureLFQNParserRuleCall_6_1_0_1; }
+		
+		//uniqueMembers?='uniqueMembers'?
+		public Assignment getUniqueMembersAssignment_7() { return cUniqueMembersAssignment_7; }
+		
+		//'uniqueMembers'
+		public Keyword getUniqueMembersUniqueMembersKeyword_7_0() { return cUniqueMembersUniqueMembersKeyword_7_0; }
+		
+		//(levelType?='levelType' levelTypeValue=CubeLevelLevelType)?
+		public Group getGroup_8() { return cGroup_8; }
+		
+		//levelType?='levelType'
+		public Assignment getLevelTypeAssignment_8_0() { return cLevelTypeAssignment_8_0; }
+		
+		//'levelType'
+		public Keyword getLevelTypeLevelTypeKeyword_8_0_0() { return cLevelTypeLevelTypeKeyword_8_0_0; }
+		
+		//levelTypeValue=CubeLevelLevelType
+		public Assignment getLevelTypeValueAssignment_8_1() { return cLevelTypeValueAssignment_8_1; }
+		
+		//CubeLevelLevelType
+		public RuleCall getLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0() { return cLevelTypeValueCubeLevelLevelTypeEnumRuleCall_8_1_0; }
+		
+		//('{' properties+=CubeLevelProp* '}')?
+		public Group getGroup_9() { return cGroup_9; }
+		
 		//'{'
-		public Keyword getLeftCurlyBracketKeyword_6_0() { return cLeftCurlyBracketKeyword_6_0; }
+		public Keyword getLeftCurlyBracketKeyword_9_0() { return cLeftCurlyBracketKeyword_9_0; }
 		
 		//properties+=CubeLevelProp*
-		public Assignment getPropertiesAssignment_6_1() { return cPropertiesAssignment_6_1; }
+		public Assignment getPropertiesAssignment_9_1() { return cPropertiesAssignment_9_1; }
 		
 		//CubeLevelProp
-		public RuleCall getPropertiesCubeLevelPropParserRuleCall_6_1_0() { return cPropertiesCubeLevelPropParserRuleCall_6_1_0; }
+		public RuleCall getPropertiesCubeLevelPropParserRuleCall_9_1_0() { return cPropertiesCubeLevelPropParserRuleCall_9_1_0; }
 		
 		//'}'
-		public Keyword getRightCurlyBracketKeyword_6_2() { return cRightCurlyBracketKeyword_6_2; }
+		public Keyword getRightCurlyBracketKeyword_9_2() { return cRightCurlyBracketKeyword_9_2; }
 	}
 	public class CubeLevelPropElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.cubedsl.CubeDSL.CubeLevelProp");
@@ -1268,8 +1346,11 @@
 	}
 	
 	//CubeLevel:
-	//	'level' name=TRANSLATABLEID 'column' levelColValue=[entity::LEntityFeature|LFQN] uniqueMembers?='uniqueMembers'?
-	//	(levelType?='levelType' levelTypeValue=CubeLevelLevelType)? ('{' properties+=CubeLevelProp* '}')?;
+	//	'level' name=TRANSLATABLEID 'column' levelColValue=[entity::LEntityFeature|LFQN] (nameColumn?='nameColumn'
+	//	levelNameColValue=[entity::LEntityFeature|LFQN])? (captionColumn?='captionColumn'
+	//	levelCaptionColValue=[entity::LEntityFeature|LFQN])? (ordinalColumn?='ordinalColumn'
+	//	levelOrdinalColValue=[entity::LEntityFeature|LFQN])? uniqueMembers?='uniqueMembers'? (levelType?='levelType'
+	//	levelTypeValue=CubeLevelLevelType)? ('{' properties+=CubeLevelProp* '}')?;
 	public CubeLevelElements getCubeLevelAccess() {
 		return pCubeLevel;
 	}
diff --git a/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/CubeDSL.xtext b/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/CubeDSL.xtext
index 1ea7bf5..2000c8c 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/CubeDSL.xtext
+++ b/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/CubeDSL.xtext
@@ -56,7 +56,7 @@
 	{CubeDimensionEntityEntity} entityRef=CubeEntity '{' 'over' overValue=[entity::LEntityFeature|LFQN] hierarchLevels+=CubeLevel* (dimEntity=CubeDimensionEntityEntity)? '}';
 	
 CubeLevel:
-	'level' name=TRANSLATABLEID  'column' levelColValue=[entity::LEntityFeature|LFQN]  (uniqueMembers?='uniqueMembers')? 
+	'level' name=TRANSLATABLEID  'column' levelColValue=[entity::LEntityFeature|LFQN] (nameColumn?='nameColumn' levelNameColValue=[entity::LEntityFeature|LFQN])? (captionColumn?='captionColumn' levelCaptionColValue=[entity::LEntityFeature|LFQN])? (ordinalColumn?='ordinalColumn' levelOrdinalColValue=[entity::LEntityFeature|LFQN])? (uniqueMembers?='uniqueMembers')? 
 	(levelType?='levelType' levelTypeValue=CubeLevelLevelType)? ('{' properties+=CubeLevelProp* '}')?;
 	
 CubeLevelProp:
diff --git a/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/scoping/CubeDSLScopeProvider.xtend b/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/scoping/CubeDSLScopeProvider.xtend
index de71f83..454982d 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/scoping/CubeDSLScopeProvider.xtend
+++ b/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/scoping/CubeDSLScopeProvider.xtend
@@ -22,6 +22,7 @@
 import java.util.ArrayList
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.EReference
+import org.eclipse.emf.ecore.InternalEObject
 import org.eclipse.osbp.dsl.semantic.common.types.LDataType
 import org.eclipse.osbp.dsl.semantic.entity.LEntity
 import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute
@@ -38,6 +39,7 @@
 import org.eclipse.osbp.xtext.cubedsl.CubeMeasure
 import org.eclipse.osbp.xtext.cubedsl.CubePackage
 import org.eclipse.osbp.xtext.cubedsl.CubeTypeEntity
+import org.eclipse.xtext.common.types.impl.JvmParameterizedTypeReferenceImpl
 import org.eclipse.xtext.scoping.IScope
 import org.eclipse.xtext.scoping.Scopes
 
@@ -60,6 +62,9 @@
 		} else if (reference == CubeDSLPackage.Literals.CUBE_MEASURE__MEASURE_COL) {
 			return getScope_CubeMeasureCol(context as CubeMeasure)
 		} else if ((reference == CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_COL_VALUE) ||
+			(reference == CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_NAME_COL_VALUE) ||
+			(reference == CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE) ||
+			(reference == CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE) ||
 			(reference == CubeDSLPackage.Literals.CUBE_LEVEL_PROP__LEVEL_PROP_COL_VALUE)) {
 			return getScope_CubeEntityColRef(context as EObject)
 		} else if (reference == CubeDSLPackage.Literals.CUBE_ENTITY__KEY_VALUE) {
@@ -134,7 +139,7 @@
 	}
 
 	def getCubeEntity(EObject childEObj) {
-		var LEntity cubeEnt;
+		var LEntity cubeEnt = null;
 		var eObj = childEObj.eContainer
 		while (!(eObj instanceof CubeTypeEntity)) {
 			if (eObj !== null) {
@@ -152,15 +157,13 @@
 		var LEntity cubeEnt = cubeMeasure.getCubeEntity
 		if (cubeEnt !== null) {
 			// if measure uses count aggregator only numeric entity attributes are provided
-			if (cubeMeasure.aggregator !== null &&
-				(cubeMeasure.aggregator.equals(CubeAggregatorEnum.COUNT) ||
-					cubeMeasure.aggregator.equals(CubeAggregatorEnum.DSC))) {
+			if (cubeMeasure.aggregator !== null && (cubeMeasure.aggregator.equals(CubeAggregatorEnum.COUNT) ||
+				cubeMeasure.aggregator.equals(CubeAggregatorEnum.DSC))) {
 				result = cubeEnt.getRefResultList(result)
 			} else {
 				for (LEntityAttribute entityAttr : cubeEnt.allAttributes) {
-					if (entityAttr.type !== null && (entityAttr.type instanceof LDataType) &&
-						(entityAttr.type as LDataType).asPrimitive &&
-						!("String".equals((entityAttr.type as LDataType).name))) {
+					if (entityAttr.type !== null && entityAttr.entity.isNormalAttribute(entityAttr) &&
+						(entityAttr.type instanceof LDataType) && (entityAttr.type as LDataType).isNumeric) {
 						result.add(entityAttr)
 					}
 				}
@@ -169,6 +172,31 @@
 		return Scopes.scopeFor(result)
 	}
 
+	def boolean isNumeric(LDataType type) {
+		val JvmParameterizedTypeReferenceImpl typeRef = type.jvmTypeReference as JvmParameterizedTypeReferenceImpl
+		if (typeRef !== null) {
+			var typeIdentifier = ""
+			if (typeRef.basicGetType().eIsProxy && (typeRef.basicGetType() instanceof InternalEObject)) {
+				typeIdentifier = (typeRef.basicGetType() as InternalEObject).eProxyURI.fragment
+			} else {
+				typeIdentifier = typeRef.identifier
+			}
+			switch (typeIdentifier) {
+				case Short.typeName,
+				case Integer.typeName,
+				case Long.typeName,
+				case Double.typeName,
+				case Float.typeName: {
+					return true
+				}
+				default: {
+					return false
+				}
+			}
+		}
+		return false
+	}
+
 	def IScope getScope_CubeEntityColRef(EObject context) {
 		var result = <EObject>newArrayList
 		var eObj = context
diff --git a/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/validation/CubeDSLValidator.xtend b/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/validation/CubeDSLValidator.xtend
index 48d6cfc..048a665 100644
--- a/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/validation/CubeDSLValidator.xtend
+++ b/org.eclipse.osbp.xtext.cubedsl/src/org/eclipse/osbp/xtext/cubedsl/validation/CubeDSLValidator.xtend
@@ -23,11 +23,13 @@
 import org.eclipse.osbp.xtext.basic.validation.IBasicValidatorDelegate
 import org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage
 import org.eclipse.osbp.xtext.cubedsl.CubeDimension
+import org.eclipse.osbp.xtext.cubedsl.CubeDimensionEntity
 import org.eclipse.osbp.xtext.cubedsl.CubeHierarchy
 import org.eclipse.osbp.xtext.cubedsl.CubeLevel
 import org.eclipse.osbp.xtext.cubedsl.CubePackage
-import org.eclipse.osbp.xtext.cubedsl.CubeType
 import org.eclipse.xtext.validation.Check
+import org.eclipse.osbp.xtext.cubedsl.CubeLevelLevelType
+import org.eclipse.osbp.xtext.cubedsl.CubeType
 
 //import org.eclipse.xtext.validation.Check
 /**
@@ -50,7 +52,7 @@
 	def void checkTypeDimensionLevelType(CubeDimension cubeDimension) {
 		var boolean existLevelType = existLevelType(cubeDimension)
 		if (existLevelType && !cubeDimension.typeTime) {
-			error("Dimension attribute 'type=\"TypeDimension\" required for Level attribute 'levelType'!",
+			error("Dimension attribute 'typeTime' required for Level attribute 'levelType'!",
 				CubeDSLPackage.Literals.CUBE_BASE__NAME);
 		}
 	}
@@ -91,6 +93,56 @@
 		return null
 	}
 	
+	
+	@Check
+	def void findLevelWithoutTimeLevelInDimension(CubeDimension cubeDimension) {
+		if (cubeDimension.typeTime) {
+			for (hierarchy : cubeDimension.hierarchies) {
+				for (level : hierarchy.cubeDimEntity.hierarchLevels) {
+					if (!level.levelType) {
+						var errorTxt = ''' A ''level'' defined in a ''hierarchy'' of type ''typeTime'' is forced to have a defined ''levelType''. Please do it.'''
+						error(errorTxt, level, CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_TYPE)
+					}
+				}
+			}
+		}
+	}
+	
+	def void findDuplicateTimeLevelsInDimension(CubeDimension cubeDimension) {
+		if (cubeDimension.typeTime) {
+			for (hierarchy : cubeDimension.hierarchies) {
+				hierarchy.cubeDimEntity.findDuplicateTimeLevelsInDimension
+			}
+		}
+	}
+	
+	@Check
+	def void findDuplicateTimeLevelsInDimension(CubeDimensionEntity cubeDimEntity) {
+		var timeYears = 0
+		var timeMonths = 0
+		if (cubeDimEntity.dimEntity !== null) cubeDimEntity.dimEntity.findDuplicateTimeLevelsInDimension
+		for (hierarchLevel : cubeDimEntity.hierarchLevels) {
+			if (hierarchLevel.levelTypeValue.equals(CubeLevelLevelType.MDLEVEL_TYPE_TIME_YEARS)) {
+				if (timeYears > 0) {
+					error("Duplicate '".concat(CubeLevelLevelType.MDLEVEL_TYPE_TIME_YEARS.literal).concat("' level type!"), hierarchLevel, 
+					CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_TYPE, 1)
+					
+				} else {
+					timeYears ++
+				}
+			}
+			if (hierarchLevel.levelTypeValue.equals(CubeLevelLevelType.MDLEVEL_TYPE_TIME_MONTHS)) {
+				if (timeMonths > 0) {
+					error("Duplicate '".concat(CubeLevelLevelType.MDLEVEL_TYPE_TIME_MONTHS.literal).concat("' level type!"), hierarchLevel, 
+					CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_TYPE, 1)
+					
+				} else {
+					timeMonths ++
+				}
+			}
+		}
+	}
+	
 	@Check
 	def checkCommercialLicensedDimension(CubeDimension dimension) {
 		if(delegate !== null && !delegate.validateCommercial("cube", "net.osbee.xtext.cube")) {
diff --git a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/formatting/CubeDSLFormatter.java b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/formatting/CubeDSLFormatter.java
index 6e2fc19..4a1aa3f 100644
--- a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/formatting/CubeDSLFormatter.java
+++ b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/formatting/CubeDSLFormatter.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0 
+ * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
  * https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  * SPDX-License-Identifier: EPL-2.0
  * 
  * Contributors:
diff --git a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/jvmmodel/CubeDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/jvmmodel/CubeDSLJvmModelInferrer.java
index 1d26538..b38cb73 100644
--- a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/jvmmodel/CubeDSLJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/jvmmodel/CubeDSLJvmModelInferrer.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/jvmmodel/CubeModelGenerator.java b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/jvmmodel/CubeModelGenerator.java
index 382a469..ecee740 100644
--- a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/jvmmodel/CubeModelGenerator.java
+++ b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/jvmmodel/CubeModelGenerator.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/scoping/CubeDSLScopeProvider.java b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/scoping/CubeDSLScopeProvider.java
index b28feea..a4ebc1c 100644
--- a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/scoping/CubeDSLScopeProvider.java
+++ b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/scoping/CubeDSLScopeProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0 
+ * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
  * https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  * SPDX-License-Identifier: EPL-2.0
  * 
  * Contributors:
@@ -22,6 +22,7 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.osbp.dsl.semantic.common.types.LDataType;
 import org.eclipse.osbp.dsl.semantic.entity.LEntity;
 import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
@@ -39,6 +40,9 @@
 import org.eclipse.osbp.xtext.cubedsl.CubePackage;
 import org.eclipse.osbp.xtext.cubedsl.CubeTypeEntity;
 import org.eclipse.osbp.xtext.cubedsl.scoping.AbstractCubeDSLScopeProvider;
+import org.eclipse.xtext.common.types.JvmType;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.common.types.impl.JvmParameterizedTypeReferenceImpl;
 import org.eclipse.xtext.scoping.IScope;
 import org.eclipse.xtext.scoping.Scopes;
 import org.eclipse.xtext.xbase.lib.CollectionLiterals;
@@ -65,7 +69,7 @@
         if (_equals_2) {
           return this.getScope_CubeMeasureCol(((CubeMeasure) context));
         } else {
-          if ((Objects.equal(reference, CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_COL_VALUE) || Objects.equal(reference, CubeDSLPackage.Literals.CUBE_LEVEL_PROP__LEVEL_PROP_COL_VALUE))) {
+          if (((((Objects.equal(reference, CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_COL_VALUE) || Objects.equal(reference, CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_NAME_COL_VALUE)) || Objects.equal(reference, CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_CAPTION_COL_VALUE)) || Objects.equal(reference, CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_ORDINAL_COL_VALUE)) || Objects.equal(reference, CubeDSLPackage.Literals.CUBE_LEVEL_PROP__LEVEL_PROP_COL_VALUE))) {
             return this.getScope_CubeEntityColRef(((EObject) context));
           } else {
             boolean _equals_3 = Objects.equal(reference, CubeDSLPackage.Literals.CUBE_ENTITY__KEY_VALUE);
@@ -182,9 +186,7 @@
       } else {
         List<LEntityAttribute> _allAttributes = cubeEnt.getAllAttributes();
         for (final LEntityAttribute entityAttr : _allAttributes) {
-          if (((((entityAttr.getType() != null) && (entityAttr.getType() instanceof LDataType)) && 
-            ((LDataType) entityAttr.getType()).isAsPrimitive()) && 
-            (!"String".equals(((LDataType) entityAttr.getType()).getName())))) {
+          if (((((entityAttr.getType() != null) && entityAttr.getEntity().isNormalAttribute(entityAttr)) && (entityAttr.getType() instanceof LDataType)) && this.isNumeric(((LDataType) entityAttr.getType())))) {
             result.add(entityAttr);
           }
         }
@@ -193,6 +195,54 @@
     return Scopes.scopeFor(result);
   }
   
+  public boolean isNumeric(final LDataType type) {
+    JvmTypeReference _jvmTypeReference = type.getJvmTypeReference();
+    final JvmParameterizedTypeReferenceImpl typeRef = ((JvmParameterizedTypeReferenceImpl) _jvmTypeReference);
+    if ((typeRef != null)) {
+      String typeIdentifier = "";
+      if ((typeRef.basicGetType().eIsProxy() && (typeRef.basicGetType() instanceof InternalEObject))) {
+        JvmType _basicGetType = typeRef.basicGetType();
+        typeIdentifier = ((InternalEObject) _basicGetType).eProxyURI().fragment();
+      } else {
+        typeIdentifier = typeRef.getIdentifier();
+      }
+      boolean _matched = false;
+      String _typeName = Short.class.getTypeName();
+      if (Objects.equal(typeIdentifier, _typeName)) {
+        _matched=true;
+      }
+      if (!_matched) {
+        String _typeName_1 = Integer.class.getTypeName();
+        if (Objects.equal(typeIdentifier, _typeName_1)) {
+          _matched=true;
+        }
+      }
+      if (!_matched) {
+        String _typeName_2 = Long.class.getTypeName();
+        if (Objects.equal(typeIdentifier, _typeName_2)) {
+          _matched=true;
+        }
+      }
+      if (!_matched) {
+        String _typeName_3 = Double.class.getTypeName();
+        if (Objects.equal(typeIdentifier, _typeName_3)) {
+          _matched=true;
+        }
+      }
+      if (!_matched) {
+        String _typeName_4 = Float.class.getTypeName();
+        if (Objects.equal(typeIdentifier, _typeName_4)) {
+          _matched=true;
+        }
+      }
+      if (_matched) {
+        return true;
+      }
+      return false;
+    }
+    return false;
+  }
+  
   public IScope getScope_CubeEntityColRef(final EObject context) {
     ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
     EObject eObj = context;
diff --git a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/validation/CubeDSLValidator.java b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/validation/CubeDSLValidator.java
index bc7c04d..5a6d44d 100644
--- a/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/validation/CubeDSLValidator.java
+++ b/org.eclipse.osbp.xtext.cubedsl/xtend-gen/org/eclipse/osbp/xtext/cubedsl/validation/CubeDSLValidator.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0 
+ * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
  * https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  * SPDX-License-Identifier: EPL-2.0
  * 
  * Contributors:
@@ -23,8 +23,11 @@
 import org.eclipse.osbp.xtext.basic.validation.IBasicValidatorDelegate;
 import org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage;
 import org.eclipse.osbp.xtext.cubedsl.CubeDimension;
+import org.eclipse.osbp.xtext.cubedsl.CubeDimensionEntity;
+import org.eclipse.osbp.xtext.cubedsl.CubeDimensionEntityEntity;
 import org.eclipse.osbp.xtext.cubedsl.CubeHierarchy;
 import org.eclipse.osbp.xtext.cubedsl.CubeLevel;
+import org.eclipse.osbp.xtext.cubedsl.CubeLevelLevelType;
 import org.eclipse.osbp.xtext.cubedsl.CubePackage;
 import org.eclipse.osbp.xtext.cubedsl.CubeType;
 import org.eclipse.osbp.xtext.cubedsl.validation.AbstractCubeDSLValidator;
@@ -53,7 +56,7 @@
   public void checkTypeDimensionLevelType(final CubeDimension cubeDimension) {
     boolean existLevelType = this.existLevelType(cubeDimension);
     if ((existLevelType && (!cubeDimension.isTypeTime()))) {
-      this.error("Dimension attribute \'type=\"TypeDimension\" required for Level attribute \'levelType\'!", 
+      this.error("Dimension attribute \'typeTime\' required for Level attribute \'levelType\'!", 
         CubeDSLPackage.Literals.CUBE_BASE__NAME);
     }
   }
@@ -100,6 +103,72 @@
   }
   
   @Check
+  public void findLevelWithoutTimeLevelInDimension(final CubeDimension cubeDimension) {
+    boolean _isTypeTime = cubeDimension.isTypeTime();
+    if (_isTypeTime) {
+      EList<CubeHierarchy> _hierarchies = cubeDimension.getHierarchies();
+      for (final CubeHierarchy hierarchy : _hierarchies) {
+        EList<CubeLevel> _hierarchLevels = hierarchy.getCubeDimEntity().getHierarchLevels();
+        for (final CubeLevel level : _hierarchLevels) {
+          boolean _isLevelType = level.isLevelType();
+          boolean _not = (!_isLevelType);
+          if (_not) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append(" ");
+            _builder.append("A \'\'level\'\' defined in a \'\'hierarchy\'\' of type \'\'typeTime\'\' is forced to have a defined \'\'levelType\'\'. Please do it.");
+            String errorTxt = _builder.toString();
+            this.error(errorTxt, level, CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_TYPE);
+          }
+        }
+      }
+    }
+  }
+  
+  public void findDuplicateTimeLevelsInDimension(final CubeDimension cubeDimension) {
+    boolean _isTypeTime = cubeDimension.isTypeTime();
+    if (_isTypeTime) {
+      EList<CubeHierarchy> _hierarchies = cubeDimension.getHierarchies();
+      for (final CubeHierarchy hierarchy : _hierarchies) {
+        this.findDuplicateTimeLevelsInDimension(hierarchy.getCubeDimEntity());
+      }
+    }
+  }
+  
+  @Check
+  public void findDuplicateTimeLevelsInDimension(final CubeDimensionEntity cubeDimEntity) {
+    int timeYears = 0;
+    int timeMonths = 0;
+    CubeDimensionEntityEntity _dimEntity = cubeDimEntity.getDimEntity();
+    boolean _tripleNotEquals = (_dimEntity != null);
+    if (_tripleNotEquals) {
+      this.findDuplicateTimeLevelsInDimension(cubeDimEntity.getDimEntity());
+    }
+    EList<CubeLevel> _hierarchLevels = cubeDimEntity.getHierarchLevels();
+    for (final CubeLevel hierarchLevel : _hierarchLevels) {
+      {
+        boolean _equals = hierarchLevel.getLevelTypeValue().equals(CubeLevelLevelType.MDLEVEL_TYPE_TIME_YEARS);
+        if (_equals) {
+          if ((timeYears > 0)) {
+            this.error("Duplicate \'".concat(CubeLevelLevelType.MDLEVEL_TYPE_TIME_YEARS.getLiteral()).concat("\' level type!"), hierarchLevel, 
+              CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_TYPE, 1);
+          } else {
+            timeYears++;
+          }
+        }
+        boolean _equals_1 = hierarchLevel.getLevelTypeValue().equals(CubeLevelLevelType.MDLEVEL_TYPE_TIME_MONTHS);
+        if (_equals_1) {
+          if ((timeMonths > 0)) {
+            this.error("Duplicate \'".concat(CubeLevelLevelType.MDLEVEL_TYPE_TIME_MONTHS.getLiteral()).concat("\' level type!"), hierarchLevel, 
+              CubeDSLPackage.Literals.CUBE_LEVEL__LEVEL_TYPE, 1);
+          } else {
+            timeMonths++;
+          }
+        }
+      }
+    }
+  }
+  
+  @Check
   public void checkCommercialLicensedDimension(final CubeDimension dimension) {
     if (((this.delegate != null) && (!this.delegate.validateCommercial("cube", "net.osbee.xtext.cube")))) {
       StringConcatenation _builder = new StringConcatenation();